<?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>171565</bug_id>
          
          <creation_ts>2017-05-02 13:35:39 -0700</creation_ts>
          <short_desc>[WK2] Extend processDidCrash delegate to let the client know the reason for the crash</short_desc>
          <delta_ts>2017-05-03 15:27:13 -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>WebKit2</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>
          <dependson>171616</dependson>
    
    <dependson>171624</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303782</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 13:35:39 -0700</bug_when>
    <thetext>Add SPI to query if a web process was terminated due to resource limits. WebKit currently call the processDidCrash() delegate for both crashes and terminations due to resource limits.
With such SPI, the client would be able to distinguish one from the other and treat them differently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303783</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 13:35:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/31204417&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303786</commentid>
    <comment_count>2</comment_count>
      <attachid>308846</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 13:40:06 -0700</bug_when>
    <thetext>Created attachment 308846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303805</commentid>
    <comment_count>3</comment_count>
      <attachid>308846</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-02 14:10:30 -0700</bug_when>
    <thetext>Comment on attachment 308846
Patch

Seems like this should just be a parameter passed to processDidCrash (or maybe a WKErrorRef?).  Also, please add an API test for this (you can at least test the termination reason for a simulated crash).

That said, what is the use case for differentiating between different types of crashes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303809</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 14:14:04 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Comment on attachment 308846 [details]
&gt; Patch
&gt; 
&gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; least test the termination reason for a simulated crash).

I was hoping I would not need to add API for now as things may evolve in the future. For example, we may want to distinguish terminations due to memory from terminations due to CPU. There may be more reasons for termination in the future.

Also, on iOS, we are currently unable to differentiate crashes from JetSams.

&gt; 
&gt; That said, what is the use case for differentiating between different types
&gt; of crashes?

That is on the associated radar:
&lt;rdar://problem/31204417&gt;

Basically, specific logging on client side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303820</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 14:43:45 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; Comment on attachment 308846 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; &gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; &gt; least test the termination reason for a simulated crash).
&gt; 
&gt; I was hoping I would not need to add API for now as things may evolve in the
&gt; future. For example, we may want to distinguish terminations due to memory
&gt; from terminations due to CPU. There may be more reasons for termination in
&gt; the future.
&gt; 
&gt; Also, on iOS, we are currently unable to differentiate crashes from JetSams.
&gt; 
&gt; &gt; 
&gt; &gt; That said, what is the use case for differentiating between different types
&gt; &gt; of crashes?
&gt; 
&gt; That is on the associated radar:
&gt; &lt;rdar://problem/31204417&gt;
&gt; 
&gt; Basically, specific logging on client side.

This would also be needed for &lt;rdar://problem/31764764&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303868</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 16:02:32 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Comment on attachment 308846 [details]
&gt; Patch
&gt; 
&gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; least test the termination reason for a simulated crash).
&gt; 
&gt; That said, what is the use case for differentiating between different types
&gt; of crashes?

Do I understand correctly that I am to create a WKPageNavigationClientV1 that has an extra webProcessDidCrashWithReason delegate? This new delegate would take a WKProcessCrashReason enum as parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303883</commentid>
    <comment_count>7</comment_count>
      <attachid>308867</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 16:59:34 -0700</bug_when>
    <thetext>Created attachment 308867
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303937</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-02 19:51:45 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; Comment on attachment 308846 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; &gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; &gt; least test the termination reason for a simulated crash).
&gt; &gt; 
&gt; &gt; That said, what is the use case for differentiating between different types
&gt; &gt; of crashes?
&gt; 
&gt; Do I understand correctly that I am to create a WKPageNavigationClientV1
&gt; that has an extra webProcessDidCrashWithReason delegate? This new delegate
&gt; would take a WKProcessCrashReason enum as parameter.

Yeah, that was what I was getting at.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303938</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-02 19:52:49 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; Comment on attachment 308846 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; &gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; &gt; least test the termination reason for a simulated crash).
&gt; 
&gt; I was hoping I would not need to add API for now as things may evolve in the
&gt; future. For example, we may want to distinguish terminations due to memory
&gt; from terminations due to CPU. There may be more reasons for termination in
&gt; the future.
&gt; 
&gt; Also, on iOS, we are currently unable to differentiate crashes from JetSams.
&gt; 

I don&apos;t follow, you did add API, WKPageGetProcessWasTerminatedDueToResourceLimits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303939</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 19:56:22 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #9)
&gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; &gt; Comment on attachment 308846 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; &gt; &gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; &gt; &gt; least test the termination reason for a simulated crash).
&gt; &gt; 
&gt; &gt; I was hoping I would not need to add API for now as things may evolve in the
&gt; &gt; future. For example, we may want to distinguish terminations due to memory
&gt; &gt; from terminations due to CPU. There may be more reasons for termination in
&gt; &gt; the future.
&gt; &gt; 
&gt; &gt; Also, on iOS, we are currently unable to differentiate crashes from JetSams.
&gt; &gt; 
&gt; 
&gt; I don&apos;t follow, you did add API,
&gt; WKPageGetProcessWasTerminatedDueToResourceLimits.

It was in private header, so private API. Anyway, my WIP patch should go in the direction you suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303943</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-02 20:09:58 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; (In reply to Sam Weinig from comment #9)
&gt; &gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; &gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; &gt; &gt; Comment on attachment 308846 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; &gt; &gt; &gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; &gt; &gt; &gt; least test the termination reason for a simulated crash).
&gt; &gt; &gt; 
&gt; &gt; &gt; I was hoping I would not need to add API for now as things may evolve in the
&gt; &gt; &gt; future. For example, we may want to distinguish terminations due to memory
&gt; &gt; &gt; from terminations due to CPU. There may be more reasons for termination in
&gt; &gt; &gt; the future.
&gt; &gt; &gt; 
&gt; &gt; &gt; Also, on iOS, we are currently unable to differentiate crashes from JetSams.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I don&apos;t follow, you did add API,
&gt; &gt; WKPageGetProcessWasTerminatedDueToResourceLimits.
&gt; 
&gt; It was in private header, so private API. Anyway, my WIP patch should go in
&gt; the direction you suggested.

To be fair, all of the C-based code is SPI, but we do still like for it to be tested. 👍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303946</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-02 20:28:46 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #11)
&gt; (In reply to Chris Dumez from comment #10)
&gt; &gt; (In reply to Sam Weinig from comment #9)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; &gt; &gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; &gt; &gt; &gt; Comment on attachment 308846 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Seems like this should just be a parameter passed to processDidCrash (or
&gt; &gt; &gt; &gt; &gt; maybe a WKErrorRef?).  Also, please add an API test for this (you can at
&gt; &gt; &gt; &gt; &gt; least test the termination reason for a simulated crash).
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I was hoping I would not need to add API for now as things may evolve in the
&gt; &gt; &gt; &gt; future. For example, we may want to distinguish terminations due to memory
&gt; &gt; &gt; &gt; from terminations due to CPU. There may be more reasons for termination in
&gt; &gt; &gt; &gt; the future.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Also, on iOS, we are currently unable to differentiate crashes from JetSams.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t follow, you did add API,
&gt; &gt; &gt; WKPageGetProcessWasTerminatedDueToResourceLimits.
&gt; &gt; 
&gt; &gt; It was in private header, so private API. Anyway, my WIP patch should go in
&gt; &gt; the direction you suggested.
&gt; 
&gt; To be fair, all of the C-based code is SPI, but we do still like for it to
&gt; be tested. 👍

Understood, I will work on a test tomorrow. In the meantime, please let me know if you have feedback on the API naming I chose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304086</commentid>
    <comment_count>13</comment_count>
      <attachid>308918</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-03 10:01:36 -0700</bug_when>
    <thetext>Created attachment 308918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304092</commentid>
    <comment_count>14</comment_count>
      <attachid>308920</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-03 10:13:31 -0700</bug_when>
    <thetext>Created attachment 308920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304152</commentid>
    <comment_count>15</comment_count>
      <attachid>308920</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-03 11:54:40 -0700</bug_when>
    <thetext>Comment on attachment 308920
Patch

Clearing flags on attachment: 308920

Committed r216129: &lt;http://trac.webkit.org/changeset/216129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304153</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-03 11:54:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308846</attachid>
            <date>2017-05-02 13:40:06 -0700</date>
            <delta_ts>2017-05-02 16:59:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171565-20170502134006.patch</filename>
            <type>text/plain</type>
            <size>7813</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjY0YTMzM2NhYmJkMjM5
NTMwNGUzZjhkZTg2MDhjNzczODZmNzRiOC4uNjNlYjMxZDY1Yzk4YzRhOTFkMDAwZGViYThmNTFm
YmUyZGMxYWJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA1LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIFNQSSB0byBx
dWVyeSBpZiBhIHdlYiBwcm9jZXNzIHdhcyB0ZXJtaW5hdGVkIGR1ZSB0byByZXNvdXJjZSBsaW1p
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTU2
NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzEyMDQ0MTc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNQSSB0byBxdWVyeSBpZiBhIHdlYiBw
cm9jZXNzIHdhcyB0ZXJtaW5hdGVkIGR1ZSB0byByZXNvdXJjZSBsaW1pdHMuIFdlYktpdAorICAg
ICAgICBjdXJyZW50bHkgY2FsbCB0aGUgcHJvY2Vzc0RpZENyYXNoKCkgZGVsZWdhdGUgZm9yIGJv
dGggY3Jhc2hlcyBhbmQgdGVybWluYXRpb25zCisgICAgICAgIGR1ZSB0byByZXNvdXJjZSBsaW1p
dHMuCisgCisgICAgICAgIFdpdGggc3VjaCBTUEksIHRoZSBjbGllbnQgd291bGQgYmUgYWJsZSB0
byBkaXN0aW5ndWlzaCBvbmUgZnJvbSB0aGUgb3RoZXIgYW5kCisgICAgICAgIHRyZWF0IHRoZW0g
ZGlmZmVyZW50bHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAg
ICAgICAgKFdLUGFnZUdldFByb2Nlc3NXYXNUZXJtaW5hdGVkRHVlVG9SZXNvdXJjZUxpbWl0cyk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlGb3JUZXJtaW5hdGlvblJlYXNvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6dGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRJbmFjdGl2ZU1lbW9y
eUxpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNr
Z3JvdW5kQ1BVTGltaXQpOgorICAgICAgICAoV2ViS2l0OjpkaWFnbm9zdGljTG9nZ2luZ0tleUZv
clNpbXVsYXRlZENyYXNoUmVhc29uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpzaW11bGF0ZVByb2Nlc3NDcmFzaCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6Ondhc1Rlcm1pbmF0ZWREdWVUb1Jlc291cmNlTGltaXRzKToKKwogMjAxNy0wNS0wMiAgQW5k
eSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIxMzAz
Nik6IENyYXNoIGluIC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOl0g
d2hlbiBhIHRvdWNoIGV2ZW50IGFycml2ZXMgYWZ0ZXIgYSBXZWJQYWdlUHJveHkgaGFzIGJlZW4g
aW52YWxpZGF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5k
ZXggMDdiOTRjZmY2NzA5MmRjZjE4Nzg3NDJlZGUzYzEyZjMyN2U2ODc1Ny4uYWRkOWNlNmJmYjA1
ZDFlOWUxZmVkNGIxNTRjY2FhMWU4ZWRjYjRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI4ODksMyArMjg4OSw4IEBAIHBpZF90IFdLUGFnZUdldFBy
b2Nlc3NJZGVudGlmaWVyKFdLUGFnZVJlZiBwYWdlKQogewogICAgIHJldHVybiB0b0ltcGwocGFn
ZSktPnByb2Nlc3NJZGVudGlmaWVyKCk7CiB9CisKK2Jvb2wgV0tQYWdlR2V0UHJvY2Vzc1dhc1Rl
cm1pbmF0ZWREdWVUb1Jlc291cmNlTGltaXRzKFdLUGFnZVJlZiBwYWdlKQoreworICAgIHJldHVy
biB0b0ltcGwocGFnZSktPnByb2Nlc3MoKS53YXNUZXJtaW5hdGVkRHVlVG9SZXNvdXJjZUxpbWl0
cygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKaW5kZXggOWM0MTYyMzA4OGRlNGRiNzA4YjQ0YmY0ZWRkZjMwOWJlMzlkZTU2ZS4uYmNkMGUw
NmI5ZTk1MDg5NjRiYjcxNTFkMTE0MDA2OWQ4YTEyZDViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0xNjksNiArMTY5LDggQEAgV0tf
RVhQT1JUIHZvaWQgV0tQYWdlU2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoV0tQYWdlUmVm
IHBhZ2UsIGJvb2wgaWdub3Jlc1YKIAogV0tfRVhQT1JUIHBpZF90IFdLUGFnZUdldFByb2Nlc3NJ
ZGVudGlmaWVyKFdLUGFnZVJlZiBwYWdlKTsKIAorV0tfRVhQT1JUIGJvb2wgV0tQYWdlR2V0UHJv
Y2Vzc1dhc1Rlcm1pbmF0ZWREdWVUb1Jlc291cmNlTGltaXRzKFdLUGFnZVJlZiBwYWdlKTsKKwog
I2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOGVhYmViMzVhM2FmOGMzODJkOWFiOTkwYjIzNzAw
YzQ2OTJiZTVlYi4uNGY3NzZmMmE0YWM1ZWY3MDA4YzJmZGVhYjFjZTk0OTJkYjNlMDRlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTExMjks
MjQgKzExMjksMjYgQEAgc3RhdGljIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5Pj4gcGFnZXND
b3B5KFdURjo6SXRlcmF0b3JSYW5nZTxXZWJQcm9jZXNzUHJveHkKICAgICByZXR1cm4gdmVjdG9y
OwogfQogCi1zdGF0aWMgU3RyaW5nIGRpYWdub3N0aWNMb2dnaW5nS2V5Rm9yU2ltdWxhdGVkQ3Jh
c2hSZWFzb24oU2ltdWxhdGVkQ3Jhc2hSZWFzb24gcmVhc29uKQorc3RhdGljIFN0cmluZyBkaWFn
bm9zdGljTG9nZ2luZ0tleUZvclRlcm1pbmF0aW9uUmVhc29uKFRlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKIHsKICAgICBzd2l0Y2ggKHJlYXNvbikgewotICAgIGNhc2UgU2ltdWxhdGVkQ3Jhc2hS
ZWFzb246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQ6CisgICAgY2FzZSBUZXJtaW5hdGlvblJl
YXNvbjo6RXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdDoKICAgICAgICAgcmV0dXJuIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdEtleSgpOwotICAgIGNhc2Ug
U2ltdWxhdGVkQ3Jhc2hSZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdDoKKyAgICBj
YXNlIFRlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQ6CiAgICAg
ICAgIHJldHVybiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlM
aW1pdEtleSgpOwotICAgIGNhc2UgU2ltdWxhdGVkQ3Jhc2hSZWFzb246OkV4Y2VlZGVkQmFja2dy
b3VuZENQVUxpbWl0OgorICAgIGNhc2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dy
b3VuZENQVUxpbWl0OgogICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleGNl
ZWRlZEJhY2tncm91bmRDUFVMaW1pdEtleSgpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94
eTo6c2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2ltdWxhdGVkQ3Jhc2hSZWFzb24gcmVhc29uKQordm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRl
cm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKKyAgICBtX3dhc1Rlcm1pbmF0ZWREdWVUb1Jlc291
cmNlTGltaXRzID0gdHJ1ZTsKKwogICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2VzQ29weShwYWdl
cygpKSkgewotICAgICAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnNpbXVsYXRlZFBhZ2VDcmFzaEtleSgpLCBkaWFnbm9zdGljTG9nZ2luZ0tleUZv
clNpbXVsYXRlZENyYXNoUmVhc29uKHJlYXNvbiksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNpbXVs
YXRlZFBhZ2VDcmFzaEtleSgpLCBkaWFnbm9zdGljTG9nZ2luZ0tleUZvclRlcm1pbmF0aW9uUmVh
c29uKHJlYXNvbiksIFNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBwYWdlLT50ZXJtaW5hdGVQ
cm9jZXNzKCk7CiAgICAgICAgIHBhZ2UtPnByb2Nlc3NEaWRDcmFzaCgpOwogICAgIH0KQEAgLTEx
NTUsMTMgKzExNTcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNpbXVsYXRlUHJvY2Vzc0Ny
YXNoKFNpbXVsYXRlZENyYXNoUmVhc29uIHJlYXNvbikKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRFeGNlZWRBY3RpdmVNZW1vcnlMaW1pdCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1IoUGVy
Zm9ybWFuY2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEFjdGl2ZU1l
bW9yeUxpbWl0KCkgVGVybWluYXRpbmcgV2ViUHJvY2VzcyB0aGF0IGhhcyBleGNlZWRlZCB0aGUg
YWN0aXZlIG1lbW9yeSBsaW1pdCIsIHRoaXMpOwotICAgIHNpbXVsYXRlUHJvY2Vzc0NyYXNoKFNp
bXVsYXRlZENyYXNoUmVhc29uOjpFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0KTsKKyAgICB0ZXJt
aW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVk
ZWRBY3RpdmVNZW1vcnlMaW1pdCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNl
ZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkKIHsKICAgICBSRUxFQVNFX0xPR19FUlJPUihQZXJmb3Jt
YW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1v
cnlMaW1pdCgpIFRlcm1pbmF0aW5nIFdlYlByb2Nlc3MgdGhhdCBoYXMgZXhjZWVkZWQgdGhlIGlu
YWN0aXZlIG1lbW9yeSBsaW1pdCIsIHRoaXMpOwotICAgIHNpbXVsYXRlUHJvY2Vzc0NyYXNoKFNp
bXVsYXRlZENyYXNoUmVhc29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQpOworICAgIHRl
cm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRlcm1pbmF0aW9uUmVhc29uOjpFeGNl
ZWRlZEluYWN0aXZlTWVtb3J5TGltaXQpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlk
RXhjZWVkQmFja2dyb3VuZENQVUxpbWl0KCkKQEAgLTExODIsNyArMTE4NCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXQoKQogICAgIH0KIAogICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vzc1By
b3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXQoKSBUZXJtaW5hdGluZyBiYWNrZ3JvdW5k
IFdlYlByb2Nlc3MgdGhhdCBoYXMgZXhjZWVkZWQgdGhlIGJhY2tncm91bmQgQ1BVIGxpbWl0Iiwg
dGhpcyk7Ci0gICAgc2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2ltdWxhdGVkQ3Jhc2hSZWFzb246OkV4
Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0KTsKKyAgICB0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNv
dXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRCYWNrZ3JvdW5kQ1BVTGltaXQp
OwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVu
ZXNzVGltZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IDk2MzE2Y2Q0MDQxYzVkZDVhZTNhMGY3NDNhZTUyODI3MjU5M2VjZDkuLjg0YjA4MjI0ZDI2
NDFiNzMzYjQ5M2E4MTcyZDFiZTI1YjZlMGZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IFBsdWdpbkluZm87
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1lbnVtIGNsYXNzIFNpbXVsYXRlZENyYXNoUmVhc29u
IHsKK2VudW0gY2xhc3MgVGVybWluYXRpb25SZWFzb24gewogICAgIEV4Y2VlZGVkQWN0aXZlTWVt
b3J5TGltaXQsCiAgICAgRXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0LAogICAgIEV4Y2VlZGVk
QmFja2dyb3VuZENQVUxpbWl0LApAQCAtMTc1LDYgKzE3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1pdCgpOwogICAgIHZvaWQgZGlkRXhjZWVkQWN0aXZl
TWVtb3J5TGltaXQoKTsKICAgICB2b2lkIGRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXQoKTsK
KyAgICBib29sIHdhc1Rlcm1pbmF0ZWREdWVUb1Jlc291cmNlTGltaXRzKCkgY29uc3QgeyByZXR1
cm4gbV93YXNUZXJtaW5hdGVkRHVlVG9SZXNvdXJjZUxpbWl0czsgfQogCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3Rv
cmUmKTsKQEAgLTI0Nyw3ICsyNDgsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5UZXJtaW5h
dGVDaGlsZFByb2Nlc3MoKTsKIAotICAgIHZvaWQgc2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2ltdWxh
dGVkQ3Jhc2hSZWFzb24pOworICAgIHZvaWQgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VM
aW1pdHMoVGVybWluYXRpb25SZWFzb24pOwogCiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciBtX3Jl
c3BvbnNpdmVuZXNzVGltZXI7CiAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXI7CkBAIC0yODUsNiArMjg2LDcgQEAg
cHJpdmF0ZToKICAgICBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOwog
CiAgICAgYm9vbCBtX2lzVW5kZXJNZW1vcnlQcmVzc3VyZSB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3dhc1Rlcm1pbmF0ZWREdWVUb1Jlc291cmNlTGltaXRzIHsgZmFsc2UgfTsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk7Cg==
</data>
<flag name="review"
          id="330012"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308867</attachid>
            <date>2017-05-02 16:59:34 -0700</date>
            <delta_ts>2017-05-03 10:01:35 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171565_CrashReason_API_wip.patch</filename>
            <type>text/plain</type>
            <size>25213</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWFkY2U4NTZkMzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0NyYXNoUmVhc29uLmgKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
ZW51bSBjbGFzcyBQcm9jZXNzQ3Jhc2hSZWFzb24geworICAgIFRlcm1pbmF0aW9uRHVlVG9NZW1v
cnlVc2FnZSwKKyAgICBUZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2UsCisgICAgT3RoZXIKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xp
ZW50LmgKaW5kZXggYTYzMzJmN2RhNDYuLjhhM2UxYTdkYTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtMjcsNiArMjcs
NyBAQAogCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8u
aCIKKyNpbmNsdWRlICJQcm9jZXNzQ3Jhc2hSZWFzb24uaCIKICNpbmNsdWRlICJTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZS5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2Vi
RnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgiCkBAIC04Miw3ICs4Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KikgeyB9
CiAKICAgICAvLyBGSVhNRTogVGhlc2UgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRo
aXMgY2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV2ViS2l0OjpXZWJQ
YWdlUHJveHkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpQcm9jZXNzQ3Jhc2hSZWFzb24pIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYktp
dDo6V2ViUGFnZVByb3h5JikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaAppbmRleCA3OGEzODA0MTU5ZS4uYzU0NGNhOGE5YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0TWVkaWFUeXBlLmgiCiAjaW5jbHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgor
I2luY2x1ZGUgIlByb2Nlc3NDcmFzaFJlYXNvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlQ2FjaGVz
VG9DbGVhci5oIgogI2luY2x1ZGUgIldLQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUg
IldLQ29udGV4dC5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIldLUGFnZS5oIgogI2lu
Y2x1ZGUgIldLUHJlZmVyZW5jZXNSZWYuaCIKICNpbmNsdWRlICJXS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldLUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAjaW5jbHVkZSAiV0tQ
cm90ZWN0aW9uU3BhY2VUeXBlcy5oIgogI2luY2x1ZGUgIldLUmVzb3VyY2VDYWNoZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKQEAgLTIzMyw2ICsyMzUsMjAgQEAgaW5s
aW5lIFdLQ2FjaGVNb2RlbCB0b0FQSShDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgcmV0dXJu
IGtXS0NhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjsKIH0KIAoraW5saW5lIFdLUHJvY2Vzc0NyYXNo
UmVhc29uIHRvQVBJKFByb2Nlc3NDcmFzaFJlYXNvbiByZWFzb24pCit7CisgICAgc3dpdGNoIChy
ZWFzb24pIHsKKyAgICBjYXNlIFByb2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25EdWVUb01l
bW9yeVVzYWdlOgorICAgICAgICByZXR1cm4ga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRp
b25EdWVUb01lbW9yeVVzYWdlOworICAgIGNhc2UgUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5h
dGlvbkR1ZVRvQ1BVVXNhZ2U6CisgICAgICAgIHJldHVybiBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25U
ZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2U7CisgICAgY2FzZSBQcm9jZXNzQ3Jhc2hSZWFzb246Ok90
aGVyOgorICAgICAgICByZXR1cm4ga1dLUHJvY2Vzc0NyYXNoUmVhc29uT3RoZXI7CisgICAgfQor
CisgICAgcmV0dXJuIGtXS1Byb2Nlc3NDcmFzaFJlYXNvbk90aGVyOworfQorCiBpbmxpbmUgRm9u
dFNtb290aGluZ0xldmVsIHRvRm9udFNtb290aGluZ0xldmVsKFdLRm9udFNtb290aGluZ0xldmVs
IHdrTGV2ZWwpCiB7CiAgICAgc3dpdGNoICh3a0xldmVsKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDA3Yjk0Y2ZmNjcwLi40YWU3NTJiOGFjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTEwNiw3ICsxMDYs
NyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlTG9hZGVyQ2xpZW50QmFz
ZT4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZU5hdmlnYXRp
b25DbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZU5hdmlnYXRpb25D
bGllbnRWMD4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZU5hdmlnYXRp
b25DbGllbnRWMCwgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYxPiBWZXJzaW9uczsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CkBA
IC0yNDAwLDExICsyNDAwLDEzIEBAIHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQo
V0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZU5hdmlnYXRpb25DbGllCiAgICAgICAgICAg
ICBtX2NsaWVudC5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodG9BUEkoJnBhZ2Up
LCB0b0FQSShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJv
eHkmIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgV2ViS2l0OjpQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uKSBvdmVycmlkZQog
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaCkK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBtX2NsaWVudC53ZWJQcm9jZXNz
RGlkQ3Jhc2godG9BUEkoJnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAg
ICAgICAgaWYgKG1fY2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaCkKKyAgICAgICAgICAgICAgICBt
X2NsaWVudC53ZWJQcm9jZXNzRGlkQ3Jhc2godG9BUEkoJnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworCisgICAgICAgICAgICBpZiAobV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNo
V2l0aFJlYXNvbikKKyAgICAgICAgICAgICAgICBtX2NsaWVudC53ZWJQcm9jZXNzRGlkQ3Jhc2hX
aXRoUmVhc29uKHRvQVBJKCZwYWdlKSwgdG9BUEkocmVhc29uKSwgbV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIFJlZlB0cjxBUEk6OkRhdGE+IHdlYkNyeXB0
b01hc3RlcktleShXZWJQYWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaAppbmRl
eCBlMTljZjk3NDFmOC4uZDcxZDRlYjVjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VMb2FkVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQ
bHVnaW5Mb2FkUG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUHJvY2Vzc0NyYXNoUmVhc29u
Lmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC02NSw2ICs2Niw4IEBA
IHR5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25EaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VDYWxsYmFjaykoV0tQYWdlCiAKIHR5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRp
b25XZWJQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogCit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VOYXZpZ2F0aW9uV2ViUHJvY2Vz
c0RpZENyYXNoV2l0aFJlYXNvbkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQcm9jZXNzQ3Jh
c2hSZWFzb24gcmVhc29uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwogdHlwZWRlZiBXS0Rh
dGFSZWYgKCpXS1BhZ2VOYXZpZ2F0aW9uQ29weVdlYkNyeXB0b01hc3RlcktleUNhbGxiYWNrKShX
S1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgCiB0eXBlZGVmIFdL
UGx1Z2luTG9hZFBvbGljeSAoKldLUGFnZU5hdmlnYXRpb25EZWNpZGVQb2xpY3lGb3JQbHVnaW5M
b2FkQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBs
dWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlvbmFyeSwgV0tT
dHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwpAQCAtMTA0LDEzICsxMDcsNDIgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlTmF2aWdhdGlv
bkNsaWVudFYwIHsKICAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQ2FsbGJhY2sgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogICAg
IFdLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjayB3ZWJQcm9jZXNzRGlk
Q3Jhc2g7CiAgICAgV0tQYWdlTmF2aWdhdGlvbkNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlDYWxsYmFj
ayBjb3B5V2ViQ3J5cHRvTWFzdGVyS2V5OwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkRpZEJlZ2lu
TmF2aWdhdGlvbkdlc3R1cmUgZGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZTsKICAgICBXS1BhZ2VO
YXZpZ2F0aW9uV2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlIHdpbGxFbmROYXZpZ2F0aW9uR2VzdHVy
ZTsKICAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRW5kTmF2aWdhdGlvbkdlc3R1cmUgZGlkRW5kTmF2
aWdhdGlvbkdlc3R1cmU7CiAgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFJlbW92ZU5hdmlnYXRpb25H
ZXN0dXJlU25hcHNob3QgZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDsKIH0gV0tQ
YWdlTmF2aWdhdGlvbkNsaWVudFYwOwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50VjEgeworICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRCYXNlIGJhc2U7CisKKyAgICAv
LyBWZXJzaW9uIDAuCisgICAgV0tQYWdlTmF2aWdhdGlvbkRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25DYWxsYmFjayBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOworICAgIFdL
UGFnZU5hdmlnYXRpb25EZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VDYWxsYmFjayBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U7CisgICAgV0tQYWdlTmF2aWdhdGlvbkRl
Y2lkZVBvbGljeUZvclBsdWdpbkxvYWRDYWxsYmFjayBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2Fk
OworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbkNhbGxi
YWNrIGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOworICAgIFdLUGFnZU5hdmlnYXRpb25E
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb25DYWxsYmFjayBk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb247CisgICAgV0tQ
YWdlTmF2aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb25DYWxsYmFjayBkaWRGYWls
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRDb21taXROYXZp
Z2F0aW9uQ2FsbGJhY2sgZGlkQ29tbWl0TmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9u
RGlkRmluaXNoTmF2aWdhdGlvbkNhbGxiYWNrIGRpZEZpbmlzaE5hdmlnYXRpb247CisgICAgV0tQ
YWdlTmF2aWdhdGlvbkRpZEZhaWxOYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkRmFpbE5hdmlnYXRpb247
CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lQ2Fs
bGJhY2sgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJhbWU7CisgICAgV0tQYWdlTmF2aWdh
dGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZENhbGxiYWNrIGRpZEZpbmlzaERvY3VtZW50TG9hZDsK
KyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkNhbGxiYWNrIGRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb247CisgICAgV0tQYWdlTmF2aWdhdGlvblJlbmRlcmluZ1By
b2dyZXNzRGlkQ2hhbmdlQ2FsbGJhY2sgcmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U7CisgICAg
V0tQYWdlTmF2aWdhdGlvbkNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VDYWxs
YmFjayBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOworICAgIFdLUGFnZU5h
dmlnYXRpb25EaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYWxsYmFjayBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CisgICAgV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nl
c3NEaWRDcmFzaENhbGxiYWNrIHdlYlByb2Nlc3NEaWRDcmFzaDsKKyAgICBXS1BhZ2VOYXZpZ2F0
aW9uQ29weVdlYkNyeXB0b01hc3RlcktleUNhbGxiYWNrIGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXk7
CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZEJlZ2luTmF2aWdhdGlvbkdlc3R1cmUgZGlkQmVnaW5O
YXZpZ2F0aW9uR2VzdHVyZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uV2lsbEVuZE5hdmlnYXRpb25H
ZXN0dXJlIHdpbGxFbmROYXZpZ2F0aW9uR2VzdHVyZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlk
RW5kTmF2aWdhdGlvbkdlc3R1cmUgZGlkRW5kTmF2aWdhdGlvbkdlc3R1cmU7CisgICAgV0tQYWdl
TmF2aWdhdGlvbkRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QgZGlkUmVtb3ZlTmF2
aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VO
YXZpZ2F0aW9uV2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbkNhbGxiYWNrIHdlYlByb2Nlc3NE
aWRDcmFzaFdpdGhSZWFzb247Cit9IFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMTsKKwogI2lmZGVm
IF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1Byb2Nlc3NDcmFzaFJlYXNvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmIzYWYzOTZhNzA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAg
a1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlID0gMCwKKyAg
ICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2UsCisgICAga1dL
UHJvY2Vzc0NyYXNoUmVhc29uT3RoZXIsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1Byb2Nlc3ND
cmFzaFJlYXNvbjsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCA0NmE5ZWUx
NDcwYy4uMGFkMzQ3ODExYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkFQSUhpc3Rv
cnlDbGllbnQuaCIKICNpbXBvcnQgIkFQSU5hdmlnYXRpb25DbGllbnQuaCIKICNpbXBvcnQgIlBh
Z2VMb2FkU3RhdGUuaCIKKyNpbXBvcnQgIlByb2Nlc3NDcmFzaFJlYXNvbi5oIgogI2ltcG9ydCAi
UHJvY2Vzc1Rocm90dGxlci5oIgogI2ltcG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw3ICsxMDMsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIGJv
b2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJQYWdlUHJveHkmLCBX
ZWJQcm90ZWN0aW9uU3BhY2UqKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVByb3h5JiwgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eSopIG92ZXJyaWRlOwotICAgICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChXZWJQYWdl
UHJveHkmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV2ViUGFnZVBy
b3h5JiwgUHJvY2Vzc0NyYXNoUmVhc29uKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwcm9jZXNz
RGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICAgICAgICAgdm9p
ZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bQppbmRleCBiNjZlMWExYzdkNC4uYTQ1OTgyOWVmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtNzEwLDcgKzcxMCw3IEBA
IHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnCiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1f
bmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6d3JhcHBlcigqYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpXTsKIH0KIAotdm9pZCBOYXZpZ2F0
aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRDcmFzaChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYgcGFnZSkKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpw
cm9jZXNzRGlkQ3Jhc2goV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vz
c0NyYXNoUmVhc29uKQogewogICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZSAmJiAh
bV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJQ
cm9jZXNzRGlkQ3Jhc2gpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMWYwY2M5ZGU1YzkuLmI2NWI2MTk5NzA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTI5Myw3ICs1MjkzLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKQogICAg
IG1fcGFnZUxvYWRTdGF0ZS5kaWRDaGFuZ2VQcm9jZXNzSXNSZXNwb25zaXZlKCk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQordm9pZCBXZWJQYWdlUHJveHk6OnBy
b2Nlc3NEaWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uKQogewogICAgIEFTU0VSVCht
X2lzVmFsaWQpOwogCkBAIC01MzE2LDcgKzUzMTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJv
Y2Vzc0RpZENyYXNoKCkKICAgICBuYXZpZ2F0aW9uU3RhdGUoKS5jbGVhckFsbE5hdmlnYXRpb25z
KCk7CiAKICAgICBpZiAobV9uYXZpZ2F0aW9uQ2xpZW50KQotICAgICAgICBtX25hdmlnYXRpb25D
bGllbnQtPnByb2Nlc3NEaWRDcmFzaCgqdGhpcyk7CisgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVu
dC0+cHJvY2Vzc0RpZENyYXNoKCp0aGlzLCByZWFzb24pOwogICAgIGVsc2UKICAgICAgICAgbV9s
b2FkZXJDbGllbnQtPnByb2Nlc3NEaWRDcmFzaCgqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhNGQ3NDc3MThhNS4uYjQ4ZDY0NjkzM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJQYWdlTG9hZFN0YXRlLmgiCisjaW5j
bHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5o
IgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKQEAgLTg1Nyw3ICs4NTgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByb2Nlc3NEaWRC
ZWNvbWVVbnJlc3BvbnNpdmUoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZl
KCk7Ci0gICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goKTsKKyAgICB2b2lkIHByb2Nlc3NEaWRDcmFz
aChQcm9jZXNzQ3Jhc2hSZWFzb24pOwogICAgIHZvaWQgd2lsbENoYW5nZVByb2Nlc3NJc1Jlc3Bv
bnNpdmUoKTsKICAgICB2b2lkIGRpZENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA4ZWFiZWIz
NWEzYS4uNTQ0ODI2N2FhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgc2h1dERvd24oKTsKIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwLCBzaXplID0gcGFnZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBw
YWdlc1tpXS0+cHJvY2Vzc0RpZENyYXNoKCk7CisgICAgICAgIHBhZ2VzW2ldLT5wcm9jZXNzRGlk
Q3Jhc2goUHJvY2Vzc0NyYXNoUmVhc29uOjpPdGhlcik7CiAKIH0KIApAQCAtMTEyOSwzOSArMTEy
OSw1MSBAQCBzdGF0aWMgVmVjdG9yPFJlZlB0cjxXZWJQYWdlUHJveHk+PiBwYWdlc0NvcHkoV1RG
OjpJdGVyYXRvclJhbmdlPFdlYlByb2Nlc3NQcm94eQogICAgIHJldHVybiB2ZWN0b3I7CiB9CiAK
LXN0YXRpYyBTdHJpbmcgZGlhZ25vc3RpY0xvZ2dpbmdLZXlGb3JTaW11bGF0ZWRDcmFzaFJlYXNv
bihTaW11bGF0ZWRDcmFzaFJlYXNvbiByZWFzb24pCitzdGF0aWMgU3RyaW5nIGRpYWdub3N0aWNM
b2dnaW5nS2V5Rm9yVGVybWluYXRpb25SZWFzb24oVGVybWluYXRpb25SZWFzb24gcmVhc29uKQog
ewogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2FzZSBTaW11bGF0ZWRDcmFzaFJlYXNvbjo6
RXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdDoKKyAgICBjYXNlIFRlcm1pbmF0aW9uUmVhc29uOjpF
eGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0OgogICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpleGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0S2V5KCk7Ci0gICAgY2FzZSBTaW11bGF0
ZWRDcmFzaFJlYXNvbjo6RXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0OgorICAgIGNhc2UgVGVy
bWluYXRpb25SZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdDoKICAgICAgICAgcmV0
dXJuIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0S2V5
KCk7Ci0gICAgY2FzZSBTaW11bGF0ZWRDcmFzaFJlYXNvbjo6RXhjZWVkZWRCYWNrZ3JvdW5kQ1BV
TGltaXQ6CisgICAgY2FzZSBUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRCYWNrZ3JvdW5kQ1BV
TGltaXQ6CiAgICAgICAgIHJldHVybiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkQmFj
a2dyb3VuZENQVUxpbWl0S2V5KCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaW11
bGF0ZVByb2Nlc3NDcmFzaChTaW11bGF0ZWRDcmFzaFJlYXNvbiByZWFzb24pCitzdGF0aWMgUHJv
Y2Vzc0NyYXNoUmVhc29uIHRvUHJvY2Vzc0NyYXNoUmVhc29uKFRlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKK3sKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgVGVybWluYXRpb25SZWFz
b246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQ6CisgICAgY2FzZSBUZXJtaW5hdGlvblJlYXNv
bjo6RXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0OgorICAgICAgICByZXR1cm4gUHJvY2Vzc0Ny
YXNoUmVhc29uOjpUZXJtaW5hdGlvbkR1ZVRvTWVtb3J5VXNhZ2U7CisgICAgY2FzZSBUZXJtaW5h
dGlvblJlYXNvbjo6RXhjZWVkZWRCYWNrZ3JvdW5kQ1BVTGltaXQ6CisgICAgICAgIHJldHVybiBQ
cm9jZXNzQ3Jhc2hSZWFzb246OlRlcm1pbmF0aW9uRHVlVG9DUFVVc2FnZTsKKyAgICB9CisgICAg
cmV0dXJuIFByb2Nlc3NDcmFzaFJlYXNvbjo6T3RoZXI7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1By
b3h5Ojp0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNv
biByZWFzb24pCiB7CiAgICAgZm9yIChhdXRvJiBwYWdlIDogcGFnZXNDb3B5KHBhZ2VzKCkpKSB7
Ci0gICAgICAgIHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5
czo6c2ltdWxhdGVkUGFnZUNyYXNoS2V5KCksIGRpYWdub3N0aWNMb2dnaW5nS2V5Rm9yU2ltdWxh
dGVkQ3Jhc2hSZWFzb24ocmVhc29uKSwgU2hvdWxkU2FtcGxlOjpObyk7CisgICAgICAgIHBhZ2Ut
PmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6c2ltdWxhdGVkUGFn
ZUNyYXNoS2V5KCksIGRpYWdub3N0aWNMb2dnaW5nS2V5Rm9yVGVybWluYXRpb25SZWFzb24ocmVh
c29uKSwgU2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIHBhZ2UtPnRlcm1pbmF0ZVByb2Nlc3Mo
KTsKLSAgICAgICAgcGFnZS0+cHJvY2Vzc0RpZENyYXNoKCk7CisgICAgICAgIHBhZ2UtPnByb2Nl
c3NEaWRDcmFzaCh0b1Byb2Nlc3NDcmFzaFJlYXNvbihyZWFzb24pKTsKICAgICB9CiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRBY3RpdmVNZW1vcnlMaW1pdCgpCiB7CiAgICAg
UkVMRUFTRV9MT0dfRVJST1IoUGVyZm9ybWFuY2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHk6OmRpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkgVGVybWluYXRpbmcgV2ViUHJvY2VzcyB0
aGF0IGhhcyBleGNlZWRlZCB0aGUgYWN0aXZlIG1lbW9yeSBsaW1pdCIsIHRoaXMpOwotICAgIHNp
bXVsYXRlUHJvY2Vzc0NyYXNoKFNpbXVsYXRlZENyYXNoUmVhc29uOjpFeGNlZWRlZEFjdGl2ZU1l
bW9yeUxpbWl0KTsKKyAgICB0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cyhUZXJt
aW5hdGlvblJlYXNvbjo6RXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdCk7CiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkKIHsKICAgICBSRUxF
QVNFX0xPR19FUlJPUihQZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6
ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdCgpIFRlcm1pbmF0aW5nIFdlYlByb2Nlc3MgdGhh
dCBoYXMgZXhjZWVkZWQgdGhlIGluYWN0aXZlIG1lbW9yeSBsaW1pdCIsIHRoaXMpOwotICAgIHNp
bXVsYXRlUHJvY2Vzc0NyYXNoKFNpbXVsYXRlZENyYXNoUmVhc29uOjpFeGNlZWRlZEluYWN0aXZl
TWVtb3J5TGltaXQpOworICAgIHRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQpOwogfQogCiB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQmFja2dyb3VuZENQVUxpbWl0KCkKQEAgLTExODIs
NyArMTE5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BV
TGltaXQoKQogICAgIH0KIAogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2lu
ZywgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXQoKSBU
ZXJtaW5hdGluZyBiYWNrZ3JvdW5kIFdlYlByb2Nlc3MgdGhhdCBoYXMgZXhjZWVkZWQgdGhlIGJh
Y2tncm91bmQgQ1BVIGxpbWl0IiwgdGhpcyk7Ci0gICAgc2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2lt
dWxhdGVkQ3Jhc2hSZWFzb246OkV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0KTsKKyAgICB0ZXJt
aW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVk
ZWRCYWNrZ3JvdW5kQ1BVTGltaXQpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRl
QmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDk2MzE2Y2Q0MDQxLi4xNTRhNmZkZTdjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTUsNyArNTUsNyBA
QCBzdHJ1Y3QgUGx1Z2luSW5mbzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWVudW0gY2xhc3Mg
U2ltdWxhdGVkQ3Jhc2hSZWFzb24geworZW51bSBjbGFzcyBUZXJtaW5hdGlvblJlYXNvbiB7CiAg
ICAgRXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdCwKICAgICBFeGNlZWRlZEluYWN0aXZlTWVtb3J5
TGltaXQsCiAgICAgRXhjZWVkZWRCYWNrZ3JvdW5kQ1BVTGltaXQsCkBAIC0yNDcsNyArMjQ3LDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2FuVGVybWluYXRlQ2hpbGRQcm9jZXNzKCk7CiAKLSAg
ICB2b2lkIHNpbXVsYXRlUHJvY2Vzc0NyYXNoKFNpbXVsYXRlZENyYXNoUmVhc29uKTsKKyAgICB2
b2lkIHRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRlcm1pbmF0aW9uUmVhc29u
KTsKIAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVzc1RpbWVyOwogICAg
IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lciBtX2JhY2tncm91bmRSZXNwb25z
aXZlbmVzc1RpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDcyYjBjNWNkOTE1Li5kNTNiOTlhZmU2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODk4LDYg
Kzg5OCw4IEBACiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1
RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CiAJCTQxRkFG
NUY5MUUzQzEwMjUwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNzFFM0MwQjQ3MDAxQUU2
NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuY3BwICovOyB9OwogCQk0NDUwQUVDMDFEQzNGQUU1MDA5
OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1l
bW9yeUNvY29hLmNwcCAqLzsgfTsKKwkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJv
Y2Vzc0NyYXNoUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzQ3Jhc2hSZWFzb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjNG
RDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4
MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29uLmggKi87IH07CiAJCTQ2QTJCNjA4MUU1Njc2QTYwMEMz
REVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZBMkI2MDYxRTU2NzVBMjAw
QzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi87IH07
CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNp
dmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNp
dmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CkBAIC0zMTE4
LDYgKzMxMjAsOCBAQAogCQk0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVz
b2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUmVzb2x2
ZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUY3MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJS
VENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJX
ZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5
NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHBhdGggPSBjb2NvYS9TaGFyZWRNZW1v
cnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2M0ZENDdGMUVCOTQ1
ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NDcmFzaFJlYXNvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNjFFNTY3NUEyMDBDM0RFREEg
LyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA3MUU1Njc1QTIw
MEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVz
c1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjM1MTlBRjdBQzMw
MDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkyOCw2ICs0OTMyLDcgQEAKIAkJCQlC
Q0M0M0FCOTEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmggKi8sCiAJ
CQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8sCiAJCQkJRTFD
QzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAorCQkJCTQ2M0ZENDgxMUVC
OTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCAqLywKIAkJCQlGNkEwQzEzRjEz
MjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNDEwNDgy
Q0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovLAogCQkJCTQxMDQ4MkNDMURE
RDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggKi8sCkBAIC03MDA4LDYgKzcwMTMsNyBAQAog
CQkJCUJDRDU5N0NGMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNwcCAqLywKIAkJ
CQlCQ0Q1OTdDRTExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlc1JlZi5oICovLAogCQkJ
CTc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oICov
LAorCQkJCTQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5o
ICovLAogCQkJCTUxMkY1OEYzMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25TcGFjZS5j
cHAgKi8sCiAJCQkJNTEyRjU4RjQxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNl
LmggKi8sCiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNl
VHlwZXMuaCAqLywKQEAgLTg1MTAsNiArODUxNiw3IEBACiAJCQkJMUFDMTMzODYxODU5MEM0NjAw
RjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2M0ZE
NDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBNDE4N0IzQjdEMDA0Mzc4NTcg
LyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1OTQ3OUQxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ1RyZWUuaCBp
biBIZWFkZXJzICovLApAQCAtODY2Niw2ICs4NjczLDcgQEAKIAkJCQkxQzhFMkEzNjEyNzc4NTI0
MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFD
OEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBX
S1Byb2Nlc3NDcmFzaFJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4OTFENjYxOUIxMjRG
RjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0JCRTRB
MTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU1QkE4MkIxQkEzOEU2MTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308918</attachid>
            <date>2017-05-03 10:01:36 -0700</date>
            <delta_ts>2017-05-03 10:13:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171565-20170503100135.patch</filename>
            <type>text/plain</type>
            <size>37328</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjY0YTMzM2NhYmJkMjM5
NTMwNGUzZjhkZTg2MDhjNzczODZmNzRiOC4uOGJiYmRiYTFmYTU5NjVmNjI3NzAxNWY0OTI0ZGI3
NzkyYjZkM2NlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE3LTA1LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRXh0ZW5kIHByb2Nl
c3NEaWRDcmFzaCBkZWxlZ2F0ZSB0byBsZXQgdGhlIGNsaWVudCBrbm93IHRoZSByZWFzb24gZm9y
IHRoZSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcxNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTIwNDQxNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRlbmQgcHJvY2Vzc0RpZENy
YXNoIGRlbGVnYXRlIHRvIGxldCB0aGUgY2xpZW50IGtub3cgdGhlIHJlYXNvbiBmb3IgdGhlIGNy
YXNoLiBUaGlzCisgICAgICAgIGlzIG5lZWRlZCBieSBzb21lIGNsaWVudHMgdG8gZGlzdGluZ3Vp
c2ggYWN0dWFsIGNyYXNoZXMgZnJvbSB0ZXJtaW5hdGlvbnMgZHVlIHRvCisgICAgICAgIHJlc291
cmNlIGxpbWl0cy4KKworICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQ
YWdlTmF2aWdhdGlvbkNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5h
dmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzQ3Jh
c2hSZWFzb24uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vz
c0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6ZGlhZ25vc3RpY0xvZ2dpbmdLZXlGb3JUZXJtaW5hdGlvblJlYXNvbik6
CisgICAgICAgIChXZWJLaXQ6OnRvUHJvY2Vzc0NyYXNoUmVhc29uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVtb3J5
TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEluYWN0
aXZlTWVtb3J5TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4
Y2VlZEJhY2tncm91bmRDUFVMaW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAxNy0wNS0wMiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjIxMzAzNik6IENyYXNoIGluIC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVu
dHNSZWNvZ25pemVkOl0gd2hlbiBhIHRvdWNoIGV2ZW50IGFycml2ZXMgYWZ0ZXIgYSBXZWJQYWdl
UHJveHkgaGFzIGJlZW4gaW52YWxpZGF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNz
Q3Jhc2hSZWFzb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDE3ZjcwOGYzOTU0Y2M4MThlYTQyNTY4MmUzMDQ5
NjJkYzc1MTlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nl
c3NDcmFzaFJlYXNvbi5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgUHJvY2Vzc0NyYXNoUmVhc29u
IHsKKyAgICBUZXJtaW5hdGlvbkR1ZVRvTWVtb3J5VXNhZ2UsCisgICAgVGVybWluYXRpb25EdWVU
b0NQVVVzYWdlLAorICAgIFRlcm1pbmF0aW9uUmVxdWVzdGVkQnlDbGllbnQsCisgICAgT3RoZXIK
K307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uQ2xpZW50LmgKaW5kZXggYTYzMzJmN2RhNDY3ZWNiZmUwNjliMTVlYjI2N2Y5NzhkNjYzZGVi
Mi4uOGEzZTFhN2RhOTZiNmNkNTJhOWQ0NTQ2ZWIxYjg4ZjUwMDIwNGM2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1
bGVJbmZvLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAjaW5jbHVkZSAiU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1
ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgpAQCAtODIsNyArODMsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eSopIHsgfQogCiAgICAgLy8gRklYTUU6IFRoZXNlIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgcGFy
dCBvZiB0aGlzIGNsaWVudC4KLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdlYktp
dDo6V2ViUGFnZVByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UHJvY2Vzc0NyYXNoUmVhc29uKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdl
UHJveHkmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2
ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUxMjlkNWIyZGVjNzUwOGIyNjlmYzNi
NmYxYzQ5Ny4uZDk0YTllOWQyZGRiZDNmOTQxODNlYThiYThlNGVkMGIyNmExMmI2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJ
bmZvLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiV0tDb250ZXh0LmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV0tQYWdl
LmgiCiAjaW5jbHVkZSAiV0tQcmVmZXJlbmNlc1JlZi5oIgogI2luY2x1ZGUgIldLUHJlZmVyZW5j
ZXNSZWZQcml2YXRlLmgiCisjaW5jbHVkZSAiV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaCIKICNpbmNs
dWRlICJXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tSZXNvdXJjZUNhY2hl
TWFuYWdlci5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgpAQCAtMjMzLDYgKzIzNSwy
MiBAQCBpbmxpbmUgV0tDYWNoZU1vZGVsIHRvQVBJKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAg
ICByZXR1cm4ga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOwogfQogCitpbmxpbmUgV0tQcm9j
ZXNzQ3Jhc2hSZWFzb24gdG9BUEkoUHJvY2Vzc0NyYXNoUmVhc29uIHJlYXNvbikKK3sKKyAgICBz
d2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlv
bkR1ZVRvTWVtb3J5VXNhZ2U6CisgICAgICAgIHJldHVybiBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25U
ZXJtaW5hdGlvbkR1ZVRvTWVtb3J5VXNhZ2U7CisgICAgY2FzZSBQcm9jZXNzQ3Jhc2hSZWFzb246
OlRlcm1pbmF0aW9uRHVlVG9DUFVVc2FnZToKKyAgICAgICAgcmV0dXJuIGtXS1Byb2Nlc3NDcmFz
aFJlYXNvblRlcm1pbmF0aW9uRHVlVG9DUFVVc2FnZTsKKyAgICBjYXNlIFByb2Nlc3NDcmFzaFJl
YXNvbjo6VGVybWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudDoKKyAgICAgICAgcmV0dXJuIGtXS1By
b2Nlc3NDcmFzaFJlYXNvblRlcm1pbmF0aW9uUmVxdWVzdGVkQnlDbGllbnQ7CisgICAgY2FzZSBQ
cm9jZXNzQ3Jhc2hSZWFzb246Ok90aGVyOgorICAgICAgICByZXR1cm4ga1dLUHJvY2Vzc0NyYXNo
UmVhc29uT3RoZXI7CisgICAgfQorCisgICAgcmV0dXJuIGtXS1Byb2Nlc3NDcmFzaFJlYXNvbk90
aGVyOworfQorCiBpbmxpbmUgRm9udFNtb290aGluZ0xldmVsIHRvRm9udFNtb290aGluZ0xldmVs
KFdLRm9udFNtb290aGluZ0xldmVsIHdrTGV2ZWwpCiB7CiAgICAgc3dpdGNoICh3a0xldmVsKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDA3Yjk0Y2Zm
NjcwOTJkY2YxODc4NzQyZWRlM2MxMmYzMjdlNjg3NTcuLjRhZTc1MmI4YWNhYTA0MDY2MWYwODdl
YzdkZDk1NDBhODZhNGUwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRz
PFdLUGFnZUxvYWRlckNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVu
dFRyYWl0czxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjA+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAsIFdLUGFnZU5hdmlnYXRpb25DbGllbnRW
MT4gVmVyc2lvbnM7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdl
UG9saWN5Q2xpZW50QmFzZT4gewpAQCAtMjQwMCwxMSArMjQwMCwxMyBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZp
Z2F0aW9uQ2xpZQogICAgICAgICAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHRvQVBJKCZwYWdlKSwgdG9BUEkoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBwcm9j
ZXNzRGlkQ3Jhc2goV2ViUGFnZVByb3h5JiBwYWdlKSBvdmVycmlkZQorICAgICAgICB2b2lkIHBy
b2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vzc0NyYXNoUmVh
c29uIHJlYXNvbikgb3ZlcnJpZGUKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVu
dC53ZWJQcm9jZXNzRGlkQ3Jhc2gpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNoKHRvQVBJKCZwYWdlKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC53ZWJQcm9jZXNzRGlkQ3Jh
c2gpCisgICAgICAgICAgICAgICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNoKHRvQVBJKCZw
YWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKworICAgICAgICAgICAgaWYgKG1fY2xp
ZW50LndlYlByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24pCisgICAgICAgICAgICAgICAgbV9jbGll
bnQud2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbih0b0FQSSgmcGFnZSksIHRvQVBJKHJlYXNv
biksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWZQ
dHI8QVBJOjpEYXRhPiB3ZWJDcnlwdG9NYXN0ZXJLZXkoV2ViUGFnZVByb3h5JiBwYWdlKSBvdmVy
cmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5h
dmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VO
YXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggZTE5Y2Y5NzQxZjg4ZWVmZjE1ZDBlZGUyMzRlNzAxNmJk
NzgxYWJhMy4uZDcxZDRlYjVjNGExNWNmODVhNjdiZDA1NDEwMTg0Y2ZhZWE0YjU5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlv
bkNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUxvYWRU
eXBlcy5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5o
PgogI2luY2x1ZGUgPFdlYktpdC9XS1BsdWdpbkxvYWRQb2xpY3kuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4g
IkMiIHsKQEAgLTY1LDYgKzY2LDggQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlTmF2aWdhdGlvbkRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNhbGxiYWNrKShXS1BhZ2UKIAogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFzaENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKK3R5cGVkZWYgdm9pZCAoKldL
UGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS1Byb2Nlc3NDcmFzaFJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOworCiB0eXBlZGVmIFdLRGF0YVJlZiAoKldLUGFnZU5hdmlnYXRpb25Db3B5V2ViQ3J5
cHRvTWFzdGVyS2V5Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKICAgICAKIHR5cGVkZWYgV0tQbHVnaW5Mb2FkUG9saWN5ICgqV0tQYWdlTmF2aWdhdGlv
bkRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1
Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBs
dWdpbkluZm9EaWN0aW9uYXJ5LCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
biwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xMDQsMTMgKzEwNyw0MiBAQCB0eXBlZGVm
IHN0cnVjdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgewogICAgIFdLUGFnZU5hdmlnYXRpb25E
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYWxsYmFjayBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U7CiAgICAgV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFz
aENhbGxiYWNrIHdlYlByb2Nlc3NEaWRDcmFzaDsKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ29weVdl
YkNyeXB0b01hc3RlcktleUNhbGxiYWNrIGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXk7Ci0KICAgICBX
S1BhZ2VOYXZpZ2F0aW9uRGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZSBkaWRCZWdpbk5hdmlnYXRp
b25HZXN0dXJlOwogICAgIFdLUGFnZU5hdmlnYXRpb25XaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUg
d2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlOwogICAgIFdLUGFnZU5hdmlnYXRpb25EaWRFbmROYXZp
Z2F0aW9uR2VzdHVyZSBkaWRFbmROYXZpZ2F0aW9uR2VzdHVyZTsKICAgICBXS1BhZ2VOYXZpZ2F0
aW9uRGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCBkaWRSZW1vdmVOYXZpZ2F0aW9u
R2VzdHVyZVNuYXBzaG90OwogfSBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjA7CiAKK3R5cGVkZWYg
c3RydWN0IFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMSB7CisgICAgV0tQYWdlTmF2aWdhdGlvbkNs
aWVudEJhc2UgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VOYXZpZ2F0aW9u
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkNhbGxiYWNrIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb247CisgICAgV0tQYWdlTmF2aWdhdGlvbkRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25SZXNwb25zZUNhbGxiYWNrIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTsK
KyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZENhbGxiYWNrIGRl
Y2lkZVBvbGljeUZvclBsdWdpbkxvYWQ7CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFN0YXJ0UHJv
dmlzaW9uYWxOYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb247
CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTmF2aWdhdGlvbkNhbGxiYWNrIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmFpbFByb3Zpc2lvbmFsTmF2
aWdhdGlvbkNhbGxiYWNrIGRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb247CisgICAgV0tQYWdl
TmF2aWdhdGlvbkRpZENvbW1pdE5hdmlnYXRpb25DYWxsYmFjayBkaWRDb21taXROYXZpZ2F0aW9u
OworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRGaW5pc2hOYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkRmlu
aXNoTmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmFpbE5hdmlnYXRpb25DYWxs
YmFjayBkaWRGYWlsTmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZEluU3ViZnJhbWVDYWxsYmFjayBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkSW5TdWJm
cmFtZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkQ2FsbGJhY2sg
ZGlkRmluaXNoRG9jdW1lbnRMb2FkOworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbjsKKyAgICBXS1Bh
Z2VOYXZpZ2F0aW9uUmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2VDYWxsYmFjayByZW5kZXJpbmdQ
cm9ncmVzc0RpZENoYW5nZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZUNhbGxiYWNrIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2U7CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUNhbGxiYWNrIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKKyAgICBX
S1BhZ2VOYXZpZ2F0aW9uV2ViUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2sgd2ViUHJvY2Vzc0RpZENy
YXNoOworICAgIFdLUGFnZU5hdmlnYXRpb25Db3B5V2ViQ3J5cHRvTWFzdGVyS2V5Q2FsbGJhY2sg
Y29weVdlYkNyeXB0b01hc3RlcktleTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkQmVnaW5OYXZp
Z2F0aW9uR2VzdHVyZSBkaWRCZWdpbk5hdmlnYXRpb25HZXN0dXJlOworICAgIFdLUGFnZU5hdmln
YXRpb25XaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUgd2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlOwor
ICAgIFdLUGFnZU5hdmlnYXRpb25EaWRFbmROYXZpZ2F0aW9uR2VzdHVyZSBkaWRFbmROYXZpZ2F0
aW9uR2VzdHVyZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1
cmVTbmFwc2hvdCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OworCisgICAgLy8g
VmVyc2lvbiAxLgorICAgIFdLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVh
c29uQ2FsbGJhY2sgd2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbjsKK30gV0tQYWdlTmF2aWdh
dGlvbkNsaWVudFYxOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNDc2MjAzZjQyMGVmNWI5Mzg3OWRlZjBkY2U1ZWZiMzI4YzE4ZTRmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0Ny
YXNoUmVhc29uLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworZW51bSB7CisgICAga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25E
dWVUb01lbW9yeVVzYWdlID0gMCwKKyAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlv
bkR1ZVRvQ1BVVXNhZ2UsCisgICAga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25SZXF1
ZXN0ZWRCeUNsaWVudCwKKyAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25PdGhlciwKK307Cit0eXBl
ZGVmIHVpbnQzMl90IFdLUHJvY2Vzc0NyYXNoUmVhc29uOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5oCmluZGV4IDQ2YTllZTE0NzBjYmYxYjAzMTIxOTE1ZGFiNWQ5Y2NiZGQzNjQ1OGEu
LjBhZDM0NzgxMWI5NWEyMDE2ODM1ODgzNmRjNDUxNjU1NGEzN2ZkYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbXBvcnQgIkFQSUhpc3RvcnlDbGllbnQuaCIKICNpbXBvcnQgIkFQSU5hdmlnYXRp
b25DbGllbnQuaCIKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGUuaCIKKyNpbXBvcnQgIlByb2Nlc3ND
cmFzaFJlYXNvbi5oIgogI2ltcG9ydCAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2ltcG9ydCAiV2Vh
a09iakNQdHIuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw3ICsxMDMsNyBA
QCBwcml2YXRlOgogCiAgICAgICAgIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZShXZWJQYWdlUHJveHkmLCBXZWJQcm90ZWN0aW9uU3BhY2UqKSBvdmVycmlkZTsKICAg
ICAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVByb3h5
JiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSopIG92ZXJyaWRlOwotICAgICAgICB2b2lk
IHByb2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBw
cm9jZXNzRGlkQ3Jhc2goV2ViUGFnZVByb3h5JiwgUHJvY2Vzc0NyYXNoUmVhc29uKSBvdmVycmlk
ZTsKICAgICAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQYWdlUHJveHkm
KSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdl
YlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBiNjZlMWExYzdkNDFjOGUxODRhN2M1N2Q0
MDIxMWQ5MTdhNTkwZjk5Li5hNDU5ODI5ZWYxMmJkYjhjYjk2MzUwZDY3YzA2ODczNWQ0MGMwY2Ux
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KQEAgLTcxMCw3ICs3MTAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYlBhZwogICAgIFtz
dGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRl
bGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOndyYXBwZXIoKmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKV07CiB9CiAKLXZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9j
ZXNzRGlkQ3Jhc2goV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCit2b2lkIE5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZENyYXNoKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJLaXQ6OlByb2Nlc3NDcmFzaFJlYXNvbikKIHsKICAgICBpZiAoIW1fbmF2
aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViQ29udGVu
dFByb2Nlc3NEaWRUZXJtaW5hdGUgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDFmMGNjOWRl
NWM5Yjg1Y2E4ZDIxM2FiNDFmMDE2Y2I1MmZkM2VkMTguLmI2NWI2MTk5NzA5ZmQxZTIxZGI5N2Ex
ZDA0YzY5NTk0ZWFlMGJlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC01MjkzLDcgKzUyOTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
UHJvY2Vzc0lzUmVzcG9uc2l2ZSgpCiAgICAgbV9wYWdlTG9hZFN0YXRlLmRpZENoYW5nZVByb2Nl
c3NJc1Jlc3BvbnNpdmUoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFz
aCgpCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKFByb2Nlc3NDcmFzaFJlYXNv
biByZWFzb24pCiB7CiAgICAgQVNTRVJUKG1faXNWYWxpZCk7CiAKQEAgLTUzMTYsNyArNTMxNiw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIG5hdmlnYXRpb25T
dGF0ZSgpLmNsZWFyQWxsTmF2aWdhdGlvbnMoKTsKIAogICAgIGlmIChtX25hdmlnYXRpb25DbGll
bnQpCi0gICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cHJvY2Vzc0RpZENyYXNoKCp0aGlzKTsK
KyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkQ3Jhc2goKnRoaXMsIHJlYXNv
bik7CiAgICAgZWxzZQogICAgICAgICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0RpZENyYXNoKCp0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGE0ZDc0
NzcxOGE1ODU5MTAzZmZkNjIwMmViZTAxMWZlMWUzOGMwMDMuLmI0OGQ2NDY5MzNhOWRjNDE5OWNj
YTE3MDU4OTE3NTA0ZjhiZWQ2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5j
bHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJQYWdlTG9hZFN0YXRlLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAj
aW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKQEAgLTg1Nyw3ICs4NTgsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoKTsKICAgICB2b2lk
IHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKCk7Ci0gICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2go
KTsKKyAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFzb24pOwogICAgIHZv
aWQgd2lsbENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKICAgICB2b2lkIGRpZENoYW5nZVBy
b2Nlc3NJc1Jlc3BvbnNpdmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA4ZWFiZWIzNWEzYWY4YzM4MmQ5YWI5OTBiMjM3MDBjNDY5MmJl
NWViLi43N2RmOWViOTU1NTc3MDgwMTY1YTQ3NDZmN2VkNTQyYTg2MDg3ODcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjAwLDcgKzYwMCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAg
IHNodXREb3duKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhZ2VzLnNpemUo
KTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGFnZXNbaV0tPnByb2Nlc3NEaWRDcmFzaCgpOwor
ICAgICAgICBwYWdlc1tpXS0+cHJvY2Vzc0RpZENyYXNoKFByb2Nlc3NDcmFzaFJlYXNvbjo6VGVy
bWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudCk7CiAKIH0KIApAQCAtODU3LDcgKzg1NywxMyBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKCkKICAgICBpZiAod2ViQ29u
bmVjdGlvbigpKQogICAgICAgICB3ZWJDb25uZWN0aW9uKCktPmRpZENsb3NlKCk7CiAKKyAgICBW
ZWN0b3I8UmVmUHRyPFdlYlBhZ2VQcm94eT4+IHBhZ2VzOworICAgIGNvcHlWYWx1ZXNUb1ZlY3Rv
cihtX3BhZ2VNYXAsIHBhZ2VzKTsKKwogICAgIHNodXREb3duKCk7CisKKyAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IHBhZ2VzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgcGFn
ZXNbaV0tPnByb2Nlc3NEaWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFzb246Ok90aGVyKTsKIH0KIAog
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkKQEAgLTExMjks
MzkgKzExMzUsNTEgQEAgc3RhdGljIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5Pj4gcGFnZXND
b3B5KFdURjo6SXRlcmF0b3JSYW5nZTxXZWJQcm9jZXNzUHJveHkKICAgICByZXR1cm4gdmVjdG9y
OwogfQogCi1zdGF0aWMgU3RyaW5nIGRpYWdub3N0aWNMb2dnaW5nS2V5Rm9yU2ltdWxhdGVkQ3Jh
c2hSZWFzb24oU2ltdWxhdGVkQ3Jhc2hSZWFzb24gcmVhc29uKQorc3RhdGljIFN0cmluZyBkaWFn
bm9zdGljTG9nZ2luZ0tleUZvclRlcm1pbmF0aW9uUmVhc29uKFRlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKIHsKICAgICBzd2l0Y2ggKHJlYXNvbikgewotICAgIGNhc2UgU2ltdWxhdGVkQ3Jhc2hS
ZWFzb246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQ6CisgICAgY2FzZSBUZXJtaW5hdGlvblJl
YXNvbjo6RXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdDoKICAgICAgICAgcmV0dXJuIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdEtleSgpOwotICAgIGNhc2Ug
U2ltdWxhdGVkQ3Jhc2hSZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdDoKKyAgICBj
YXNlIFRlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQ6CiAgICAg
ICAgIHJldHVybiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlM
aW1pdEtleSgpOwotICAgIGNhc2UgU2ltdWxhdGVkQ3Jhc2hSZWFzb246OkV4Y2VlZGVkQmFja2dy
b3VuZENQVUxpbWl0OgorICAgIGNhc2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dy
b3VuZENQVUxpbWl0OgogICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleGNl
ZWRlZEJhY2tncm91bmRDUFVMaW1pdEtleSgpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94
eTo6c2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2ltdWxhdGVkQ3Jhc2hSZWFzb24gcmVhc29uKQorc3Rh
dGljIFByb2Nlc3NDcmFzaFJlYXNvbiB0b1Byb2Nlc3NDcmFzaFJlYXNvbihUZXJtaW5hdGlvblJl
YXNvbiByZWFzb24pCit7CisgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIFRlcm1pbmF0
aW9uUmVhc29uOjpFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0OgorICAgIGNhc2UgVGVybWluYXRp
b25SZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdDoKKyAgICAgICAgcmV0dXJuIFBy
b2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlOworICAgIGNhc2Ug
VGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0OgorICAgICAgICBy
ZXR1cm4gUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2U7CisgICAg
fQorICAgIHJldHVybiBQcm9jZXNzQ3Jhc2hSZWFzb246Ok90aGVyOworfQorCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6dGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWluYXRp
b25SZWFzb24gcmVhc29uKQogewogICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2VzQ29weShwYWdl
cygpKSkgewotICAgICAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnNpbXVsYXRlZFBhZ2VDcmFzaEtleSgpLCBkaWFnbm9zdGljTG9nZ2luZ0tleUZv
clNpbXVsYXRlZENyYXNoUmVhc29uKHJlYXNvbiksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNpbXVs
YXRlZFBhZ2VDcmFzaEtleSgpLCBkaWFnbm9zdGljTG9nZ2luZ0tleUZvclRlcm1pbmF0aW9uUmVh
c29uKHJlYXNvbiksIFNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBwYWdlLT50ZXJtaW5hdGVQ
cm9jZXNzKCk7Ci0gICAgICAgIHBhZ2UtPnByb2Nlc3NEaWRDcmFzaCgpOworICAgICAgICBwYWdl
LT5wcm9jZXNzRGlkQ3Jhc2godG9Qcm9jZXNzQ3Jhc2hSZWFzb24ocmVhc29uKSk7CiAgICAgfQog
fQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKQog
ewogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRFeGNlZWRBY3RpdmVNZW1vcnlMaW1pdCgpIFRlcm1pbmF0aW5nIFdlYlBy
b2Nlc3MgdGhhdCBoYXMgZXhjZWVkZWQgdGhlIGFjdGl2ZSBtZW1vcnkgbGltaXQiLCB0aGlzKTsK
LSAgICBzaW11bGF0ZVByb2Nlc3NDcmFzaChTaW11bGF0ZWRDcmFzaFJlYXNvbjo6RXhjZWVkZWRB
Y3RpdmVNZW1vcnlMaW1pdCk7CisgICAgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1p
dHMoVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQpOwogfQogCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdCgpCiB7CiAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoUGVyZm9ybWFuY2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNz
UHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXQoKSBUZXJtaW5hdGluZyBXZWJQcm9j
ZXNzIHRoYXQgaGFzIGV4Y2VlZGVkIHRoZSBpbmFjdGl2ZSBtZW1vcnkgbGltaXQiLCB0aGlzKTsK
LSAgICBzaW11bGF0ZVByb2Nlc3NDcmFzaChTaW11bGF0ZWRDcmFzaFJlYXNvbjo6RXhjZWVkZWRJ
bmFjdGl2ZU1lbW9yeUxpbWl0KTsKKyAgICB0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxp
bWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KTsKIH0K
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1pdCgpCkBA
IC0xMTgyLDcgKzEyMDAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQmFja2dy
b3VuZENQVUxpbWl0KCkKICAgICB9CiAKICAgICBSRUxFQVNFX0xPR19FUlJPUihQZXJmb3JtYW5j
ZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQmFja2dyb3VuZENQVUxp
bWl0KCkgVGVybWluYXRpbmcgYmFja2dyb3VuZCBXZWJQcm9jZXNzIHRoYXQgaGFzIGV4Y2VlZGVk
IHRoZSBiYWNrZ3JvdW5kIENQVSBsaW1pdCIsIHRoaXMpOwotICAgIHNpbXVsYXRlUHJvY2Vzc0Ny
YXNoKFNpbXVsYXRlZENyYXNoUmVhc29uOjpFeGNlZWRlZEJhY2tncm91bmRDUFVMaW1pdCk7Cisg
ICAgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWluYXRpb25SZWFzb246
OkV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6
OnVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA5NjMxNmNkNDA0MWM1ZGQ1YWUzYTBmNzQz
YWU1MjgyNzI1OTNlY2Q5Li4xNTRhNmZkZTdjYmZkMTVlMDFjODhjNmJkNDg2MTgyN2U1NGEwMDVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC01NSw3
ICs1NSw3IEBAIHN0cnVjdCBQbHVnaW5JbmZvOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotZW51
bSBjbGFzcyBTaW11bGF0ZWRDcmFzaFJlYXNvbiB7CitlbnVtIGNsYXNzIFRlcm1pbmF0aW9uUmVh
c29uIHsKICAgICBFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0LAogICAgIEV4Y2VlZGVkSW5hY3Rp
dmVNZW1vcnlMaW1pdCwKICAgICBFeGNlZWRlZEJhY2tncm91bmRDUFVMaW1pdCwKQEAgLTI0Nyw3
ICsyNDcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5UZXJtaW5hdGVDaGlsZFByb2Nlc3Mo
KTsKIAotICAgIHZvaWQgc2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2ltdWxhdGVkQ3Jhc2hSZWFzb24p
OworICAgIHZvaWQgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWluYXRp
b25SZWFzb24pOwogCiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciBtX3Jlc3BvbnNpdmVuZXNzVGlt
ZXI7CiAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyIG1fYmFja2dyb3Vu
ZFJlc3BvbnNpdmVuZXNzVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzJiMGM1Y2Q5MTVkMjY4OTkzOTJhNWQ2OTBhN2Vl
MWFhN2Y5OTY3Ni4uZDUzYjk5YWZlNjMzZmI3ZmE4YmFjNmExNWM2ZGJhN2Y2MDQ1NGUxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtODk4LDYgKzg5OCw4IEBACiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJS
VENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07
CiAJCTQxRkFGNUY5MUUzQzEwMjUwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNzFFM0Mw
QjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuY3BwICovOyB9OwogCQk0NDUwQUVDMDFE
QzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8q
IFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLzsgfTsKKwkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJD
IC8qIFdLUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzQ3Jh
c2hSZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0
RUFEMDBBMjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29uLmggKi87IH07CiAJCTQ2QTJCNjA4MUU1
Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZBMkI2MDYx
RTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5j
cHAgKi87IH07CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vz
c1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vz
c1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVG
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJF
QkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07
CkBAIC0zMTE4LDYgKzMxMjAsOCBAQAogCQk0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2NzggLyogTGli
V2ViUlRDUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2Vi
UlRDUmVzb2x2ZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUY3MUUzQzBCNDcwMDFBRTY3OCAv
KiBMaWJXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBMaWJXZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURD
M0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHBhdGggPSBjb2NvYS9T
aGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2M0ZE
NDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc0Ny
YXNoUmVhc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NDcmFz
aFJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNjFFNTY3NUEy
MDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA3
MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNw
b25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjM1
MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkyOCw2ICs0OTMyLDcg
QEAKIAkJCQlCQ0M0M0FCOTEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRh
LmggKi8sCiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8s
CiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAorCQkJCTQ2
M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCAqLywKIAkJCQlG
NkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJ
CQkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovLAogCQkJCTQx
MDQ4MkNDMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggKi8sCkBAIC03MDA4LDYgKzcw
MTMsNyBAQAogCQkJCUJDRDU5N0NGMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNw
cCAqLywKIAkJCQlCQ0Q1OTdDRTExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlc1JlZi5o
ICovLAogCQkJCTc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oICovLAorCQkJCTQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFz
aFJlYXNvbi5oICovLAogCQkJCTUxMkY1OEYzMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rp
b25TcGFjZS5jcHAgKi8sCiAJCQkJNTEyRjU4RjQxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVj
dGlvblNwYWNlLmggKi8sCiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVj
dGlvblNwYWNlVHlwZXMuaCAqLywKQEAgLTg1MTAsNiArODUxNiw3IEBACiAJCQkJMUFDMTMzODYx
ODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3
IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBNDE4N0IzQjdE
MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUQxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGlu
Z1RyZWUuaCBpbiBIZWFkZXJzICovLApAQCAtODY2Niw2ICs4NjczLDcgQEAKIAkJCQkxQzhFMkEz
NjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDOEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEy
OTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4OTFE
NjYxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU1QkE4MkIxQkEzOEU2MTAwN0NEMzNEIC8qIFdlYkluc3BlY3Rv
clV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWU2OGQ5NDVmNzE0OTM1ODRlMzQ0ZWE2ODIyYzYzZGQy
NmUzMTNhZC4uNTExYWFlZjYxMzJjMzY4NDE3MWIxZGRjOTU5MTQ2OGM3YjI0ZGUyZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDE3LTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dLMl0gRXh0ZW5kIHByb2Nlc3NEaWRDcmFzaCBkZWxlZ2F0ZSB0byBsZXQgdGhlIGNsaWVu
dCBrbm93IHRoZSByZWFzb24gZm9yIHRoZSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
MTIwNDQxNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpkaWRDcmFzaFdpdGhSZWFzb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMTctMDUtMDEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdG9wIHVzaW5nIHNwcmludGYoKSBpbiBKYXZhU2NyaXB0Q29yZSBkZWJ1
Z2dlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YjY0NjkyN2ZmYTZmOWY2NGNkODA2N2Fl
NTE3Y2VhYTZiODFiZTYxLi5lMmE2NmYzMDlmNjYwOTFmYjljODZlMTkyOGU2NGYxNWUzZmM0NmQ4
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI2LDYgKzEyNiw3IEBACiAJCTNGQkQxQjRB
MUQzRDY2QUIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJEMUI0
OTFEMzlEMURCMDBFNkQ2RkEgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0bWwgKi87
IH07CiAJCTQ0OEQ3RTQ3MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ4
RDdFNDUxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgKi87
IH07CiAJCTQ2Mzk3Qjk1MURDMkM4NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzOTdCOTQxREMyQzg1MDAwOUE3
OEFFIC8qIERPTU5vZGUubW0gKi87IH07CisJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQ
cm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlk
Q3Jhc2hXaXRoUmVhc29uLmNwcCAqLzsgfTsKIAkJNDZDNTE5REExRDM1NUFCMjAwREFBNTFBIC8q
IExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDZDNTE5RDgxRDM1NUE3MzAwREFBNTFBIC8qIExvY2FsU3RvcmFn
ZU51bGxFbnRyaWVzLm1tICovOyB9OwogCQk0NkM1MTlFNjFEMzU2M0ZEMDBEQUE1MUEgLyogTG9j
YWxTdG9yYWdlTnVsbEVudHJpZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM1MTlFMjFEMzU2Mjk2MDBEQUE1MUEgLyogTG9jYWxT
dG9yYWdlTnVsbEVudHJpZXMuaHRtbCAqLzsgfTsKIAkJNDZDNTE5RTcxRDM1NjNGRDAwREFBNTFB
IC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmxvY2Fsc3RvcmFnZSBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM1MTlFMzFEMzU2Mjk2MDBE
QUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlICovOyB9OwpAQCAt
MTA1NCw2ICsxMDU1LDcgQEAKIAkJNDQ4RDdFNDUxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25t
ZW50VXRpbGl0aWVzVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM5N0I5NDFEQzJDODUwMDA5QTc4QUUgLyogRE9N
Tm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU5vZGUu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdF
RiAvKiBQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkM1MTlEODFEMzU1QTczMDBEQUE1MUEgLyogTG9jYWxTdG9y
YWdlTnVsbEVudHJpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZDNTE5RTIxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5o
dG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM1MTlFMzFEMzU2Mjk2MDBEQUE1
MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IExvY2FsU3Rv
cmFnZU51bGxFbnRyaWVzLmxvY2Fsc3RvcmFnZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwOTcsNiArMjA5OSw3IEBACiAJCQkJMDc2NkREMUYxQTVBRDUyMDAwMjNFM0JCIC8qIFBl
bmRpbmdBUElSZXF1ZXN0VVJMLmNwcCAqLywKIAkJCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMg
LyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLywKIAkJCQlGNkZEREREMjE0MjQxQUQ0MDA0
RjE3MjkgLyogUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwICov
LAorCQkJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVh
c29uLmNwcCAqLywKIAkJCQk4QTNBRjkzQTE2QzlFRDI3MDBEMjQ4QzEgLyogUmVsb2FkUGFnZUFm
dGVyQ3Jhc2guY3BwICovLAogCQkJCTJERDdEM0E5MTc4MjA1RDAwMDI2RTFFMyAvKiBSZXNpemVS
ZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgKi8sCiAJCQkJOEEyQzc1MEQxNkNFRDk1NTAwMjRG
MzUyIC8qIFJlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwICovLApAQCAtMjgzOCw2ICsyODQxLDcg
QEAKIAkJCQk3Q0NFN0VFRTFBNDExQUU2MDA0NDdDNEMgLyogRG93bmxvYWREZWNpZGVEZXN0aW5h
dGlvbkNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QkZBNjhFMUU0QUQwODAwMDE1NDI5
OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEx
NTUwMjJBMUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxz
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nl
c3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkUxQTQx
MUE3RTAwNDQ3QzRDIC8qIER5bmFtaWNEZXZpY2VTY2FsZUZhY3Rvci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTVDMEJGODkyMURENTk5QjYwMEIwMDMyOCAvKiBFYXJseUtWT0NyYXNoLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAxQTQxMUE5QTAwNDQ3QzRDIC8qIEVkaXRvckNvbW1hbmRz
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTdhZWE1ZWY0OTMyYmYxNDc5YTFjN2RhNTJkMmZkYjI3NmI2MjMwYwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcm9jZXNzRGlkQ3Jhc2hX
aXRoUmVhc29uLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisj
aW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworc3RhdGljIGJvb2wgbG9hZEJlZm9yZUNyYXNoID0gZmFsc2U7CitzdGF0aWMgYm9vbCBj
cmFzaEhhbmRsZXJDYWxsZWQgPSBmYWxzZTsKKworc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdh
dGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIWxvYWRCZWZv
cmVDcmFzaCkgeworICAgICAgICBsb2FkQmVmb3JlQ3Jhc2ggPSB0cnVlOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCBk
aWRDcmFzaFdpdGhSZWFzb24oV0tQYWdlUmVmIHBhZ2UsIFdLUHJvY2Vzc0NyYXNoUmVhc29uIHJl
YXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICAvLyBUZXN0IGlmIGZpcnN0IGxv
YWQgYWN0dWFsbHkgd29ya2VkLgorICAgIEVYUEVDVF9UUlVFKGxvYWRCZWZvcmVDcmFzaCk7CisK
KyAgICAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgb25jZS4KKyAgICBFWFBFQ1RfRkFMU0UoY3Jh
c2hIYW5kbGVyQ2FsbGVkKTsKKworICAgIEVYUEVDVF9FUShrV0tQcm9jZXNzQ3Jhc2hSZWFzb25U
ZXJtaW5hdGlvblJlcXVlc3RlZEJ5Q2xpZW50LCByZWFzb24pOworCisgICAgY3Jhc2hIYW5kbGVy
Q2FsbGVkID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVh
c29uUmVxdWVzdGVkQnlDbGllbnQpCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMSBu
YXZpZ2F0aW9uQ2xpZW50OworICAgIG1lbXNldCgmbmF2aWdhdGlvbkNsaWVudCwgMCwgc2l6ZW9m
KG5hdmlnYXRpb25DbGllbnQpKTsKKyAgICBuYXZpZ2F0aW9uQ2xpZW50LmJhc2UudmVyc2lvbiA9
IDE7CisgICAgbmF2aWdhdGlvbkNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNo
TmF2aWdhdGlvbjsKKyAgICBuYXZpZ2F0aW9uQ2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaFdpdGhS
ZWFzb24gPSBkaWRDcmFzaFdpdGhSZWFzb247CisKKyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlv
bkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJm5hdmlnYXRpb25DbGllbnQuYmFzZSk7CisKKyAgICBX
S1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiYWJvdXQ6YmxhbmsiKSk7CisgICAgLy8gTG9hZCBhIGJsYW5rIHBhZ2UgYW5kIG5leHQg
a2lsbHMgV2ViUHJvY2Vzcy4KKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwu
Z2V0KCkpOworICAgIFV0aWw6OnJ1bigmbG9hZEJlZm9yZUNyYXNoKTsKKyAgICBXS1BhZ2VUZXJt
aW5hdGUod2ViVmlldy5wYWdlKCkpOworCisgICAgVXRpbDo6cnVuKCZjcmFzaEhhbmRsZXJDYWxs
ZWQpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308920</attachid>
            <date>2017-05-03 10:13:31 -0700</date>
            <delta_ts>2017-05-03 11:54:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171565-20170503101330.patch</filename>
            <type>text/plain</type>
            <size>37328</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjY0YTMzM2NhYmJkMjM5
NTMwNGUzZjhkZTg2MDhjNzczODZmNzRiOC4uOGJiYmRiYTFmYTU5NjVmNjI3NzAxNWY0OTI0ZGI3
NzkyYjZkM2NlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE3LTA1LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRXh0ZW5kIHByb2Nl
c3NEaWRDcmFzaCBkZWxlZ2F0ZSB0byBsZXQgdGhlIGNsaWVudCBrbm93IHRoZSByZWFzb24gZm9y
IHRoZSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcxNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTIwNDQxNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRlbmQgcHJvY2Vzc0RpZENy
YXNoIGRlbGVnYXRlIHRvIGxldCB0aGUgY2xpZW50IGtub3cgdGhlIHJlYXNvbiBmb3IgdGhlIGNy
YXNoLiBUaGlzCisgICAgICAgIGlzIG5lZWRlZCBieSBzb21lIGNsaWVudHMgdG8gZGlzdGluZ3Vp
c2ggYWN0dWFsIGNyYXNoZXMgZnJvbSB0ZXJtaW5hdGlvbnMgZHVlIHRvCisgICAgICAgIHJlc291
cmNlIGxpbWl0cy4KKworICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQ
YWdlTmF2aWdhdGlvbkNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5h
dmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzQ3Jh
c2hSZWFzb24uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vz
c0RpZENyYXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6ZGlhZ25vc3RpY0xvZ2dpbmdLZXlGb3JUZXJtaW5hdGlvblJlYXNvbik6
CisgICAgICAgIChXZWJLaXQ6OnRvUHJvY2Vzc0NyYXNoUmVhc29uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVtb3J5
TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEluYWN0
aXZlTWVtb3J5TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4
Y2VlZEJhY2tncm91bmRDUFVMaW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAxNy0wNS0wMiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjIxMzAzNik6IENyYXNoIGluIC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVu
dHNSZWNvZ25pemVkOl0gd2hlbiBhIHRvdWNoIGV2ZW50IGFycml2ZXMgYWZ0ZXIgYSBXZWJQYWdl
UHJveHkgaGFzIGJlZW4gaW52YWxpZGF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNz
Q3Jhc2hSZWFzb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDE3ZjcwOGYzOTU0Y2M4MThlYTQyNTY4MmUzMDQ5
NjJkYzc1MTlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nl
c3NDcmFzaFJlYXNvbi5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgUHJvY2Vzc0NyYXNoUmVhc29u
IHsKKyAgICBUZXJtaW5hdGlvbkR1ZVRvTWVtb3J5VXNhZ2UsCisgICAgVGVybWluYXRpb25EdWVU
b0NQVVVzYWdlLAorICAgIFRlcm1pbmF0aW9uUmVxdWVzdGVkQnlDbGllbnQsCisgICAgT3RoZXIK
K307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uQ2xpZW50LmgKaW5kZXggYTYzMzJmN2RhNDY3ZWNiZmUwNjliMTVlYjI2N2Y5NzhkNjYzZGVi
Mi4uOGEzZTFhN2RhOTZiNmNkNTJhOWQ0NTQ2ZWIxYjg4ZjUwMDIwNGM2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1
bGVJbmZvLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAjaW5jbHVkZSAiU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1
ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgpAQCAtODIsNyArODMsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eSopIHsgfQogCiAgICAgLy8gRklYTUU6IFRoZXNlIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgcGFy
dCBvZiB0aGlzIGNsaWVudC4KLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdlYktp
dDo6V2ViUGFnZVByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UHJvY2Vzc0NyYXNoUmVhc29uKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdl
UHJveHkmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2
ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUxMjlkNWIyZGVjNzUwOGIyNjlmYzNi
NmYxYzQ5Ny4uZDk0YTllOWQyZGRiZDNmOTQxODNlYThiYThlNGVkMGIyNmExMmI2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJ
bmZvLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiV0tDb250ZXh0LmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV0tQYWdl
LmgiCiAjaW5jbHVkZSAiV0tQcmVmZXJlbmNlc1JlZi5oIgogI2luY2x1ZGUgIldLUHJlZmVyZW5j
ZXNSZWZQcml2YXRlLmgiCisjaW5jbHVkZSAiV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaCIKICNpbmNs
dWRlICJXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tSZXNvdXJjZUNhY2hl
TWFuYWdlci5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgpAQCAtMjMzLDYgKzIzNSwy
MiBAQCBpbmxpbmUgV0tDYWNoZU1vZGVsIHRvQVBJKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAg
ICByZXR1cm4ga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOwogfQogCitpbmxpbmUgV0tQcm9j
ZXNzQ3Jhc2hSZWFzb24gdG9BUEkoUHJvY2Vzc0NyYXNoUmVhc29uIHJlYXNvbikKK3sKKyAgICBz
d2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlv
bkR1ZVRvTWVtb3J5VXNhZ2U6CisgICAgICAgIHJldHVybiBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25U
ZXJtaW5hdGlvbkR1ZVRvTWVtb3J5VXNhZ2U7CisgICAgY2FzZSBQcm9jZXNzQ3Jhc2hSZWFzb246
OlRlcm1pbmF0aW9uRHVlVG9DUFVVc2FnZToKKyAgICAgICAgcmV0dXJuIGtXS1Byb2Nlc3NDcmFz
aFJlYXNvblRlcm1pbmF0aW9uRHVlVG9DUFVVc2FnZTsKKyAgICBjYXNlIFByb2Nlc3NDcmFzaFJl
YXNvbjo6VGVybWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudDoKKyAgICAgICAgcmV0dXJuIGtXS1By
b2Nlc3NDcmFzaFJlYXNvblRlcm1pbmF0aW9uUmVxdWVzdGVkQnlDbGllbnQ7CisgICAgY2FzZSBQ
cm9jZXNzQ3Jhc2hSZWFzb246Ok90aGVyOgorICAgICAgICByZXR1cm4ga1dLUHJvY2Vzc0NyYXNo
UmVhc29uT3RoZXI7CisgICAgfQorCisgICAgcmV0dXJuIGtXS1Byb2Nlc3NDcmFzaFJlYXNvbk90
aGVyOworfQorCiBpbmxpbmUgRm9udFNtb290aGluZ0xldmVsIHRvRm9udFNtb290aGluZ0xldmVs
KFdLRm9udFNtb290aGluZ0xldmVsIHdrTGV2ZWwpCiB7CiAgICAgc3dpdGNoICh3a0xldmVsKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDA3Yjk0Y2Zm
NjcwOTJkY2YxODc4NzQyZWRlM2MxMmYzMjdlNjg3NTcuLjRhZTc1MmI4YWNhYTA0MDY2MWYwODdl
YzdkZDk1NDBhODZhNGUwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRz
PFdLUGFnZUxvYWRlckNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVu
dFRyYWl0czxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjA+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTxXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAsIFdLUGFnZU5hdmlnYXRpb25DbGllbnRW
MT4gVmVyc2lvbnM7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdl
UG9saWN5Q2xpZW50QmFzZT4gewpAQCAtMjQwMCwxMSArMjQwMCwxMyBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZp
Z2F0aW9uQ2xpZQogICAgICAgICAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHRvQVBJKCZwYWdlKSwgdG9BUEkoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBwcm9j
ZXNzRGlkQ3Jhc2goV2ViUGFnZVByb3h5JiBwYWdlKSBvdmVycmlkZQorICAgICAgICB2b2lkIHBy
b2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vzc0NyYXNoUmVh
c29uIHJlYXNvbikgb3ZlcnJpZGUKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NsaWVu
dC53ZWJQcm9jZXNzRGlkQ3Jhc2gpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNoKHRvQVBJKCZwYWdlKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC53ZWJQcm9jZXNzRGlkQ3Jh
c2gpCisgICAgICAgICAgICAgICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNoKHRvQVBJKCZw
YWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKworICAgICAgICAgICAgaWYgKG1fY2xp
ZW50LndlYlByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24pCisgICAgICAgICAgICAgICAgbV9jbGll
bnQud2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbih0b0FQSSgmcGFnZSksIHRvQVBJKHJlYXNv
biksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWZQ
dHI8QVBJOjpEYXRhPiB3ZWJDcnlwdG9NYXN0ZXJLZXkoV2ViUGFnZVByb3h5JiBwYWdlKSBvdmVy
cmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5h
dmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VO
YXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggZTE5Y2Y5NzQxZjg4ZWVmZjE1ZDBlZGUyMzRlNzAxNmJk
NzgxYWJhMy4uZDcxZDRlYjVjNGExNWNmODVhNjdiZDA1NDEwMTg0Y2ZhZWE0YjU5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlv
bkNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUxvYWRU
eXBlcy5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5o
PgogI2luY2x1ZGUgPFdlYktpdC9XS1BsdWdpbkxvYWRQb2xpY3kuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4g
IkMiIHsKQEAgLTY1LDYgKzY2LDggQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlTmF2aWdhdGlvbkRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNhbGxiYWNrKShXS1BhZ2UKIAogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFzaENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKK3R5cGVkZWYgdm9pZCAoKldL
UGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS1Byb2Nlc3NDcmFzaFJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOworCiB0eXBlZGVmIFdLRGF0YVJlZiAoKldLUGFnZU5hdmlnYXRpb25Db3B5V2ViQ3J5
cHRvTWFzdGVyS2V5Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKICAgICAKIHR5cGVkZWYgV0tQbHVnaW5Mb2FkUG9saWN5ICgqV0tQYWdlTmF2aWdhdGlv
bkRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1
Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBs
dWdpbkluZm9EaWN0aW9uYXJ5LCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
biwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xMDQsMTMgKzEwNyw0MiBAQCB0eXBlZGVm
IHN0cnVjdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgewogICAgIFdLUGFnZU5hdmlnYXRpb25E
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYWxsYmFjayBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U7CiAgICAgV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFz
aENhbGxiYWNrIHdlYlByb2Nlc3NEaWRDcmFzaDsKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ29weVdl
YkNyeXB0b01hc3RlcktleUNhbGxiYWNrIGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXk7Ci0KICAgICBX
S1BhZ2VOYXZpZ2F0aW9uRGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZSBkaWRCZWdpbk5hdmlnYXRp
b25HZXN0dXJlOwogICAgIFdLUGFnZU5hdmlnYXRpb25XaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUg
d2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlOwogICAgIFdLUGFnZU5hdmlnYXRpb25EaWRFbmROYXZp
Z2F0aW9uR2VzdHVyZSBkaWRFbmROYXZpZ2F0aW9uR2VzdHVyZTsKICAgICBXS1BhZ2VOYXZpZ2F0
aW9uRGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCBkaWRSZW1vdmVOYXZpZ2F0aW9u
R2VzdHVyZVNuYXBzaG90OwogfSBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjA7CiAKK3R5cGVkZWYg
c3RydWN0IFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMSB7CisgICAgV0tQYWdlTmF2aWdhdGlvbkNs
aWVudEJhc2UgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VOYXZpZ2F0aW9u
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkNhbGxiYWNrIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb247CisgICAgV0tQYWdlTmF2aWdhdGlvbkRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25SZXNwb25zZUNhbGxiYWNrIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTsK
KyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZENhbGxiYWNrIGRl
Y2lkZVBvbGljeUZvclBsdWdpbkxvYWQ7CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFN0YXJ0UHJv
dmlzaW9uYWxOYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb247
CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTmF2aWdhdGlvbkNhbGxiYWNrIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmFpbFByb3Zpc2lvbmFsTmF2
aWdhdGlvbkNhbGxiYWNrIGRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb247CisgICAgV0tQYWdl
TmF2aWdhdGlvbkRpZENvbW1pdE5hdmlnYXRpb25DYWxsYmFjayBkaWRDb21taXROYXZpZ2F0aW9u
OworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRGaW5pc2hOYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkRmlu
aXNoTmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmFpbE5hdmlnYXRpb25DYWxs
YmFjayBkaWRGYWlsTmF2aWdhdGlvbjsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZEluU3ViZnJhbWVDYWxsYmFjayBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkSW5TdWJm
cmFtZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkQ2FsbGJhY2sg
ZGlkRmluaXNoRG9jdW1lbnRMb2FkOworICAgIFdLUGFnZU5hdmlnYXRpb25EaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uQ2FsbGJhY2sgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbjsKKyAgICBXS1Bh
Z2VOYXZpZ2F0aW9uUmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2VDYWxsYmFjayByZW5kZXJpbmdQ
cm9ncmVzc0RpZENoYW5nZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZUNhbGxiYWNrIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2U7CisgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUNhbGxiYWNrIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKKyAgICBX
S1BhZ2VOYXZpZ2F0aW9uV2ViUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2sgd2ViUHJvY2Vzc0RpZENy
YXNoOworICAgIFdLUGFnZU5hdmlnYXRpb25Db3B5V2ViQ3J5cHRvTWFzdGVyS2V5Q2FsbGJhY2sg
Y29weVdlYkNyeXB0b01hc3RlcktleTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkQmVnaW5OYXZp
Z2F0aW9uR2VzdHVyZSBkaWRCZWdpbk5hdmlnYXRpb25HZXN0dXJlOworICAgIFdLUGFnZU5hdmln
YXRpb25XaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUgd2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlOwor
ICAgIFdLUGFnZU5hdmlnYXRpb25EaWRFbmROYXZpZ2F0aW9uR2VzdHVyZSBkaWRFbmROYXZpZ2F0
aW9uR2VzdHVyZTsKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uRGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1
cmVTbmFwc2hvdCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OworCisgICAgLy8g
VmVyc2lvbiAxLgorICAgIFdLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVh
c29uQ2FsbGJhY2sgd2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbjsKK30gV0tQYWdlTmF2aWdh
dGlvbkNsaWVudFYxOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNDc2MjAzZjQyMGVmNWI5Mzg3OWRlZjBkY2U1ZWZiMzI4YzE4ZTRmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0Ny
YXNoUmVhc29uLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworZW51bSB7CisgICAga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25E
dWVUb01lbW9yeVVzYWdlID0gMCwKKyAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlv
bkR1ZVRvQ1BVVXNhZ2UsCisgICAga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25SZXF1
ZXN0ZWRCeUNsaWVudCwKKyAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25PdGhlciwKK307Cit0eXBl
ZGVmIHVpbnQzMl90IFdLUHJvY2Vzc0NyYXNoUmVhc29uOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5oCmluZGV4IDQ2YTllZTE0NzBjYmYxYjAzMTIxOTE1ZGFiNWQ5Y2NiZGQzNjQ1OGEu
LjBhZDM0NzgxMWI5NWEyMDE2ODM1ODgzNmRjNDUxNjU1NGEzN2ZkYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbXBvcnQgIkFQSUhpc3RvcnlDbGllbnQuaCIKICNpbXBvcnQgIkFQSU5hdmlnYXRp
b25DbGllbnQuaCIKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGUuaCIKKyNpbXBvcnQgIlByb2Nlc3ND
cmFzaFJlYXNvbi5oIgogI2ltcG9ydCAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2ltcG9ydCAiV2Vh
a09iakNQdHIuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw3ICsxMDMsNyBA
QCBwcml2YXRlOgogCiAgICAgICAgIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZShXZWJQYWdlUHJveHkmLCBXZWJQcm90ZWN0aW9uU3BhY2UqKSBvdmVycmlkZTsKICAg
ICAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVByb3h5
JiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSopIG92ZXJyaWRlOwotICAgICAgICB2b2lk
IHByb2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBw
cm9jZXNzRGlkQ3Jhc2goV2ViUGFnZVByb3h5JiwgUHJvY2Vzc0NyYXNoUmVhc29uKSBvdmVycmlk
ZTsKICAgICAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQYWdlUHJveHkm
KSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdl
YlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBiNjZlMWExYzdkNDFjOGUxODRhN2M1N2Q0
MDIxMWQ5MTdhNTkwZjk5Li5hNDU5ODI5ZWYxMmJkYjhjYjk2MzUwZDY3YzA2ODczNWQ0MGMwY2Ux
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KQEAgLTcxMCw3ICs3MTAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYlBhZwogICAgIFtz
dGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRl
bGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOndyYXBwZXIoKmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKV07CiB9CiAKLXZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9j
ZXNzRGlkQ3Jhc2goV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCit2b2lkIE5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZENyYXNoKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJLaXQ6OlByb2Nlc3NDcmFzaFJlYXNvbikKIHsKICAgICBpZiAoIW1fbmF2
aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViQ29udGVu
dFByb2Nlc3NEaWRUZXJtaW5hdGUgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDFmMGNjOWRl
NWM5Yjg1Y2E4ZDIxM2FiNDFmMDE2Y2I1MmZkM2VkMTguLmI2NWI2MTk5NzA5ZmQxZTIxZGI5N2Ex
ZDA0YzY5NTk0ZWFlMGJlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC01MjkzLDcgKzUyOTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
UHJvY2Vzc0lzUmVzcG9uc2l2ZSgpCiAgICAgbV9wYWdlTG9hZFN0YXRlLmRpZENoYW5nZVByb2Nl
c3NJc1Jlc3BvbnNpdmUoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFz
aCgpCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKFByb2Nlc3NDcmFzaFJlYXNv
biByZWFzb24pCiB7CiAgICAgQVNTRVJUKG1faXNWYWxpZCk7CiAKQEAgLTUzMTYsNyArNTMxNiw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIG5hdmlnYXRpb25T
dGF0ZSgpLmNsZWFyQWxsTmF2aWdhdGlvbnMoKTsKIAogICAgIGlmIChtX25hdmlnYXRpb25DbGll
bnQpCi0gICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cHJvY2Vzc0RpZENyYXNoKCp0aGlzKTsK
KyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkQ3Jhc2goKnRoaXMsIHJlYXNv
bik7CiAgICAgZWxzZQogICAgICAgICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0RpZENyYXNoKCp0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGE0ZDc0
NzcxOGE1ODU5MTAzZmZkNjIwMmViZTAxMWZlMWUzOGMwMDMuLmI0OGQ2NDY5MzNhOWRjNDE5OWNj
YTE3MDU4OTE3NTA0ZjhiZWQ2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5j
bHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJQYWdlTG9hZFN0YXRlLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCiAj
aW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKQEAgLTg1Nyw3ICs4NTgsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoKTsKICAgICB2b2lk
IHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKCk7Ci0gICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2go
KTsKKyAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFzb24pOwogICAgIHZv
aWQgd2lsbENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKICAgICB2b2lkIGRpZENoYW5nZVBy
b2Nlc3NJc1Jlc3BvbnNpdmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA4ZWFiZWIzNWEzYWY4YzM4MmQ5YWI5OTBiMjM3MDBjNDY5MmJl
NWViLi45NWI3NGNjYTE2YzhhZjIzN2RjZDI4YjMzYzE0NWQzYmQ0MGFkODZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjAwLDcgKzYwMCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAg
IHNodXREb3duKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhZ2VzLnNpemUo
KTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGFnZXNbaV0tPnByb2Nlc3NEaWRDcmFzaCgpOwor
ICAgICAgICBwYWdlc1tpXS0+cHJvY2Vzc0RpZENyYXNoKFByb2Nlc3NDcmFzaFJlYXNvbjo6T3Ro
ZXIpOwogCiB9CiAKQEAgLTg1Nyw3ICs4NTcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJl
cXVlc3RUZXJtaW5hdGlvbigpCiAgICAgaWYgKHdlYkNvbm5lY3Rpb24oKSkKICAgICAgICAgd2Vi
Q29ubmVjdGlvbigpLT5kaWRDbG9zZSgpOwogCisgICAgVmVjdG9yPFJlZlB0cjxXZWJQYWdlUHJv
eHk+PiBwYWdlczsKKyAgICBjb3B5VmFsdWVzVG9WZWN0b3IobV9wYWdlTWFwLCBwYWdlcyk7CisK
ICAgICBzaHV0RG93bigpOworCisgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBwYWdlcy5z
aXplKCk7IGkgPCBzaXplOyArK2kpCisgICAgICAgIHBhZ2VzW2ldLT5wcm9jZXNzRGlkQ3Jhc2go
UHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvblJlcXVlc3RlZEJ5Q2xpZW50KTsKIH0KIAog
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkKQEAgLTExMjks
MzkgKzExMzUsNTEgQEAgc3RhdGljIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5Pj4gcGFnZXND
b3B5KFdURjo6SXRlcmF0b3JSYW5nZTxXZWJQcm9jZXNzUHJveHkKICAgICByZXR1cm4gdmVjdG9y
OwogfQogCi1zdGF0aWMgU3RyaW5nIGRpYWdub3N0aWNMb2dnaW5nS2V5Rm9yU2ltdWxhdGVkQ3Jh
c2hSZWFzb24oU2ltdWxhdGVkQ3Jhc2hSZWFzb24gcmVhc29uKQorc3RhdGljIFN0cmluZyBkaWFn
bm9zdGljTG9nZ2luZ0tleUZvclRlcm1pbmF0aW9uUmVhc29uKFRlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKIHsKICAgICBzd2l0Y2ggKHJlYXNvbikgewotICAgIGNhc2UgU2ltdWxhdGVkQ3Jhc2hS
ZWFzb246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQ6CisgICAgY2FzZSBUZXJtaW5hdGlvblJl
YXNvbjo6RXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdDoKICAgICAgICAgcmV0dXJuIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdEtleSgpOwotICAgIGNhc2Ug
U2ltdWxhdGVkQ3Jhc2hSZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdDoKKyAgICBj
YXNlIFRlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQ6CiAgICAg
ICAgIHJldHVybiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlM
aW1pdEtleSgpOwotICAgIGNhc2UgU2ltdWxhdGVkQ3Jhc2hSZWFzb246OkV4Y2VlZGVkQmFja2dy
b3VuZENQVUxpbWl0OgorICAgIGNhc2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dy
b3VuZENQVUxpbWl0OgogICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleGNl
ZWRlZEJhY2tncm91bmRDUFVMaW1pdEtleSgpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94
eTo6c2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2ltdWxhdGVkQ3Jhc2hSZWFzb24gcmVhc29uKQorc3Rh
dGljIFByb2Nlc3NDcmFzaFJlYXNvbiB0b1Byb2Nlc3NDcmFzaFJlYXNvbihUZXJtaW5hdGlvblJl
YXNvbiByZWFzb24pCit7CisgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIFRlcm1pbmF0
aW9uUmVhc29uOjpFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0OgorICAgIGNhc2UgVGVybWluYXRp
b25SZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdDoKKyAgICAgICAgcmV0dXJuIFBy
b2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlOworICAgIGNhc2Ug
VGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0OgorICAgICAgICBy
ZXR1cm4gUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2U7CisgICAg
fQorICAgIHJldHVybiBQcm9jZXNzQ3Jhc2hSZWFzb246Ok90aGVyOworfQorCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6dGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWluYXRp
b25SZWFzb24gcmVhc29uKQogewogICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2VzQ29weShwYWdl
cygpKSkgewotICAgICAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnNpbXVsYXRlZFBhZ2VDcmFzaEtleSgpLCBkaWFnbm9zdGljTG9nZ2luZ0tleUZv
clNpbXVsYXRlZENyYXNoUmVhc29uKHJlYXNvbiksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNpbXVs
YXRlZFBhZ2VDcmFzaEtleSgpLCBkaWFnbm9zdGljTG9nZ2luZ0tleUZvclRlcm1pbmF0aW9uUmVh
c29uKHJlYXNvbiksIFNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBwYWdlLT50ZXJtaW5hdGVQ
cm9jZXNzKCk7Ci0gICAgICAgIHBhZ2UtPnByb2Nlc3NEaWRDcmFzaCgpOworICAgICAgICBwYWdl
LT5wcm9jZXNzRGlkQ3Jhc2godG9Qcm9jZXNzQ3Jhc2hSZWFzb24ocmVhc29uKSk7CiAgICAgfQog
fQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKQog
ewogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRFeGNlZWRBY3RpdmVNZW1vcnlMaW1pdCgpIFRlcm1pbmF0aW5nIFdlYlBy
b2Nlc3MgdGhhdCBoYXMgZXhjZWVkZWQgdGhlIGFjdGl2ZSBtZW1vcnkgbGltaXQiLCB0aGlzKTsK
LSAgICBzaW11bGF0ZVByb2Nlc3NDcmFzaChTaW11bGF0ZWRDcmFzaFJlYXNvbjo6RXhjZWVkZWRB
Y3RpdmVNZW1vcnlMaW1pdCk7CisgICAgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1p
dHMoVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQpOwogfQogCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdCgpCiB7CiAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoUGVyZm9ybWFuY2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNz
UHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXQoKSBUZXJtaW5hdGluZyBXZWJQcm9j
ZXNzIHRoYXQgaGFzIGV4Y2VlZGVkIHRoZSBpbmFjdGl2ZSBtZW1vcnkgbGltaXQiLCB0aGlzKTsK
LSAgICBzaW11bGF0ZVByb2Nlc3NDcmFzaChTaW11bGF0ZWRDcmFzaFJlYXNvbjo6RXhjZWVkZWRJ
bmFjdGl2ZU1lbW9yeUxpbWl0KTsKKyAgICB0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxp
bWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KTsKIH0K
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1pdCgpCkBA
IC0xMTgyLDcgKzEyMDAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQmFja2dy
b3VuZENQVUxpbWl0KCkKICAgICB9CiAKICAgICBSRUxFQVNFX0xPR19FUlJPUihQZXJmb3JtYW5j
ZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQmFja2dyb3VuZENQVUxp
bWl0KCkgVGVybWluYXRpbmcgYmFja2dyb3VuZCBXZWJQcm9jZXNzIHRoYXQgaGFzIGV4Y2VlZGVk
IHRoZSBiYWNrZ3JvdW5kIENQVSBsaW1pdCIsIHRoaXMpOwotICAgIHNpbXVsYXRlUHJvY2Vzc0Ny
YXNoKFNpbXVsYXRlZENyYXNoUmVhc29uOjpFeGNlZWRlZEJhY2tncm91bmRDUFVMaW1pdCk7Cisg
ICAgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWluYXRpb25SZWFzb246
OkV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6
OnVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA5NjMxNmNkNDA0MWM1ZGQ1YWUzYTBmNzQz
YWU1MjgyNzI1OTNlY2Q5Li4xNTRhNmZkZTdjYmZkMTVlMDFjODhjNmJkNDg2MTgyN2U1NGEwMDVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC01NSw3
ICs1NSw3IEBAIHN0cnVjdCBQbHVnaW5JbmZvOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotZW51
bSBjbGFzcyBTaW11bGF0ZWRDcmFzaFJlYXNvbiB7CitlbnVtIGNsYXNzIFRlcm1pbmF0aW9uUmVh
c29uIHsKICAgICBFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0LAogICAgIEV4Y2VlZGVkSW5hY3Rp
dmVNZW1vcnlMaW1pdCwKICAgICBFeGNlZWRlZEJhY2tncm91bmRDUFVMaW1pdCwKQEAgLTI0Nyw3
ICsyNDcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5UZXJtaW5hdGVDaGlsZFByb2Nlc3Mo
KTsKIAotICAgIHZvaWQgc2ltdWxhdGVQcm9jZXNzQ3Jhc2goU2ltdWxhdGVkQ3Jhc2hSZWFzb24p
OworICAgIHZvaWQgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWluYXRp
b25SZWFzb24pOwogCiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciBtX3Jlc3BvbnNpdmVuZXNzVGlt
ZXI7CiAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyIG1fYmFja2dyb3Vu
ZFJlc3BvbnNpdmVuZXNzVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzJiMGM1Y2Q5MTVkMjY4OTkzOTJhNWQ2OTBhN2Vl
MWFhN2Y5OTY3Ni4uZDUzYjk5YWZlNjMzZmI3ZmE4YmFjNmExNWM2ZGJhN2Y2MDQ1NGUxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtODk4LDYgKzg5OCw4IEBACiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJS
VENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07
CiAJCTQxRkFGNUY5MUUzQzEwMjUwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNzFFM0Mw
QjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuY3BwICovOyB9OwogCQk0NDUwQUVDMDFE
QzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8q
IFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLzsgfTsKKwkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJD
IC8qIFdLUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzQ3Jh
c2hSZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0
RUFEMDBBMjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29uLmggKi87IH07CiAJCTQ2QTJCNjA4MUU1
Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZBMkI2MDYx
RTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5j
cHAgKi87IH07CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vz
c1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vz
c1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNEEzQ0MxOEExOUIwNjNFNzAwRDE0QUVG
IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlBRjdCMDQwMDJF
QkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07
CkBAIC0zMTE4LDYgKzMxMjAsOCBAQAogCQk0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2NzggLyogTGli
V2ViUlRDUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2Vi
UlRDUmVzb2x2ZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUY3MUUzQzBCNDcwMDFBRTY3OCAv
KiBMaWJXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBMaWJXZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURD
M0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHBhdGggPSBjb2NvYS9T
aGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2M0ZE
NDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc0Ny
YXNoUmVhc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NDcmFz
aFJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNjFFNTY3NUEy
MDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA3
MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNw
b25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjM1
MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkyOCw2ICs0OTMyLDcg
QEAKIAkJCQlCQ0M0M0FCOTEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRh
LmggKi8sCiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8s
CiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAorCQkJCTQ2
M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCAqLywKIAkJCQlG
NkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJ
CQkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovLAogCQkJCTQx
MDQ4MkNDMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggKi8sCkBAIC03MDA4LDYgKzcw
MTMsNyBAQAogCQkJCUJDRDU5N0NGMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNw
cCAqLywKIAkJCQlCQ0Q1OTdDRTExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlc1JlZi5o
ICovLAogCQkJCTc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oICovLAorCQkJCTQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFz
aFJlYXNvbi5oICovLAogCQkJCTUxMkY1OEYzMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rp
b25TcGFjZS5jcHAgKi8sCiAJCQkJNTEyRjU4RjQxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVj
dGlvblNwYWNlLmggKi8sCiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVj
dGlvblNwYWNlVHlwZXMuaCAqLywKQEAgLTg1MTAsNiArODUxNiw3IEBACiAJCQkJMUFDMTMzODYx
ODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3
IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBNDE4N0IzQjdE
MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUQxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGlu
Z1RyZWUuaCBpbiBIZWFkZXJzICovLApAQCAtODY2Niw2ICs4NjczLDcgQEAKIAkJCQkxQzhFMkEz
NjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDOEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEy
OTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4OTFE
NjYxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU1QkE4MkIxQkEzOEU2MTAwN0NEMzNEIC8qIFdlYkluc3BlY3Rv
clV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWU2OGQ5NDVmNzE0OTM1ODRlMzQ0ZWE2ODIyYzYzZGQy
NmUzMTNhZC4uNTExYWFlZjYxMzJjMzY4NDE3MWIxZGRjOTU5MTQ2OGM3YjI0ZGUyZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDE3LTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dLMl0gRXh0ZW5kIHByb2Nlc3NEaWRDcmFzaCBkZWxlZ2F0ZSB0byBsZXQgdGhlIGNsaWVu
dCBrbm93IHRoZSByZWFzb24gZm9yIHRoZSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
MTIwNDQxNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpkaWRDcmFzaFdpdGhSZWFzb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMTctMDUtMDEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdG9wIHVzaW5nIHNwcmludGYoKSBpbiBKYXZhU2NyaXB0Q29yZSBkZWJ1
Z2dlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YjY0NjkyN2ZmYTZmOWY2NGNkODA2N2Fl
NTE3Y2VhYTZiODFiZTYxLi5lMmE2NmYzMDlmNjYwOTFmYjljODZlMTkyOGU2NGYxNWUzZmM0NmQ4
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI2LDYgKzEyNiw3IEBACiAJCTNGQkQxQjRB
MUQzRDY2QUIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJEMUI0
OTFEMzlEMURCMDBFNkQ2RkEgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0bWwgKi87
IH07CiAJCTQ0OEQ3RTQ3MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ4
RDdFNDUxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgKi87
IH07CiAJCTQ2Mzk3Qjk1MURDMkM4NTAwMDlBNzhBRSAvKiBET01Ob2RlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzOTdCOTQxREMyQzg1MDAwOUE3
OEFFIC8qIERPTU5vZGUubW0gKi87IH07CisJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQ
cm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlk
Q3Jhc2hXaXRoUmVhc29uLmNwcCAqLzsgfTsKIAkJNDZDNTE5REExRDM1NUFCMjAwREFBNTFBIC8q
IExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDZDNTE5RDgxRDM1NUE3MzAwREFBNTFBIC8qIExvY2FsU3RvcmFn
ZU51bGxFbnRyaWVzLm1tICovOyB9OwogCQk0NkM1MTlFNjFEMzU2M0ZEMDBEQUE1MUEgLyogTG9j
YWxTdG9yYWdlTnVsbEVudHJpZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM1MTlFMjFEMzU2Mjk2MDBEQUE1MUEgLyogTG9jYWxT
dG9yYWdlTnVsbEVudHJpZXMuaHRtbCAqLzsgfTsKIAkJNDZDNTE5RTcxRDM1NjNGRDAwREFBNTFB
IC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmxvY2Fsc3RvcmFnZSBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM1MTlFMzFEMzU2Mjk2MDBE
QUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlICovOyB9OwpAQCAt
MTA1NCw2ICsxMDU1LDcgQEAKIAkJNDQ4RDdFNDUxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25t
ZW50VXRpbGl0aWVzVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM5N0I5NDFEQzJDODUwMDA5QTc4QUUgLyogRE9N
Tm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU5vZGUu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdF
RiAvKiBQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkM1MTlEODFEMzU1QTczMDBEQUE1MUEgLyogTG9jYWxTdG9y
YWdlTnVsbEVudHJpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZDNTE5RTIxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5o
dG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM1MTlFMzFEMzU2Mjk2MDBEQUE1
MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IExvY2FsU3Rv
cmFnZU51bGxFbnRyaWVzLmxvY2Fsc3RvcmFnZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwOTcsNiArMjA5OSw3IEBACiAJCQkJMDc2NkREMUYxQTVBRDUyMDAwMjNFM0JCIC8qIFBl
bmRpbmdBUElSZXF1ZXN0VVJMLmNwcCAqLywKIAkJCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMg
LyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLywKIAkJCQlGNkZEREREMjE0MjQxQUQ0MDA0
RjE3MjkgLyogUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwICov
LAorCQkJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVh
c29uLmNwcCAqLywKIAkJCQk4QTNBRjkzQTE2QzlFRDI3MDBEMjQ4QzEgLyogUmVsb2FkUGFnZUFm
dGVyQ3Jhc2guY3BwICovLAogCQkJCTJERDdEM0E5MTc4MjA1RDAwMDI2RTFFMyAvKiBSZXNpemVS
ZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgKi8sCiAJCQkJOEEyQzc1MEQxNkNFRDk1NTAwMjRG
MzUyIC8qIFJlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwICovLApAQCAtMjgzOCw2ICsyODQxLDcg
QEAKIAkJCQk3Q0NFN0VFRTFBNDExQUU2MDA0NDdDNEMgLyogRG93bmxvYWREZWNpZGVEZXN0aW5h
dGlvbkNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QkZBNjhFMUU0QUQwODAwMDE1NDI5
OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEx
NTUwMjJBMUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxz
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nl
c3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkUxQTQx
MUE3RTAwNDQ3QzRDIC8qIER5bmFtaWNEZXZpY2VTY2FsZUZhY3Rvci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTVDMEJGODkyMURENTk5QjYwMEIwMDMyOCAvKiBFYXJseUtWT0NyYXNoLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAxQTQxMUE5QTAwNDQ3QzRDIC8qIEVkaXRvckNvbW1hbmRz
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTdhZWE1ZWY0OTMyYmYxNDc5YTFjN2RhNTJkMmZkYjI3NmI2MjMwYwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcm9jZXNzRGlkQ3Jhc2hX
aXRoUmVhc29uLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisj
aW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworc3RhdGljIGJvb2wgbG9hZEJlZm9yZUNyYXNoID0gZmFsc2U7CitzdGF0aWMgYm9vbCBj
cmFzaEhhbmRsZXJDYWxsZWQgPSBmYWxzZTsKKworc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdh
dGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIWxvYWRCZWZv
cmVDcmFzaCkgeworICAgICAgICBsb2FkQmVmb3JlQ3Jhc2ggPSB0cnVlOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCBk
aWRDcmFzaFdpdGhSZWFzb24oV0tQYWdlUmVmIHBhZ2UsIFdLUHJvY2Vzc0NyYXNoUmVhc29uIHJl
YXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICAvLyBUZXN0IGlmIGZpcnN0IGxv
YWQgYWN0dWFsbHkgd29ya2VkLgorICAgIEVYUEVDVF9UUlVFKGxvYWRCZWZvcmVDcmFzaCk7CisK
KyAgICAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgb25jZS4KKyAgICBFWFBFQ1RfRkFMU0UoY3Jh
c2hIYW5kbGVyQ2FsbGVkKTsKKworICAgIEVYUEVDVF9FUShrV0tQcm9jZXNzQ3Jhc2hSZWFzb25U
ZXJtaW5hdGlvblJlcXVlc3RlZEJ5Q2xpZW50LCByZWFzb24pOworCisgICAgY3Jhc2hIYW5kbGVy
Q2FsbGVkID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVh
c29uUmVxdWVzdGVkQnlDbGllbnQpCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMSBu
YXZpZ2F0aW9uQ2xpZW50OworICAgIG1lbXNldCgmbmF2aWdhdGlvbkNsaWVudCwgMCwgc2l6ZW9m
KG5hdmlnYXRpb25DbGllbnQpKTsKKyAgICBuYXZpZ2F0aW9uQ2xpZW50LmJhc2UudmVyc2lvbiA9
IDE7CisgICAgbmF2aWdhdGlvbkNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNo
TmF2aWdhdGlvbjsKKyAgICBuYXZpZ2F0aW9uQ2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaFdpdGhS
ZWFzb24gPSBkaWRDcmFzaFdpdGhSZWFzb247CisKKyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlv
bkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJm5hdmlnYXRpb25DbGllbnQuYmFzZSk7CisKKyAgICBX
S1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiYWJvdXQ6YmxhbmsiKSk7CisgICAgLy8gTG9hZCBhIGJsYW5rIHBhZ2UgYW5kIG5leHQg
a2lsbHMgV2ViUHJvY2Vzcy4KKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwu
Z2V0KCkpOworICAgIFV0aWw6OnJ1bigmbG9hZEJlZm9yZUNyYXNoKTsKKyAgICBXS1BhZ2VUZXJt
aW5hdGUod2ViVmlldy5wYWdlKCkpOworCisgICAgVXRpbDo6cnVuKCZjcmFzaEhhbmRsZXJDYWxs
ZWQpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>