<?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>208135</bug_id>
          
          <creation_ts>2020-02-24 07:43:54 -0800</creation_ts>
          <short_desc>Remove throttling code from RenderLayerCompositor</short_desc>
          <delta_ts>2020-02-26 05:38:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1622143</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-24 07:43:54 -0800</bug_when>
    <thetext>It is only used on WK1, adds lots of complexity and is not very effective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622150</commentid>
    <comment_count>1</comment_count>
      <attachid>391538</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-24 07:47:42 -0800</bug_when>
    <thetext>Created attachment 391538
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622161</commentid>
    <comment_count>2</comment_count>
      <attachid>391541</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-24 07:56:59 -0800</bug_when>
    <thetext>Created attachment 391541
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622168</commentid>
    <comment_count>3</comment_count>
      <attachid>391543</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-24 08:08:16 -0800</bug_when>
    <thetext>Created attachment 391543
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622241</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-24 10:59:19 -0800</bug_when>
    <thetext>Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622525</commentid>
    <comment_count>5</comment_count>
      <attachid>391631</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-25 00:26:10 -0800</bug_when>
    <thetext>Created attachment 391631
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622529</commentid>
    <comment_count>6</comment_count>
      <attachid>391633</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-25 01:04:48 -0800</bug_when>
    <thetext>Created attachment 391633
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622534</commentid>
    <comment_count>7</comment_count>
      <attachid>391635</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-25 01:15:44 -0800</bug_when>
    <thetext>Created attachment 391635
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622615</commentid>
    <comment_count>8</comment_count>
      <attachid>391635</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-25 08:36:05 -0800</bug_when>
    <thetext>Comment on attachment 391635
patch

Clearing flags on attachment: 391635

Committed r257357: &lt;https://trac.webkit.org/changeset/257357&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622616</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-25 08:36:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622617</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-25 08:37:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/59765410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622678</commentid>
    <comment_count>11</comment_count>
      <attachid>391635</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-25 11:04:23 -0800</bug_when>
    <thetext>Comment on attachment 391635
patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:101
&gt; -    virtual void notifyFlushRequired(const GraphicsLayer*) { }
&gt; +    virtual void notifyRenderingUpdateRequired(const GraphicsLayer*) { }

I would not have renamed this one, because it should have the same name as GraphicsLayer::flushCompositingState() which you did not rename.

Down here we&apos;re flushing, not doing rendering updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622695</commentid>
    <comment_count>12</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-25 11:53:11 -0800</bug_when>
    <thetext>&gt; I would not have renamed this one, because it should have the same name as
&gt; GraphicsLayer::flushCompositingState() which you did not rename.
&gt; 
&gt; Down here we&apos;re flushing, not doing rendering updates.

Ok, I&apos;ll rename it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622948</commentid>
    <comment_count>13</comment_count>
      <attachid>391732</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-26 03:15:07 -0800</bug_when>
    <thetext>Created attachment 391732
revert back to notifyFlushRequired</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622953</commentid>
    <comment_count>14</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-26 03:36:52 -0800</bug_when>
    <thetext>add a followup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622954</commentid>
    <comment_count>15</comment_count>
      <attachid>391734</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-26 03:37:38 -0800</bug_when>
    <thetext>Created attachment 391734
revert back to notifyFlushRequired</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622958</commentid>
    <comment_count>16</comment_count>
      <attachid>391736</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-26 04:32:37 -0800</bug_when>
    <thetext>Created attachment 391736
revert back to notifyFlushRequired</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622959</commentid>
    <comment_count>17</comment_count>
      <attachid>391737</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-26 04:34:41 -0800</bug_when>
    <thetext>Created attachment 391737
revert back to notifyFlushRequired</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622976</commentid>
    <comment_count>18</comment_count>
      <attachid>391737</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-26 05:38:04 -0800</bug_when>
    <thetext>Comment on attachment 391737
revert back to notifyFlushRequired

Clearing flags on attachment: 391737

Committed r257465: &lt;https://trac.webkit.org/changeset/257465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622977</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-26 05:38:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391538</attachid>
            <date>2020-02-24 07:47:42 -0800</date>
            <delta_ts>2020-02-24 07:56:59 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remove-compositor-throttling.patch</filename>
            <type>text/plain</type>
            <size>27441</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDE0YWI4OTk5ZC4uYTQwZWQ3YjM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMC0wMi0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQg
aXMgb25seSB1c2VkIG9uIFdLMSwgYWRkcyBsb3RzIG9mIGNvbXBsZXhpdHkgYW5kIGlzIG5vdCB2
ZXJ5IGVmZmVjdGl2ZSBvciBjb3JyZWN0LgorCisgICAgICAgIEFsc28gZG8gc29tZSAibGF5ZXIg
Zmx1c2giIC0+ICJyZW5kZXJpbmcgdXBkYXRlIiByZW5hbWluZy4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZU92ZXJsYXlDb250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvbWFjL1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNhblRocm90
dGxlTGF5ZXJGbHVzaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNsaWVudDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zy
b21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdSZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmZsdXNoTGF5ZXJzU29vbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRM
YXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jh
cmlseUZvckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRMYXllckZsdXNo
VGltZXJJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJGbHVzaFRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKwogMjAyMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV1BFXSBBZGQgR3N0R0xNZW1vcnlFR0wgc3VwcG9y
dCBmb3IgdGhlIHZpZGVvLXBsYW5lLWRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA5NWY1Yjk1YjFmNC4uZmNlOTRhNWJmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEwMTgsMTQgKzEwMTgsNiBAQCBHcmFwaGljc0xheWVyKiBGcmFtZVZpZXc6OmdyYXBo
aWNzTGF5ZXJGb3JQbGF0Zm9ybVdpZGdldChQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybQogICAgIHJl
dHVybiB3aWRnZXRMYXllci0+YmFja2luZygpLT5wYXJlbnRGb3JTdWJsYXllcnMoKTsKIH0KIAot
dm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlTGF5ZXJGbHVzaEFsbG93aW5nVGhyb3R0bGluZygpCi17
Ci0gICAgUmVuZGVyVmlldyogdmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKLSAgICBpZiAoIXZp
ZXcpCi0gICAgICAgIHJldHVybjsKLSAgICB2aWV3LT5jb21wb3NpdG9yKCkuc2NoZWR1bGVMYXll
ckZsdXNoKHRydWUgLyogY2FuVGhyb3R0bGUgKi8pOwotfQotCiBMYXlvdXRSZWN0IEZyYW1lVmll
dzo6Zml4ZWRTY3JvbGxhYmxlQXJlYUJvdW5kc0luZmxhdGVkRm9yU2Nyb2xsaW5nKGNvbnN0IExh
eW91dFJlY3QmIHVuaW5mbGF0ZWRCb3VuZHMpIGNvbnN0CiB7CiAgICAgTGF5b3V0UG9pbnQgc2Ny
b2xsUG9zaXRpb247CkBAIC0yODQ1LDExICsyODM3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmRpc2Fi
bGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKQogCiAgICAg
YXV0byBmbGFncyA9IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0YXRlKHBhZ2UpOwogICAg
IGZsYWdzLmFkZChSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpVc2VySXNJbnRlcmFjdGlu
Zyk7Ci0gICAgaWYgKHBhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVyaW5nVXBkYXRl
VGhyb3R0bGluZyhmbGFncykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChSZW5kZXJWaWV3
KiB2aWV3ID0gcmVuZGVyVmlldygpKQotICAgICAgICB2aWV3LT5jb21wb3NpdG9yKCkuZGlzYWJs
ZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOworICAgIHBh
Z2UuY2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZyhmbGFn
cyk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpsb2FkUHJvZ3Jlc3NpbmdTdGF0dXNDaGFuZ2VkKCkK
QEAgLTI4NzAsMTQgKzI4NTgsNyBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlTGF5ZXJGbHVzaFRo
cm90dGxpbmcoKQogCiAgICAgYXV0byBmbGFncyA9IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlKCpwYWdlKTsKIAotICAgIC8vIFNlZSBpZiB0aGUgY2xpZW50IGlzIGhhbmRsaW5nIHRo
cm90dGxpbmcuCi0gICAgaWYgKHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmFkanVzdFJlbmRlcmlu
Z1VwZGF0ZVRocm90dGxpbmcoZmxhZ3MpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1
dG8qIGZyYW1lID0gbV9mcmFtZS5wdHIoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50
cmF2ZXJzZU5leHQobV9mcmFtZS5wdHIoKSkpIHsKLSAgICAgICAgaWYgKFJlbmRlclZpZXcqIHJl
bmRlclZpZXcgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpCi0gICAgICAgICAgICByZW5kZXJW
aWV3LT5jb21wb3NpdG9yKCkuc2V0TGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKGZsYWdzLmNv
bnRhaW5zKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OkVuYWJsZWQpKTsKLSAgICB9Cisg
ICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGlu
ZyhmbGFncyk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjphZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFn
ZSgpCkBAIC01MzA4LDcgKzUyODksNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRS
ZWN0KE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogICAgIH0KIAogICAgIGlm
IChhdXRvKiB2aWV3ID0gcmVuZGVyVmlldygpKQotICAgICAgICB2aWV3LT5jb21wb3NpdG9yKCku
c2NoZWR1bGVMYXllckZsdXNoKGZhbHNlIC8qIGNhblRocm90dGxlICovKTsKKyAgICAgICAgdmll
dy0+Y29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICBpZiAoYXV0
byogcGFnZSA9IGZyYW1lKCkucGFnZSgpKQogICAgICAgICBwYWdlLT5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS5kaWRDaGFuZ2VWaWV3RXhwb3NlZFJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CmluZGV4IDc4NTNmNjZmNmE3Li4yMjRlZWZkYjlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CkBAIC0xNDcsNyArMTQ3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllckZvclBsYXRmb3JtV2lkZ2V0KFBsYXRmb3JtV2lkZ2V0KTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaEFsbG93aW5nVGhyb3R0bGluZygp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDQ4MTAyYTU3MjI4Li44M2Y0ZDRlNTY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtNDEwLDcgKzQxMCw3IEBAIGZsb2F0IFBhZ2VP
dmVybGF5Q29udHJvbGxlcjo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogICAgIHJldHVybiBt
X3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAotdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xs
ZXI6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFBhZ2VP
dmVybGF5Q29udHJvbGxlcjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciopCiB7CiAgICAgbV9wYWdlLnJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcigpLnNj
aGVkdWxlVGltZWRSZW5kZXJpbmdVcGRhdGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IDYwNjI4NTNlODQ4Li40ZjQzOTRhZDQxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC05Miw3ICs5
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5
ZXJQb3NpdGlvblVwZGF0ZXMoKTsKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKLSAgICB2
b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwor
ICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXll
ciopIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVy
KiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgR3JhcGhpY3NM
YXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3Qg
R3JhcGhpY3NMYXllciosIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIuaAppbmRleCBmNGU0YjVlZTI4OS4uNjM1ZjVkZjg1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKQEAgLTgxLDcgKzgx
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgSGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXImLCBUeXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwogCiAg
ICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKLSAgICAgICAgdm9pZCBub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBub3Rp
ZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7
CiAgICAgICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBpbkNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJl
aGF2aW9yKSBvdmVycmlkZTsKICAgICAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW0KaW5kZXggZDY4ZTM1YmRhNDMuLjEzZTIxNTc3ZjM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6
OkhpZ2hsaWdodDo6aW52YWxpZGF0ZSgpCiAgICAgbV9jb250cm9sbGVyID0gbnVsbHB0cjsKIH0K
IAotdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlmeUZsdXNo
UmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciopCiB7CiAgICAgaWYgKCFtX2NvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApp
bmRleCAwNGUxM2U3NTBiZS4uYjhkNDlmZDRhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTYwOSw4ICs2MDksNiBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogCi0gICAgdmlydHVhbCBi
b29sIGNhblRocm90dGxlTGF5ZXJGbHVzaCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0EoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDc5YTNmNTM5NjNi
Li5lNGRkZjUzMjNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCBhIGxheWVyIHByb3BlcnR5IGNoYW5nZWQgdGhhdCBy
ZXF1aXJlcyBhIHN1YnNlcXVlbnQgY2FsbCB0byBmbHVzaENvbXBvc2l0aW5nU3RhdGUoKQogICAg
IC8vIHRvIGFwcGVhciBvbiB0aGUgc2NyZWVuLgotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogICAg
IAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IHRoaXMgbGF5ZXIgcmVxdWlyZXMgYSBmbHVzaCBi
ZWZvcmUgdGhlIG5leHQgZGlzcGxheSByZWZyZXNoLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlG
bHVzaEJlZm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCmluZGV4IGUwNjNhYWRhNGQwLi44NGU5YmZiNGMzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBA
IC00MTk5LDEyICs0MTk5LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVTdWJsYXllcnND
aGFuZ2VkKFNjaGVkdWxlRmx1c2hPck5vdCBzY2hlZHVsZUZsdXNoKQogICAgIHByb3BhZ2F0ZUxh
eWVyQ2hhbmdlVG9SZXBsaWNhcyhzY2hlZHVsZUZsdXNoKTsKIH0KIAotYm9vbCBHcmFwaGljc0xh
eWVyQ0E6OmNhblRocm90dGxlTGF5ZXJGbHVzaCgpIGNvbnN0Ci17Ci0gICAgLy8gVGlsZSBsYXll
cnMgYXJlIGN1cnJlbnRseSBwbGFpbiBDQSBsYXllcnMsIGF0dGFjaGVkIGRpcmVjdGx5IGJ5IFRp
bGVDb250cm9sbGVyLiBUaGV5IHJlcXVpcmUgaW1tZWRpYXRlIGZsdXNoIGFzIHRoZXkgbWF5IGNv
bnRhaW4gZ2FyYmFnZS4KLSAgICByZXR1cm4gIShtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIFRpbGVz
QWRkZWQpOwotfQotCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6YWRkVW5jb21taXR0ZWRDaGFuZ2Vz
KExheWVyQ2hhbmdlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgbV91bmNvbW1pdHRlZENoYW5nZXMgfD0g
ZmxhZ3M7CkBAIC00MjMyLDE0ICs0MjI2LDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpub3Rl
TGF5ZXJQcm9wZXJ0eUNoYW5nZWQoTGF5ZXJDaGFuZ2VGbGFncyBmbGFncywgU2NoZWR1bGVGCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgaGFkVW5jb21taXR0ZWRDaGFuZ2VzID0gISFtX3Vu
Y29tbWl0dGVkQ2hhbmdlczsKLSAgICBib29sIG9sZENhblRocm90dGxlTGF5ZXJGbHVzaCA9IGNh
blRocm90dGxlTGF5ZXJGbHVzaCgpOwogCiAgICAgYWRkVW5jb21taXR0ZWRDaGFuZ2VzKGZsYWdz
KTsKIAogICAgIGlmIChzY2hlZHVsZUZsdXNoID09IFNjaGVkdWxlRmx1c2gpIHsKLSAgICAgICAg
Ym9vbCBuZWVkc0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdlcyB8fCBvbGRDYW5UaHJvdHRs
ZUxheWVyRmx1c2ggIT0gY2FuVGhyb3R0bGVMYXllckZsdXNoKCk7CisgICAgICAgIGJvb2wgbmVl
ZHNGbHVzaCA9ICFoYWRVbmNvbW1pdHRlZENoYW5nZXM7CiAgICAgICAgIGlmIChuZWVkc0ZsdXNo
KQotICAgICAgICAgICAgY2xpZW50KCkubm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICAg
ICAgICAgIGNsaWVudCgpLm5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKHRoaXMpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaAppbmRleCA2OWIxZmFkMWE3Mi4uMDNkNWUyY2I4ZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCkBAIC0yOTcsOCArMjk3LDYgQEAgcHJpdmF0ZToKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoUmVmUHRyPEdyYXBoaWNzTGF5ZXI+JiYpIG92ZXJyaWRl
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5UaHJvdHRsZUxheWVyRmx1c2goKSBjb25z
dCBvdmVycmlkZTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0RGVidWdCb3JkZXJJbmZv
KENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhXVEY6OlRleHRTdHJlYW0mLCBMYXllclRy
ZWVBc1RleHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaAppbmRleCAyZTIxZTBkZTI5Mi4uY2VjNDIwODZj
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgK
QEAgLTE3MCw3ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0VGlsZUdyaWRUcmFu
c2Zvcm1zKCk7CiAgICAgdm9pZCByZW1vdmVBbGxOb25WaXNpYmxlVGlsZXNJbnRlcm5hbCgpOwog
ICAgIHZvaWQgY3JlYXRlVGlsZXNJbkFjdGl2ZUdyaWQoU3luY2hyb25vdXNUaWxlQ3JlYXRpb25N
b2RlKTsKLSAgICB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdSZXBhaW50KCk7Cisg
ICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50KCk7CiAKICAg
ICB2b2lkIHRpbGVDcmVhdGlvblRpbWVyRmlyZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUubW0KaW5kZXggYTZlNDY2ZTY1MTMuLmIzYTIwMjc0
ZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNh
Y2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUu
bW0KQEAgLTQ4LDcgKzQ4LDcgQEAgLSAodm9pZClfZGlzcGF0Y2hUaWxlRGlkRHJhdzooQ0FMYXll
ciopdGlsZTsKIC0gKHZvaWQpX3dpbGxTdGFydFNjcm9sbGluZ09yWm9vbWluZzsKIC0gKHZvaWQp
X2RpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWluZzsKIC0gKHZvaWQpX2Rpc3BhdGNoVGlsZURpZERy
YXc7Ci0tICh2b2lkKV9zY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWlu
dDsKKy0gKHZvaWQpX3NjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9yUGVuZGluZ1RpbGVDYWNoZVJl
cGFpbnQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgTGVnYWN5VGlsZUNhY2hlVG9tYnN0b25lIDogTlNP
YmplY3QgewpAQCAtNjA5LDEwICs2MDksMTAgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5l
ZWRzRGlzcGxheSgpCiAgICAgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KEludFJlY3QoMCwgMCwgc3Rk
OjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+Ojpt
YXgoKSkpOwogfQogCi12b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2NoZWR1bGVMYXllckZsdXNoRm9y
UGVuZGluZ1JlcGFpbnQoKQordm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlRm9yUGVuZGluZ1JlcGFpbnQoKQogewogICAgIFdBS1ZpZXcqIHZpZXcgPSBbbV93aW5k
b3cgY29udGVudFZpZXddOwotICAgIFt2aWV3IF9zY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5n
VGlsZUNhY2hlUmVwYWludF07CisgICAgW3ZpZXcgX3NjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9y
UGVuZGluZ1RpbGVDYWNoZVJlcGFpbnRdOwogfQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0
TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKQEAgLTYyMyw3ICs2
MjMsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0
IEludFJlY3QmIGRpcnR5UmVjdCkKICAgICBpZiAoIWFkZGVkRmlyc3RSZWN0KQogICAgICAgICBy
ZXR1cm47CiAgICAgLy8gQ29tcG9zaXRpbmcgbGF5ZXIgZmx1c2ggd2lsbCBjYWxsIGJhY2sgdG8g
ZG9QZW5kaW5nUmVwYWludHMoKS4gVGhlIGZsdXNoIG1heSBiZSB0aHJvdHRsZWQgYW5kIG5vdCBo
YXBwZW4gaW1tZWRpYXRlbHkuCi0gICAgc2NoZWR1bGVMYXllckZsdXNoRm9yUGVuZGluZ1JlcGFp
bnQoKTsKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50KCk7CiB9
CiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjppbnZhbGlkYXRlVGlsZXMoY29uc3QgSW50UmVjdCYg
ZGlydHlSZWN0KQpAQCAtNjkzLDcgKzY5Myw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjp1cGRh
dGVUaWxpbmdNb2RlKCkKICAgICAgICAgY3JlYXRlVGlsZXNJbkFjdGl2ZUdyaWQoQ292ZXJWaXNp
YmxlT25seSk7CiAKICAgICAgICAgaWYgKCFtX3NhdmVkRGlzcGxheVJlY3RzLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdSZXBhaW50KCk7CisgICAg
ICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50KCk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCmluZGV4IDFlZjRlZmEzNDJjLi5mMGI1OGE5OTgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTM0MDAsMTEgKzM0MDAsMTEg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3Qg
R3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmkKICAgICByZW5kZXJlcigpLmFuaW1hdGlvbigpLm5v
dGlmeUFuaW1hdGlvblN0YXJ0ZWQocmVuZGVyZXIoKSwgdGltZSk7CiB9CiAKLXZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVp
cmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChyZW5kZXJlcigpLnJlbmRlclRy
ZWVCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgY29tcG9zaXRvcigpLnNj
aGVkdWxlTGF5ZXJGbHVzaChsYXllci0+Y2FuVGhyb3R0bGVMYXllckZsdXNoKCkpOworICAgIGNv
bXBvc2l0b3IoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6bm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGlj
c0xheWVyKiBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaAppbmRleCAwZmJiNjZhM2YyYS4uMDQzY2YyMTVjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTIzNyw3ICsyMzcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbnRlcmZhY2UKICAgICB2b2lkIHRp
bGVkQmFja2luZ1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiwgYm9vbCAvKnVzaW5n
VGlsZWRCYWNraW5nKi8pIG92ZXJyaWRlOwogICAgIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25LZXksIE1vbm90
b25pY1RpbWUgc3RhcnRUaW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5UmVuZGVy
aW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZv
aWQgbm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcCwgR3JhcGhpY3NMYXllclBh
aW50QmVoYXZpb3IpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAwZjM4NjA5MmQ3Yi4uNmRmZDMyODczMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC0xMDAsMTQgKzEwMCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiAhVVNF
KENPTVBPU0lUSU5HX0ZPUl9TTUFMTF9DQU5WQVNFUykKIHN0YXRpYyBjb25zdCBpbnQgY2FudmFz
QXJlYVRocmVzaG9sZFJlcXVpcmluZ0NvbXBvc2l0aW5nID0gNTAgKiAxMDA7CiAjZW5kaWYKLS8v
IER1cmluZyBwYWdlIGxvYWRpbmcgZGVsYXkgbGF5ZXIgZmx1c2hlcyB1cCB0byB0aGlzIG1hbnkg
c2Vjb25kcyB0byBhbGxvdyB0aGVtIGNvYWxlc2NlLCByZWR1Y2luZyB3b3JrbG9hZC4KLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIGNvbnN0IFNlY29uZHMgdGhyb3R0bGVkTGF5ZXJG
bHVzaEluaXRpYWxEZWxheSB7IDUwMF9tcyB9Owotc3RhdGljIGNvbnN0IFNlY29uZHMgdGhyb3R0
bGVkTGF5ZXJGbHVzaERlbGF5IHsgMS41X3MgfTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgU2Vjb25k
cyB0aHJvdHRsZWRMYXllckZsdXNoSW5pdGlhbERlbGF5IHsgNTAwX21zIH07Ci1zdGF0aWMgY29u
c3QgU2Vjb25kcyB0aHJvdHRsZWRMYXllckZsdXNoRGVsYXkgeyA1MDBfbXMgfTsKLSNlbmRpZgog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCkBAIC0zMTQsNyArMzA2LDYgQEAgc3RhdGlj
IGlubGluZSBib29sIGxheWVyc0xvZ0VuYWJsZWQoKQogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3IoUmVuZGVyVmlldyYgcmVuZGVyVmlldykKICAgICA6IG1fcmVu
ZGVyVmlldyhyZW5kZXJWaWV3KQogICAgICwgbV91cGRhdGVDb21wb3NpdGluZ0xheWVyc1RpbWVy
KCp0aGlzLCAmUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVyc1Rp
bWVyRmlyZWQpCi0gICAgLCBtX2xheWVyRmx1c2hUaW1lcigqdGhpcywgJlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBpZiAobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnBsYXRmb3JtV2lkZ2V0KCkpCkBA
IC00NzYsMjQgKzQ2NywxNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y3VzdG9tUG9z
aXRpb25Gb3JWaXNpYmxlUmVjdENvbXB1dGF0aW9uKGNvbnN0IEdyYXBoaQogICAgIHBvc2l0aW9u
ID0gLXNjcm9sbFBvc2l0aW9uOwogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIHsKLSAgICBzY2hlZHVsZUxheWVyRmx1c2gobGF5ZXItPmNhblRocm90dGxl
TGF5ZXJGbHVzaCgpKTsKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCi12b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVMYXllckZsdXNoKGJvb2wgY2FuVGhyb3R0
bGUpCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUo
KQogewogICAgIEFTU0VSVCghbV9mbHVzaGluZ0xheWVycyk7CiAKLSAgICBpZiAoY2FuVGhyb3R0
bGUpCi0gICAgICAgIHN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0KLSAg
ICBpZiAoY2FuVGhyb3R0bGUgJiYgaXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzKCkpCi0gICAgICAg
IG1faGFzUGVuZGluZ0xheWVyRmx1c2ggPSB0cnVlOwotICAgIGVsc2UgewotICAgICAgICBtX2hh
c1BlbmRpbmdMYXllckZsdXNoID0gZmFsc2U7Ci0gICAgICAgIHBhZ2UoKS5yZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwotICAgIH0KKyAgICBwYWdl
KCkucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsK
IH0KIAogRmxvYXRSZWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dmlzaWJsZVJlY3RGb3JMYXll
ckZsdXNoaW5nKCkgY29uc3QKQEAgLTUyMiw5ICs1MDUsNiBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKGJvb2wgaXNGbHVzaFJvb3QpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChyb290TGF5ZXJBdHRhY2htZW50KCkgPT0gUm9vdExheWVy
VW5hdHRhY2hlZCkgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIHN0YXJ0TGF5
ZXJGbHVzaFRpbWVySWZOZWVkZWQoKTsKLSNlbmRpZgogICAgICAgICBtX3Nob3VsZEZsdXNoT25S
ZWF0dGFjaCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NjAsNyArNTQwLDYg
QEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhi
b29sIGlzRmx1c2hSb290KQogI2VuZGlmCiAKICAgICArK21fbGF5ZXJGbHVzaENvdW50OwotICAg
IHN0YXJ0TGF5ZXJGbHVzaFRpbWVySWZOZWVkZWQoKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCkBAIC02MjgsNyArNjA3LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRp
ZENoYW5nZVZpc2libGVSZWN0KCkKICAgICBib29sIHJlcXVpcmVzRmx1c2ggPSByb290TGF5ZXIt
PnZpc2libGVSZWN0Q2hhbmdlUmVxdWlyZXNGbHVzaCh2aXNpYmxlUmVjdCk7CiAgICAgTE9HX1dJ
VEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwgIlJlbmRlckxheWVyQ29tcG9zaXRvcjo6
ZGlkQ2hhbmdlVmlzaWJsZVJlY3QgIiA8PCB2aXNpYmxlUmVjdCA8PCAiIHJlcXVpcmVzRmx1c2gg
IiA8PCByZXF1aXJlc0ZsdXNoKTsKICAgICBpZiAocmVxdWlyZXNGbHVzaCkKLSAgICAgICAgc2No
ZWR1bGVMYXllckZsdXNoKCk7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9
CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlS
ZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQpAQCAtNjQzLDcgKzYyMiw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqCiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaExheWVy
c1Nvb24oR3JhcGhpY3NMYXllclVwZGF0ZXImKQogewotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCh0
cnVlKTsKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6bGF5ZXJUaWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllciwgYm9vbCB1c2luZ1RpbGVkQmFja2luZykKQEAgLTIwNzcs
NyArMjA1Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRTY3Jv
bGwoKQogICAgIC8vIGl0IHdpbGwgYWxzbyBtYW5hZ2UgdXBkYXRpbmcgdGhlIHNjcm9sbCBsYXll
ciBwb3NpdGlvbi4KICAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3JvbGxpbmcoKSkgewogICAgICAg
ICAvLyBXZSBoYXZlIHRvIHNjaGVkdWxlIGEgZmx1c2ggaW4gb3JkZXIgZm9yIHRoZSBtYWluIFRp
bGVkQmFja2luZyB0byB1cGRhdGUgaXRzIHRpbGUgY292ZXJhZ2UuCi0gICAgICAgIHNjaGVkdWxl
TGF5ZXJGbHVzaCgpOworICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0zOTM1LDcgKzM5MTQsNyBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6ZW5zdXJlUm9vdExheWVyKCkKICAgICAgICAgICAgIHVwZGF0ZU92ZXJmbG93
Q29udHJvbHNMYXllcnMoKTsKIAogICAgICAgICAgICAgaWYgKGhhc0Nvb3JkaW5hdGVkU2Nyb2xs
aW5nKCkpCi0gICAgICAgICAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoKHRydWUpOworICAgICAg
ICAgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgdXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbigpOwogICAgICAgICB9CkBA
IC00MDI4LDcgKzQwMDcsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YXR0YWNoUm9v
dExheWVyKFJvb3RMYXllckF0dGFjaG1lbnQgYXR0YWNobWVudCkKICAgICByb290TGF5ZXJBdHRh
Y2htZW50Q2hhbmdlZCgpOwogICAgIAogICAgIGlmIChtX3Nob3VsZEZsdXNoT25SZWF0dGFjaCkg
ewotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoKTsKICAgICAgICAgbV9zaG91bGRGbHVzaE9uUmVhdHRhY2ggPSBmYWxzZTsKICAg
ICB9CiB9CkBAIC00NzAyLDYwICs0NjgxLDYgQEAgR3JhcGhpY3NMYXllckZhY3RvcnkqIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdAogICAgIHJldHVy
biBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKTsKIH0KIAot
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNldExheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxl
ZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9sYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQgPSBl
bmFibGVkOwotICAgIGlmIChtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCkKLSAgICAgICAg
cmV0dXJuOwotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0b3AoKTsKLSAgICBpZiAoIW1faGFzUGVu
ZGluZ0xheWVyRmx1c2gpCi0gICAgICAgIHJldHVybjsKLSAgICBzY2hlZHVsZUxheWVyRmx1c2go
KTsKLX0KLQotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpc2FibGVMYXllckZsdXNoVGhy
b3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKQotewotICAgIGlmIChtX2xheWVyRmx1
c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uKQotICAgICAgICBy
ZXR1cm47Ci0gICAgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJ
bnRlcmFjdGlvbiA9IHRydWU7Ci19Ci0KLWJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1Ro
cm90dGxpbmdMYXllckZsdXNoZXMoKSBjb25zdAotewotICAgIGlmICghbV9sYXllckZsdXNoVGhy
b3R0bGluZ0VuYWJsZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIW1fbGF5ZXJG
bHVzaFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9s
YXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbikKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6c3RhcnRMYXllckZsdXNoVGltZXJJZk5lZWRlZCgpCi17Ci0gICAgbV9s
YXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZh
bHNlOwotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0b3AoKTsKLSAgICBpZiAoIW1fbGF5ZXJGbHVz
aFRocm90dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9sYXllckZsdXNoVGlt
ZXIuc3RhcnRPbmVTaG90KHRocm90dGxlZExheWVyRmx1c2hEZWxheSk7Ci19Ci0KLXZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpzdGFydEluaXRpYWxMYXllckZsdXNoVGltZXJJZk5lZWRlZCgp
Ci17Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0
dXJuOwotICAgIGlmIChtX2xheWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICByZXR1
cm47Ci0gICAgbV9sYXllckZsdXNoVGltZXIuc3RhcnRPbmVTaG90KHRocm90dGxlZExheWVyRmx1
c2hJbml0aWFsRGVsYXkpOwotfQotCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJG
bHVzaFRpbWVyRmlyZWQoKQotewotICAgIGlmICghbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwotfQotCiAjaWYgVVNFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKIFJlZlB0cjxEaXNwbGF5UmVm
cmVzaE1vbml0b3I+IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hN
b25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAwNzhmNzli
YWQwMi4uYzQ5MTE3YWE3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTE3OSw3ICsxNzksNyBAQCBwdWJsaWM6CiAKICAgICAv
LyBHcmFwaGljc0xheWVycyBidWZmZXIgc3RhdGUsIHdoaWNoIGdldHMgcHVzaGVkIHRvIHRoZSB1
bmRlcmx5aW5nIHBsYXRmb3JtIGxheWVycwogICAgIC8vIGF0IHNwZWNpZmljIHRpbWVzLgotICAg
IHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKGJvb2wgY2FuVGhyb3R0bGUgPSBmYWxzZSk7CisgICAg
dm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgIHZvaWQgZmx1c2hQZW5kaW5nTGF5
ZXJDaGFuZ2VzKGJvb2wgaXNGbHVzaFJvb3QgPSB0cnVlKTsKIAogICAgIC8vIENhbGxlZCB3aGVu
IHRoZSBHcmFwaGljc0xheWVyIGZvciB0aGUgZ2l2ZW4gUmVuZGVyTGF5ZXIgaGFzIGZsdXNoZWQg
Y2hhbmdlcyBpbnNpZGUgb2YgZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkuCkBAIC0zNjUsOSAr
MzY1LDYgQEAgcHVibGljOgogICAgIGJvb2wgaGFzTm9uTWFpbkxheWVyc1dpdGhUaWxlZEJhY2tp
bmcoKSBjb25zdCB7IHJldHVybiBtX2xheWVyc1dpdGhUaWxlZEJhY2tpbmdDb3VudDsgfQogCiAg
ICAgT3B0aW9uU2V0PENvbXBvc2l0aW5nUmVhc29uPiByZWFzb25zRm9yQ29tcG9zaXRpbmcoY29u
c3QgUmVuZGVyTGF5ZXImKSBjb25zdDsKLQotICAgIHZvaWQgc2V0TGF5ZXJGbHVzaFRocm90dGxp
bmdFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVt
cG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIAogICAgIHZvaWQgZGlkUGFpbnRCYWNraW5n
KFJlbmRlckxheWVyQmFja2luZyopOwogCkBAIC0zOTYsNyArMzkzLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIHVwZGF0ZUNvbXBvc2l0aW5nUG9saWN5KCk7CiAgICAgCiAgICAgLy8gR3JhcGhpY3NM
YXllckNsaWVudCBpbXBsZW1lbnRhdGlvbgotICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlSZW5kZXJpbmdV
cGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjdXN0b21Qb3NpdGlvbkZvclZpc2libGVSZWN0Q29tcHV0YXRpb24oY29uc3QgR3JhcGhp
Y3NMYXllciosIEZsb2F0UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVHJhY2tp
bmdSZXBhaW50cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRz
OyB9CkBAIC01NTcsMTEgKzU1NCw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZENvbXBv
c2l0ZU92ZXJmbG93Q29udHJvbHMoKSBjb25zdDsKIAotICAgIGJvb2wgaXNUaHJvdHRsaW5nTGF5
ZXJGbHVzaGVzKCkgY29uc3Q7Ci0gICAgdm9pZCBzdGFydEluaXRpYWxMYXllckZsdXNoVGltZXJJ
Zk5lZWRlZCgpOwotICAgIHZvaWQgc3RhcnRMYXllckZsdXNoVGltZXJJZk5lZWRlZCgpOwotICAg
IHZvaWQgbGF5ZXJGbHVzaFRpbWVyRmlyZWQoKTsKLQogI2lmICFMT0dfRElTQUJMRUQKICAgICBj
b25zdCBjaGFyKiBsb2dSZWFzb25zRm9yQ29tcG9zaXRpbmcoY29uc3QgUmVuZGVyTGF5ZXImKTsK
ICAgICB2b2lkIGxvZ0xheWVySW5mbyhjb25zdCBSZW5kZXJMYXllciYsIGNvbnN0IGNoYXIqLCBp
bnQgZGVwdGgpOwpAQCAtNjI0LDExICs2MTYsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXJVcGRhdGVyPiBtX2xheWVyVXBkYXRlcjsgLy8gVXBkYXRlcyB0
aWxlZCBsYXllciB2aXNpYmxlIGFyZWEgcGVyaW9kaWNhbGx5IHdoaWxlIGFuaW1hdGlvbnMgYXJl
IHJ1bm5pbmcuCiAKLSAgICBUaW1lciBtX2xheWVyRmx1c2hUaW1lcjsKLQotICAgIGJvb2wgbV9s
YXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9sYXllckZs
dXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2hhc1BlbmRpbmdMYXllckZsdXNoIHsgZmFsc2UgfTsKICAgICBib29sIG1f
dmlld0JhY2tncm91bmRJc1RyYW5zcGFyZW50IHsgZmFsc2UgfTsKIAogI2lmICFMT0dfRElTQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ZjUwN2E0OWI0Yy4uNjY5YzZjOWQ4
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0w
Mi0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9zaXRvcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MTM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX3NjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9yUGVuZGluZ1Rp
bGVDYWNoZVJlcGFpbnRdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVMYXllckZsdXNo
Rm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnRdKTogRGVsZXRlZC4KKwogMjAyMC0wMi0yMiAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNvbWUgaW5jbHVkZSBt
aXN0YWtlcyBhbmQgbWFrZSBzb21lIGNvZGluZyBzdHlsZSB0d2Vha3MgdG8gV2ViS2l0IGFuZCBX
ZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KaW5kZXggNDM1NWY3MjAzYTYuLjBlZDYzZjVmNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC05MzEwLDExICs5MzEwLDExIEBAIC0gKEJPT0wp
X2ZsdXNoQ29tcG9zaXRpbmdDaGFuZ2VzCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
LSAodm9pZClfc2NoZWR1bGVMYXllckZsdXNoRm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnQKKy0g
KHZvaWQpX3NjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnQK
IHsKICAgICBhdXRvKiBjb3JlRnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVGcmFtZV07CiAgICAgaWYg
KGF1dG8qIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKSkKLSAgICAgICAgdmlldy0+c2NoZWR1bGVM
YXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKCk7CisgICAgICAgIHZpZXctPnNjaGVkdWxlTGF5
ZXJGbHVzaCgpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391541</attachid>
            <date>2020-02-24 07:56:59 -0800</date>
            <delta_ts>2020-02-24 08:08:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remove-compositor-throttling-2.patch</filename>
            <type>text/plain</type>
            <size>27558</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDE0YWI4OTk5ZC4uYTQwZWQ3YjM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMC0wMi0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQg
aXMgb25seSB1c2VkIG9uIFdLMSwgYWRkcyBsb3RzIG9mIGNvbXBsZXhpdHkgYW5kIGlzIG5vdCB2
ZXJ5IGVmZmVjdGl2ZSBvciBjb3JyZWN0LgorCisgICAgICAgIEFsc28gZG8gc29tZSAibGF5ZXIg
Zmx1c2giIC0+ICJyZW5kZXJpbmcgdXBkYXRlIiByZW5hbWluZy4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZU92ZXJsYXlDb250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvbWFjL1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNhblRocm90
dGxlTGF5ZXJGbHVzaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNsaWVudDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zy
b21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdSZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmZsdXNoTGF5ZXJzU29vbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRM
YXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jh
cmlseUZvckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRMYXllckZsdXNo
VGltZXJJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJGbHVzaFRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKwogMjAyMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV1BFXSBBZGQgR3N0R0xNZW1vcnlFR0wgc3VwcG9y
dCBmb3IgdGhlIHZpZGVvLXBsYW5lLWRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA5NWY1Yjk1YjFmNC4uODgxYzNlZTE2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEwMTgsMTIgKzEwMTgsMTIgQEAgR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpncmFw
aGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm0KICAgICBy
ZXR1cm4gd2lkZ2V0TGF5ZXItPmJhY2tpbmcoKS0+cGFyZW50Rm9yU3VibGF5ZXJzKCk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKQor
dm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBSZW5kZXJW
aWV3KiB2aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwotICAgIHZpZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVsZUxheWVyRmx1c2godHJ1ZSAv
KiBjYW5UaHJvdHRsZSAqLyk7CisgICAgdmlldy0+Y29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKDsKIH0KIAogTGF5b3V0UmVjdCBGcmFtZVZpZXc6OmZpeGVkU2Nyb2xsYWJsZUFy
ZWFCb3VuZHNJbmZsYXRlZEZvclNjcm9sbGluZyhjb25zdCBMYXlvdXRSZWN0JiB1bmluZmxhdGVk
Qm91bmRzKSBjb25zdApAQCAtMjg0NSwxMSArMjg0NSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpkaXNh
YmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCkKIAogICAg
IGF1dG8gZmxhZ3MgPSBkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0bGVTdGF0ZShwYWdlKTsKICAg
ICBmbGFncy5hZGQoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6VXNlcklzSW50ZXJhY3Rp
bmcpOwotICAgIGlmIChwYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkanVzdFJlbmRlcmluZ1VwZGF0
ZVRocm90dGxpbmcoZmxhZ3MpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoUmVuZGVyVmll
dyogdmlldyA9IHJlbmRlclZpZXcoKSkKLSAgICAgICAgdmlldy0+Y29tcG9zaXRvcigpLmRpc2Fi
bGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKTsKKyAgICBw
YWdlLmNocm9tZSgpLmNsaWVudCgpLmFkanVzdFJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmcoZmxh
Z3MpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6bG9hZFByb2dyZXNzaW5nU3RhdHVzQ2hhbmdlZCgp
CkBAIC0yODcwLDE0ICsyODY2LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hU
aHJvdHRsaW5nKCkKIAogICAgIGF1dG8gZmxhZ3MgPSBkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0
bGVTdGF0ZSgqcGFnZSk7CiAKLSAgICAvLyBTZWUgaWYgdGhlIGNsaWVudCBpcyBoYW5kbGluZyB0
aHJvdHRsaW5nLgotICAgIGlmIChwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJp
bmdVcGRhdGVUaHJvdHRsaW5nKGZsYWdzKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChh
dXRvKiBmcmFtZSA9IG1fZnJhbWUucHRyKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCku
dHJhdmVyc2VOZXh0KG1fZnJhbWUucHRyKCkpKSB7Ci0gICAgICAgIGlmIChSZW5kZXJWaWV3KiBy
ZW5kZXJWaWV3ID0gZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVy
Vmlldy0+Y29tcG9zaXRvcigpLnNldExheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZChmbGFncy5j
b250YWlucyhSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpFbmFibGVkKSk7Ci0gICAgfQor
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmFkanVzdFJlbmRlcmluZ1VwZGF0ZVRocm90dGxp
bmcoZmxhZ3MpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6YWRqdXN0VGlsZWRCYWNraW5nQ292ZXJh
Z2UoKQpAQCAtNTMwOCw3ICs1Mjk3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFZpZXdFeHBvc2Vk
UmVjdChPcHRpb25hbDxGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkKICAgICB9CiAKICAgICBp
ZiAoYXV0byogdmlldyA9IHJlbmRlclZpZXcoKSkKLSAgICAgICAgdmlldy0+Y29tcG9zaXRvcigp
LnNjaGVkdWxlTGF5ZXJGbHVzaChmYWxzZSAvKiBjYW5UaHJvdHRsZSAqLyk7CisgICAgICAgIHZp
ZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogCiAgICAgaWYgKGF1
dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkKICAgICAgICAgcGFnZS0+cGFnZU92ZXJsYXlDb250
cm9sbGVyKCkuZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAppbmRleCA3ODUzZjY2ZjZhNy4uMWRlYWNjYzM5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aApAQCAtMTQ3LDcgKzE0Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb24oKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXJGb3JQbGF0Zm9ybVdpZGdldChQbGF0Zm9ybVdpZGdldCk7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmco
KTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAppbmRl
eCA0ODEwMmE1NzIyOC4uODNmNGQ0ZTU2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTQxMCw3ICs0MTAsNyBAQCBmbG9hdCBQYWdlT3Zl
cmxheUNvbnRyb2xsZXI6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICByZXR1cm4gbV9w
YWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVy
Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBQYWdlT3Zl
cmxheUNvbnRyb2xsZXI6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKQogewogICAgIG1fcGFnZS5yZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIoKS5zY2hl
ZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCA2MDYyODUzZTg0OC4uNGY0Mzk0YWQ0MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtOTIsNyArOTIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVy
UG9zaXRpb25VcGRhdGVzKCk7CiAKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50Ci0gICAgdm9p
ZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAg
ICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJlY3QsIEdyYXBoaWNzTGF5
ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcigp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkU2tpcExheWVySW5EdW1wKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Qgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
LmgKaW5kZXggZjRlNGI1ZWUyODkuLjYzNWY1ZGY4NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCkBAIC04MSw3ICs4MSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIEhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
JiwgVHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsKIAogICAg
ICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50Ci0gICAgICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgbm90aWZ5
UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwog
ICAgICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgaW5DbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhh
dmlvcikgb3ZlcnJpZGU7CiAgICAgICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IGQ2OGUzNWJkYTQzLi4xM2UyMTU3N2YzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
Lm1tCkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpI
aWdobGlnaHQ6OmludmFsaWRhdGUoKQogICAgIG1fY29udHJvbGxlciA9IG51bGxwdHI7CiB9CiAK
LXZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKQogewogICAgIGlmICghbV9jb250cm9sbGVyKQogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5k
ZXggMDRlMTNlNzUwYmUuLmI4ZDQ5ZmQ0YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC02MDksOCArNjA5LDYgQEAgcHVibGlj
OgogCiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIAotICAgIHZpcnR1YWwgYm9v
bCBjYW5UaHJvdHRsZUxheWVyRmx1c2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotCiAgICAg
dmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllckNBKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0FSZW1vdGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCA3OWEzZjUzOTYzYi4u
ZTRkZGY1MzIzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgYSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VkIHRoYXQgcmVx
dWlyZXMgYSBzdWJzZXF1ZW50IGNhbGwgdG8gZmx1c2hDb21wb3NpdGluZ1N0YXRlKCkKICAgICAv
LyB0byBhcHBlYXIgb24gdGhlIHNjcmVlbi4KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hS
ZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KICAgICAK
ICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGlzIGxheWVyIHJlcXVpcmVzIGEgZmx1c2ggYmVm
b3JlIHRoZSBuZXh0IGRpc3BsYXkgcmVmcmVzaC4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1
c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcAppbmRleCBlMDYzYWFkYTRkMC4uODRlOWJmYjRjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAt
NDE5OSwxMiArNDE5OSw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpub3RlU3VibGF5ZXJzQ2hh
bmdlZChTY2hlZHVsZUZsdXNoT3JOb3Qgc2NoZWR1bGVGbHVzaCkKICAgICBwcm9wYWdhdGVMYXll
ckNoYW5nZVRvUmVwbGljYXMoc2NoZWR1bGVGbHVzaCk7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXll
ckNBOjpjYW5UaHJvdHRsZUxheWVyRmx1c2goKSBjb25zdAotewotICAgIC8vIFRpbGUgbGF5ZXJz
IGFyZSBjdXJyZW50bHkgcGxhaW4gQ0EgbGF5ZXJzLCBhdHRhY2hlZCBkaXJlY3RseSBieSBUaWxl
Q29udHJvbGxlci4gVGhleSByZXF1aXJlIGltbWVkaWF0ZSBmbHVzaCBhcyB0aGV5IG1heSBjb250
YWluIGdhcmJhZ2UuCi0gICAgcmV0dXJuICEobV91bmNvbW1pdHRlZENoYW5nZXMgJiBUaWxlc0Fk
ZGVkKTsKLX0KLQogdm9pZCBHcmFwaGljc0xheWVyQ0E6OmFkZFVuY29tbWl0dGVkQ2hhbmdlcyhM
YXllckNoYW5nZUZsYWdzIGZsYWdzKQogewogICAgIG1fdW5jb21taXR0ZWRDaGFuZ2VzIHw9IGZs
YWdzOwpAQCAtNDIzMiwxNCArNDIyNiwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bm90ZUxh
eWVyUHJvcGVydHlDaGFuZ2VkKExheWVyQ2hhbmdlRmxhZ3MgZmxhZ3MsIFNjaGVkdWxlRgogICAg
ICAgICByZXR1cm47CiAKICAgICBib29sIGhhZFVuY29tbWl0dGVkQ2hhbmdlcyA9ICEhbV91bmNv
bW1pdHRlZENoYW5nZXM7Ci0gICAgYm9vbCBvbGRDYW5UaHJvdHRsZUxheWVyRmx1c2ggPSBjYW5U
aHJvdHRsZUxheWVyRmx1c2goKTsKIAogICAgIGFkZFVuY29tbWl0dGVkQ2hhbmdlcyhmbGFncyk7
CiAKICAgICBpZiAoc2NoZWR1bGVGbHVzaCA9PSBTY2hlZHVsZUZsdXNoKSB7Ci0gICAgICAgIGJv
b2wgbmVlZHNGbHVzaCA9ICFoYWRVbmNvbW1pdHRlZENoYW5nZXMgfHwgb2xkQ2FuVGhyb3R0bGVM
YXllckZsdXNoICE9IGNhblRocm90dGxlTGF5ZXJGbHVzaCgpOworICAgICAgICBib29sIG5lZWRz
Rmx1c2ggPSAhaGFkVW5jb21taXR0ZWRDaGFuZ2VzOwogICAgICAgICBpZiAobmVlZHNGbHVzaCkK
LSAgICAgICAgICAgIGNsaWVudCgpLm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgICAg
ICAgICBjbGllbnQoKS5ub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCh0aGlzKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmgKaW5kZXggNjliMWZhZDFhNzIuLjAzZDVlMmNiOGYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aApAQCAtMjk3LDggKzI5Nyw2IEBAIHByaXZhdGU6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFJlcGxpY2F0ZWRCeUxheWVyKFJlZlB0cjxHcmFwaGljc0xheWVyPiYmKSBvdmVycmlkZTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FuVGhyb3R0bGVMYXllckZsdXNoKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldERlYnVnQm9yZGVySW5mbyhD
b2xvciYsIGZsb2F0JiB3aWR0aCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoV1RGOjpUZXh0U3RyZWFtJiwgTGF5ZXJUcmVl
QXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgKaW5kZXggMmUyMWUwZGUyOTIuLmNlYzQyMDg2YzI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCkBA
IC0xNzAsNyArMTcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkanVzdFRpbGVHcmlkVHJhbnNm
b3JtcygpOwogICAgIHZvaWQgcmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzSW50ZXJuYWwoKTsKICAg
ICB2b2lkIGNyZWF0ZVRpbGVzSW5BY3RpdmVHcmlkKFN5bmNocm9ub3VzVGlsZUNyZWF0aW9uTW9k
ZSk7Ci0gICAgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nUmVwYWludCgpOworICAg
IHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nUmVwYWludCgpOwogCiAgICAg
dm9pZCB0aWxlQ3JlYXRpb25UaW1lckZpcmVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCmluZGV4IGE2ZTQ2NmU2NTEzLi5iM2EyMDI3NGQx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNo
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1t
CkBAIC00OCw3ICs0OCw3IEBAIC0gKHZvaWQpX2Rpc3BhdGNoVGlsZURpZERyYXc6KENBTGF5ZXIq
KXRpbGU7CiAtICh2b2lkKV93aWxsU3RhcnRTY3JvbGxpbmdPclpvb21pbmc7CiAtICh2b2lkKV9k
aWRGaW5pc2hTY3JvbGxpbmdPclpvb21pbmc7CiAtICh2b2lkKV9kaXNwYXRjaFRpbGVEaWREcmF3
OwotLSAodm9pZClfc2NoZWR1bGVMYXllckZsdXNoRm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnQ7
CistICh2b2lkKV9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdUaWxlQ2FjaGVSZXBh
aW50OwogQGVuZAogCiBAaW50ZXJmYWNlIExlZ2FjeVRpbGVDYWNoZVRvbWJzdG9uZSA6IE5TT2Jq
ZWN0IHsKQEAgLTYwOSwxMCArNjA5LDEwIEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXROZWVk
c0Rpc3BsYXkoKQogICAgIHNldE5lZWRzRGlzcGxheUluUmVjdChJbnRSZWN0KDAsIDAsIHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4
KCkpKTsKIH0KIAotdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVzaEZvclBl
bmRpbmdSZXBhaW50KCkKK3ZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZVJlbmRlcmluZ1Vw
ZGF0ZUZvclBlbmRpbmdSZXBhaW50KCkKIHsKICAgICBXQUtWaWV3KiB2aWV3ID0gW21fd2luZG93
IGNvbnRlbnRWaWV3XTsKLSAgICBbdmlldyBfc2NoZWR1bGVMYXllckZsdXNoRm9yUGVuZGluZ1Rp
bGVDYWNoZVJlcGFpbnRdOworICAgIFt2aWV3IF9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBl
bmRpbmdUaWxlQ2FjaGVSZXBhaW50XTsKIH0KIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5l
ZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCkBAIC02MjMsNyArNjIz
LDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpCiAgICAgaWYgKCFhZGRlZEZpcnN0UmVjdCkKICAgICAgICAgcmV0
dXJuOwogICAgIC8vIENvbXBvc2l0aW5nIGxheWVyIGZsdXNoIHdpbGwgY2FsbCBiYWNrIHRvIGRv
UGVuZGluZ1JlcGFpbnRzKCkuIFRoZSBmbHVzaCBtYXkgYmUgdGhyb3R0bGVkIGFuZCBub3QgaGFw
cGVuIGltbWVkaWF0ZWx5LgotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdSZXBhaW50
KCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nUmVwYWludCgpOwogfQog
CiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6aW52YWxpZGF0ZVRpbGVzKGNvbnN0IEludFJlY3QmIGRp
cnR5UmVjdCkKQEAgLTY5Myw3ICs2OTMsNyBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6dXBkYXRl
VGlsaW5nTW9kZSgpCiAgICAgICAgIGNyZWF0ZVRpbGVzSW5BY3RpdmVHcmlkKENvdmVyVmlzaWJs
ZU9ubHkpOwogCiAgICAgICAgIGlmICghbV9zYXZlZERpc3BsYXlSZWN0cy5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nUmVwYWludCgpOworICAgICAg
ICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nUmVwYWludCgpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAppbmRleCAxZWY0ZWZhMzQyYy4uZjBiNThhOTk4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zNDAwLDExICszNDAwLDExIEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpCiAgICAgcmVuZGVyZXIoKS5hbmltYXRpb24oKS5ub3Rp
ZnlBbmltYXRpb25TdGFydGVkKHJlbmRlcmVyKCksIHRpbWUpOwogfQogCi12b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKiBsYXll
cikKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAocmVuZGVyZXIoKS5yZW5kZXJUcmVl
QmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNvbXBvc2l0b3IoKS5zY2hl
ZHVsZUxheWVyRmx1c2gobGF5ZXItPmNhblRocm90dGxlTGF5ZXJGbHVzaCgpKTsKKyAgICBjb21w
b3NpdG9yKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6Om5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NM
YXllciogbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKaW5kZXggMGZiYjY2YTNmMmEuLjA0M2NmMjE1Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVi
bGljOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW50ZXJmYWNlCiAgICAgdm9pZCB0aWxl
ZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGJvb2wgLyp1c2luZ1Rp
bGVkQmFja2luZyovKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBNb25vdG9u
aWNUaW1lIHN0YXJ0VGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIG5vdGlmeVJlbmRlcmlu
Z1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lk
IG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXAsIEdyYXBoaWNzTGF5ZXJQYWlu
dEJlaGF2aW9yKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMGYzODYwOTJkN2IuLjZkZmQzMjg3MzBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcApAQCAtMTAwLDE0ICsxMDAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgIVVTRShD
T01QT1NJVElOR19GT1JfU01BTExfQ0FOVkFTRVMpCiBzdGF0aWMgY29uc3QgaW50IGNhbnZhc0Fy
ZWFUaHJlc2hvbGRSZXF1aXJpbmdDb21wb3NpdGluZyA9IDUwICogMTAwOwogI2VuZGlmCi0vLyBE
dXJpbmcgcGFnZSBsb2FkaW5nIGRlbGF5IGxheWVyIGZsdXNoZXMgdXAgdG8gdGhpcyBtYW55IHNl
Y29uZHMgdG8gYWxsb3cgdGhlbSBjb2FsZXNjZSwgcmVkdWNpbmcgd29ya2xvYWQuCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHRocm90dGxlZExheWVyRmx1
c2hJbml0aWFsRGVsYXkgeyA1MDBfbXMgfTsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHRocm90dGxl
ZExheWVyRmx1c2hEZWxheSB7IDEuNV9zIH07Ci0jZWxzZQotc3RhdGljIGNvbnN0IFNlY29uZHMg
dGhyb3R0bGVkTGF5ZXJGbHVzaEluaXRpYWxEZWxheSB7IDUwMF9tcyB9Owotc3RhdGljIGNvbnN0
IFNlY29uZHMgdGhyb3R0bGVkTGF5ZXJGbHVzaERlbGF5IHsgNTAwX21zIH07Ci0jZW5kaWYKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIApAQCAtMzE0LDcgKzMwNiw2IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBsYXllcnNMb2dFbmFibGVkKCkKIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCiAgICAgOiBtX3JlbmRl
clZpZXcocmVuZGVyVmlldykKICAgICAsIG1fdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lcigq
dGhpcywgJlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1l
ckZpcmVkKQotICAgICwgbV9sYXllckZsdXNoVGltZXIoKnRoaXMsICZSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmxheWVyRmx1c2hUaW1lckZpcmVkKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5wbGF0Zm9ybVdpZGdldCgpKQpAQCAt
NDc2LDI0ICs0NjcsMTYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmN1c3RvbVBvc2l0
aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbihjb25zdCBHcmFwaGkKICAgICBwb3NpdGlvbiA9
IC1zY3JvbGxQb3NpdGlvbjsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlm
eUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopCiB7Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKGxheWVyLT5jYW5UaHJvdHRsZUxh
eWVyRmx1c2goKSk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAotdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnNjaGVkdWxlTGF5ZXJGbHVzaChib29sIGNhblRocm90dGxl
KQordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkK
IHsKICAgICBBU1NFUlQoIW1fZmx1c2hpbmdMYXllcnMpOwogCi0gICAgaWYgKGNhblRocm90dGxl
KQotICAgICAgICBzdGFydEluaXRpYWxMYXllckZsdXNoVGltZXJJZk5lZWRlZCgpOwotCi0gICAg
aWYgKGNhblRocm90dGxlICYmIGlzVGhyb3R0bGluZ0xheWVyRmx1c2hlcygpKQotICAgICAgICBt
X2hhc1BlbmRpbmdMYXllckZsdXNoID0gdHJ1ZTsKLSAgICBlbHNlIHsKLSAgICAgICAgbV9oYXNQ
ZW5kaW5nTGF5ZXJGbHVzaCA9IGZhbHNlOwotICAgICAgICBwYWdlKCkucmVuZGVyaW5nVXBkYXRl
U2NoZWR1bGVyKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKLSAgICB9CisgICAgcGFnZSgp
LnJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9
CiAKIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJG
bHVzaGluZygpIGNvbnN0CkBAIC01MjIsOSArNTA1LDYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhib29sIGlzRmx1c2hSb290KQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAocm9vdExheWVyQXR0YWNobWVudCgpID09IFJvb3RMYXllclVu
YXR0YWNoZWQpIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBzdGFydExheWVy
Rmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0jZW5kaWYKICAgICAgICAgbV9zaG91bGRGbHVzaE9uUmVh
dHRhY2ggPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTYwLDcgKzU0MCw2IEBA
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9v
bCBpc0ZsdXNoUm9vdCkKICNlbmRpZgogCiAgICAgKyttX2xheWVyRmx1c2hDb3VudDsKLSAgICBz
dGFydExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpAQCAtNjI4LDcgKzYwNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRD
aGFuZ2VWaXNpYmxlUmVjdCgpCiAgICAgYm9vbCByZXF1aXJlc0ZsdXNoID0gcm9vdExheWVyLT52
aXNpYmxlUmVjdENoYW5nZVJlcXVpcmVzRmx1c2godmlzaWJsZVJlY3QpOwogICAgIExPR19XSVRI
X1NUUkVBTShDb21wb3NpdGluZywgc3RyZWFtIDw8ICJSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRp
ZENoYW5nZVZpc2libGVSZWN0ICIgPDwgdmlzaWJsZVJlY3QgPDwgIiByZXF1aXJlc0ZsdXNoICIg
PDwgcmVxdWlyZXNGbHVzaCk7CiAgICAgaWYgKHJlcXVpcmVzRmx1c2gpCi0gICAgICAgIHNjaGVk
dWxlTGF5ZXJGbHVzaCgpOworICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQog
CiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVm
cmVzaChjb25zdCBHcmFwaGljc0xheWVyKikKQEAgLTY0Myw3ICs2MjIsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6bm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBH
cmFwaGljc0xheWVyKgogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Zmx1c2hMYXllcnNT
b29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyJikKIHsKLSAgICBzY2hlZHVsZUxheWVyRmx1c2godHJ1
ZSk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmxheWVyVGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIGJvb2wgdXNpbmdUaWxlZEJhY2tpbmcpCkBAIC0yMDc3LDcg
KzIwNTYsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVWaWV3RGlkU2Nyb2xs
KCkKICAgICAvLyBpdCB3aWxsIGFsc28gbWFuYWdlIHVwZGF0aW5nIHRoZSBzY3JvbGwgbGF5ZXIg
cG9zaXRpb24uCiAgICAgaWYgKGhhc0Nvb3JkaW5hdGVkU2Nyb2xsaW5nKCkpIHsKICAgICAgICAg
Ly8gV2UgaGF2ZSB0byBzY2hlZHVsZSBhIGZsdXNoIGluIG9yZGVyIGZvciB0aGUgbWFpbiBUaWxl
ZEJhY2tpbmcgdG8gdXBkYXRlIGl0cyB0aWxlIGNvdmVyYWdlLgotICAgICAgICBzY2hlZHVsZUxh
eWVyRmx1c2goKTsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMzkzNSw3ICszOTE0LDcgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcigpCiAgICAgICAgICAgICB1cGRhdGVPdmVyZmxvd0Nv
bnRyb2xzTGF5ZXJzKCk7CiAKICAgICAgICAgICAgIGlmIChoYXNDb29yZGluYXRlZFNjcm9sbGlu
ZygpKQotICAgICAgICAgICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCh0cnVlKTsKKyAgICAgICAg
ICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIHVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb24oKTsKICAgICAgICAgfQpAQCAt
NDAyOCw3ICs0MDA3LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RM
YXllcihSb290TGF5ZXJBdHRhY2htZW50IGF0dGFjaG1lbnQpCiAgICAgcm9vdExheWVyQXR0YWNo
bWVudENoYW5nZWQoKTsKICAgICAKICAgICBpZiAobV9zaG91bGRGbHVzaE9uUmVhdHRhY2gpIHsK
LSAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlKCk7CiAgICAgICAgIG1fc2hvdWxkRmx1c2hPblJlYXR0YWNoID0gZmFsc2U7CiAgICAg
fQogfQpAQCAtNDcwMiw2MCArNDY4MSw2IEBAIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4g
cGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCk7CiB9CiAKLXZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQotewotICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkID0gZW5h
YmxlZDsKLSAgICBpZiAobV9sYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpCi0gICAgICAgIHJl
dHVybjsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdG9wKCk7Ci0gICAgaWYgKCFtX2hhc1BlbmRp
bmdMYXllckZsdXNoKQotICAgICAgICByZXR1cm47Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKCk7
Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90
dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCkKLXsKLSAgICBpZiAobV9sYXllckZsdXNo
VGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbikKLSAgICAgICAgcmV0
dXJuOwotICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50
ZXJhY3Rpb24gPSB0cnVlOwotfQotCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aXNUaHJv
dHRsaW5nTGF5ZXJGbHVzaGVzKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fbGF5ZXJGbHVzaFRocm90
dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFtX2xheWVyRmx1
c2hUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fbGF5
ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24pCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnN0YXJ0TGF5ZXJGbHVzaFRpbWVySWZOZWVkZWQoKQotewotICAgIG1fbGF5
ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxz
ZTsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdG9wKCk7Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hU
aHJvdHRsaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbGF5ZXJGbHVzaFRpbWVy
LnN0YXJ0T25lU2hvdCh0aHJvdHRsZWRMYXllckZsdXNoRGVsYXkpOwotfQotCi12b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6c3RhcnRJbml0aWFsTGF5ZXJGbHVzaFRpbWVySWZOZWVkZWQoKQot
ewotICAgIGlmICghbV9sYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpCi0gICAgICAgIHJldHVy
bjsKLSAgICBpZiAobV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJu
OwotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hvdCh0aHJvdHRsZWRMYXllckZsdXNo
SW5pdGlhbERlbGF5KTsKLX0KLQotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyRmx1
c2hUaW1lckZpcmVkKCkKLXsKLSAgICBpZiAoIW1faGFzUGVuZGluZ0xheWVyRmx1c2gpCi0gICAg
ICAgIHJldHVybjsKLSAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKLX0KLQogI2lmIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiBSZWZQdHI8RGlzcGxheVJlZnJl
c2hNb25pdG9yPiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggMDc4Zjc5YmFk
MDIuLmM0OTExN2FhN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCkBAIC0xNzksNyArMTc5LDcgQEAgcHVibGljOgogCiAgICAgLy8g
R3JhcGhpY3NMYXllcnMgYnVmZmVyIHN0YXRlLCB3aGljaCBnZXRzIHB1c2hlZCB0byB0aGUgdW5k
ZXJseWluZyBwbGF0Zm9ybSBsYXllcnMKICAgICAvLyBhdCBzcGVjaWZpYyB0aW1lcy4KLSAgICB2
b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaChib29sIGNhblRocm90dGxlID0gZmFsc2UpOworICAgIHZv
aWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICB2b2lkIGZsdXNoUGVuZGluZ0xheWVy
Q2hhbmdlcyhib29sIGlzRmx1c2hSb290ID0gdHJ1ZSk7CiAKICAgICAvLyBDYWxsZWQgd2hlbiB0
aGUgR3JhcGhpY3NMYXllciBmb3IgdGhlIGdpdmVuIFJlbmRlckxheWVyIGhhcyBmbHVzaGVkIGNo
YW5nZXMgaW5zaWRlIG9mIGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpLgpAQCAtMzY1LDkgKzM2
NSw2IEBAIHB1YmxpYzoKICAgICBib29sIGhhc05vbk1haW5MYXllcnNXaXRoVGlsZWRCYWNraW5n
KCkgY29uc3QgeyByZXR1cm4gbV9sYXllcnNXaXRoVGlsZWRCYWNraW5nQ291bnQ7IH0KIAogICAg
IE9wdGlvblNldDxDb21wb3NpdGluZ1JlYXNvbj4gcmVhc29uc0ZvckNvbXBvc2l0aW5nKGNvbnN0
IFJlbmRlckxheWVyJikgY29uc3Q7Ci0KLSAgICB2b2lkIHNldExheWVyRmx1c2hUaHJvdHRsaW5n
RW5hYmxlZChib29sKTsKLSAgICB2b2lkIGRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBv
cmFyaWx5Rm9ySW50ZXJhY3Rpb24oKTsKICAgICAKICAgICB2b2lkIGRpZFBhaW50QmFja2luZyhS
ZW5kZXJMYXllckJhY2tpbmcqKTsKIApAQCAtMzk2LDcgKzM5Myw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCB1cGRhdGVDb21wb3NpdGluZ1BvbGljeSgpOwogICAgIAogICAgIC8vIEdyYXBoaWNzTGF5
ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KLSAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgcGFp
bnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZv
aWQgY3VzdG9tUG9zaXRpb25Gb3JWaXNpYmxlUmVjdENvbXB1dGF0aW9uKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBGbG9hdFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1RyYWNraW5n
UmVwYWludHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzVHJhY2tpbmdSZXBhaW50czsg
fQpAQCAtNTU3LDExICs1NTQsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRDb21wb3Np
dGVPdmVyZmxvd0NvbnRyb2xzKCkgY29uc3Q7CiAKLSAgICBib29sIGlzVGhyb3R0bGluZ0xheWVy
Rmx1c2hlcygpIGNvbnN0OwotICAgIHZvaWQgc3RhcnRJbml0aWFsTGF5ZXJGbHVzaFRpbWVySWZO
ZWVkZWQoKTsKLSAgICB2b2lkIHN0YXJ0TGF5ZXJGbHVzaFRpbWVySWZOZWVkZWQoKTsKLSAgICB2
b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKCk7Ci0KICNpZiAhTE9HX0RJU0FCTEVECiAgICAgY29u
c3QgY2hhciogbG9nUmVhc29uc0ZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxheWVyJik7CiAg
ICAgdm9pZCBsb2dMYXllckluZm8oY29uc3QgUmVuZGVyTGF5ZXImLCBjb25zdCBjaGFyKiwgaW50
IGRlcHRoKTsKQEAgLTYyNCwxMSArNjE2LDYgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxHcmFwaGljc0xheWVyVXBkYXRlcj4gbV9sYXllclVwZGF0ZXI7IC8vIFVwZGF0ZXMgdGls
ZWQgbGF5ZXIgdmlzaWJsZSBhcmVhIHBlcmlvZGljYWxseSB3aGlsZSBhbmltYXRpb25zIGFyZSBy
dW5uaW5nLgogCi0gICAgVGltZXIgbV9sYXllckZsdXNoVGltZXI7Ci0KLSAgICBib29sIG1fbGF5
ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbGF5ZXJGbHVz
aFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24geyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Zp
ZXdCYWNrZ3JvdW5kSXNUcmFuc3BhcmVudCB7IGZhbHNlIH07CiAKICNpZiAhTE9HX0RJU0FCTEVE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOGY1MDdhNDliNGMuLjY2OWM2YzlkODI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDIt
MjQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0
aHJvdHRsaW5nIGNvZGUgZnJvbSBSZW5kZXJMYXllckNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODEzNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdUaWxl
Q2FjaGVSZXBhaW50XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NjaGVkdWxlTGF5ZXJGbHVzaEZv
clBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50XSk6IERlbGV0ZWQuCisKIDIwMjAtMDItMjIgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzb21lIGluY2x1ZGUgbWlz
dGFrZXMgYW5kIG1ha2Ugc29tZSBjb2Rpbmcgc3R5bGUgdHdlYWtzIHRvIFdlYktpdCBhbmQgV2Vi
S2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDQzNTVmNzIwM2E2Li5jMGMyNmU3NGIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtOTMxMCwxMSArOTMxMCwxMSBAQCAtIChCT09MKV9m
bHVzaENvbXBvc2l0aW5nQ2hhbmdlcwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLS0g
KHZvaWQpX3NjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CistICh2
b2lkKV9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CiB7
CiAgICAgYXV0byogY29yZUZyYW1lID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOwogICAgIGlmIChh
dXRvKiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCkpCi0gICAgICAgIHZpZXctPnNjaGVkdWxlTGF5
ZXJGbHVzaEFsbG93aW5nVGhyb3R0bGluZygpOworICAgICAgICB2aWV3LT5zY2hlZHVsZVJlbmRl
cmluZ1VwZGF0ZSgpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391543</attachid>
            <date>2020-02-24 08:08:16 -0800</date>
            <delta_ts>2020-02-25 00:26:10 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remove-compositor-throttling-3.patch</filename>
            <type>text/plain</type>
            <size>27559</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDE0YWI4OTk5ZC4uYTQwZWQ3YjM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMC0wMi0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQg
aXMgb25seSB1c2VkIG9uIFdLMSwgYWRkcyBsb3RzIG9mIGNvbXBsZXhpdHkgYW5kIGlzIG5vdCB2
ZXJ5IGVmZmVjdGl2ZSBvciBjb3JyZWN0LgorCisgICAgICAgIEFsc28gZG8gc29tZSAibGF5ZXIg
Zmx1c2giIC0+ICJyZW5kZXJpbmcgdXBkYXRlIiByZW5hbWluZy4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZU92ZXJsYXlDb250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvbWFjL1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNhblRocm90
dGxlTGF5ZXJGbHVzaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNsaWVudDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zy
b21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdSZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmZsdXNoTGF5ZXJzU29vbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRM
YXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jh
cmlseUZvckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRMYXllckZsdXNo
VGltZXJJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJGbHVzaFRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKwogMjAyMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV1BFXSBBZGQgR3N0R0xNZW1vcnlFR0wgc3VwcG9y
dCBmb3IgdGhlIHZpZGVvLXBsYW5lLWRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA5NWY1Yjk1YjFmNC4uZDVmOTcwYjE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEwMTgsMTIgKzEwMTgsMTIgQEAgR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpncmFw
aGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm0KICAgICBy
ZXR1cm4gd2lkZ2V0TGF5ZXItPmJhY2tpbmcoKS0+cGFyZW50Rm9yU3VibGF5ZXJzKCk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKQor
dm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBSZW5kZXJW
aWV3KiB2aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwotICAgIHZpZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVsZUxheWVyRmx1c2godHJ1ZSAv
KiBjYW5UaHJvdHRsZSAqLyk7CisgICAgdmlldy0+Y29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKCk7CiB9CiAKIExheW91dFJlY3QgRnJhbWVWaWV3OjpmaXhlZFNjcm9sbGFibGVB
cmVhQm91bmRzSW5mbGF0ZWRGb3JTY3JvbGxpbmcoY29uc3QgTGF5b3V0UmVjdCYgdW5pbmZsYXRl
ZEJvdW5kcykgY29uc3QKQEAgLTI4NDUsMTEgKzI4NDUsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZGlz
YWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpCiAKICAg
ICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUocGFnZSk7CiAg
ICAgZmxhZ3MuYWRkKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0
aW5nKTsKLSAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRh
dGVUaHJvdHRsaW5nKGZsYWdzKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFJlbmRlclZp
ZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3IoKS5kaXNh
YmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CisgICAg
cGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZs
YWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmxvYWRQcm9ncmVzc2luZ1N0YXR1c0NoYW5nZWQo
KQpAQCAtMjg3MCwxNCArMjg2Niw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNo
VGhyb3R0bGluZygpCiAKICAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUoKnBhZ2UpOwogCi0gICAgLy8gU2VlIGlmIHRoZSBjbGllbnQgaXMgaGFuZGxpbmcg
dGhyb3R0bGluZy4KLSAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGluZyhmbGFncykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAo
YXV0byogZnJhbWUgPSBtX2ZyYW1lLnB0cigpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChtX2ZyYW1lLnB0cigpKSkgewotICAgICAgICBpZiAoUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoZmxhZ3Mu
Y29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCkpOwotICAgIH0K
KyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRs
aW5nKGZsYWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmFkanVzdFRpbGVkQmFja2luZ0NvdmVy
YWdlKCkKQEAgLTUzMDgsNyArNTI5Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3Nl
ZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgfQogCiAgICAg
aWYgKGF1dG8qIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3Io
KS5zY2hlZHVsZUxheWVyRmx1c2goZmFsc2UgLyogY2FuVGhyb3R0bGUgKi8pOworICAgICAgICB2
aWV3LT5jb21wb3NpdG9yKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIAogICAgIGlmIChh
dXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKaW5kZXggNzg1M2Y2NmY2YTcuLjFkZWFjY2MzOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTE0Nyw3ICsxNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5n
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5k
ZXggNDgxMDJhNTcyMjguLjgzZjRkNGU1NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIHsKICAgICBtX3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2No
ZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNjA2Mjg1M2U4NDguLjRmNDM5NGFkNDE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzky
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXll
clBvc2l0aW9uVXBkYXRlcygpOwogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xh
eWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBH
cmFwaGljc0xheWVyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5oCmluZGV4IGY0ZTRiNWVlMjg5Li42MzVmNWRmODVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtODEsNyArODEs
NyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAg
ICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgICAgICB2b2lkIG5vdGlm
eVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsK
ICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGluQ2xpcCwgR3JhcGhpY3NMYXllclBhaW50QmVo
YXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNP
dmVybGF5Q29udHJvbGxlci5tbQppbmRleCBkNjhlMzViZGE0My4uMTNlMjE1NzdmMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOwogfQog
Ci12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29udHJvbGxlcikKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmlu
ZGV4IDA0ZTEzZTc1MGJlLi5iOGQ0OWZkNGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNjA5LDggKzYwOSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgY2FuVGhyb3R0bGVMYXllckZsdXNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLQogICAg
IHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJDQSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllckNBUmVtb3RlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggNzlhM2Y1Mzk2M2Iu
LmU0ZGRmNTMyM2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGEgbGF5ZXIgcHJvcGVydHkgY2hhbmdlZCB0aGF0IHJl
cXVpcmVzIGEgc3Vic2VxdWVudCBjYWxsIHRvIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpCiAgICAg
Ly8gdG8gYXBwZWFyIG9uIHRoZSBzY3JlZW4uCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNo
UmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAgICAg
CiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhpcyBsYXllciByZXF1aXJlcyBhIGZsdXNoIGJl
Zm9yZSB0aGUgbmV4dCBkaXNwbGF5IHJlZnJlc2guCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZs
dXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKaW5kZXggZTA2M2FhZGE0ZDAuLjg0ZTliZmI0YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAg
LTQxOTksMTIgKzQxOTksNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bm90ZVN1YmxheWVyc0No
YW5nZWQoU2NoZWR1bGVGbHVzaE9yTm90IHNjaGVkdWxlRmx1c2gpCiAgICAgcHJvcGFnYXRlTGF5
ZXJDaGFuZ2VUb1JlcGxpY2FzKHNjaGVkdWxlRmx1c2gpOwogfQogCi1ib29sIEdyYXBoaWNzTGF5
ZXJDQTo6Y2FuVGhyb3R0bGVMYXllckZsdXNoKCkgY29uc3QKLXsKLSAgICAvLyBUaWxlIGxheWVy
cyBhcmUgY3VycmVudGx5IHBsYWluIENBIGxheWVycywgYXR0YWNoZWQgZGlyZWN0bHkgYnkgVGls
ZUNvbnRyb2xsZXIuIFRoZXkgcmVxdWlyZSBpbW1lZGlhdGUgZmx1c2ggYXMgdGhleSBtYXkgY29u
dGFpbiBnYXJiYWdlLgotICAgIHJldHVybiAhKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgVGlsZXNB
ZGRlZCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NMYXllckNBOjphZGRVbmNvbW1pdHRlZENoYW5nZXMo
TGF5ZXJDaGFuZ2VGbGFncyBmbGFncykKIHsKICAgICBtX3VuY29tbWl0dGVkQ2hhbmdlcyB8PSBm
bGFnczsKQEAgLTQyMzIsMTQgKzQyMjYsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVM
YXllclByb3BlcnR5Q2hhbmdlZChMYXllckNoYW5nZUZsYWdzIGZsYWdzLCBTY2hlZHVsZUYKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRVbmNvbW1pdHRlZENoYW5nZXMgPSAhIW1fdW5j
b21taXR0ZWRDaGFuZ2VzOwotICAgIGJvb2wgb2xkQ2FuVGhyb3R0bGVMYXllckZsdXNoID0gY2Fu
VGhyb3R0bGVMYXllckZsdXNoKCk7CiAKICAgICBhZGRVbmNvbW1pdHRlZENoYW5nZXMoZmxhZ3Mp
OwogCiAgICAgaWYgKHNjaGVkdWxlRmx1c2ggPT0gU2NoZWR1bGVGbHVzaCkgewotICAgICAgICBi
b29sIG5lZWRzRmx1c2ggPSAhaGFkVW5jb21taXR0ZWRDaGFuZ2VzIHx8IG9sZENhblRocm90dGxl
TGF5ZXJGbHVzaCAhPSBjYW5UaHJvdHRsZUxheWVyRmx1c2goKTsKKyAgICAgICAgYm9vbCBuZWVk
c0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdlczsKICAgICAgICAgaWYgKG5lZWRzRmx1c2gp
Ci0gICAgICAgICAgICBjbGllbnQoKS5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgICAg
ICAgICAgY2xpZW50KCkubm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQodGhpcyk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oCmluZGV4IDY5YjFmYWQxYTcyLi4wM2Q1ZTJjYjhmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmgKQEAgLTI5Nyw4ICsyOTcsNiBAQCBwcml2YXRlOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRSZXBsaWNhdGVkQnlMYXllcihSZWZQdHI8R3JhcGhpY3NMYXllcj4mJikgb3ZlcnJpZGU7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhblRocm90dGxlTGF5ZXJGbHVzaCgpIGNvbnN0
IG92ZXJyaWRlOwotCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8o
Q29sb3ImLCBmbG9hdCYgd2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFdURjo6VGV4dFN0cmVhbSYsIExheWVyVHJl
ZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCmluZGV4IDJlMjFlMGRlMjkyLi5jZWM0MjA4NmMy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaApA
QCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3RUaWxlR3JpZFRyYW5z
Zm9ybXMoKTsKICAgICB2b2lkIHJlbW92ZUFsbE5vblZpc2libGVUaWxlc0ludGVybmFsKCk7CiAg
ICAgdm9pZCBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChTeW5jaHJvbm91c1RpbGVDcmVhdGlvbk1v
ZGUpOwotICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoRm9yUGVuZGluZ1JlcGFpbnQoKTsKKyAg
ICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9yUGVuZGluZ1JlcGFpbnQoKTsKIAogICAg
IHZvaWQgdGlsZUNyZWF0aW9uVGltZXJGaXJlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQppbmRleCBhNmU0NjZlNjUxMy4uYjNhMjAyNzRk
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2Fj
aGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5t
bQpAQCAtNDgsNyArNDgsNyBAQCAtICh2b2lkKV9kaXNwYXRjaFRpbGVEaWREcmF3OihDQUxheWVy
Kil0aWxlOwogLSAodm9pZClfd2lsbFN0YXJ0U2Nyb2xsaW5nT3Jab29taW5nOwogLSAodm9pZClf
ZGlkRmluaXNoU2Nyb2xsaW5nT3Jab29taW5nOwogLSAodm9pZClfZGlzcGF0Y2hUaWxlRGlkRHJh
dzsKLS0gKHZvaWQpX3NjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50
OworLSAodm9pZClfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVw
YWludDsKIEBlbmQKIAogQGludGVyZmFjZSBMZWdhY3lUaWxlQ2FjaGVUb21ic3RvbmUgOiBOU09i
amVjdCB7CkBAIC02MDksMTAgKzYwOSwxMCBAQCB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0TmVl
ZHNEaXNwbGF5KCkKICAgICBzZXROZWVkc0Rpc3BsYXlJblJlY3QoSW50UmVjdCgwLCAwLCBzdGQ6
Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1h
eCgpKSk7CiB9CiAKLXZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZUxheWVyRmx1c2hGb3JQ
ZW5kaW5nUmVwYWludCgpCit2b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGVGb3JQZW5kaW5nUmVwYWludCgpCiB7CiAgICAgV0FLVmlldyogdmlldyA9IFttX3dpbmRv
dyBjb250ZW50Vmlld107Ci0gICAgW3ZpZXcgX3NjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdU
aWxlQ2FjaGVSZXBhaW50XTsKKyAgICBbdmlldyBfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQ
ZW5kaW5nVGlsZUNhY2hlUmVwYWludF07CiB9CiAKIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXRO
ZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQpAQCAtNjIzLDcgKzYy
Myw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3Qg
SW50UmVjdCYgZGlydHlSZWN0KQogICAgIGlmICghYWRkZWRGaXJzdFJlY3QpCiAgICAgICAgIHJl
dHVybjsKICAgICAvLyBDb21wb3NpdGluZyBsYXllciBmbHVzaCB3aWxsIGNhbGwgYmFjayB0byBk
b1BlbmRpbmdSZXBhaW50cygpLiBUaGUgZmx1c2ggbWF5IGJlIHRocm90dGxlZCBhbmQgbm90IGhh
cHBlbiBpbW1lZGlhdGVseS4KLSAgICBzY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nUmVwYWlu
dCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9yUGVuZGluZ1JlcGFpbnQoKTsKIH0K
IAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmludmFsaWRhdGVUaWxlcyhjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QpCkBAIC02OTMsNyArNjkzLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnVwZGF0
ZVRpbGluZ01vZGUoKQogICAgICAgICBjcmVhdGVUaWxlc0luQWN0aXZlR3JpZChDb3ZlclZpc2li
bGVPbmx5KTsKIAogICAgICAgICBpZiAoIW1fc2F2ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKQot
ICAgICAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoRm9yUGVuZGluZ1JlcGFpbnQoKTsKKyAgICAg
ICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9yUGVuZGluZ1JlcGFpbnQoKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKaW5kZXggMWVmNGVmYTM0MmMuLmYwYjU4YTk5ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzQwMCwxMSArMzQwMCwxMSBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBH
cmFwaGljc0xheWVyKiwgY29uc3QgU3RyaQogICAgIHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkubm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChyZW5kZXJlcigpLCB0aW1lKTsKIH0KIAotdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5
ZXIpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgaWYgKHJlbmRlcmVyKCkucmVuZGVyVHJl
ZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBjb21wb3NpdG9yKCkuc2No
ZWR1bGVMYXllckZsdXNoKGxheWVyLT5jYW5UaHJvdHRsZUxheWVyRmx1c2goKSk7CisgICAgY29t
cG9zaXRvcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oCmluZGV4IDBmYmI2NmEzZjJhLi4wNDNjZjIxNWNhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMjM3LDcgKzIzNyw3IEBAIHB1
YmxpYzoKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGludGVyZmFjZQogICAgIHZvaWQgdGls
ZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29sIC8qdXNpbmdU
aWxlZEJhY2tpbmcqLykgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbktleSwgTW9ub3Rv
bmljVGltZSBzdGFydFRpbWUpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlSZW5kZXJp
bmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFp
bnRCZWhhdmlvcikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDBmMzg2MDkyZDdiLi42ZGZkMzI4NzMwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKQEAgLTEwMCwxNCArMTAwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmICFVU0Uo
Q09NUE9TSVRJTkdfRk9SX1NNQUxMX0NBTlZBU0VTKQogc3RhdGljIGNvbnN0IGludCBjYW52YXNB
cmVhVGhyZXNob2xkUmVxdWlyaW5nQ29tcG9zaXRpbmcgPSA1MCAqIDEwMDsKICNlbmRpZgotLy8g
RHVyaW5nIHBhZ2UgbG9hZGluZyBkZWxheSBsYXllciBmbHVzaGVzIHVwIHRvIHRoaXMgbWFueSBz
ZWNvbmRzIHRvIGFsbG93IHRoZW0gY29hbGVzY2UsIHJlZHVjaW5nIHdvcmtsb2FkLgotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29uc3QgU2Vjb25kcyB0aHJvdHRsZWRMYXllckZs
dXNoSW5pdGlhbERlbGF5IHsgNTAwX21zIH07Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyB0aHJvdHRs
ZWRMYXllckZsdXNoRGVsYXkgeyAxLjVfcyB9OwotI2Vsc2UKLXN0YXRpYyBjb25zdCBTZWNvbmRz
IHRocm90dGxlZExheWVyRmx1c2hJbml0aWFsRGVsYXkgeyA1MDBfbXMgfTsKLXN0YXRpYyBjb25z
dCBTZWNvbmRzIHRocm90dGxlZExheWVyRmx1c2hEZWxheSB7IDUwMF9tcyB9OwotI2VuZGlmCiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKQEAgLTMxNCw3ICszMDYsNiBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgbGF5ZXJzTG9nRW5hYmxlZCgpCiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJl
bmRlckxheWVyQ29tcG9zaXRvcihSZW5kZXJWaWV3JiByZW5kZXJWaWV3KQogICAgIDogbV9yZW5k
ZXJWaWV3KHJlbmRlclZpZXcpCiAgICAgLCBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIo
KnRoaXMsICZSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGlt
ZXJGaXJlZCkKLSAgICAsIG1fbGF5ZXJGbHVzaFRpbWVyKCp0aGlzLCAmUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIGlmIChtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkucGxhdGZvcm1XaWRnZXQoKSkKQEAg
LTQ3NiwyNCArNDY3LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjdXN0b21Qb3Np
dGlvbkZvclZpc2libGVSZWN0Q29tcHV0YXRpb24oY29uc3QgR3JhcGhpCiAgICAgcG9zaXRpb24g
PSAtc2Nyb2xsUG9zaXRpb247CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKQogewotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaChsYXllci0+Y2FuVGhyb3R0bGVM
YXllckZsdXNoKCkpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2goYm9vbCBjYW5UaHJvdHRs
ZSkKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgp
CiB7CiAgICAgQVNTRVJUKCFtX2ZsdXNoaW5nTGF5ZXJzKTsKIAotICAgIGlmIChjYW5UaHJvdHRs
ZSkKLSAgICAgICAgc3RhcnRJbml0aWFsTGF5ZXJGbHVzaFRpbWVySWZOZWVkZWQoKTsKLQotICAg
IGlmIChjYW5UaHJvdHRsZSAmJiBpc1Rocm90dGxpbmdMYXllckZsdXNoZXMoKSkKLSAgICAgICAg
bV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCA9IHRydWU7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1faGFz
UGVuZGluZ0xheWVyRmx1c2ggPSBmYWxzZTsKLSAgICAgICAgcGFnZSgpLnJlbmRlcmluZ1VwZGF0
ZVNjaGVkdWxlcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7Ci0gICAgfQorICAgIHBhZ2Uo
KS5yZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwog
fQogCiBGbG9hdFJlY3QgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVy
Rmx1c2hpbmcoKSBjb25zdApAQCAtNTIyLDkgKzUwNSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKHJvb3RMYXllckF0dGFjaG1lbnQoKSA9PSBSb290TGF5ZXJV
bmF0dGFjaGVkKSB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgc3RhcnRMYXll
ckZsdXNoVGltZXJJZk5lZWRlZCgpOwotI2VuZGlmCiAgICAgICAgIG1fc2hvdWxkRmx1c2hPblJl
YXR0YWNoID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTU2MCw3ICs1NDAsNiBA
QCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKGJv
b2wgaXNGbHVzaFJvb3QpCiAjZW5kaWYKIAogICAgICsrbV9sYXllckZsdXNoQ291bnQ7Ci0gICAg
c3RhcnRMYXllckZsdXNoVGltZXJJZk5lZWRlZCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKQEAgLTYyOCw3ICs2MDcsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlk
Q2hhbmdlVmlzaWJsZVJlY3QoKQogICAgIGJvb2wgcmVxdWlyZXNGbHVzaCA9IHJvb3RMYXllci0+
dmlzaWJsZVJlY3RDaGFuZ2VSZXF1aXJlc0ZsdXNoKHZpc2libGVSZWN0KTsKICAgICBMT0dfV0lU
SF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8PCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaXNpYmxlUmVjdCAiIDw8IHZpc2libGVSZWN0IDw8ICIgcmVxdWlyZXNGbHVzaCAi
IDw8IHJlcXVpcmVzRmx1c2gpOwogICAgIGlmIChyZXF1aXJlc0ZsdXNoKQotICAgICAgICBzY2hl
ZHVsZUxheWVyRmx1c2goKTsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0K
IAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJl
ZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopCkBAIC02NDMsNyArNjIyLDcgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3Qg
R3JhcGhpY3NMYXllcioKIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZsdXNoTGF5ZXJz
U29vbihHcmFwaGljc0xheWVyVXBkYXRlciYpCiB7Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKHRy
dWUpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpsYXllclRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGlj
c0xheWVyKiBncmFwaGljc0xheWVyLCBib29sIHVzaW5nVGlsZWRCYWNraW5nKQpAQCAtMjA3Nyw3
ICsyMDU2LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9s
bCgpCiAgICAgLy8gaXQgd2lsbCBhbHNvIG1hbmFnZSB1cGRhdGluZyB0aGUgc2Nyb2xsIGxheWVy
IHBvc2l0aW9uLgogICAgIGlmIChoYXNDb29yZGluYXRlZFNjcm9sbGluZygpKSB7CiAgICAgICAg
IC8vIFdlIGhhdmUgdG8gc2NoZWR1bGUgYSBmbHVzaCBpbiBvcmRlciBmb3IgdGhlIG1haW4gVGls
ZWRCYWNraW5nIHRvIHVwZGF0ZSBpdHMgdGlsZSBjb3ZlcmFnZS4KLSAgICAgICAgc2NoZWR1bGVM
YXllckZsdXNoKCk7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTM5MzUsNyArMzkxNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjplbnN1cmVSb290TGF5ZXIoKQogICAgICAgICAgICAgdXBkYXRlT3ZlcmZsb3dD
b250cm9sc0xheWVycygpOwogCiAgICAgICAgICAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3JvbGxp
bmcoKSkKLSAgICAgICAgICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2godHJ1ZSk7CisgICAgICAg
ICAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICB1cGRhdGVTY3JvbGxMYXllclBvc2l0aW9uKCk7CiAgICAgICAgIH0KQEAg
LTQwMjgsNyArNDAwNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290
TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRhY2htZW50KQogICAgIHJvb3RMYXllckF0dGFj
aG1lbnRDaGFuZ2VkKCk7CiAgICAgCiAgICAgaWYgKG1fc2hvdWxkRmx1c2hPblJlYXR0YWNoKSB7
Ci0gICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworICAgICAgICBzY2hlZHVsZVJlbmRlcmlu
Z1VwZGF0ZSgpOwogICAgICAgICBtX3Nob3VsZEZsdXNoT25SZWF0dGFjaCA9IGZhbHNlOwogICAg
IH0KIH0KQEAgLTQ3MDIsNjAgKzQ2ODEsNiBAQCBHcmFwaGljc0xheWVyRmFjdG9yeSogUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CiAgICAgcmV0dXJu
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpOwogfQogCi12
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0TGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCA9IGVu
YWJsZWQ7Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgbV9sYXllckZsdXNoVGltZXIuc3RvcCgpOwotICAgIGlmICghbV9oYXNQZW5k
aW5nTGF5ZXJGbHVzaCkKLSAgICAgICAgcmV0dXJuOwotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgp
OwotfQotCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlzYWJsZUxheWVyRmx1c2hUaHJv
dHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpCi17Ci0gICAgaWYgKG1fbGF5ZXJGbHVz
aFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24pCi0gICAgICAgIHJl
dHVybjsKLSAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvcklu
dGVyYWN0aW9uID0gdHJ1ZTsKLX0KLQotYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzVGhy
b3R0bGluZ0xheWVyRmx1c2hlcygpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hUaHJv
dHRsaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghbV9sYXllckZs
dXNoVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2xh
eWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpzdGFydExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCkKLXsKLSAgICBtX2xh
eWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFs
c2U7Ci0gICAgbV9sYXllckZsdXNoVGltZXIuc3RvcCgpOwotICAgIGlmICghbV9sYXllckZsdXNo
VGhyb3R0bGluZ0VuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2xheWVyRmx1c2hUaW1l
ci5zdGFydE9uZVNob3QodGhyb3R0bGVkTGF5ZXJGbHVzaERlbGF5KTsKLX0KLQotdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCkK
LXsKLSAgICBpZiAoIW1fbGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVy
bjsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGVkTGF5ZXJGbHVz
aEluaXRpYWxEZWxheSk7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllckZs
dXNoVGltZXJGaXJlZCgpCi17Ci0gICAgaWYgKCFtX2hhc1BlbmRpbmdMYXllckZsdXNoKQotICAg
ICAgICByZXR1cm47Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci19Ci0KICNpZiBVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQogUmVmUHRyPERpc3BsYXlSZWZy
ZXNoTW9uaXRvcj4gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1v
bml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDA3OGY3OWJh
ZDAyLi5jNDkxMTdhYTdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMTc5LDcgKzE3OSw3IEBAIHB1YmxpYzoKIAogICAgIC8v
IEdyYXBoaWNzTGF5ZXJzIGJ1ZmZlciBzdGF0ZSwgd2hpY2ggZ2V0cyBwdXNoZWQgdG8gdGhlIHVu
ZGVybHlpbmcgcGxhdGZvcm0gbGF5ZXJzCiAgICAgLy8gYXQgc3BlY2lmaWMgdGltZXMuCi0gICAg
dm9pZCBzY2hlZHVsZUxheWVyRmx1c2goYm9vbCBjYW5UaHJvdHRsZSA9IGZhbHNlKTsKKyAgICB2
b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCA9IHRydWUpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4g
dGhlIEdyYXBoaWNzTGF5ZXIgZm9yIHRoZSBnaXZlbiBSZW5kZXJMYXllciBoYXMgZmx1c2hlZCBj
aGFuZ2VzIGluc2lkZSBvZiBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKS4KQEAgLTM2NSw5ICsz
NjUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNOb25NYWluTGF5ZXJzV2l0aFRpbGVkQmFja2lu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJzV2l0aFRpbGVkQmFja2luZ0NvdW50OyB9CiAKICAg
ICBPcHRpb25TZXQ8Q29tcG9zaXRpbmdSZWFzb24+IHJlYXNvbnNGb3JDb21wb3NpdGluZyhjb25z
dCBSZW5kZXJMYXllciYpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRMYXllckZsdXNoVGhyb3R0bGlu
Z0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1w
b3JhcmlseUZvckludGVyYWN0aW9uKCk7CiAgICAgCiAgICAgdm9pZCBkaWRQYWludEJhY2tpbmco
UmVuZGVyTGF5ZXJCYWNraW5nKik7CiAKQEAgLTM5Niw3ICszOTMsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgdXBkYXRlQ29tcG9zaXRpbmdQb2xpY3koKTsKICAgICAKICAgICAvLyBHcmFwaGljc0xh
eWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCi0gICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1Vw
ZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHBh
aW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2
b2lkIGN1c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbihjb25zdCBHcmFwaGlj
c0xheWVyKiwgRmxvYXRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNUcmFja2lu
Z1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7
IH0KQEAgLTU1NywxMSArNTU0LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkQ29tcG9z
aXRlT3ZlcmZsb3dDb250cm9scygpIGNvbnN0OwogCi0gICAgYm9vbCBpc1Rocm90dGxpbmdMYXll
ckZsdXNoZXMoKSBjb25zdDsKLSAgICB2b2lkIHN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklm
TmVlZGVkKCk7Ci0gICAgdm9pZCBzdGFydExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0gICAg
dm9pZCBsYXllckZsdXNoVGltZXJGaXJlZCgpOwotCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIGNv
bnN0IGNoYXIqIGxvZ1JlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciYpOwog
ICAgIHZvaWQgbG9nTGF5ZXJJbmZvKGNvbnN0IFJlbmRlckxheWVyJiwgY29uc3QgY2hhciosIGlu
dCBkZXB0aCk7CkBAIC02MjQsMTEgKzYxNiw2IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NMYXllclVwZGF0ZXI+IG1fbGF5ZXJVcGRhdGVyOyAvLyBVcGRhdGVzIHRp
bGVkIGxheWVyIHZpc2libGUgYXJlYSBwZXJpb2RpY2FsbHkgd2hpbGUgYW5pbWF0aW9ucyBhcmUg
cnVubmluZy4KIAotICAgIFRpbWVyIG1fbGF5ZXJGbHVzaFRpbWVyOwotCi0gICAgYm9vbCBtX2xh
eWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2xheWVyRmx1
c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsK
LSAgICBib29sIG1faGFzUGVuZGluZ0xheWVyRmx1c2ggeyBmYWxzZSB9OwogICAgIGJvb2wgbV92
aWV3QmFja2dyb3VuZElzVHJhbnNwYXJlbnQgeyBmYWxzZSB9OwogCiAjaWYgIUxPR19ESVNBQkxF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhmNTA3YTQ5YjRjLi42NjljNmM5ZDgy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAy
LTI0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
dGhyb3R0bGluZyBjb2RlIGZyb20gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgxMzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGls
ZUNhY2hlUmVwYWludF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2hlZHVsZUxheWVyRmx1c2hG
b3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludF0pOiBEZWxldGVkLgorCiAyMDIwLTAyLTIyICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBpbmNsdWRlIG1p
c3Rha2VzIGFuZCBtYWtlIHNvbWUgY29kaW5nIHN0eWxlIHR3ZWFrcyB0byBXZWJLaXQgYW5kIFdl
YktpdFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCA0MzU1ZjcyMDNhNi4uYzBjMjZlNzRiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkzMTAsMTEgKzkzMTAsMTEgQEAgLSAoQk9PTClf
Zmx1c2hDb21wb3NpdGluZ0NoYW5nZXMKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0t
ICh2b2lkKV9zY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAorLSAo
dm9pZClfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAog
ewogICAgIGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKICAgICBpZiAo
YXV0byogdmlldyA9IGNvcmVGcmFtZS0+dmlldygpKQotICAgICAgICB2aWV3LT5zY2hlZHVsZUxh
eWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKTsKKyAgICAgICAgdmlldy0+c2NoZWR1bGVSZW5k
ZXJpbmdVcGRhdGUoKTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391631</attachid>
            <date>2020-02-25 00:26:10 -0800</date>
            <delta_ts>2020-02-25 01:04:48 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remove-compositor-throttling-4.patch</filename>
            <type>text/plain</type>
            <size>31847</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDE0YWI4OTk5ZC4uYTQwZWQ3YjM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMC0wMi0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQg
aXMgb25seSB1c2VkIG9uIFdLMSwgYWRkcyBsb3RzIG9mIGNvbXBsZXhpdHkgYW5kIGlzIG5vdCB2
ZXJ5IGVmZmVjdGl2ZSBvciBjb3JyZWN0LgorCisgICAgICAgIEFsc28gZG8gc29tZSAibGF5ZXIg
Zmx1c2giIC0+ICJyZW5kZXJpbmcgdXBkYXRlIiByZW5hbWluZy4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZU92ZXJsYXlDb250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvbWFjL1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNhblRocm90
dGxlTGF5ZXJGbHVzaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNsaWVudDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zy
b21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdSZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmZsdXNoTGF5ZXJzU29vbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRM
YXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jh
cmlseUZvckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRMYXllckZsdXNo
VGltZXJJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJGbHVzaFRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKwogMjAyMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV1BFXSBBZGQgR3N0R0xNZW1vcnlFR0wgc3VwcG9y
dCBmb3IgdGhlIHZpZGVvLXBsYW5lLWRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA5NWY1Yjk1YjFmNC4uZDVmOTcwYjE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEwMTgsMTIgKzEwMTgsMTIgQEAgR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpncmFw
aGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm0KICAgICBy
ZXR1cm4gd2lkZ2V0TGF5ZXItPmJhY2tpbmcoKS0+cGFyZW50Rm9yU3VibGF5ZXJzKCk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKQor
dm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBSZW5kZXJW
aWV3KiB2aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwotICAgIHZpZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVsZUxheWVyRmx1c2godHJ1ZSAv
KiBjYW5UaHJvdHRsZSAqLyk7CisgICAgdmlldy0+Y29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKCk7CiB9CiAKIExheW91dFJlY3QgRnJhbWVWaWV3OjpmaXhlZFNjcm9sbGFibGVB
cmVhQm91bmRzSW5mbGF0ZWRGb3JTY3JvbGxpbmcoY29uc3QgTGF5b3V0UmVjdCYgdW5pbmZsYXRl
ZEJvdW5kcykgY29uc3QKQEAgLTI4NDUsMTEgKzI4NDUsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZGlz
YWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpCiAKICAg
ICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUocGFnZSk7CiAg
ICAgZmxhZ3MuYWRkKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0
aW5nKTsKLSAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRh
dGVUaHJvdHRsaW5nKGZsYWdzKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFJlbmRlclZp
ZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3IoKS5kaXNh
YmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CisgICAg
cGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZs
YWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmxvYWRQcm9ncmVzc2luZ1N0YXR1c0NoYW5nZWQo
KQpAQCAtMjg3MCwxNCArMjg2Niw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNo
VGhyb3R0bGluZygpCiAKICAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUoKnBhZ2UpOwogCi0gICAgLy8gU2VlIGlmIHRoZSBjbGllbnQgaXMgaGFuZGxpbmcg
dGhyb3R0bGluZy4KLSAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGluZyhmbGFncykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAo
YXV0byogZnJhbWUgPSBtX2ZyYW1lLnB0cigpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChtX2ZyYW1lLnB0cigpKSkgewotICAgICAgICBpZiAoUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoZmxhZ3Mu
Y29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCkpOwotICAgIH0K
KyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRs
aW5nKGZsYWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmFkanVzdFRpbGVkQmFja2luZ0NvdmVy
YWdlKCkKQEAgLTUzMDgsNyArNTI5Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3Nl
ZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgfQogCiAgICAg
aWYgKGF1dG8qIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3Io
KS5zY2hlZHVsZUxheWVyRmx1c2goZmFsc2UgLyogY2FuVGhyb3R0bGUgKi8pOworICAgICAgICB2
aWV3LT5jb21wb3NpdG9yKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIAogICAgIGlmIChh
dXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKaW5kZXggNzg1M2Y2NmY2YTcuLjFkZWFjY2MzOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTE0Nyw3ICsxNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5n
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5k
ZXggNDgxMDJhNTcyMjguLjgzZjRkNGU1NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIHsKICAgICBtX3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2No
ZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNjA2Mjg1M2U4NDguLjRmNDM5NGFkNDE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzky
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXll
clBvc2l0aW9uVXBkYXRlcygpOwogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xh
eWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBH
cmFwaGljc0xheWVyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3Zlcmxh
eUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJs
YXlMaW51eC5jcHAKaW5kZXggOWZlMjRjMmY2NGQuLmJjYzFjOWY2Y2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogICAgICAgICBwb3NpdGlvbi5tb3ZlKDAs
IGdGb250U2l6ZSArIDIpOwogICAgIH0KIAotICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1Vw
ZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgbV9vdmVybGF5Lm92ZXJsYXkoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IGY0ZTRiNWVlMjg5Li42MzVmNWRm
ODVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGln
aHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAot
ICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOworICAgICAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGlu
Q2xpcCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCBkNjhl
MzViZGE0My4uMTNlMjE1NzdmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQg
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBt
X2NvbnRyb2xsZXIgPSBudWxscHRyOwogfQogCi12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikK
K3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJp
bmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29u
dHJvbGxlcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDA0ZTEzZTc1MGJlLi5iOGQ0OWZkNGE1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aApAQCAtNjA5LDggKzYwOSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRp
Y2F0b3JzKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVGhyb3R0bGVMYXllckZsdXNoKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJD
QSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NM
YXllckNBUmVtb3RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Q2xpZW50LmgKaW5kZXggNzlhM2Y1Mzk2M2IuLmU0ZGRmNTMyM2U0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBA
IC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGEgbGF5
ZXIgcHJvcGVydHkgY2hhbmdlZCB0aGF0IHJlcXVpcmVzIGEgc3Vic2VxdWVudCBjYWxsIHRvIGZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSgpCiAgICAgLy8gdG8gYXBwZWFyIG9uIHRoZSBzY3JlZW4uCi0g
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgeyB9CiAgICAgCiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhp
cyBsYXllciByZXF1aXJlcyBhIGZsdXNoIGJlZm9yZSB0aGUgbmV4dCBkaXNwbGF5IHJlZnJlc2gu
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3Qg
R3JhcGhpY3NMYXllciopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZTA2M2FhZGE0ZDAuLjg0ZTli
ZmI0YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTQxOTksMTIgKzQxOTksNiBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6bm90ZVN1YmxheWVyc0NoYW5nZWQoU2NoZWR1bGVGbHVzaE9yTm90IHNjaGVk
dWxlRmx1c2gpCiAgICAgcHJvcGFnYXRlTGF5ZXJDaGFuZ2VUb1JlcGxpY2FzKHNjaGVkdWxlRmx1
c2gpOwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y2FuVGhyb3R0bGVMYXllckZsdXNoKCkg
Y29uc3QKLXsKLSAgICAvLyBUaWxlIGxheWVycyBhcmUgY3VycmVudGx5IHBsYWluIENBIGxheWVy
cywgYXR0YWNoZWQgZGlyZWN0bHkgYnkgVGlsZUNvbnRyb2xsZXIuIFRoZXkgcmVxdWlyZSBpbW1l
ZGlhdGUgZmx1c2ggYXMgdGhleSBtYXkgY29udGFpbiBnYXJiYWdlLgotICAgIHJldHVybiAhKG1f
dW5jb21taXR0ZWRDaGFuZ2VzICYgVGlsZXNBZGRlZCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjphZGRVbmNvbW1pdHRlZENoYW5nZXMoTGF5ZXJDaGFuZ2VGbGFncyBmbGFncykKIHsKICAg
ICBtX3VuY29tbWl0dGVkQ2hhbmdlcyB8PSBmbGFnczsKQEAgLTQyMzIsMTQgKzQyMjYsMTMgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChMYXllckNoYW5n
ZUZsYWdzIGZsYWdzLCBTY2hlZHVsZUYKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRV
bmNvbW1pdHRlZENoYW5nZXMgPSAhIW1fdW5jb21taXR0ZWRDaGFuZ2VzOwotICAgIGJvb2wgb2xk
Q2FuVGhyb3R0bGVMYXllckZsdXNoID0gY2FuVGhyb3R0bGVMYXllckZsdXNoKCk7CiAKICAgICBh
ZGRVbmNvbW1pdHRlZENoYW5nZXMoZmxhZ3MpOwogCiAgICAgaWYgKHNjaGVkdWxlRmx1c2ggPT0g
U2NoZWR1bGVGbHVzaCkgewotICAgICAgICBib29sIG5lZWRzRmx1c2ggPSAhaGFkVW5jb21taXR0
ZWRDaGFuZ2VzIHx8IG9sZENhblRocm90dGxlTGF5ZXJGbHVzaCAhPSBjYW5UaHJvdHRsZUxheWVy
Rmx1c2goKTsKKyAgICAgICAgYm9vbCBuZWVkc0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdl
czsKICAgICAgICAgaWYgKG5lZWRzRmx1c2gpCi0gICAgICAgICAgICBjbGllbnQoKS5ub3RpZnlG
bHVzaFJlcXVpcmVkKHRoaXMpOworICAgICAgICAgICAgY2xpZW50KCkubm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQodGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDY5YjFmYWQx
YTcyLi4wM2Q1ZTJjYjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTI5Nyw4ICsyOTcsNiBAQCBwcml2YXRl
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihSZWZQdHI8
R3JhcGhpY3NMYXllcj4mJikgb3ZlcnJpZGU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNh
blRocm90dGxlTGF5ZXJGbHVzaCgpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KFdURjo6VGV4dFN0cmVhbSYsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCmlu
ZGV4IDJlMjFlMGRlMjkyLi5jZWM0MjA4NmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaApAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGp1c3RUaWxlR3JpZFRyYW5zZm9ybXMoKTsKICAgICB2b2lkIHJlbW92ZUFsbE5v
blZpc2libGVUaWxlc0ludGVybmFsKCk7CiAgICAgdm9pZCBjcmVhdGVUaWxlc0luQWN0aXZlR3Jp
ZChTeW5jaHJvbm91c1RpbGVDcmVhdGlvbk1vZGUpOwotICAgIHZvaWQgc2NoZWR1bGVMYXllckZs
dXNoRm9yUGVuZGluZ1JlcGFpbnQoKTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
Rm9yUGVuZGluZ1JlcGFpbnQoKTsKIAogICAgIHZvaWQgdGlsZUNyZWF0aW9uVGltZXJGaXJlZCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNh
Y2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQpp
bmRleCBhNmU0NjZlNjUxMy4uYjNhMjAyNzRkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQpAQCAtNDgsNyArNDgsNyBAQCAtICh2b2lkKV9k
aXNwYXRjaFRpbGVEaWREcmF3OihDQUxheWVyKil0aWxlOwogLSAodm9pZClfd2lsbFN0YXJ0U2Ny
b2xsaW5nT3Jab29taW5nOwogLSAodm9pZClfZGlkRmluaXNoU2Nyb2xsaW5nT3Jab29taW5nOwog
LSAodm9pZClfZGlzcGF0Y2hUaWxlRGlkRHJhdzsKLS0gKHZvaWQpX3NjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50OworLSAodm9pZClfc2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludDsKIEBlbmQKIAogQGludGVyZmFjZSBMZWdh
Y3lUaWxlQ2FjaGVUb21ic3RvbmUgOiBOU09iamVjdCB7CkBAIC02MDksMTAgKzYwOSwxMCBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5KCkKICAgICBzZXROZWVkc0Rpc3Bs
YXlJblJlY3QoSW50UmVjdCgwLCAwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpLCBz
dGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpKSk7CiB9CiAKLXZvaWQgTGVnYWN5VGlsZUNh
Y2hlOjpzY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nUmVwYWludCgpCit2b2lkIExlZ2FjeVRp
bGVDYWNoZTo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nUmVwYWludCgpCiB7CiAg
ICAgV0FLVmlldyogdmlldyA9IFttX3dpbmRvdyBjb250ZW50Vmlld107Ci0gICAgW3ZpZXcgX3Nj
aGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50XTsKKyAgICBbdmlldyBf
c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludF07CiB9CiAK
IHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVj
dCYgZGlydHlSZWN0KQpAQCAtNjIzLDcgKzYyMyw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpz
ZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQogICAgIGlmICgh
YWRkZWRGaXJzdFJlY3QpCiAgICAgICAgIHJldHVybjsKICAgICAvLyBDb21wb3NpdGluZyBsYXll
ciBmbHVzaCB3aWxsIGNhbGwgYmFjayB0byBkb1BlbmRpbmdSZXBhaW50cygpLiBUaGUgZmx1c2gg
bWF5IGJlIHRocm90dGxlZCBhbmQgbm90IGhhcHBlbiBpbW1lZGlhdGVseS4KLSAgICBzY2hlZHVs
ZUxheWVyRmx1c2hGb3JQZW5kaW5nUmVwYWludCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlRm9yUGVuZGluZ1JlcGFpbnQoKTsKIH0KIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmludmFs
aWRhdGVUaWxlcyhjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCkBAIC02OTMsNyArNjkzLDcgQEAg
dm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnVwZGF0ZVRpbGluZ01vZGUoKQogICAgICAgICBjcmVhdGVU
aWxlc0luQWN0aXZlR3JpZChDb3ZlclZpc2libGVPbmx5KTsKIAogICAgICAgICBpZiAoIW1fc2F2
ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgc2NoZWR1bGVMYXllckZsdXNo
Rm9yUGVuZGluZ1JlcGFpbnQoKTsKKyAgICAgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
Rm9yUGVuZGluZ1JlcGFpbnQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMWVmNGVmYTM0MmMuLmYwYjU4YTk5
ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtMzQwMCwxMSArMzQwMCwxMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaQogICAg
IHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkubm90aWZ5QW5pbWF0aW9uU3RhcnRlZChyZW5kZXJlcigp
LCB0aW1lKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAg
ICAgaWYgKHJlbmRlcmVyKCkucmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBjb21wb3NpdG9yKCkuc2NoZWR1bGVMYXllckZsdXNoKGxheWVyLT5jYW5UaHJv
dHRsZUxheWVyRmx1c2goKSk7CisgICAgY29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaEJlZm9yZURp
c3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDBmYmI2NmEzZjJhLi4wNDNj
ZjIxNWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaApAQCAtMjM3LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAvLyBHcmFwaGljc0xheWVyQ2xp
ZW50IGludGVyZmFjZQogICAgIHZvaWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBib29sIC8qdXNpbmdUaWxlZEJhY2tpbmcqLykgb3ZlcnJpZGU7CiAgICAg
dm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbktleSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZy
ZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4
IDBmMzg2MDkyZDdiLi42ZGZkMzI4NzMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEwMCwxNCArMTAwLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2lmICFVU0UoQ09NUE9TSVRJTkdfRk9SX1NNQUxMX0NBTlZBU0VT
KQogc3RhdGljIGNvbnN0IGludCBjYW52YXNBcmVhVGhyZXNob2xkUmVxdWlyaW5nQ29tcG9zaXRp
bmcgPSA1MCAqIDEwMDsKICNlbmRpZgotLy8gRHVyaW5nIHBhZ2UgbG9hZGluZyBkZWxheSBsYXll
ciBmbHVzaGVzIHVwIHRvIHRoaXMgbWFueSBzZWNvbmRzIHRvIGFsbG93IHRoZW0gY29hbGVzY2Us
IHJlZHVjaW5nIHdvcmtsb2FkLgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29u
c3QgU2Vjb25kcyB0aHJvdHRsZWRMYXllckZsdXNoSW5pdGlhbERlbGF5IHsgNTAwX21zIH07Ci1z
dGF0aWMgY29uc3QgU2Vjb25kcyB0aHJvdHRsZWRMYXllckZsdXNoRGVsYXkgeyAxLjVfcyB9Owot
I2Vsc2UKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHRocm90dGxlZExheWVyRmx1c2hJbml0aWFsRGVs
YXkgeyA1MDBfbXMgfTsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHRocm90dGxlZExheWVyRmx1c2hE
ZWxheSB7IDUwMF9tcyB9OwotI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
QEAgLTMxNCw3ICszMDYsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbGF5ZXJzTG9nRW5hYmxlZCgp
CiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcihSZW5kZXJWaWV3
JiByZW5kZXJWaWV3KQogICAgIDogbV9yZW5kZXJWaWV3KHJlbmRlclZpZXcpCiAgICAgLCBtX3Vw
ZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIoKnRoaXMsICZSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXJGaXJlZCkKLSAgICAsIG1fbGF5ZXJGbHVzaFRp
bWVyKCp0aGlzLCAmUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZCkK
IHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3JlbmRlclZpZXcuZnJhbWVW
aWV3KCkucGxhdGZvcm1XaWRnZXQoKSkKQEAgLTQ3NiwyNCArNDY3LDE2IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpjdXN0b21Qb3NpdGlvbkZvclZpc2libGVSZWN0Q29tcHV0YXRpb24o
Y29uc3QgR3JhcGhpCiAgICAgcG9zaXRpb24gPSAtc2Nyb2xsUG9zaXRpb247CiB9CiAKLXZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGxheWVyKQordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmlu
Z1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewotICAgIHNjaGVkdWxlTGF5
ZXJGbHVzaChsYXllci0+Y2FuVGhyb3R0bGVMYXllckZsdXNoKCkpOworICAgIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVs
ZUxheWVyRmx1c2goYm9vbCBjYW5UaHJvdHRsZSkKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgQVNTRVJUKCFtX2ZsdXNoaW5nTGF5
ZXJzKTsKIAotICAgIGlmIChjYW5UaHJvdHRsZSkKLSAgICAgICAgc3RhcnRJbml0aWFsTGF5ZXJG
bHVzaFRpbWVySWZOZWVkZWQoKTsKLQotICAgIGlmIChjYW5UaHJvdHRsZSAmJiBpc1Rocm90dGxp
bmdMYXllckZsdXNoZXMoKSkKLSAgICAgICAgbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCA9IHRydWU7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1faGFzUGVuZGluZ0xheWVyRmx1c2ggPSBmYWxzZTsKLSAg
ICAgICAgcGFnZSgpLnJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcigpLnNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlKCk7Ci0gICAgfQorICAgIHBhZ2UoKS5yZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIoKS5z
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiBGbG9hdFJlY3QgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcoKSBjb25zdApAQCAtNTIyLDkgKzUw
NSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5n
ZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJvb3RMYXll
ckF0dGFjaG1lbnQoKSA9PSBSb290TGF5ZXJVbmF0dGFjaGVkKSB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICAgICAgc3RhcnRMYXllckZsdXNoVGltZXJJZk5lZWRlZCgpOwotI2VuZGlm
CiAgICAgICAgIG1fc2hvdWxkRmx1c2hPblJlYXR0YWNoID0gdHJ1ZTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTU2MCw3ICs1NDAsNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKGJvb2wgaXNGbHVzaFJvb3QpCiAjZW5kaWYKIAogICAg
ICsrbV9sYXllckZsdXNoQ291bnQ7Ci0gICAgc3RhcnRMYXllckZsdXNoVGltZXJJZk5lZWRlZCgp
OwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTYyOCw3ICs2MDcsNyBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlkQ2hhbmdlVmlzaWJsZVJlY3QoKQogICAgIGJvb2wg
cmVxdWlyZXNGbHVzaCA9IHJvb3RMYXllci0+dmlzaWJsZVJlY3RDaGFuZ2VSZXF1aXJlc0ZsdXNo
KHZpc2libGVSZWN0KTsKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8
PCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDaGFuZ2VWaXNpYmxlUmVjdCAiIDw8IHZpc2li
bGVSZWN0IDw8ICIgcmVxdWlyZXNGbHVzaCAiIDw8IHJlcXVpcmVzRmx1c2gpOwogICAgIGlmIChy
ZXF1aXJlc0ZsdXNoKQotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICAgICAgc2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
Om5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopCkBA
IC02NDMsNyArNjIyLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNo
QmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllcioKIAogdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmZsdXNoTGF5ZXJzU29vbihHcmFwaGljc0xheWVyVXBkYXRlciYpCiB7
Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKHRydWUpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRpbGVkQmFja2lu
Z1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBib29sIHVz
aW5nVGlsZWRCYWNraW5nKQpAQCAtMjA3Nyw3ICsyMDU2LDcgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCgpCiAgICAgLy8gaXQgd2lsbCBhbHNvIG1hbmFn
ZSB1cGRhdGluZyB0aGUgc2Nyb2xsIGxheWVyIHBvc2l0aW9uLgogICAgIGlmIChoYXNDb29yZGlu
YXRlZFNjcm9sbGluZygpKSB7CiAgICAgICAgIC8vIFdlIGhhdmUgdG8gc2NoZWR1bGUgYSBmbHVz
aCBpbiBvcmRlciBmb3IgdGhlIG1haW4gVGlsZWRCYWNraW5nIHRvIHVwZGF0ZSBpdHMgdGlsZSBj
b3ZlcmFnZS4KLSAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CisgICAgICAgIHNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM5MzUsNyAr
MzkxNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVSb290TGF5ZXIoKQog
ICAgICAgICAgICAgdXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpOwogCiAgICAgICAgICAg
ICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3JvbGxpbmcoKSkKLSAgICAgICAgICAgICAgICBzY2hlZHVs
ZUxheWVyRmx1c2godHJ1ZSk7CisgICAgICAgICAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB1cGRhdGVTY3JvbGxMYXll
clBvc2l0aW9uKCk7CiAgICAgICAgIH0KQEAgLTQwMjgsNyArNDAwNyw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRh
Y2htZW50KQogICAgIHJvb3RMYXllckF0dGFjaG1lbnRDaGFuZ2VkKCk7CiAgICAgCiAgICAgaWYg
KG1fc2hvdWxkRmx1c2hPblJlYXR0YWNoKSB7Ci0gICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgp
OworICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgICAgICBtX3Nob3VsZEZs
dXNoT25SZWF0dGFjaCA9IGZhbHNlOwogICAgIH0KIH0KQEAgLTQ3MDIsNjAgKzQ2ODEsNiBAQCBH
cmFwaGljc0xheWVyRmFjdG9yeSogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpncmFwaGljc0xheWVy
RmFjdG9yeSgpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5ncmFw
aGljc0xheWVyRmFjdG9yeSgpOwogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0
TGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2xheWVy
Rmx1c2hUaHJvdHRsaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRo
cm90dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9sYXllckZsdXNoVGltZXIu
c3RvcCgpOwotICAgIGlmICghbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCkKLSAgICAgICAgcmV0dXJu
OwotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwotfQotCi12b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6ZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlv
bigpCi17Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVk
Rm9ySW50ZXJhY3Rpb24pCi0gICAgICAgIHJldHVybjsKLSAgICBtX2xheWVyRmx1c2hUaHJvdHRs
aW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gdHJ1ZTsKLX0KLQotYm9vbCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzVGhyb3R0bGluZ0xheWVyRmx1c2hlcygpIGNvbnN0Ci17
Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghbV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlE
aXNhYmxlZEZvckludGVyYWN0aW9uKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzdGFydExheWVyRmx1c2hU
aW1lcklmTmVlZGVkKCkKLXsKLSAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlE
aXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgbV9sYXllckZsdXNoVGltZXIuc3Rv
cCgpOwotICAgIGlmICghbV9sYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpCi0gICAgICAgIHJl
dHVybjsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGVkTGF5ZXJG
bHVzaERlbGF5KTsKLX0KLQotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnN0YXJ0SW5pdGlh
bExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCkKLXsKLSAgICBpZiAoIW1fbGF5ZXJGbHVzaFRocm90
dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRpbWVy
LmlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFy
dE9uZVNob3QodGhyb3R0bGVkTGF5ZXJGbHVzaEluaXRpYWxEZWxheSk7Ci19Ci0KLXZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZCgpCi17Ci0gICAgaWYgKCFt
X2hhc1BlbmRpbmdMYXllckZsdXNoKQotICAgICAgICByZXR1cm47Ci0gICAgc2NoZWR1bGVMYXll
ckZsdXNoKCk7Ci19Ci0KICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQogUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
eUlEKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oCmluZGV4IDA3OGY3OWJhZDAyLi5jNDkxMTdhYTdkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMTc5LDcg
KzE3OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJzIGJ1ZmZlciBzdGF0ZSwg
d2hpY2ggZ2V0cyBwdXNoZWQgdG8gdGhlIHVuZGVybHlpbmcgcGxhdGZvcm0gbGF5ZXJzCiAgICAg
Ly8gYXQgc3BlY2lmaWMgdGltZXMuCi0gICAgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2goYm9vbCBj
YW5UaHJvdHRsZSA9IGZhbHNlKTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCA9IHRy
dWUpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIEdyYXBoaWNzTGF5ZXIgZm9yIHRoZSBnaXZl
biBSZW5kZXJMYXllciBoYXMgZmx1c2hlZCBjaGFuZ2VzIGluc2lkZSBvZiBmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMoKS4KQEAgLTM2NSw5ICszNjUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNO
b25NYWluTGF5ZXJzV2l0aFRpbGVkQmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJzV2l0
aFRpbGVkQmFja2luZ0NvdW50OyB9CiAKICAgICBPcHRpb25TZXQ8Q29tcG9zaXRpbmdSZWFzb24+
IHJlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciYpIGNvbnN0OwotCi0gICAg
dm9pZCBzZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBkaXNh
YmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CiAgICAg
CiAgICAgdm9pZCBkaWRQYWludEJhY2tpbmcoUmVuZGVyTGF5ZXJCYWNraW5nKik7CiAKQEAgLTM5
Niw3ICszOTMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlQ29tcG9zaXRpbmdQb2xpY3ko
KTsKICAgICAKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCi0gICAg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsK
KyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWlu
dEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lkIGN1c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJl
Y3RDb21wdXRhdGlvbihjb25zdCBHcmFwaGljc0xheWVyKiwgRmxvYXRQb2ludCYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7IH0KQEAgLTU1NywxMSArNTU0LDYgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgc2hvdWxkQ29tcG9zaXRlT3ZlcmZsb3dDb250cm9scygpIGNvbnN0Owog
Ci0gICAgYm9vbCBpc1Rocm90dGxpbmdMYXllckZsdXNoZXMoKSBjb25zdDsKLSAgICB2b2lkIHN0
YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0gICAgdm9pZCBzdGFydExheWVy
Rmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0gICAgdm9pZCBsYXllckZsdXNoVGltZXJGaXJlZCgpOwot
CiAjaWYgIUxPR19ESVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIGxvZ1JlYXNvbnNGb3JDb21wb3Np
dGluZyhjb25zdCBSZW5kZXJMYXllciYpOwogICAgIHZvaWQgbG9nTGF5ZXJJbmZvKGNvbnN0IFJl
bmRlckxheWVyJiwgY29uc3QgY2hhciosIGludCBkZXB0aCk7CkBAIC02MjQsMTEgKzYxNiw2IEBA
IHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllclVwZGF0ZXI+IG1f
bGF5ZXJVcGRhdGVyOyAvLyBVcGRhdGVzIHRpbGVkIGxheWVyIHZpc2libGUgYXJlYSBwZXJpb2Rp
Y2FsbHkgd2hpbGUgYW5pbWF0aW9ucyBhcmUgcnVubmluZy4KIAotICAgIFRpbWVyIG1fbGF5ZXJG
bHVzaFRpbWVyOwotCi0gICAgYm9vbCBtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxl
ZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzUGVuZGluZ0xheWVyRmx1
c2ggeyBmYWxzZSB9OwogICAgIGJvb2wgbV92aWV3QmFja2dyb3VuZElzVHJhbnNwYXJlbnQgeyBm
YWxzZSB9OwogCiAjaWYgIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZmJiNGFkMmUzZTYuLjhiOTEz
NjAxNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OnNldFZpZXdPdmVybGF5Um9vdExheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZQogdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzaXplRGlkQ2hhbmdlKGNvbnN0IEludFNp
emUmIG5ld1NpemUpCiB7CiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Ci0gICAg
bm90aWZ5Rmx1c2hSZXF1aXJlZChtX3Jvb3RMYXllci5nZXQoKSk7CisgICAgbm90aWZ5UmVuZGVy
aW5nVXBkYXRlUmVxdWlyZWQobV9yb290TGF5ZXIuZ2V0KCkpOwogfQogCiBib29sIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCkBAIC0yMDgsNyArMjA4
LDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAg
bV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogfQogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIENvbXBv
c2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChtX3Jvb3RMYXllciAmJiAhaXNGbHVzaGluZ0xheWVy
Q2hhbmdlcygpKQogICAgICAgICBtX2NsaWVudC5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7CkBAIC0y
NzAsNyArMjcwLDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXllcihD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBjb21wb3NpdGlvbkxheWVy
LT5zZXRTY2VuZUludGVncmF0aW9uKG51bGxwdHIpOwogICAgIH0KICAgICBtX3JlZ2lzdGVyZWRM
YXllcnMucmVtb3ZlKGxheWVyLT5pZCgpKTsKLSAgICBub3RpZnlGbHVzaFJlcXVpcmVkKGxheWVy
KTsKKyAgICBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChsYXllcik7CiB9CiAKIHZvaWQg
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6YXR0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiBsYXllcikKQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6OmF0dGFjaExheWVyKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgfQog
ICAgIG1fcmVnaXN0ZXJlZExheWVycy5hZGQobGF5ZXItPmlkKCksIGxheWVyKTsKICAgICBsYXll
ci0+c2V0TmVlZHNWaXNpYmxlUmVjdEFkanVzdG1lbnQoKTsKLSAgICBub3RpZnlGbHVzaFJlcXVp
cmVkKGxheWVyKTsKKyAgICBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChsYXllcik7CiB9
CiAKIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXgg
Nzk2MGQ0MTdjM2UuLjdlNDdlZjM0NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5Rmx1
c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAg
dm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBv
dmVycmlkZTsKICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhmNTA3YTQ5YjRjLi42NjljNmM5ZDgyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTI0
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhy
b3R0bGluZyBjb2RlIGZyb20gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgxMzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNh
Y2hlUmVwYWludF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2hlZHVsZUxheWVyRmx1c2hGb3JQ
ZW5kaW5nVGlsZUNhY2hlUmVwYWludF0pOiBEZWxldGVkLgorCiAyMDIwLTAyLTIyICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBpbmNsdWRlIG1pc3Rh
a2VzIGFuZCBtYWtlIHNvbWUgY29kaW5nIHN0eWxlIHR3ZWFrcyB0byBXZWJLaXQgYW5kIFdlYktp
dFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCA0MzU1ZjcyMDNhNi4uYzBjMjZlNzRiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkzMTAsMTEgKzkzMTAsMTEgQEAgLSAoQk9PTClfZmx1
c2hDb21wb3NpdGluZ0NoYW5nZXMKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0tICh2
b2lkKV9zY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAorLSAodm9p
ZClfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAogewog
ICAgIGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKICAgICBpZiAoYXV0
byogdmlldyA9IGNvcmVGcmFtZS0+dmlldygpKQotICAgICAgICB2aWV3LT5zY2hlZHVsZUxheWVy
Rmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKTsKKyAgICAgICAgdmlldy0+c2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmlu
ZGV4IDZkMWFjMmMyZDc5Li40NDBhNzViYzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKQEAgLTc0MTcsNyArNzQxNyw3IEBAIHZvaWQgV2ViVmlldzo6bm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaW5nJiwgTW9ub3RvCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViVmlldzo6bm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViVmlldzo6bm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgZmx1c2hQZW5kaW5n
R3JhcGhpY3NMYXllckNoYW5nZXNTb29uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgK
aW5kZXggMTgwNjY5OGE5YWQuLmU4ODljYzNhYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5oCkBAIC01NjUsNyArNTY1LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJD
bGllbnQKICAgICB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYsIE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOwotICAg
IHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
b3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluQ2xpcCwgV2ViQ29yZTo6R3JhcGhpY3NMYXll
clBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogCiAjaWYgVVNFKENBKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391633</attachid>
            <date>2020-02-25 01:04:48 -0800</date>
            <delta_ts>2020-02-25 01:15:44 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remove-compositor-throttling-5.patch</filename>
            <type>text/plain</type>
            <size>31847</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDE0YWI4OTk5ZC4uYTQwZWQ3YjM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMC0wMi0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQg
aXMgb25seSB1c2VkIG9uIFdLMSwgYWRkcyBsb3RzIG9mIGNvbXBsZXhpdHkgYW5kIGlzIG5vdCB2
ZXJ5IGVmZmVjdGl2ZSBvciBjb3JyZWN0LgorCisgICAgICAgIEFsc28gZG8gc29tZSAibGF5ZXIg
Zmx1c2giIC0+ICJyZW5kZXJpbmcgdXBkYXRlIiByZW5hbWluZy4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZU92ZXJsYXlDb250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvbWFjL1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNhblRocm90
dGxlTGF5ZXJGbHVzaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNsaWVudDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zy
b21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdSZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmZsdXNoTGF5ZXJzU29vbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRM
YXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jh
cmlseUZvckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRMYXllckZsdXNo
VGltZXJJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJGbHVzaFRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKwogMjAyMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV1BFXSBBZGQgR3N0R0xNZW1vcnlFR0wgc3VwcG9y
dCBmb3IgdGhlIHZpZGVvLXBsYW5lLWRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA5NWY1Yjk1YjFmNC4uZDVmOTcwYjE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEwMTgsMTIgKzEwMTgsMTIgQEAgR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpncmFw
aGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm0KICAgICBy
ZXR1cm4gd2lkZ2V0TGF5ZXItPmJhY2tpbmcoKS0+cGFyZW50Rm9yU3VibGF5ZXJzKCk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKQor
dm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBSZW5kZXJW
aWV3KiB2aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwotICAgIHZpZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVsZUxheWVyRmx1c2godHJ1ZSAv
KiBjYW5UaHJvdHRsZSAqLyk7CisgICAgdmlldy0+Y29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKCk7CiB9CiAKIExheW91dFJlY3QgRnJhbWVWaWV3OjpmaXhlZFNjcm9sbGFibGVB
cmVhQm91bmRzSW5mbGF0ZWRGb3JTY3JvbGxpbmcoY29uc3QgTGF5b3V0UmVjdCYgdW5pbmZsYXRl
ZEJvdW5kcykgY29uc3QKQEAgLTI4NDUsMTEgKzI4NDUsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZGlz
YWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpCiAKICAg
ICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUocGFnZSk7CiAg
ICAgZmxhZ3MuYWRkKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0
aW5nKTsKLSAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRh
dGVUaHJvdHRsaW5nKGZsYWdzKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFJlbmRlclZp
ZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3IoKS5kaXNh
YmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CisgICAg
cGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZs
YWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmxvYWRQcm9ncmVzc2luZ1N0YXR1c0NoYW5nZWQo
KQpAQCAtMjg3MCwxNCArMjg2Niw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNo
VGhyb3R0bGluZygpCiAKICAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUoKnBhZ2UpOwogCi0gICAgLy8gU2VlIGlmIHRoZSBjbGllbnQgaXMgaGFuZGxpbmcg
dGhyb3R0bGluZy4KLSAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGluZyhmbGFncykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAo
YXV0byogZnJhbWUgPSBtX2ZyYW1lLnB0cigpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChtX2ZyYW1lLnB0cigpKSkgewotICAgICAgICBpZiAoUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoZmxhZ3Mu
Y29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCkpOwotICAgIH0K
KyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRs
aW5nKGZsYWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmFkanVzdFRpbGVkQmFja2luZ0NvdmVy
YWdlKCkKQEAgLTUzMDgsNyArNTI5Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3Nl
ZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgfQogCiAgICAg
aWYgKGF1dG8qIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3Io
KS5zY2hlZHVsZUxheWVyRmx1c2goZmFsc2UgLyogY2FuVGhyb3R0bGUgKi8pOworICAgICAgICB2
aWV3LT5jb21wb3NpdG9yKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIAogICAgIGlmIChh
dXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKaW5kZXggNzg1M2Y2NmY2YTcuLjFkZWFjY2MzOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTE0Nyw3ICsxNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5n
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5k
ZXggNDgxMDJhNTcyMjguLjgzZjRkNGU1NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIHsKICAgICBtX3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2No
ZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNjA2Mjg1M2U4NDguLjRmNDM5NGFkNDE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzky
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXll
clBvc2l0aW9uVXBkYXRlcygpOwogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xh
eWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBH
cmFwaGljc0xheWVyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3Zlcmxh
eUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJs
YXlMaW51eC5jcHAKaW5kZXggOWZlMjRjMmY2NGQuLmJjYzFjOWY2Y2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogICAgICAgICBwb3NpdGlvbi5tb3ZlKDAs
IGdGb250U2l6ZSArIDIpOwogICAgIH0KIAotICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1Vw
ZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgbV9vdmVybGF5Lm92ZXJsYXkoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IGY0ZTRiNWVlMjg5Li42MzVmNWRm
ODVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGln
aHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAot
ICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOworICAgICAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGlu
Q2xpcCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCBkNjhl
MzViZGE0My4uMTNlMjE1NzdmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQg
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBt
X2NvbnRyb2xsZXIgPSBudWxscHRyOwogfQogCi12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikK
K3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJp
bmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29u
dHJvbGxlcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDA0ZTEzZTc1MGJlLi5iOGQ0OWZkNGE1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aApAQCAtNjA5LDggKzYwOSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRp
Y2F0b3JzKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVGhyb3R0bGVMYXllckZsdXNoKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJD
QSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NM
YXllckNBUmVtb3RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Q2xpZW50LmgKaW5kZXggNzlhM2Y1Mzk2M2IuLmU0ZGRmNTMyM2U0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBA
IC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGEgbGF5
ZXIgcHJvcGVydHkgY2hhbmdlZCB0aGF0IHJlcXVpcmVzIGEgc3Vic2VxdWVudCBjYWxsIHRvIGZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSgpCiAgICAgLy8gdG8gYXBwZWFyIG9uIHRoZSBzY3JlZW4uCi0g
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgeyB9CiAgICAgCiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhp
cyBsYXllciByZXF1aXJlcyBhIGZsdXNoIGJlZm9yZSB0aGUgbmV4dCBkaXNwbGF5IHJlZnJlc2gu
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3Qg
R3JhcGhpY3NMYXllciopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZTA2M2FhZGE0ZDAuLjg0ZTli
ZmI0YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTQxOTksMTIgKzQxOTksNiBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6bm90ZVN1YmxheWVyc0NoYW5nZWQoU2NoZWR1bGVGbHVzaE9yTm90IHNjaGVk
dWxlRmx1c2gpCiAgICAgcHJvcGFnYXRlTGF5ZXJDaGFuZ2VUb1JlcGxpY2FzKHNjaGVkdWxlRmx1
c2gpOwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y2FuVGhyb3R0bGVMYXllckZsdXNoKCkg
Y29uc3QKLXsKLSAgICAvLyBUaWxlIGxheWVycyBhcmUgY3VycmVudGx5IHBsYWluIENBIGxheWVy
cywgYXR0YWNoZWQgZGlyZWN0bHkgYnkgVGlsZUNvbnRyb2xsZXIuIFRoZXkgcmVxdWlyZSBpbW1l
ZGlhdGUgZmx1c2ggYXMgdGhleSBtYXkgY29udGFpbiBnYXJiYWdlLgotICAgIHJldHVybiAhKG1f
dW5jb21taXR0ZWRDaGFuZ2VzICYgVGlsZXNBZGRlZCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjphZGRVbmNvbW1pdHRlZENoYW5nZXMoTGF5ZXJDaGFuZ2VGbGFncyBmbGFncykKIHsKICAg
ICBtX3VuY29tbWl0dGVkQ2hhbmdlcyB8PSBmbGFnczsKQEAgLTQyMzIsMTQgKzQyMjYsMTMgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChMYXllckNoYW5n
ZUZsYWdzIGZsYWdzLCBTY2hlZHVsZUYKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRV
bmNvbW1pdHRlZENoYW5nZXMgPSAhIW1fdW5jb21taXR0ZWRDaGFuZ2VzOwotICAgIGJvb2wgb2xk
Q2FuVGhyb3R0bGVMYXllckZsdXNoID0gY2FuVGhyb3R0bGVMYXllckZsdXNoKCk7CiAKICAgICBh
ZGRVbmNvbW1pdHRlZENoYW5nZXMoZmxhZ3MpOwogCiAgICAgaWYgKHNjaGVkdWxlRmx1c2ggPT0g
U2NoZWR1bGVGbHVzaCkgewotICAgICAgICBib29sIG5lZWRzRmx1c2ggPSAhaGFkVW5jb21taXR0
ZWRDaGFuZ2VzIHx8IG9sZENhblRocm90dGxlTGF5ZXJGbHVzaCAhPSBjYW5UaHJvdHRsZUxheWVy
Rmx1c2goKTsKKyAgICAgICAgYm9vbCBuZWVkc0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdl
czsKICAgICAgICAgaWYgKG5lZWRzRmx1c2gpCi0gICAgICAgICAgICBjbGllbnQoKS5ub3RpZnlG
bHVzaFJlcXVpcmVkKHRoaXMpOworICAgICAgICAgICAgY2xpZW50KCkubm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQodGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDY5YjFmYWQx
YTcyLi4wM2Q1ZTJjYjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTI5Nyw4ICsyOTcsNiBAQCBwcml2YXRl
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihSZWZQdHI8
R3JhcGhpY3NMYXllcj4mJikgb3ZlcnJpZGU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNh
blRocm90dGxlTGF5ZXJGbHVzaCgpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KFdURjo6VGV4dFN0cmVhbSYsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCmlu
ZGV4IDJlMjFlMGRlMjkyLi5jZWM0MjA4NmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaApAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGp1c3RUaWxlR3JpZFRyYW5zZm9ybXMoKTsKICAgICB2b2lkIHJlbW92ZUFsbE5v
blZpc2libGVUaWxlc0ludGVybmFsKCk7CiAgICAgdm9pZCBjcmVhdGVUaWxlc0luQWN0aXZlR3Jp
ZChTeW5jaHJvbm91c1RpbGVDcmVhdGlvbk1vZGUpOwotICAgIHZvaWQgc2NoZWR1bGVMYXllckZs
dXNoRm9yUGVuZGluZ1JlcGFpbnQoKTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
Rm9yUGVuZGluZ1JlcGFpbnQoKTsKIAogICAgIHZvaWQgdGlsZUNyZWF0aW9uVGltZXJGaXJlZCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNh
Y2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQpp
bmRleCBhNmU0NjZlNjUxMy4uYjNhMjAyNzRkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQpAQCAtNDgsNyArNDgsNyBAQCAtICh2b2lkKV9k
aXNwYXRjaFRpbGVEaWREcmF3OihDQUxheWVyKil0aWxlOwogLSAodm9pZClfd2lsbFN0YXJ0U2Ny
b2xsaW5nT3Jab29taW5nOwogLSAodm9pZClfZGlkRmluaXNoU2Nyb2xsaW5nT3Jab29taW5nOwog
LSAodm9pZClfZGlzcGF0Y2hUaWxlRGlkRHJhdzsKLS0gKHZvaWQpX3NjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50OworLSAodm9pZClfc2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludDsKIEBlbmQKIAogQGludGVyZmFjZSBMZWdh
Y3lUaWxlQ2FjaGVUb21ic3RvbmUgOiBOU09iamVjdCB7CkBAIC02MDksMTAgKzYwOSwxMCBAQCB2
b2lkIExlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5KCkKICAgICBzZXROZWVkc0Rpc3Bs
YXlJblJlY3QoSW50UmVjdCgwLCAwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpLCBz
dGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpKSk7CiB9CiAKLXZvaWQgTGVnYWN5VGlsZUNh
Y2hlOjpzY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nUmVwYWludCgpCit2b2lkIExlZ2FjeVRp
bGVDYWNoZTo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nUmVwYWludCgpCiB7CiAg
ICAgV0FLVmlldyogdmlldyA9IFttX3dpbmRvdyBjb250ZW50Vmlld107Ci0gICAgW3ZpZXcgX3Nj
aGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50XTsKKyAgICBbdmlldyBf
c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludF07CiB9CiAK
IHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVj
dCYgZGlydHlSZWN0KQpAQCAtNjIzLDcgKzYyMyw3IEBAIHZvaWQgTGVnYWN5VGlsZUNhY2hlOjpz
ZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQogICAgIGlmICgh
YWRkZWRGaXJzdFJlY3QpCiAgICAgICAgIHJldHVybjsKICAgICAvLyBDb21wb3NpdGluZyBsYXll
ciBmbHVzaCB3aWxsIGNhbGwgYmFjayB0byBkb1BlbmRpbmdSZXBhaW50cygpLiBUaGUgZmx1c2gg
bWF5IGJlIHRocm90dGxlZCBhbmQgbm90IGhhcHBlbiBpbW1lZGlhdGVseS4KLSAgICBzY2hlZHVs
ZUxheWVyRmx1c2hGb3JQZW5kaW5nUmVwYWludCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlRm9yUGVuZGluZ1JlcGFpbnQoKTsKIH0KIAogdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OmludmFs
aWRhdGVUaWxlcyhjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCkBAIC02OTMsNyArNjkzLDcgQEAg
dm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnVwZGF0ZVRpbGluZ01vZGUoKQogICAgICAgICBjcmVhdGVU
aWxlc0luQWN0aXZlR3JpZChDb3ZlclZpc2libGVPbmx5KTsKIAogICAgICAgICBpZiAoIW1fc2F2
ZWREaXNwbGF5UmVjdHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgc2NoZWR1bGVMYXllckZsdXNo
Rm9yUGVuZGluZ1JlcGFpbnQoKTsKKyAgICAgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
Rm9yUGVuZGluZ1JlcGFpbnQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMWVmNGVmYTM0MmMuLmYwYjU4YTk5
ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtMzQwMCwxMSArMzQwMCwxMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaQogICAg
IHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkubm90aWZ5QW5pbWF0aW9uU3RhcnRlZChyZW5kZXJlcigp
LCB0aW1lKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAg
ICAgaWYgKHJlbmRlcmVyKCkucmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBjb21wb3NpdG9yKCkuc2NoZWR1bGVMYXllckZsdXNoKGxheWVyLT5jYW5UaHJv
dHRsZUxheWVyRmx1c2goKSk7CisgICAgY29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaEJlZm9yZURp
c3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDBmYmI2NmEzZjJhLi4wNDNj
ZjIxNWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaApAQCAtMjM3LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAvLyBHcmFwaGljc0xheWVyQ2xp
ZW50IGludGVyZmFjZQogICAgIHZvaWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBib29sIC8qdXNpbmdUaWxlZEJhY2tpbmcqLykgb3ZlcnJpZGU7CiAgICAg
dm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbktleSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZy
ZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4
IDBmMzg2MDkyZDdiLi42ZGZkMzI4NzMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEwMCwxNCArMTAwLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2lmICFVU0UoQ09NUE9TSVRJTkdfRk9SX1NNQUxMX0NBTlZBU0VT
KQogc3RhdGljIGNvbnN0IGludCBjYW52YXNBcmVhVGhyZXNob2xkUmVxdWlyaW5nQ29tcG9zaXRp
bmcgPSA1MCAqIDEwMDsKICNlbmRpZgotLy8gRHVyaW5nIHBhZ2UgbG9hZGluZyBkZWxheSBsYXll
ciBmbHVzaGVzIHVwIHRvIHRoaXMgbWFueSBzZWNvbmRzIHRvIGFsbG93IHRoZW0gY29hbGVzY2Us
IHJlZHVjaW5nIHdvcmtsb2FkLgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29u
c3QgU2Vjb25kcyB0aHJvdHRsZWRMYXllckZsdXNoSW5pdGlhbERlbGF5IHsgNTAwX21zIH07Ci1z
dGF0aWMgY29uc3QgU2Vjb25kcyB0aHJvdHRsZWRMYXllckZsdXNoRGVsYXkgeyAxLjVfcyB9Owot
I2Vsc2UKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHRocm90dGxlZExheWVyRmx1c2hJbml0aWFsRGVs
YXkgeyA1MDBfbXMgfTsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHRocm90dGxlZExheWVyRmx1c2hE
ZWxheSB7IDUwMF9tcyB9OwotI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
QEAgLTMxNCw3ICszMDYsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbGF5ZXJzTG9nRW5hYmxlZCgp
CiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcihSZW5kZXJWaWV3
JiByZW5kZXJWaWV3KQogICAgIDogbV9yZW5kZXJWaWV3KHJlbmRlclZpZXcpCiAgICAgLCBtX3Vw
ZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIoKnRoaXMsICZSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXJGaXJlZCkKLSAgICAsIG1fbGF5ZXJGbHVzaFRp
bWVyKCp0aGlzLCAmUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZCkK
IHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3JlbmRlclZpZXcuZnJhbWVW
aWV3KCkucGxhdGZvcm1XaWRnZXQoKSkKQEAgLTQ3NiwyNCArNDY3LDE2IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpjdXN0b21Qb3NpdGlvbkZvclZpc2libGVSZWN0Q29tcHV0YXRpb24o
Y29uc3QgR3JhcGhpCiAgICAgcG9zaXRpb24gPSAtc2Nyb2xsUG9zaXRpb247CiB9CiAKLXZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGxheWVyKQordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmlu
Z1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewotICAgIHNjaGVkdWxlTGF5
ZXJGbHVzaChsYXllci0+Y2FuVGhyb3R0bGVMYXllckZsdXNoKCkpOworICAgIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVs
ZUxheWVyRmx1c2goYm9vbCBjYW5UaHJvdHRsZSkKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgQVNTRVJUKCFtX2ZsdXNoaW5nTGF5
ZXJzKTsKIAotICAgIGlmIChjYW5UaHJvdHRsZSkKLSAgICAgICAgc3RhcnRJbml0aWFsTGF5ZXJG
bHVzaFRpbWVySWZOZWVkZWQoKTsKLQotICAgIGlmIChjYW5UaHJvdHRsZSAmJiBpc1Rocm90dGxp
bmdMYXllckZsdXNoZXMoKSkKLSAgICAgICAgbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCA9IHRydWU7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1faGFzUGVuZGluZ0xheWVyRmx1c2ggPSBmYWxzZTsKLSAg
ICAgICAgcGFnZSgpLnJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcigpLnNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlKCk7Ci0gICAgfQorICAgIHBhZ2UoKS5yZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIoKS5z
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiBGbG9hdFJlY3QgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcoKSBjb25zdApAQCAtNTIyLDkgKzUw
NSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5n
ZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJvb3RMYXll
ckF0dGFjaG1lbnQoKSA9PSBSb290TGF5ZXJVbmF0dGFjaGVkKSB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICAgICAgc3RhcnRMYXllckZsdXNoVGltZXJJZk5lZWRlZCgpOwotI2VuZGlm
CiAgICAgICAgIG1fc2hvdWxkRmx1c2hPblJlYXR0YWNoID0gdHJ1ZTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTU2MCw3ICs1NDAsNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKGJvb2wgaXNGbHVzaFJvb3QpCiAjZW5kaWYKIAogICAg
ICsrbV9sYXllckZsdXNoQ291bnQ7Ci0gICAgc3RhcnRMYXllckZsdXNoVGltZXJJZk5lZWRlZCgp
OwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTYyOCw3ICs2MDcsNyBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlkQ2hhbmdlVmlzaWJsZVJlY3QoKQogICAgIGJvb2wg
cmVxdWlyZXNGbHVzaCA9IHJvb3RMYXllci0+dmlzaWJsZVJlY3RDaGFuZ2VSZXF1aXJlc0ZsdXNo
KHZpc2libGVSZWN0KTsKICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8
PCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDaGFuZ2VWaXNpYmxlUmVjdCAiIDw8IHZpc2li
bGVSZWN0IDw8ICIgcmVxdWlyZXNGbHVzaCAiIDw8IHJlcXVpcmVzRmx1c2gpOwogICAgIGlmIChy
ZXF1aXJlc0ZsdXNoKQotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICAgICAgc2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
Om5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopCkBA
IC02NDMsNyArNjIyLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNo
QmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllcioKIAogdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmZsdXNoTGF5ZXJzU29vbihHcmFwaGljc0xheWVyVXBkYXRlciYpCiB7
Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKHRydWUpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRpbGVkQmFja2lu
Z1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBib29sIHVz
aW5nVGlsZWRCYWNraW5nKQpAQCAtMjA3Nyw3ICsyMDU2LDcgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCgpCiAgICAgLy8gaXQgd2lsbCBhbHNvIG1hbmFn
ZSB1cGRhdGluZyB0aGUgc2Nyb2xsIGxheWVyIHBvc2l0aW9uLgogICAgIGlmIChoYXNDb29yZGlu
YXRlZFNjcm9sbGluZygpKSB7CiAgICAgICAgIC8vIFdlIGhhdmUgdG8gc2NoZWR1bGUgYSBmbHVz
aCBpbiBvcmRlciBmb3IgdGhlIG1haW4gVGlsZWRCYWNraW5nIHRvIHVwZGF0ZSBpdHMgdGlsZSBj
b3ZlcmFnZS4KLSAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CisgICAgICAgIHNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM5MzUsNyAr
MzkxNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbnN1cmVSb290TGF5ZXIoKQog
ICAgICAgICAgICAgdXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpOwogCiAgICAgICAgICAg
ICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3JvbGxpbmcoKSkKLSAgICAgICAgICAgICAgICBzY2hlZHVs
ZUxheWVyRmx1c2godHJ1ZSk7CisgICAgICAgICAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB1cGRhdGVTY3JvbGxMYXll
clBvc2l0aW9uKCk7CiAgICAgICAgIH0KQEAgLTQwMjgsNyArNDAwNyw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRh
Y2htZW50KQogICAgIHJvb3RMYXllckF0dGFjaG1lbnRDaGFuZ2VkKCk7CiAgICAgCiAgICAgaWYg
KG1fc2hvdWxkRmx1c2hPblJlYXR0YWNoKSB7Ci0gICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgp
OworICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgICAgICBtX3Nob3VsZEZs
dXNoT25SZWF0dGFjaCA9IGZhbHNlOwogICAgIH0KIH0KQEAgLTQ3MDIsNjAgKzQ2ODEsNiBAQCBH
cmFwaGljc0xheWVyRmFjdG9yeSogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpncmFwaGljc0xheWVy
RmFjdG9yeSgpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5ncmFw
aGljc0xheWVyRmFjdG9yeSgpOwogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0
TGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2xheWVy
Rmx1c2hUaHJvdHRsaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRo
cm90dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9sYXllckZsdXNoVGltZXIu
c3RvcCgpOwotICAgIGlmICghbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCkKLSAgICAgICAgcmV0dXJu
OwotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwotfQotCi12b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6ZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlv
bigpCi17Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVk
Rm9ySW50ZXJhY3Rpb24pCi0gICAgICAgIHJldHVybjsKLSAgICBtX2xheWVyRmx1c2hUaHJvdHRs
aW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gdHJ1ZTsKLX0KLQotYm9vbCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzVGhyb3R0bGluZ0xheWVyRmx1c2hlcygpIGNvbnN0Ci17
Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghbV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlE
aXNhYmxlZEZvckludGVyYWN0aW9uKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzdGFydExheWVyRmx1c2hU
aW1lcklmTmVlZGVkKCkKLXsKLSAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlE
aXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgbV9sYXllckZsdXNoVGltZXIuc3Rv
cCgpOwotICAgIGlmICghbV9sYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpCi0gICAgICAgIHJl
dHVybjsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGVkTGF5ZXJG
bHVzaERlbGF5KTsKLX0KLQotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnN0YXJ0SW5pdGlh
bExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCkKLXsKLSAgICBpZiAoIW1fbGF5ZXJGbHVzaFRocm90
dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRpbWVy
LmlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFy
dE9uZVNob3QodGhyb3R0bGVkTGF5ZXJGbHVzaEluaXRpYWxEZWxheSk7Ci19Ci0KLXZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZCgpCi17Ci0gICAgaWYgKCFt
X2hhc1BlbmRpbmdMYXllckZsdXNoKQotICAgICAgICByZXR1cm47Ci0gICAgc2NoZWR1bGVMYXll
ckZsdXNoKCk7Ci19Ci0KICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQogUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
eUlEKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oCmluZGV4IDA3OGY3OWJhZDAyLi5jNDkxMTdhYTdkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMTc5LDcg
KzE3OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJzIGJ1ZmZlciBzdGF0ZSwg
d2hpY2ggZ2V0cyBwdXNoZWQgdG8gdGhlIHVuZGVybHlpbmcgcGxhdGZvcm0gbGF5ZXJzCiAgICAg
Ly8gYXQgc3BlY2lmaWMgdGltZXMuCi0gICAgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2goYm9vbCBj
YW5UaHJvdHRsZSA9IGZhbHNlKTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCA9IHRy
dWUpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIEdyYXBoaWNzTGF5ZXIgZm9yIHRoZSBnaXZl
biBSZW5kZXJMYXllciBoYXMgZmx1c2hlZCBjaGFuZ2VzIGluc2lkZSBvZiBmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMoKS4KQEAgLTM2NSw5ICszNjUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNO
b25NYWluTGF5ZXJzV2l0aFRpbGVkQmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJzV2l0
aFRpbGVkQmFja2luZ0NvdW50OyB9CiAKICAgICBPcHRpb25TZXQ8Q29tcG9zaXRpbmdSZWFzb24+
IHJlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllciYpIGNvbnN0OwotCi0gICAg
dm9pZCBzZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBkaXNh
YmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CiAgICAg
CiAgICAgdm9pZCBkaWRQYWludEJhY2tpbmcoUmVuZGVyTGF5ZXJCYWNraW5nKik7CiAKQEAgLTM5
Niw3ICszOTMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlQ29tcG9zaXRpbmdQb2xpY3ko
KTsKICAgICAKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCi0gICAg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsK
KyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWlu
dEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lkIGN1c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJl
Y3RDb21wdXRhdGlvbihjb25zdCBHcmFwaGljc0xheWVyKiwgRmxvYXRQb2ludCYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7IH0KQEAgLTU1NywxMSArNTU0LDYgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgc2hvdWxkQ29tcG9zaXRlT3ZlcmZsb3dDb250cm9scygpIGNvbnN0Owog
Ci0gICAgYm9vbCBpc1Rocm90dGxpbmdMYXllckZsdXNoZXMoKSBjb25zdDsKLSAgICB2b2lkIHN0
YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0gICAgdm9pZCBzdGFydExheWVy
Rmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0gICAgdm9pZCBsYXllckZsdXNoVGltZXJGaXJlZCgpOwot
CiAjaWYgIUxPR19ESVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIGxvZ1JlYXNvbnNGb3JDb21wb3Np
dGluZyhjb25zdCBSZW5kZXJMYXllciYpOwogICAgIHZvaWQgbG9nTGF5ZXJJbmZvKGNvbnN0IFJl
bmRlckxheWVyJiwgY29uc3QgY2hhciosIGludCBkZXB0aCk7CkBAIC02MjQsMTEgKzYxNiw2IEBA
IHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllclVwZGF0ZXI+IG1f
bGF5ZXJVcGRhdGVyOyAvLyBVcGRhdGVzIHRpbGVkIGxheWVyIHZpc2libGUgYXJlYSBwZXJpb2Rp
Y2FsbHkgd2hpbGUgYW5pbWF0aW9ucyBhcmUgcnVubmluZy4KIAotICAgIFRpbWVyIG1fbGF5ZXJG
bHVzaFRpbWVyOwotCi0gICAgYm9vbCBtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxl
ZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzUGVuZGluZ0xheWVyRmx1
c2ggeyBmYWxzZSB9OwogICAgIGJvb2wgbV92aWV3QmFja2dyb3VuZElzVHJhbnNwYXJlbnQgeyBm
YWxzZSB9OwogCiAjaWYgIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZmJiNGFkMmUzZTYuLjhiOTEz
NjAxNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OnNldFZpZXdPdmVybGF5Um9vdExheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZQogdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzaXplRGlkQ2hhbmdlKGNvbnN0IEludFNp
emUmIG5ld1NpemUpCiB7CiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Ci0gICAg
bm90aWZ5Rmx1c2hSZXF1aXJlZChtX3Jvb3RMYXllci5nZXQoKSk7CisgICAgbm90aWZ5UmVuZGVy
aW5nVXBkYXRlUmVxdWlyZWQobV9yb290TGF5ZXIuZ2V0KCkpOwogfQogCiBib29sIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCkBAIC0yMDgsNyArMjA4
LDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAg
bV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogfQogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIENvbXBv
c2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChtX3Jvb3RMYXllciAmJiAhaXNGbHVzaGluZ0xheWVy
Q2hhbmdlcygpKQogICAgICAgICBtX2NsaWVudC5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7CkBAIC0y
NzAsNyArMjcwLDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXllcihD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBjb21wb3NpdGlvbkxheWVy
LT5zZXRTY2VuZUludGVncmF0aW9uKG51bGxwdHIpOwogICAgIH0KICAgICBtX3JlZ2lzdGVyZWRM
YXllcnMucmVtb3ZlKGxheWVyLT5pZCgpKTsKLSAgICBub3RpZnlGbHVzaFJlcXVpcmVkKGxheWVy
KTsKKyAgICBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChsYXllcik7CiB9CiAKIHZvaWQg
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6YXR0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiBsYXllcikKQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6OmF0dGFjaExheWVyKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgfQog
ICAgIG1fcmVnaXN0ZXJlZExheWVycy5hZGQobGF5ZXItPmlkKCksIGxheWVyKTsKICAgICBsYXll
ci0+c2V0TmVlZHNWaXNpYmxlUmVjdEFkanVzdG1lbnQoKTsKLSAgICBub3RpZnlGbHVzaFJlcXVp
cmVkKGxheWVyKTsKKyAgICBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChsYXllcik7CiB9
CiAKIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXgg
Nzk2MGQ0MTdjM2UuLjdlNDdlZjM0NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5Rmx1
c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAg
dm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBv
dmVycmlkZTsKICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhmNTA3YTQ5YjRjLi42NjljNmM5ZDgyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTI0
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhy
b3R0bGluZyBjb2RlIGZyb20gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgxMzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNh
Y2hlUmVwYWludF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2hlZHVsZUxheWVyRmx1c2hGb3JQ
ZW5kaW5nVGlsZUNhY2hlUmVwYWludF0pOiBEZWxldGVkLgorCiAyMDIwLTAyLTIyICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBpbmNsdWRlIG1pc3Rh
a2VzIGFuZCBtYWtlIHNvbWUgY29kaW5nIHN0eWxlIHR3ZWFrcyB0byBXZWJLaXQgYW5kIFdlYktp
dFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCA0MzU1ZjcyMDNhNi4uYzBjMjZlNzRiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkzMTAsMTEgKzkzMTAsMTEgQEAgLSAoQk9PTClfZmx1
c2hDb21wb3NpdGluZ0NoYW5nZXMKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0tICh2
b2lkKV9zY2hlZHVsZUxheWVyRmx1c2hGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAorLSAodm9p
ZClfc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAogewog
ICAgIGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKICAgICBpZiAoYXV0
byogdmlldyA9IGNvcmVGcmFtZS0+dmlldygpKQotICAgICAgICB2aWV3LT5zY2hlZHVsZUxheWVy
Rmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKTsKKyAgICAgICAgdmlldy0+c2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmlu
ZGV4IDZkMWFjMmMyZDc5Li40NDBhNzViYzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKQEAgLTc0MTcsNyArNzQxNyw3IEBAIHZvaWQgV2ViVmlldzo6bm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaW5nJiwgTW9ub3RvCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViVmlldzo6bm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViVmlldzo6bm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgZmx1c2hQZW5kaW5n
R3JhcGhpY3NMYXllckNoYW5nZXNTb29uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgK
aW5kZXggMTgwNjY5OGE5YWQuLmU4ODljYzNhYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5oCkBAIC01NjUsNyArNTY1LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJD
bGllbnQKICAgICB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYsIE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOwotICAg
IHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
b3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluQ2xpcCwgV2ViQ29yZTo6R3JhcGhpY3NMYXll
clBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogCiAjaWYgVVNFKENBKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391635</attachid>
            <date>2020-02-25 01:15:44 -0800</date>
            <delta_ts>2020-02-25 08:36:05 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remove-compositor-throttling-6.patch</filename>
            <type>text/plain</type>
            <size>32527</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDE0YWI4OTk5ZC4uYTQwZWQ3YjM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMC0wMi0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQg
aXMgb25seSB1c2VkIG9uIFdLMSwgYWRkcyBsb3RzIG9mIGNvbXBsZXhpdHkgYW5kIGlzIG5vdCB2
ZXJ5IGVmZmVjdGl2ZSBvciBjb3JyZWN0LgorCisgICAgICAgIEFsc28gZG8gc29tZSAibGF5ZXIg
Zmx1c2giIC0+ICJyZW5kZXJpbmcgdXBkYXRlIiByZW5hbWluZy4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZU92ZXJsYXlDb250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvbWFjL1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNhblRocm90
dGxlTGF5ZXJGbHVzaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNsaWVudDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zy
b21LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5VGlsZUNhY2hlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlQ2FjaGU6OnNjaGVkdWxlTGF5ZXJGbHVz
aEZvclBlbmRpbmdSZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmZsdXNoTGF5ZXJzU29vbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRM
YXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jh
cmlseUZvckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRMYXllckZsdXNo
VGltZXJJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnN0YXJ0SW5pdGlhbExheWVyRmx1c2hUaW1lcklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJGbHVzaFRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKwogMjAyMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV1BFXSBBZGQgR3N0R0xNZW1vcnlFR0wgc3VwcG9y
dCBmb3IgdGhlIHZpZGVvLXBsYW5lLWRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA5NWY1Yjk1YjFmNC4uZDVmOTcwYjE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEwMTgsMTIgKzEwMTgsMTIgQEAgR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpncmFw
aGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm0KICAgICBy
ZXR1cm4gd2lkZ2V0TGF5ZXItPmJhY2tpbmcoKS0+cGFyZW50Rm9yU3VibGF5ZXJzKCk7CiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKQor
dm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBSZW5kZXJW
aWV3KiB2aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwotICAgIHZpZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVsZUxheWVyRmx1c2godHJ1ZSAv
KiBjYW5UaHJvdHRsZSAqLyk7CisgICAgdmlldy0+Y29tcG9zaXRvcigpLnNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKCk7CiB9CiAKIExheW91dFJlY3QgRnJhbWVWaWV3OjpmaXhlZFNjcm9sbGFibGVB
cmVhQm91bmRzSW5mbGF0ZWRGb3JTY3JvbGxpbmcoY29uc3QgTGF5b3V0UmVjdCYgdW5pbmZsYXRl
ZEJvdW5kcykgY29uc3QKQEAgLTI4NDUsMTEgKzI4NDUsNyBAQCB2b2lkIEZyYW1lVmlldzo6ZGlz
YWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpCiAKICAg
ICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUocGFnZSk7CiAg
ICAgZmxhZ3MuYWRkKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0
aW5nKTsKLSAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRh
dGVUaHJvdHRsaW5nKGZsYWdzKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFJlbmRlclZp
ZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3IoKS5kaXNh
YmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CisgICAg
cGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZs
YWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmxvYWRQcm9ncmVzc2luZ1N0YXR1c0NoYW5nZWQo
KQpAQCAtMjg3MCwxNCArMjg2Niw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNo
VGhyb3R0bGluZygpCiAKICAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUoKnBhZ2UpOwogCi0gICAgLy8gU2VlIGlmIHRoZSBjbGllbnQgaXMgaGFuZGxpbmcg
dGhyb3R0bGluZy4KLSAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGluZyhmbGFncykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAo
YXV0byogZnJhbWUgPSBtX2ZyYW1lLnB0cigpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChtX2ZyYW1lLnB0cigpKSkgewotICAgICAgICBpZiAoUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoZmxhZ3Mu
Y29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCkpOwotICAgIH0K
KyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRs
aW5nKGZsYWdzKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmFkanVzdFRpbGVkQmFja2luZ0NvdmVy
YWdlKCkKQEAgLTUzMDgsNyArNTI5Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3Nl
ZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgfQogCiAgICAg
aWYgKGF1dG8qIHZpZXcgPSByZW5kZXJWaWV3KCkpCi0gICAgICAgIHZpZXctPmNvbXBvc2l0b3Io
KS5zY2hlZHVsZUxheWVyRmx1c2goZmFsc2UgLyogY2FuVGhyb3R0bGUgKi8pOworICAgICAgICB2
aWV3LT5jb21wb3NpdG9yKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIAogICAgIGlmIChh
dXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKaW5kZXggNzg1M2Y2NmY2YTcuLjFkZWFjY2MzOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTE0Nyw3ICsxNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyRm9yUGxhdGZvcm1XaWRnZXQoUGxhdGZvcm1XaWRnZXQpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJvdHRsaW5n
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5k
ZXggNDgxMDJhNTcyMjguLjgzZjRkNGU1NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIHsKICAgICBtX3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2No
ZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNjA2Mjg1M2U4NDguLjRmNDM5NGFkNDE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzky
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXll
clBvc2l0aW9uVXBkYXRlcygpOwogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xh
eWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBH
cmFwaGljc0xheWVyKiwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3Zlcmxh
eUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJs
YXlMaW51eC5jcHAKaW5kZXggOWZlMjRjMmY2NGQuLmJjYzFjOWY2Y2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogICAgICAgICBwb3NpdGlvbi5tb3ZlKDAs
IGdGb250U2l6ZSArIDIpOwogICAgIH0KIAotICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGUKKyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1Vw
ZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgbV9vdmVybGF5Lm92ZXJsYXkoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IGY0ZTRiNWVlMjg5Li42MzVmNWRm
ODVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGln
aHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAot
ICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOworICAgICAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGlu
Q2xpcCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCBkNjhl
MzViZGE0My4uMTNlMjE1NzdmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQg
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBt
X2NvbnRyb2xsZXIgPSBudWxscHRyOwogfQogCi12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikK
K3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0Ojpub3RpZnlSZW5kZXJp
bmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29u
dHJvbGxlcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDA0ZTEzZTc1MGJlLi5iOGQ0OWZkNGE1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aApAQCAtNjA5LDggKzYwOSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRp
Y2F0b3JzKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVGhyb3R0bGVMYXllckZsdXNoKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJD
QSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NM
YXllckNBUmVtb3RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
Q2xpZW50LmgKaW5kZXggNzlhM2Y1Mzk2M2IuLmU0ZGRmNTMyM2U0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBA
IC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGEgbGF5
ZXIgcHJvcGVydHkgY2hhbmdlZCB0aGF0IHJlcXVpcmVzIGEgc3Vic2VxdWVudCBjYWxsIHRvIGZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSgpCiAgICAgLy8gdG8gYXBwZWFyIG9uIHRoZSBzY3JlZW4uCi0g
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgeyB9CiAgICAgCiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhp
cyBsYXllciByZXF1aXJlcyBhIGZsdXNoIGJlZm9yZSB0aGUgbmV4dCBkaXNwbGF5IHJlZnJlc2gu
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3Qg
R3JhcGhpY3NMYXllciopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggZTA2M2FhZGE0ZDAuLjg0ZTli
ZmI0YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTQxOTksMTIgKzQxOTksNiBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6bm90ZVN1YmxheWVyc0NoYW5nZWQoU2NoZWR1bGVGbHVzaE9yTm90IHNjaGVk
dWxlRmx1c2gpCiAgICAgcHJvcGFnYXRlTGF5ZXJDaGFuZ2VUb1JlcGxpY2FzKHNjaGVkdWxlRmx1
c2gpOwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y2FuVGhyb3R0bGVMYXllckZsdXNoKCkg
Y29uc3QKLXsKLSAgICAvLyBUaWxlIGxheWVycyBhcmUgY3VycmVudGx5IHBsYWluIENBIGxheWVy
cywgYXR0YWNoZWQgZGlyZWN0bHkgYnkgVGlsZUNvbnRyb2xsZXIuIFRoZXkgcmVxdWlyZSBpbW1l
ZGlhdGUgZmx1c2ggYXMgdGhleSBtYXkgY29udGFpbiBnYXJiYWdlLgotICAgIHJldHVybiAhKG1f
dW5jb21taXR0ZWRDaGFuZ2VzICYgVGlsZXNBZGRlZCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjphZGRVbmNvbW1pdHRlZENoYW5nZXMoTGF5ZXJDaGFuZ2VGbGFncyBmbGFncykKIHsKICAg
ICBtX3VuY29tbWl0dGVkQ2hhbmdlcyB8PSBmbGFnczsKQEAgLTQyMzIsMTQgKzQyMjYsMTMgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChMYXllckNoYW5n
ZUZsYWdzIGZsYWdzLCBTY2hlZHVsZUYKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRV
bmNvbW1pdHRlZENoYW5nZXMgPSAhIW1fdW5jb21taXR0ZWRDaGFuZ2VzOwotICAgIGJvb2wgb2xk
Q2FuVGhyb3R0bGVMYXllckZsdXNoID0gY2FuVGhyb3R0bGVMYXllckZsdXNoKCk7CiAKICAgICBh
ZGRVbmNvbW1pdHRlZENoYW5nZXMoZmxhZ3MpOwogCiAgICAgaWYgKHNjaGVkdWxlRmx1c2ggPT0g
U2NoZWR1bGVGbHVzaCkgewotICAgICAgICBib29sIG5lZWRzRmx1c2ggPSAhaGFkVW5jb21taXR0
ZWRDaGFuZ2VzIHx8IG9sZENhblRocm90dGxlTGF5ZXJGbHVzaCAhPSBjYW5UaHJvdHRsZUxheWVy
Rmx1c2goKTsKKyAgICAgICAgYm9vbCBuZWVkc0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdl
czsKICAgICAgICAgaWYgKG5lZWRzRmx1c2gpCi0gICAgICAgICAgICBjbGllbnQoKS5ub3RpZnlG
bHVzaFJlcXVpcmVkKHRoaXMpOworICAgICAgICAgICAgY2xpZW50KCkubm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQodGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDY5YjFmYWQx
YTcyLi4wM2Q1ZTJjYjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTI5Nyw4ICsyOTcsNiBAQCBwcml2YXRl
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihSZWZQdHI8
R3JhcGhpY3NMYXllcj4mJikgb3ZlcnJpZGU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNh
blRocm90dGxlTGF5ZXJGbHVzaCgpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBnZXREZWJ1Z0JvcmRlckluZm8oQ29sb3ImLCBmbG9hdCYgd2lkdGgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KFdURjo6VGV4dFN0cmVhbSYsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcAppbmRleCBiMjhhOTA3MTczYS4uYjg4NmE2ZmY5MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3RpZnlGbHVzaFJl
cXVpcmVkKCkKICAgICBpZiAobV9jb29yZGluYXRvci0+aXNGbHVzaGluZ0xheWVyQ2hhbmdlcygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjbGllbnQoKS5ub3RpZnlGbHVzaFJlcXVpcmVkKHRo
aXMpOworICAgIGNsaWVudCgpLm5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKHRoaXMpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQW5pbWF0aW9ucygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgKaW5kZXgg
MmUyMWUwZGUyOTIuLmNlYzQyMDg2YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0xlZ2FjeVRpbGVDYWNoZS5oCkBAIC0xNzAsNyArMTcwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFkanVzdFRpbGVHcmlkVHJhbnNmb3JtcygpOwogICAgIHZvaWQgcmVtb3ZlQWxsTm9uVmlz
aWJsZVRpbGVzSW50ZXJuYWwoKTsKICAgICB2b2lkIGNyZWF0ZVRpbGVzSW5BY3RpdmVHcmlkKFN5
bmNocm9ub3VzVGlsZUNyZWF0aW9uTW9kZSk7Ci0gICAgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2hG
b3JQZW5kaW5nUmVwYWludCgpOworICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQ
ZW5kaW5nUmVwYWludCgpOwogCiAgICAgdm9pZCB0aWxlQ3JlYXRpb25UaW1lckZpcmVkKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlQ2FjaGUu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCmluZGV4
IGE2ZTQ2NmU2NTEzLi5iM2EyMDI3NGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0xlZ2FjeVRpbGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvTGVnYWN5VGlsZUNhY2hlLm1tCkBAIC00OCw3ICs0OCw3IEBAIC0gKHZvaWQpX2Rpc3Bh
dGNoVGlsZURpZERyYXc6KENBTGF5ZXIqKXRpbGU7CiAtICh2b2lkKV93aWxsU3RhcnRTY3JvbGxp
bmdPclpvb21pbmc7CiAtICh2b2lkKV9kaWRGaW5pc2hTY3JvbGxpbmdPclpvb21pbmc7CiAtICh2
b2lkKV9kaXNwYXRjaFRpbGVEaWREcmF3OwotLSAodm9pZClfc2NoZWR1bGVMYXllckZsdXNoRm9y
UGVuZGluZ1RpbGVDYWNoZVJlcGFpbnQ7CistICh2b2lkKV9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZUZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50OwogQGVuZAogCiBAaW50ZXJmYWNlIExlZ2FjeVRp
bGVDYWNoZVRvbWJzdG9uZSA6IE5TT2JqZWN0IHsKQEAgLTYwOSwxMCArNjA5LDEwIEBAIHZvaWQg
TGVnYWN5VGlsZUNhY2hlOjpzZXROZWVkc0Rpc3BsYXkoKQogICAgIHNldE5lZWRzRGlzcGxheUlu
UmVjdChJbnRSZWN0KDAsIDAsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCksIHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkpKTsKIH0KIAotdm9pZCBMZWdhY3lUaWxlQ2FjaGU6
OnNjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdSZXBhaW50KCkKK3ZvaWQgTGVnYWN5VGlsZUNh
Y2hlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdSZXBhaW50KCkKIHsKICAgICBX
QUtWaWV3KiB2aWV3ID0gW21fd2luZG93IGNvbnRlbnRWaWV3XTsKLSAgICBbdmlldyBfc2NoZWR1
bGVMYXllckZsdXNoRm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnRdOworICAgIFt2aWV3IF9zY2hl
ZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50XTsKIH0KIAogdm9p
ZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QpCkBAIC02MjMsNyArNjIzLDcgQEAgdm9pZCBMZWdhY3lUaWxlQ2FjaGU6OnNldE5l
ZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiAgICAgaWYgKCFhZGRl
ZEZpcnN0UmVjdCkKICAgICAgICAgcmV0dXJuOwogICAgIC8vIENvbXBvc2l0aW5nIGxheWVyIGZs
dXNoIHdpbGwgY2FsbCBiYWNrIHRvIGRvUGVuZGluZ1JlcGFpbnRzKCkuIFRoZSBmbHVzaCBtYXkg
YmUgdGhyb3R0bGVkIGFuZCBub3QgaGFwcGVuIGltbWVkaWF0ZWx5LgotICAgIHNjaGVkdWxlTGF5
ZXJGbHVzaEZvclBlbmRpbmdSZXBhaW50KCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVG
b3JQZW5kaW5nUmVwYWludCgpOwogfQogCiB2b2lkIExlZ2FjeVRpbGVDYWNoZTo6aW52YWxpZGF0
ZVRpbGVzKGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKQEAgLTY5Myw3ICs2OTMsNyBAQCB2b2lk
IExlZ2FjeVRpbGVDYWNoZTo6dXBkYXRlVGlsaW5nTW9kZSgpCiAgICAgICAgIGNyZWF0ZVRpbGVz
SW5BY3RpdmVHcmlkKENvdmVyVmlzaWJsZU9ubHkpOwogCiAgICAgICAgIGlmICghbV9zYXZlZERp
c3BsYXlSZWN0cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hGb3JQ
ZW5kaW5nUmVwYWludCgpOworICAgICAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVGb3JQ
ZW5kaW5nUmVwYWludCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAxZWY0ZWZhMzQyYy4uZjBiNThhOTk4MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CkBAIC0zNDAwLDExICszNDAwLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlB
bmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpCiAgICAgcmVu
ZGVyZXIoKS5hbmltYXRpb24oKS5ub3RpZnlBbmltYXRpb25TdGFydGVkKHJlbmRlcmVyKCksIHRp
bWUpOwogfQogCi12b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3Rp
ZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBp
ZiAocmVuZGVyZXIoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIGNvbXBvc2l0b3IoKS5zY2hlZHVsZUxheWVyRmx1c2gobGF5ZXItPmNhblRocm90dGxl
TGF5ZXJGbHVzaCgpKTsKKyAgICBjb21wb3NpdG9yKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUo
KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUZsdXNoQmVmb3JlRGlzcGxh
eVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMGZiYjY2YTNmMmEuLjA0M2NmMjE1
Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQg
aW50ZXJmYWNlCiAgICAgdm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhp
Y3NMYXllciosIGJvb2wgLyp1c2luZ1RpbGVkQmFja2luZyovKSBvdmVycmlkZTsKICAgICB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmlu
ZyYgYW5pbWF0aW9uS2V5LCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsK
KyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2go
Y29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
IGNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMGYz
ODYwOTJkN2IuLjZkZmQzMjg3MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTAwLDE0ICsxMDAsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAjaWYgIVVTRShDT01QT1NJVElOR19GT1JfU01BTExfQ0FOVkFTRVMpCiBz
dGF0aWMgY29uc3QgaW50IGNhbnZhc0FyZWFUaHJlc2hvbGRSZXF1aXJpbmdDb21wb3NpdGluZyA9
IDUwICogMTAwOwogI2VuZGlmCi0vLyBEdXJpbmcgcGFnZSBsb2FkaW5nIGRlbGF5IGxheWVyIGZs
dXNoZXMgdXAgdG8gdGhpcyBtYW55IHNlY29uZHMgdG8gYWxsb3cgdGhlbSBjb2FsZXNjZSwgcmVk
dWNpbmcgd29ya2xvYWQuCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLXN0YXRpYyBjb25zdCBT
ZWNvbmRzIHRocm90dGxlZExheWVyRmx1c2hJbml0aWFsRGVsYXkgeyA1MDBfbXMgfTsKLXN0YXRp
YyBjb25zdCBTZWNvbmRzIHRocm90dGxlZExheWVyRmx1c2hEZWxheSB7IDEuNV9zIH07Ci0jZWxz
ZQotc3RhdGljIGNvbnN0IFNlY29uZHMgdGhyb3R0bGVkTGF5ZXJGbHVzaEluaXRpYWxEZWxheSB7
IDUwMF9tcyB9Owotc3RhdGljIGNvbnN0IFNlY29uZHMgdGhyb3R0bGVkTGF5ZXJGbHVzaERlbGF5
IHsgNTAwX21zIH07Ci0jZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIApAQCAt
MzE0LDcgKzMwNiw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsYXllcnNMb2dFbmFibGVkKCkKIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcmIHJl
bmRlclZpZXcpCiAgICAgOiBtX3JlbmRlclZpZXcocmVuZGVyVmlldykKICAgICAsIG1fdXBkYXRl
Q29tcG9zaXRpbmdMYXllcnNUaW1lcigqdGhpcywgJlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lckZpcmVkKQotICAgICwgbV9sYXllckZsdXNoVGltZXIo
KnRoaXMsICZSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyRmx1c2hUaW1lckZpcmVkKQogewog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KS5wbGF0Zm9ybVdpZGdldCgpKQpAQCAtNDc2LDI0ICs0NjcsMTYgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmN1c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbihjb25z
dCBHcmFwaGkKICAgICBwb3NpdGlvbiA9IC1zY3JvbGxQb3NpdGlvbjsKIH0KIAotdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXll
ciogbGF5ZXIpCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7Ci0gICAgc2NoZWR1bGVMYXllckZs
dXNoKGxheWVyLT5jYW5UaHJvdHRsZUxheWVyRmx1c2goKSk7CisgICAgc2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNjaGVkdWxlTGF5
ZXJGbHVzaChib29sIGNhblRocm90dGxlKQordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBBU1NFUlQoIW1fZmx1c2hpbmdMYXllcnMp
OwogCi0gICAgaWYgKGNhblRocm90dGxlKQotICAgICAgICBzdGFydEluaXRpYWxMYXllckZsdXNo
VGltZXJJZk5lZWRlZCgpOwotCi0gICAgaWYgKGNhblRocm90dGxlICYmIGlzVGhyb3R0bGluZ0xh
eWVyRmx1c2hlcygpKQotICAgICAgICBtX2hhc1BlbmRpbmdMYXllckZsdXNoID0gdHJ1ZTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCA9IGZhbHNlOwotICAgICAg
ICBwYWdlKCkucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKTsKLSAgICB9CisgICAgcGFnZSgpLnJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcigpLnNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpIGNvbnN0CkBAIC01MjIsOSArNTA1LDYg
QEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhi
b29sIGlzRmx1c2hSb290KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAocm9vdExheWVyQXR0
YWNobWVudCgpID09IFJvb3RMYXllclVuYXR0YWNoZWQpIHsKLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgICAgICBzdGFydExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7Ci0jZW5kaWYKICAg
ICAgICAgbV9zaG91bGRGbHVzaE9uUmVhdHRhY2ggPSB0cnVlOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNTYwLDcgKzU0MCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVz
aFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICNlbmRpZgogCiAgICAgKytt
X2xheWVyRmx1c2hDb3VudDsKLSAgICBzdGFydExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7CiB9
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjI4LDcgKzYwNyw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDaGFuZ2VWaXNpYmxlUmVjdCgpCiAgICAgYm9vbCByZXF1
aXJlc0ZsdXNoID0gcm9vdExheWVyLT52aXNpYmxlUmVjdENoYW5nZVJlcXVpcmVzRmx1c2godmlz
aWJsZVJlY3QpOwogICAgIExPR19XSVRIX1NUUkVBTShDb21wb3NpdGluZywgc3RyZWFtIDw8ICJS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpZENoYW5nZVZpc2libGVSZWN0ICIgPDwgdmlzaWJsZVJl
Y3QgPDwgIiByZXF1aXJlc0ZsdXNoICIgPDwgcmVxdWlyZXNGbHVzaCk7CiAgICAgaWYgKHJlcXVp
cmVzRmx1c2gpCi0gICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworICAgICAgICBzY2hlZHVs
ZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bm90
aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikKQEAgLTY0
Myw3ICs2MjIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bm90aWZ5Rmx1c2hCZWZv
cmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKgogCiB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6Zmx1c2hMYXllcnNTb29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyJikKIHsKLSAg
ICBzY2hlZHVsZUxheWVyRmx1c2godHJ1ZSk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUo
KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVGlsZWRCYWNraW5nVXNh
Z2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIGJvb2wgdXNpbmdU
aWxlZEJhY2tpbmcpCkBAIC0yMDc3LDcgKzIwNTYsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6ZnJhbWVWaWV3RGlkU2Nyb2xsKCkKICAgICAvLyBpdCB3aWxsIGFsc28gbWFuYWdlIHVw
ZGF0aW5nIHRoZSBzY3JvbGwgbGF5ZXIgcG9zaXRpb24uCiAgICAgaWYgKGhhc0Nvb3JkaW5hdGVk
U2Nyb2xsaW5nKCkpIHsKICAgICAgICAgLy8gV2UgaGF2ZSB0byBzY2hlZHVsZSBhIGZsdXNoIGlu
IG9yZGVyIGZvciB0aGUgbWFpbiBUaWxlZEJhY2tpbmcgdG8gdXBkYXRlIGl0cyB0aWxlIGNvdmVy
YWdlLgotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICAgICAgc2NoZWR1bGVSZW5k
ZXJpbmdVcGRhdGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzkzNSw3ICszOTE0
LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuc3VyZVJvb3RMYXllcigpCiAgICAg
ICAgICAgICB1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCk7CiAKICAgICAgICAgICAgIGlm
IChoYXNDb29yZGluYXRlZFNjcm9sbGluZygpKQotICAgICAgICAgICAgICAgIHNjaGVkdWxlTGF5
ZXJGbHVzaCh0cnVlKTsKKyAgICAgICAgICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHVwZGF0ZVNjcm9sbExheWVyUG9z
aXRpb24oKTsKICAgICAgICAgfQpAQCAtNDAyOCw3ICs0MDA3LDcgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcihSb290TGF5ZXJBdHRhY2htZW50IGF0dGFjaG1l
bnQpCiAgICAgcm9vdExheWVyQXR0YWNobWVudENoYW5nZWQoKTsKICAgICAKICAgICBpZiAobV9z
aG91bGRGbHVzaE9uUmVhdHRhY2gpIHsKLSAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cisg
ICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgICAgIG1fc2hvdWxkRmx1c2hP
blJlYXR0YWNoID0gZmFsc2U7CiAgICAgfQogfQpAQCAtNDcwMiw2MCArNDY4MSw2IEBAIEdyYXBo
aWNzTGF5ZXJGYWN0b3J5KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCkgY29uc3QKICAgICByZXR1cm4gcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRMYXll
ckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fbGF5ZXJGbHVz
aFRocm90dGxpbmdFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAobV9sYXllckZsdXNoVGhyb3R0
bGluZ0VuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdG9w
KCk7Ci0gICAgaWYgKCFtX2hhc1BlbmRpbmdMYXllckZsdXNoKQotICAgICAgICByZXR1cm47Ci0g
ICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCkK
LXsKLSAgICBpZiAobV9sYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJ
bnRlcmFjdGlvbikKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdU
ZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSB0cnVlOwotfQotCi1ib29sIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6aXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzKCkgY29uc3QKLXsKLSAg
ICBpZiAoIW1fbGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2Fi
bGVkRm9ySW50ZXJhY3Rpb24pCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnN0YXJ0TGF5ZXJGbHVzaFRpbWVy
SWZOZWVkZWQoKQotewotICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2Fi
bGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxzZTsKLSAgICBtX2xheWVyRmx1c2hUaW1lci5zdG9wKCk7
Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZCkKLSAgICAgICAgcmV0dXJu
OwotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hvdCh0aHJvdHRsZWRMYXllckZsdXNo
RGVsYXkpOwotfQotCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRJbml0aWFsTGF5
ZXJGbHVzaFRpbWVySWZOZWVkZWQoKQotewotICAgIGlmICghbV9sYXllckZsdXNoVGhyb3R0bGlu
Z0VuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9sYXllckZsdXNoVGltZXIuaXNB
Y3RpdmUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25l
U2hvdCh0aHJvdHRsZWRMYXllckZsdXNoSW5pdGlhbERlbGF5KTsKLX0KLQotdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmxheWVyRmx1c2hUaW1lckZpcmVkKCkKLXsKLSAgICBpZiAoIW1faGFz
UGVuZGluZ0xheWVyRmx1c2gpCi0gICAgICAgIHJldHVybjsKLSAgICBzY2hlZHVsZUxheWVyRmx1
c2goKTsKLX0KLQogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCiBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQp
IGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKaW5kZXggMDc4Zjc5YmFkMDIuLmM0OTExN2FhN2RiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0xNzksNyArMTc5
LDcgQEAgcHVibGljOgogCiAgICAgLy8gR3JhcGhpY3NMYXllcnMgYnVmZmVyIHN0YXRlLCB3aGlj
aCBnZXRzIHB1c2hlZCB0byB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybSBsYXllcnMKICAgICAvLyBh
dCBzcGVjaWZpYyB0aW1lcy4KLSAgICB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaChib29sIGNhblRo
cm90dGxlID0gZmFsc2UpOworICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKICAg
ICB2b2lkIGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhib29sIGlzRmx1c2hSb290ID0gdHJ1ZSk7
CiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgR3JhcGhpY3NMYXllciBmb3IgdGhlIGdpdmVuIFJl
bmRlckxheWVyIGhhcyBmbHVzaGVkIGNoYW5nZXMgaW5zaWRlIG9mIGZsdXNoUGVuZGluZ0xheWVy
Q2hhbmdlcygpLgpAQCAtMzY1LDkgKzM2NSw2IEBAIHB1YmxpYzoKICAgICBib29sIGhhc05vbk1h
aW5MYXllcnNXaXRoVGlsZWRCYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcnNXaXRoVGls
ZWRCYWNraW5nQ291bnQ7IH0KIAogICAgIE9wdGlvblNldDxDb21wb3NpdGluZ1JlYXNvbj4gcmVh
c29uc0ZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxheWVyJikgY29uc3Q7Ci0KLSAgICB2b2lk
IHNldExheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIGRpc2FibGVM
YXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKTsKICAgICAKICAg
ICB2b2lkIGRpZFBhaW50QmFja2luZyhSZW5kZXJMYXllckJhY2tpbmcqKTsKIApAQCAtMzk2LDcg
KzM5Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVDb21wb3NpdGluZ1BvbGljeSgpOwog
ICAgIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KLSAgICB2b2lk
IG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAg
IHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
IG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgR3JhcGhpY3NMYXllclBhaW50QmVo
YXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VzdG9tUG9zaXRpb25Gb3JWaXNpYmxlUmVjdENv
bXB1dGF0aW9uKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBGbG9hdFBvaW50JikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2lzVHJhY2tpbmdSZXBhaW50czsgfQpAQCAtNTU3LDExICs1NTQsNiBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBzaG91bGRDb21wb3NpdGVPdmVyZmxvd0NvbnRyb2xzKCkgY29uc3Q7CiAKLSAg
ICBib29sIGlzVGhyb3R0bGluZ0xheWVyRmx1c2hlcygpIGNvbnN0OwotICAgIHZvaWQgc3RhcnRJ
bml0aWFsTGF5ZXJGbHVzaFRpbWVySWZOZWVkZWQoKTsKLSAgICB2b2lkIHN0YXJ0TGF5ZXJGbHVz
aFRpbWVySWZOZWVkZWQoKTsKLSAgICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKCk7Ci0KICNp
ZiAhTE9HX0RJU0FCTEVECiAgICAgY29uc3QgY2hhciogbG9nUmVhc29uc0ZvckNvbXBvc2l0aW5n
KGNvbnN0IFJlbmRlckxheWVyJik7CiAgICAgdm9pZCBsb2dMYXllckluZm8oY29uc3QgUmVuZGVy
TGF5ZXImLCBjb25zdCBjaGFyKiwgaW50IGRlcHRoKTsKQEAgLTYyNCwxMSArNjE2LDYgQEAgcHJp
dmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyVXBkYXRlcj4gbV9sYXll
clVwZGF0ZXI7IC8vIFVwZGF0ZXMgdGlsZWQgbGF5ZXIgdmlzaWJsZSBhcmVhIHBlcmlvZGljYWxs
eSB3aGlsZSBhbmltYXRpb25zIGFyZSBydW5uaW5nLgogCi0gICAgVGltZXIgbV9sYXllckZsdXNo
VGltZXI7Ci0KLSAgICBib29sIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9y
SW50ZXJhY3Rpb24geyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNQZW5kaW5nTGF5ZXJGbHVzaCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZpZXdCYWNrZ3JvdW5kSXNUcmFuc3BhcmVudCB7IGZhbHNl
IH07CiAKICNpZiAhTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBmYmI0YWQyZTNlNi4uOGI5MTM2MDE1
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3Jk
aW5hdG9yLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRv
cjo6c2V0Vmlld092ZXJsYXlSb290TGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllCiB2
b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYg
bmV3U2l6ZSkKIHsKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZShuZXdTaXplKTsKLSAgICBub3Rp
ZnlGbHVzaFJlcXVpcmVkKG1fcm9vdExheWVyLmdldCgpKTsKKyAgICBub3RpZnlSZW5kZXJpbmdV
cGRhdGVSZXF1aXJlZChtX3Jvb3RMYXllci5nZXQoKSk7CiB9CiAKIGJvb2wgQ29tcG9zaXRpbmdD
b29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKQEAgLTIwOCw3ICsyMDgsNyBA
QCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNMYXllclN0YXRlKCkKICAgICBtX3No
b3VsZFN5bmNGcmFtZSA9IHRydWU7CiB9CiAKLXZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgQ29tcG9zaXRp
bmdDb29yZGluYXRvcjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopCiB7CiAgICAgaWYgKG1fcm9vdExheWVyICYmICFpc0ZsdXNoaW5nTGF5ZXJDaGFu
Z2VzKCkpCiAgICAgICAgIG1fY2xpZW50Lm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKQEAgLTI3MCw3
ICsyNzAsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmRldGFjaExheWVyKENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXItPnNl
dFNjZW5lSW50ZWdyYXRpb24obnVsbHB0cik7CiAgICAgfQogICAgIG1fcmVnaXN0ZXJlZExheWVy
cy5yZW1vdmUobGF5ZXItPmlkKCkpOwotICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQobGF5ZXIpOwor
ICAgIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGxheWVyKTsKIH0KIAogdm9pZCBDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjphdHRhY2hMYXllcihDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIq
IGxheWVyKQpAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6
YXR0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllcikKICAgICB9CiAgICAg
bV9yZWdpc3RlcmVkTGF5ZXJzLmFkZChsYXllci0+aWQoKSwgbGF5ZXIpOwogICAgIGxheWVyLT5z
ZXROZWVkc1Zpc2libGVSZWN0QWRqdXN0bWVudCgpOwotICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQo
bGF5ZXIpOworICAgIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGxheWVyKTsKIH0KIAog
dm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpyZW5kZXJOZXh0RnJhbWUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAppbmRleCA3OTYw
ZDQxN2MzZS4uN2U0N2VmMzQ1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5oCkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50Ci0gICAgdm9pZCBub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lk
IG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBvdmVycmlkZTsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOGY1MDdhNDliNGMuLjY2OWM2YzlkODI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDItMjQgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aHJvdHRs
aW5nIGNvZGUgZnJvbSBSZW5kZXJMYXllckNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODEzNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdUaWxlQ2FjaGVS
ZXBhaW50XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRp
bmdUaWxlQ2FjaGVSZXBhaW50XSk6IERlbGV0ZWQuCisKIDIwMjAtMDItMjIgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzb21lIGluY2x1ZGUgbWlzdGFrZXMg
YW5kIG1ha2Ugc29tZSBjb2Rpbmcgc3R5bGUgdHdlYWtzIHRvIFdlYktpdCBhbmQgV2ViS2l0VGVz
dFJ1bm5lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDQzNTVmNzIwM2E2Li5jMGMyNmU3NGIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtOTMxMCwxMSArOTMxMCwxMSBAQCAtIChCT09MKV9mbHVzaENv
bXBvc2l0aW5nQ2hhbmdlcwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLS0gKHZvaWQp
X3NjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CistICh2b2lkKV9z
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CiB7CiAgICAg
YXV0byogY29yZUZyYW1lID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOwogICAgIGlmIChhdXRvKiB2
aWV3ID0gY29yZUZyYW1lLT52aWV3KCkpCi0gICAgICAgIHZpZXctPnNjaGVkdWxlTGF5ZXJGbHVz
aEFsbG93aW5nVGhyb3R0bGluZygpOworICAgICAgICB2aWV3LT5zY2hlZHVsZVJlbmRlcmluZ1Vw
ZGF0ZSgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXgg
NmQxYWMyYzJkNzkuLjQ0MGE3NWJjODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtNzQxNyw3ICs3NDE3LDcgQEAgdm9pZCBXZWJWaWV3Ojpub3RpZnlBbmltYXRpb25TdGFy
dGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmLCBNb25vdG8KICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJWaWV3Ojpub3RpZnlGbHVzaFJlcXVpcmVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJWaWV3Ojpub3RpZnlSZW5kZXJpbmdVcGRh
dGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBmbHVzaFBlbmRpbmdHcmFw
aGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaAppbmRl
eCAxODA2Njk4YTlhZC4uZTg4OWNjM2FhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgK
QEAgLTU2NSw3ICs1NjUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVu
dAogICAgIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgY29uc3QgU3RyaW5nJiwgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5DbGlwLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFp
bnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQ0EpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391732</attachid>
            <date>2020-02-26 03:15:07 -0800</date>
            <delta_ts>2020-02-26 03:37:38 -0800</delta_ts>
            <desc>revert back to notifyFlushRequired</desc>
            <filename>flush-naming-revert.patch</filename>
            <type>text/plain</type>
            <size>13894</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5N2FiNjU2NmZlYi4uZTQ2Y2ExNGNjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMC0wMi0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTc2NTQxMD4KKworICAgICAgICBVbnJldmll
d2VkIHBhcnRpYWwgcmV2ZXJ0LgorCisgICAgICAgIEtlZXAgdXNpbmcgdGhlICJmbHVzaCIgbmFt
aW5nIGluIEdyYXBoaWNzTGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6
Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlDb250
cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL2xpbnV4L1Jl
c291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6SGlnaGxpZ2h0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRl
UmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6Om5v
dGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVu
dDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDIwLTAyLTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnRUaW1lbGluZSAvIENTU1Ry
YW5zaXRpb24gb2JqZWN0cyBhcmUgbGVha2luZyBvbiBDTk4uY29tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggODNmNGQ0ZTU2NDguLjQ4MTAy
YTU3MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
Y3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6bm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFBhZ2VPdmVybGF5Q29udHJv
bGxlcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBt
X3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVUaW1lZFJlbmRlcmluZ1Vw
ZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgK
aW5kZXggNGY0Mzk0YWQ0MTYuLjYwNjI4NTNlODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwog
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3Zl
cnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKaW5kZXggYmNj
MWM5ZjZjZGYuLjlmZTI0YzJmNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xp
bnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBA
QCBwcml2YXRlOgogICAgICAgICBwb3NpdGlvbi5tb3ZlKDAsIGdGb250U2l6ZSArIDIpOwogICAg
IH0KIAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlCisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9vdmVybGF5Lm92ZXJsYXko
KS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5oCmluZGV4IDYzNWY1ZGY4NWVjLi5mNGU0YjVlZTI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtODEs
NyArODEsNyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7
CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgICAgICB2b2lkIG5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZTsKICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGluQ2xpcCwgR3JhcGhpY3NMYXllclBh
aW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcigp
IGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCAxM2UyMTU3N2YzNS4uZDY4ZTM1YmRhNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRy
OwogfQogCi12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5
UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29udHJvbGxlcikKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCmluZGV4IGU0ZGRmNTMyM2U0Li43OWEzZjUzOTYzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOb3RpZmljYXRpb24gdGhh
dCBhIGxheWVyIHByb3BlcnR5IGNoYW5nZWQgdGhhdCByZXF1aXJlcyBhIHN1YnNlcXVlbnQgY2Fs
bCB0byBmbHVzaENvbXBvc2l0aW5nU3RhdGUoKQogICAgIC8vIHRvIGFwcGVhciBvbiB0aGUgc2Ny
ZWVuLgotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogICAgIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0
aGF0IHRoaXMgbGF5ZXIgcmVxdWlyZXMgYSBmbHVzaCBiZWZvcmUgdGhlIG5leHQgZGlzcGxheSBy
ZWZyZXNoLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNo
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjg4NmE2ZmY5MTUuLmIyOGE5
MDcxNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZCgpCiAgICAgaWYgKG1fY29vcmRpbmF0b3ItPmlz
Rmx1c2hpbmdMYXllckNoYW5nZXMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xpZW50KCku
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQodGhpcyk7CisgICAgY2xpZW50KCkubm90aWZ5
Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmRpZENoYW5nZUFuaW1hdGlvbnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA3Nzk2NWY4ZTM3YS4uOWUyNjhhNGY0ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0z
NDAxLDcgKzM0MDEsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaQogICAgICAgICByZW5kZXJl
cigpLmFuaW1hdGlvbigpLm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQocmVuZGVyZXIoKSwgdGltZSk7
CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChyZW5kZXJl
cigpLnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMDQzY2YyMTVj
YTUuLjBmYmI2NmEzZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgIC8vIEdyYXBoaWNz
TGF5ZXJDbGllbnQgaW50ZXJmYWNlCiAgICAgdm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQo
Y29uc3QgR3JhcGhpY3NMYXllciosIGJvb2wgLyp1c2luZ1RpbGVkQmFja2luZyovKSBvdmVycmlk
ZTsKICAgICB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllcios
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlz
cGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogCiAgICAgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmIGNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKaW5kZXggZGEwN2VlMjk1YWYuLmI4NDk3MzY1M2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDY3LDcgKzQ2Nyw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjdXN0b21Qb3NpdGlvbkZvclZpc2libGVS
ZWN0Q29tcHV0YXRpb24oY29uc3QgR3JhcGhpCiAgICAgcG9zaXRpb24gPSAtc2Nyb2xsUG9zaXRp
b247CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlSZW5kZXJpbmdVcGRh
dGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogICAgIHNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggMWIzZmJmMjFiZjcuLjc2Y2RlNGIzNDYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCkBAIC0zOTMsNyArMzkzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUNvbXBvc2l0
aW5nUG9saWN5KCk7CiAgICAgCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRh
dGlvbgotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBHcmFwaGlj
c0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjdXN0b21Qb3NpdGlvbkZv
clZpc2libGVSZWN0Q29tcHV0YXRpb24oY29uc3QgR3JhcGhpY3NMYXllciosIEZsb2F0UG9pbnQm
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZiYWE5
NmE3MzU0Li5mYWFmNDI3ODBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0y
NiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRo
cm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9zaXRvcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MTM1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81OTc2NTQxMD4KKworICAgICAgICBVbnJldmlld2VkIHBhcnRpYWwgcmV2ZXJ0Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGlu
Z0Nvb3JkaW5hdG9yOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRp
bmdDb29yZGluYXRvci5oOgorCiAyMDIwLTAyLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBDYWxsIHBlbmRpbmcgbV91bnJlZ2lzdGVySm9icyBjb21wbGV0
aW9uIGhhbmRsZXJzIHdoZW4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIGdvZXMgYXdheQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5k
ZXggOGI5MTM2MDE1MTEuLjRiYWQ2ZjA2OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2
b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNMYXllclN0YXRlKCkKICAgICBtX3Nob3Vs
ZFN5bmNGcmFtZSA9IHRydWU7CiB9CiAKLXZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6bm90
aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NM
YXllciopCiB7CiAgICAgaWYgKG1fcm9vdExheWVyICYmICFpc0ZsdXNoaW5nTGF5ZXJDaGFuZ2Vz
KCkpCiAgICAgICAgIG1fY2xpZW50Lm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggN2U0N2Vm
MzQ1NWEuLjc5NjBkNDE3YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwor
ICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDkzNTkzNGUzOGRmLi43ZGRhYjFjNjFmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAyLTI2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhyb3R0bGlu
ZyBjb2RlIGZyb20gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgxMzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU5NzY1NDEwPgorCisgICAgICAgIFVucmV2aWV3ZWQgcGFydGlhbCByZXZlcnQuCisKKyAgICAg
ICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeUZsdXNoUmVxdWlyZWQp
OgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlZpZXcuaDoKKwogMjAyMC0wMi0xMyAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjU1MTU4LCAyNTU0MDUgYW5kIHIyNTU0ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAK
aW5kZXggNDQwYTc1YmM4MDkuLjZkMWFjMmMyZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcApAQCAtNzQxNyw3ICs3NDE3LDcgQEAgdm9pZCBXZWJWaWV3Ojpub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmLCBNb25vdG8KICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJWaWV3Ojpub3RpZnlSZW5kZXJp
bmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViVmlldzo6bm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBmbHVzaFBlbmRp
bmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
aAppbmRleCBlODg5Y2MzYWEwNi4uMTgwNjY5OGE5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmgKQEAgLTU2NSw3ICs1NjUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gR3JhcGhpY3NMYXll
ckNsaWVudAogICAgIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgY29uc3QgU3RyaW5nJiwgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5DbGlwLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQ0EpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391734</attachid>
            <date>2020-02-26 03:37:38 -0800</date>
            <delta_ts>2020-02-26 04:32:37 -0800</delta_ts>
            <desc>revert back to notifyFlushRequired</desc>
            <filename>flush-naming-revert.patch</filename>
            <type>text/plain</type>
            <size>13894</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5N2FiNjU2NmZlYi4uZTQ2Y2ExNGNjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMC0wMi0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTc2NTQxMD4KKworICAgICAgICBVbnJldmll
d2VkIHBhcnRpYWwgcmV2ZXJ0LgorCisgICAgICAgIEtlZXAgdXNpbmcgdGhlICJmbHVzaCIgbmFt
aW5nIGluIEdyYXBoaWNzTGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6
Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlDb250
cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL2xpbnV4L1Jl
c291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6SGlnaGxpZ2h0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRl
UmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6Om5v
dGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVu
dDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDIwLTAyLTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnRUaW1lbGluZSAvIENTU1Ry
YW5zaXRpb24gb2JqZWN0cyBhcmUgbGVha2luZyBvbiBDTk4uY29tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggODNmNGQ0ZTU2NDguLjQ4MTAy
YTU3MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
Y3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6bm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFBhZ2VPdmVybGF5Q29udHJv
bGxlcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBt
X3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVUaW1lZFJlbmRlcmluZ1Vw
ZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgK
aW5kZXggNGY0Mzk0YWQ0MTYuLjYwNjI4NTNlODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwog
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3Zl
cnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKaW5kZXggYmNj
MWM5ZjZjZGYuLjlmZTI0YzJmNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xp
bnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBA
QCBwcml2YXRlOgogICAgICAgICBwb3NpdGlvbi5tb3ZlKDAsIGdGb250U2l6ZSArIDIpOwogICAg
IH0KIAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlCisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9vdmVybGF5Lm92ZXJsYXko
KS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5oCmluZGV4IDYzNWY1ZGY4NWVjLi5mNGU0YjVlZTI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtODEs
NyArODEsNyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7
CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgICAgICB2b2lkIG5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZTsKICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGluQ2xpcCwgR3JhcGhpY3NMYXllclBh
aW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcigp
IGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCAxM2UyMTU3N2YzNS4uZDY4ZTM1YmRhNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRy
OwogfQogCi12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5
UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29udHJvbGxlcikKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCmluZGV4IGU0ZGRmNTMyM2U0Li43OWEzZjUzOTYzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOb3RpZmljYXRpb24gdGhh
dCBhIGxheWVyIHByb3BlcnR5IGNoYW5nZWQgdGhhdCByZXF1aXJlcyBhIHN1YnNlcXVlbnQgY2Fs
bCB0byBmbHVzaENvbXBvc2l0aW5nU3RhdGUoKQogICAgIC8vIHRvIGFwcGVhciBvbiB0aGUgc2Ny
ZWVuLgotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogICAgIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0
aGF0IHRoaXMgbGF5ZXIgcmVxdWlyZXMgYSBmbHVzaCBiZWZvcmUgdGhlIG5leHQgZGlzcGxheSBy
ZWZyZXNoLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNo
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjg4NmE2ZmY5MTUuLmIyOGE5
MDcxNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZCgpCiAgICAgaWYgKG1fY29vcmRpbmF0b3ItPmlz
Rmx1c2hpbmdMYXllckNoYW5nZXMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xpZW50KCku
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQodGhpcyk7CisgICAgY2xpZW50KCkubm90aWZ5
Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmRpZENoYW5nZUFuaW1hdGlvbnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA3Nzk2NWY4ZTM3YS4uOWUyNjhhNGY0ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0z
NDAxLDcgKzM0MDEsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaQogICAgICAgICByZW5kZXJl
cigpLmFuaW1hdGlvbigpLm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQocmVuZGVyZXIoKSwgdGltZSk7
CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChyZW5kZXJl
cigpLnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMDQzY2YyMTVj
YTUuLjBmYmI2NmEzZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgIC8vIEdyYXBoaWNz
TGF5ZXJDbGllbnQgaW50ZXJmYWNlCiAgICAgdm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQo
Y29uc3QgR3JhcGhpY3NMYXllciosIGJvb2wgLyp1c2luZ1RpbGVkQmFja2luZyovKSBvdmVycmlk
ZTsKICAgICB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllcios
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlz
cGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogCiAgICAgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmIGNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKaW5kZXggZGEwN2VlMjk1YWYuLmI4NDk3MzY1M2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDY3LDcgKzQ2Nyw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjdXN0b21Qb3NpdGlvbkZvclZpc2libGVS
ZWN0Q29tcHV0YXRpb24oY29uc3QgR3JhcGhpCiAgICAgcG9zaXRpb24gPSAtc2Nyb2xsUG9zaXRp
b247CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlSZW5kZXJpbmdVcGRh
dGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogICAgIHNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggMWIzZmJmMjFiZjcuLjc2Y2RlNGIzNDYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCkBAIC0zOTMsNyArMzkzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUNvbXBvc2l0
aW5nUG9saWN5KCk7CiAgICAgCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRh
dGlvbgotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBHcmFwaGlj
c0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjdXN0b21Qb3NpdGlvbkZv
clZpc2libGVSZWN0Q29tcHV0YXRpb24oY29uc3QgR3JhcGhpY3NMYXllciosIEZsb2F0UG9pbnQm
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZiYWE5
NmE3MzU0Li5mYWFmNDI3ODBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0y
NiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRo
cm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9zaXRvcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MTM1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81OTc2NTQxMD4KKworICAgICAgICBVbnJldmlld2VkIHBhcnRpYWwgcmV2ZXJ0Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGlu
Z0Nvb3JkaW5hdG9yOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRp
bmdDb29yZGluYXRvci5oOgorCiAyMDIwLTAyLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBDYWxsIHBlbmRpbmcgbV91bnJlZ2lzdGVySm9icyBjb21wbGV0
aW9uIGhhbmRsZXJzIHdoZW4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIGdvZXMgYXdheQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5k
ZXggOGI5MTM2MDE1MTEuLjRiYWQ2ZjA2OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2
b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNMYXllclN0YXRlKCkKICAgICBtX3Nob3Vs
ZFN5bmNGcmFtZSA9IHRydWU7CiB9CiAKLXZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6bm90
aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NM
YXllciopCiB7CiAgICAgaWYgKG1fcm9vdExheWVyICYmICFpc0ZsdXNoaW5nTGF5ZXJDaGFuZ2Vz
KCkpCiAgICAgICAgIG1fY2xpZW50Lm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggN2U0N2Vm
MzQ1NWEuLjc5NjBkNDE3YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwor
ICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDkzNTkzNGUzOGRmLi43ZGRhYjFjNjFmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAyLTI2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhyb3R0bGlu
ZyBjb2RlIGZyb20gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgxMzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU5NzY1NDEwPgorCisgICAgICAgIFVucmV2aWV3ZWQgcGFydGlhbCByZXZlcnQuCisKKyAgICAg
ICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeUZsdXNoUmVxdWlyZWQp
OgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlZpZXcuaDoKKwogMjAyMC0wMi0xMyAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjU1MTU4LCAyNTU0MDUgYW5kIHIyNTU0ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAK
aW5kZXggNDQwYTc1YmM4MDkuLjZkMWFjMmMyZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcApAQCAtNzQxNyw3ICs3NDE3LDcgQEAgdm9pZCBXZWJWaWV3Ojpub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmLCBNb25vdG8KICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJWaWV3Ojpub3RpZnlSZW5kZXJp
bmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViVmlldzo6bm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBmbHVzaFBlbmRp
bmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
aAppbmRleCBlODg5Y2MzYWEwNi4uMTgwNjY5OGE5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmgKQEAgLTU2NSw3ICs1NjUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gR3JhcGhpY3NMYXll
ckNsaWVudAogICAgIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgY29uc3QgU3RyaW5nJiwgTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5DbGlwLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQ0EpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391736</attachid>
            <date>2020-02-26 04:32:37 -0800</date>
            <delta_ts>2020-02-26 04:34:41 -0800</delta_ts>
            <desc>revert back to notifyFlushRequired</desc>
            <filename>flush-naming-revert-2.patch</filename>
            <type>text/plain</type>
            <size>14525</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5N2FiNjU2NmZlYi4uZTQ2Y2ExNGNjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMC0wMi0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTc2NTQxMD4KKworICAgICAgICBVbnJldmll
d2VkIHBhcnRpYWwgcmV2ZXJ0LgorCisgICAgICAgIEtlZXAgdXNpbmcgdGhlICJmbHVzaCIgbmFt
aW5nIGluIEdyYXBoaWNzTGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6
Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlDb250
cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL2xpbnV4L1Jl
c291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6SGlnaGxpZ2h0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRl
UmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6Om5v
dGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVu
dDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDIwLTAyLTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnRUaW1lbGluZSAvIENTU1Ry
YW5zaXRpb24gb2JqZWN0cyBhcmUgbGVha2luZyBvbiBDTk4uY29tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggODNmNGQ0ZTU2NDguLjQ4MTAy
YTU3MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
Y3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6bm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFBhZ2VPdmVybGF5Q29udHJv
bGxlcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBt
X3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVUaW1lZFJlbmRlcmluZ1Vw
ZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgK
aW5kZXggNGY0Mzk0YWQ0MTYuLjYwNjI4NTNlODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwog
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3Zl
cnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKaW5kZXggYmNj
MWM5ZjZjZGYuLjlmZTI0YzJmNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xp
bnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBA
QCBwcml2YXRlOgogICAgICAgICBwb3NpdGlvbi5tb3ZlKDAsIGdGb250U2l6ZSArIDIpOwogICAg
IH0KIAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlCisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9vdmVybGF5Lm92ZXJsYXko
KS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5oCmluZGV4IDYzNWY1ZGY4NWVjLi5mNGU0YjVlZTI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtODEs
NyArODEsNyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7
CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgICAgICB2b2lkIG5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZTsKICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGluQ2xpcCwgR3JhcGhpY3NMYXllclBh
aW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcigp
IGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCAxM2UyMTU3N2YzNS4uZDY4ZTM1YmRhNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRy
OwogfQogCi12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5
UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29udHJvbGxlcikKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCmluZGV4IGU0ZGRmNTMyM2U0Li43OWEzZjUzOTYzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOb3RpZmljYXRpb24gdGhh
dCBhIGxheWVyIHByb3BlcnR5IGNoYW5nZWQgdGhhdCByZXF1aXJlcyBhIHN1YnNlcXVlbnQgY2Fs
bCB0byBmbHVzaENvbXBvc2l0aW5nU3RhdGUoKQogICAgIC8vIHRvIGFwcGVhciBvbiB0aGUgc2Ny
ZWVuLgotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogICAgIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0
aGF0IHRoaXMgbGF5ZXIgcmVxdWlyZXMgYSBmbHVzaCBiZWZvcmUgdGhlIG5leHQgZGlzcGxheSBy
ZWZyZXNoLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNo
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg0ZTliZmI0YzM2
Li43MDVlOGIxODA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC00MjMyLDcgKzQyMzIsNyBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKExheWVyQ2hhbmdlRmxh
Z3MgZmxhZ3MsIFNjaGVkdWxlRgogICAgIGlmIChzY2hlZHVsZUZsdXNoID09IFNjaGVkdWxlRmx1
c2gpIHsKICAgICAgICAgYm9vbCBuZWVkc0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdlczsK
ICAgICAgICAgaWYgKG5lZWRzRmx1c2gpCi0gICAgICAgICAgICBjbGllbnQoKS5ub3RpZnlSZW5k
ZXJpbmdVcGRhdGVSZXF1aXJlZCh0aGlzKTsKKyAgICAgICAgICAgIGNsaWVudCgpLm5vdGlmeUZs
dXNoUmVxdWlyZWQodGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGI4ODZhNmZmOTE1Li5i
MjhhOTA3MTczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6Om5vdGlmeUZsdXNoUmVxdWlyZWQoKQogICAgIGlmIChtX2Nvb3JkaW5hdG9y
LT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNsaWVu
dCgpLm5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKHRoaXMpOworICAgIGNsaWVudCgpLm5v
dGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpkaWRDaGFuZ2VBbmltYXRpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNzc5NjVmOGUzN2EuLjllMjY4YTRmNGQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMzQwMSw3ICszNDAxLDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmkKICAgICAgICAgcmVu
ZGVyZXIoKS5hbmltYXRpb24oKS5ub3RpZnlBbmltYXRpb25TdGFydGVkKHJlbmRlcmVyKCksIHRp
bWUpOwogfQogCi12b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5UmVuZGVyaW5nVXBkYXRl
UmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAocmVu
ZGVyZXIoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDA0M2Nm
MjE1Y2E1Li4wZmJiNjZhM2YyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuaApAQCAtMjM3LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAvLyBHcmFw
aGljc0xheWVyQ2xpZW50IGludGVyZmFjZQogICAgIHZvaWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFu
Z2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29sIC8qdXNpbmdUaWxlZEJhY2tpbmcqLykgb3Zl
cnJpZGU7CiAgICAgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbktleSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUp
IG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3Qg
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZnlGbHVzaEJlZm9y
ZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCmluZGV4IGRhMDdlZTI5NWFmLi5iODQ5NzM2NTNiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTQ2Nyw3ICs0
NjcsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y3VzdG9tUG9zaXRpb25Gb3JWaXNp
YmxlUmVjdENvbXB1dGF0aW9uKGNvbnN0IEdyYXBoaQogICAgIHBvc2l0aW9uID0gLXNjcm9sbFBv
c2l0aW9uOwogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bm90aWZ5UmVuZGVyaW5n
VXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAg
ICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDFiM2ZiZjIxYmY3Li43NmNkZTRi
MzQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaApAQCAtMzkzLDcgKzM5Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVDb21w
b3NpdGluZ1BvbGljeSgpOwogICAgIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW1wbGVt
ZW50YXRpb24KLSAgICB2b2lkIG5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgR3Jh
cGhpY3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VzdG9tUG9zaXRp
b25Gb3JWaXNpYmxlUmVjdENvbXB1dGF0aW9uKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBGbG9hdFBv
aW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2lzVHJhY2tpbmdSZXBhaW50czsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2
YmFhOTZhNzM1NC4uZmFhZjQyNzgwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAt
MDItMjYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSB0aHJvdHRsaW5nIGNvZGUgZnJvbSBSZW5kZXJMYXllckNvbXBvc2l0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODEzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTk3NjU0MTA+CisKKyAgICAgICAgVW5yZXZpZXdlZCBwYXJ0aWFsIHJldmVy
dC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nv
b3JkaW5hdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKFdlYktpdDo6Q29tcG9z
aXRpbmdDb29yZGluYXRvcjo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBv
c2l0aW5nQ29vcmRpbmF0b3IuaDoKKwogMjAyMC0wMi0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBwZW5kaW5nIG1fdW5yZWdpc3RlckpvYnMgY29t
cGxldGlvbiBoYW5kbGVycyB3aGVuIFdlYlNXU2VydmVyQ29ubmVjdGlvbiBnb2VzIGF3YXkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IDhiOTEzNjAxNTExLi40YmFkNmYwNjk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3Jk
aW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yMDgsNyArMjA4LDcg
QEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9z
aG91bGRTeW5jRnJhbWUgPSB0cnVlOwogfQogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9p
ZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKQogewogICAgIGlmIChtX3Jvb3RMYXllciAmJiAhaXNGbHVzaGluZ0xheWVyQ2hh
bmdlcygpKQogICAgICAgICBtX2NsaWVudC5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IDdl
NDdlZjM0NTVhLi43OTYwZDQxN2MzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKLSAgICB2b2lkIG5vdGlmeVJlbmRl
cmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlk
ZTsKKyAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA5MzU5MzRlMzhkZi4uN2RkYWIxYzYxZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0yNiAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRocm90
dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9zaXRvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MTM1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81OTc2NTQxMD4KKworICAgICAgICBVbnJldmlld2VkIHBhcnRpYWwgcmV2ZXJ0LgorCisg
ICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlGbHVzaFJlcXVp
cmVkKToKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMjAtMDItMTMgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjI1NTE1OCwgMjU1NDA1IGFuZCByMjU1NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IDQ0MGE3NWJjODA5Li42ZDFhYzJjMmQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKQEAgLTc0MTcsNyArNzQxNyw3IEBAIHZvaWQgV2ViVmlldzo6bm90aWZ5QW5p
bWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaW5nJiwgTW9ub3Rv
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViVmlldzo6bm90aWZ5UmVu
ZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFdlYlZpZXc6
Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgZmx1c2hQ
ZW5kaW5nR3JhcGhpY3NMYXllckNoYW5nZXNTb29uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmgKaW5kZXggZTg4OWNjM2FhMDYuLjE4MDY2OThhOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5oCkBAIC01NjUsNyArNTY1LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEdyYXBoaWNz
TGF5ZXJDbGllbnQKICAgICB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYsIE1vbm90b25pY1RpbWUpIG92ZXJyaWRl
OwotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludENv
bnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluQ2xpcCwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogCiAjaWYgVVNFKENBKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391737</attachid>
            <date>2020-02-26 04:34:41 -0800</date>
            <delta_ts>2020-02-26 05:38:04 -0800</delta_ts>
            <desc>revert back to notifyFlushRequired</desc>
            <filename>flush-naming-revert-3.patch</filename>
            <type>text/plain</type>
            <size>16237</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5N2FiNjU2NmZlYi4uZTQ2Y2ExNGNjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMC0wMi0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJlbmRlckxheWVyQ29tcG9z
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
MTM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTc2NTQxMD4KKworICAgICAgICBVbnJldmll
d2VkIHBhcnRpYWwgcmV2ZXJ0LgorCisgICAgICAgIEtlZXAgdXNpbmcgdGhlICJmbHVzaCIgbmFt
aW5nIGluIEdyYXBoaWNzTGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6
Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlDb250
cm9sbGVyOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL2xpbnV4L1Jl
c291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6SGlnaGxpZ2h0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRl
UmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQ6Om5v
dGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVu
dDo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDIwLTAyLTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnRUaW1lbGluZSAvIENTU1Ry
YW5zaXRpb24gb2JqZWN0cyBhcmUgbGVha2luZyBvbiBDTk4uY29tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggODNmNGQ0ZTU2NDguLjQ4MTAy
YTU3MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
Y3BwCkBAIC00MTAsNyArNDEwLDcgQEAgZmxvYXQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6bm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFBhZ2VPdmVybGF5Q29udHJv
bGxlcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBt
X3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVUaW1lZFJlbmRlcmluZ1Vw
ZGF0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgK
aW5kZXggNGY0Mzk0YWQ0MTYuLjYwNjI4NTNlODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwog
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBk
YXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3Zl
cnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIHNob3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKiwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKaW5kZXggYmNj
MWM5ZjZjZGYuLjlmZTI0YzJmNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xp
bnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBA
QCBwcml2YXRlOgogICAgICAgICBwb3NpdGlvbi5tb3ZlKDAsIGdGb250U2l6ZSArIDIpOwogICAg
IH0KIAotICAgIHZvaWQgbm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlCisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9vdmVybGF5Lm92ZXJsYXko
KS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5oCmluZGV4IDYzNWY1ZGY4NWVjLi5mNGU0YjVlZTI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtODEs
NyArODEsNyBAQCBwcml2YXRlOgogICAgICAgICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7
CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgICAgICB2b2lkIG5vdGlmeVJl
bmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZTsKICAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGluQ2xpcCwgR3JhcGhpY3NMYXllclBh
aW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcigp
IGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCAxM2UyMTU3N2YzNS4uZDY4ZTM1YmRhNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlci5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRy
OwogfQogCi12b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5
UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikKIHsKICAgICBpZiAoIW1fY29udHJvbGxlcikKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCmluZGV4IGU0ZGRmNTMyM2U0Li43OWEzZjUzOTYzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBOb3RpZmljYXRpb24gdGhh
dCBhIGxheWVyIHByb3BlcnR5IGNoYW5nZWQgdGhhdCByZXF1aXJlcyBhIHN1YnNlcXVlbnQgY2Fs
bCB0byBmbHVzaENvbXBvc2l0aW5nU3RhdGUoKQogICAgIC8vIHRvIGFwcGVhciBvbiB0aGUgc2Ny
ZWVuLgotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogICAgIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0
aGF0IHRoaXMgbGF5ZXIgcmVxdWlyZXMgYSBmbHVzaCBiZWZvcmUgdGhlIG5leHQgZGlzcGxheSBy
ZWZyZXNoLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNo
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg0ZTliZmI0YzM2
Li43MDVlOGIxODA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC00MjMyLDcgKzQyMzIsNyBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKExheWVyQ2hhbmdlRmxh
Z3MgZmxhZ3MsIFNjaGVkdWxlRgogICAgIGlmIChzY2hlZHVsZUZsdXNoID09IFNjaGVkdWxlRmx1
c2gpIHsKICAgICAgICAgYm9vbCBuZWVkc0ZsdXNoID0gIWhhZFVuY29tbWl0dGVkQ2hhbmdlczsK
ICAgICAgICAgaWYgKG5lZWRzRmx1c2gpCi0gICAgICAgICAgICBjbGllbnQoKS5ub3RpZnlSZW5k
ZXJpbmdVcGRhdGVSZXF1aXJlZCh0aGlzKTsKKyAgICAgICAgICAgIGNsaWVudCgpLm5vdGlmeUZs
dXNoUmVxdWlyZWQodGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcAppbmRleCBiZTY2ZDQ3MDJiMi4uYjcyNDNlOTk0YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpub3RpZnlDaGFuZ2UoQ2hhbmdlTWFzayBj
aGFuZ2VNYXNrKQogICAgIG1fY2hhbmdlTWFzayB8PSBjaGFuZ2VNYXNrOwogCiAgICAgaWYgKGZs
dXNoUmVxdWlyZWQpCi0gICAgICAgIGNsaWVudCgpLm5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVp
cmVkKHRoaXMpOworICAgICAgICBjbGllbnQoKS5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwog
fQogCiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6fkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKaW5kZXggYjg4NmE2ZmY5MTUuLmIyOGE5MDcxNzNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAt
NjYsNyArNjYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6bm90aWZ5Rmx1c2hS
ZXF1aXJlZCgpCiAgICAgaWYgKG1fY29vcmRpbmF0b3ItPmlzRmx1c2hpbmdMYXllckNoYW5nZXMo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xpZW50KCkubm90aWZ5UmVuZGVyaW5nVXBkYXRl
UmVxdWlyZWQodGhpcyk7CisgICAgY2xpZW50KCkubm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsK
IH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1hdGlvbnMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApp
bmRleCA3Nzk2NWY4ZTM3YS4uOWUyNjhhNGY0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zNDAxLDcgKzM0MDEsNyBAQCB2b2lk
IFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGlj
c0xheWVyKiwgY29uc3QgU3RyaQogICAgICAgICByZW5kZXJlcigpLmFuaW1hdGlvbigpLm5vdGlm
eUFuaW1hdGlvblN0YXJ0ZWQocmVuZGVyZXIoKSwgdGltZSk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xh
eWVyKikKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChyZW5kZXJlcigpLnJlbmRlclRyZWVCZWluZ0Rl
c3Ryb3llZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMDQzY2YyMTVjYTUuLjBmYmI2NmEzZjJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0yMzcs
NyArMjM3LDcgQEAgcHVibGljOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW50ZXJmYWNl
CiAgICAgdm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllcios
IGJvb2wgLyp1c2luZ1RpbGVkQmFja2luZyovKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uS2V5LCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3Rp
ZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7
CisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZTsKICAgICB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGNsaXAsIEdy
YXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGEwN2VlMjk1YWYu
LmI4NDk3MzY1M2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjdXN0b21Qb3NpdGlvbkZvclZpc2libGVSZWN0Q29tcHV0YXRpb24oY29uc3Qg
R3JhcGhpCiAgICAgcG9zaXRpb24gPSAtc2Nyb2xsUG9zaXRpb247CiB9CiAKLXZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlGbHVzaFJlcXVp
cmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKaW5kZXggMWIzZmJmMjFiZjcuLjc2Y2RlNGIzNDYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0zOTMsNyArMzkzLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUNvbXBvc2l0aW5nUG9saWN5KCk7CiAgICAgCiAg
ICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRhdGlvbgotICAgIHZvaWQgbm90aWZ5
UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwor
ICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjdXN0b21Qb3NpdGlvbkZvclZpc2libGVSZWN0Q29tcHV0YXRp
b24oY29uc3QgR3JhcGhpY3NMYXllciosIEZsb2F0UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNU
cmFja2luZ1JlcGFpbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZiYWE5NmE3MzU0Li5mYWFmNDI3ODBlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0yNiAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRocm90dGxpbmcgY29kZSBmcm9tIFJl
bmRlckxheWVyQ29tcG9zaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4MTM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTc2NTQxMD4KKwor
ICAgICAgICBVbnJldmlld2VkIHBhcnRpYWwgcmV2ZXJ0LgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVx
dWlyZWQpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlS
ZW5kZXJpbmdVcGRhdGVSZXF1aXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oOgorCiAy
MDIwLTAyLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBD
YWxsIHBlbmRpbmcgbV91bnJlZ2lzdGVySm9icyBjb21wbGV0aW9uIGhhbmRsZXJzIHdoZW4gV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uIGdvZXMgYXdheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggOGI5MTM2MDE1MTEuLmZiYjRh
ZDJlM2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdD
b29yZGluYXRvci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OnNldFZpZXdPdmVybGF5Um9vdExheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZQogdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzaXplRGlkQ2hhbmdlKGNvbnN0IEludFNp
emUmIG5ld1NpemUpCiB7CiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Ci0gICAg
bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQobV9yb290TGF5ZXIuZ2V0KCkpOworICAgIG5v
dGlmeUZsdXNoUmVxdWlyZWQobV9yb290TGF5ZXIuZ2V0KCkpOwogfQogCiBib29sIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCkBAIC0yMDgsNyArMjA4
LDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAg
bV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogfQogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6Om5vdGlmeVJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQor
dm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChtX3Jvb3RMYXllciAmJiAhaXNGbHVzaGluZ0xheWVy
Q2hhbmdlcygpKQogICAgICAgICBtX2NsaWVudC5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7CkBAIC0y
NzAsNyArMjcwLDcgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXllcihD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBjb21wb3NpdGlvbkxheWVy
LT5zZXRTY2VuZUludGVncmF0aW9uKG51bGxwdHIpOwogICAgIH0KICAgICBtX3JlZ2lzdGVyZWRM
YXllcnMucmVtb3ZlKGxheWVyLT5pZCgpKTsKLSAgICBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1
aXJlZChsYXllcik7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZChsYXllcik7CiB9CiAKIHZvaWQg
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6YXR0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiBsYXllcikKQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6OmF0dGFjaExheWVyKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgfQog
ICAgIG1fcmVnaXN0ZXJlZExheWVycy5hZGQobGF5ZXItPmlkKCksIGxheWVyKTsKICAgICBsYXll
ci0+c2V0TmVlZHNWaXNpYmxlUmVjdEFkanVzdG1lbnQoKTsKLSAgICBub3RpZnlSZW5kZXJpbmdV
cGRhdGVSZXF1aXJlZChsYXllcik7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZChsYXllcik7CiB9
CiAKIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXgg
N2U0N2VmMzQ1NWEuLjc5NjBkNDE3YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgbm90aWZ5UmVu
ZGVyaW5nVXBkYXRlUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJy
aWRlOworICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBv
dmVycmlkZTsKICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDkzNTkzNGUzOGRmLi43ZGRhYjFjNjFmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAyLTI2
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhy
b3R0bGluZyBjb2RlIGZyb20gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgxMzUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU5NzY1NDEwPgorCisgICAgICAgIFVucmV2aWV3ZWQgcGFydGlhbCByZXZlcnQuCisK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeUZsdXNoUmVx
dWlyZWQpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UmVuZGVyaW5nVXBkYXRlUmVxdWlyZWQp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcuaDoKKwogMjAyMC0wMi0xMyAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjU1MTU4LCAyNTU0MDUgYW5kIHIyNTU0ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKaW5kZXggNDQwYTc1YmM4MDkuLjZkMWFjMmMyZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcApAQCAtNzQxNyw3ICs3NDE3LDcgQEAgdm9pZCBXZWJWaWV3Ojpub3RpZnlB
bmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmLCBNb25v
dG8KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJWaWV3Ojpub3RpZnlS
ZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViVmll
dzo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBmbHVz
aFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuaAppbmRleCBlODg5Y2MzYWEwNi4uMTgwNjY5OGE5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmgKQEAgLTU2NSw3ICs1NjUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gR3JhcGhp
Y3NMYXllckNsaWVudAogICAgIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgY29uc3QgU3RyaW5nJiwgTW9ub3RvbmljVGltZSkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBub3RpZnlSZW5kZXJpbmdVcGRhdGVSZXF1aXJlZChjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVk
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50
Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5DbGlwLCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQ0EpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>