<?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>205392</bug_id>
          
          <creation_ts>2019-12-18 06:36:41 -0800</creation_ts>
          <short_desc>Invalidate only affected elements after media query evaluation changes</short_desc>
          <delta_ts>2019-12-22 10:07:05 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>205449</dependson>
    
    <dependson>205540</dependson>
          <blocked>204448</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1599773</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 06:36:41 -0800</bug_when>
    <thetext>We are currently invalidating the whole tree. Invalidate only the affected parts of the DOM using invalidation rule sets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599917</commentid>
    <comment_count>1</comment_count>
      <attachid>385993</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 12:22:19 -0800</bug_when>
    <thetext>Created attachment 385993
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599949</commentid>
    <comment_count>2</comment_count>
      <attachid>385997</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 12:57:50 -0800</bug_when>
    <thetext>Created attachment 385997
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600167</commentid>
    <comment_count>3</comment_count>
      <attachid>386072</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-18 22:59:09 -0800</bug_when>
    <thetext>Created attachment 386072
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600187</commentid>
    <comment_count>4</comment_count>
      <attachid>386079</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-19 00:37:53 -0800</bug_when>
    <thetext>Created attachment 386079
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600653</commentid>
    <comment_count>5</comment_count>
      <attachid>386189</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 02:07:51 -0800</bug_when>
    <thetext>Created attachment 386189
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600654</commentid>
    <comment_count>6</comment_count>
      <attachid>386190</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 02:20:05 -0800</bug_when>
    <thetext>Created attachment 386190
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600655</commentid>
    <comment_count>7</comment_count>
      <attachid>386191</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 02:21:31 -0800</bug_when>
    <thetext>Created attachment 386191
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600656</commentid>
    <comment_count>8</comment_count>
      <attachid>386192</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 02:25:16 -0800</bug_when>
    <thetext>Created attachment 386192
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600667</commentid>
    <comment_count>9</comment_count>
      <attachid>386194</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 03:18:04 -0800</bug_when>
    <thetext>Created attachment 386194
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600675</commentid>
    <comment_count>10</comment_count>
      <attachid>386198</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 03:50:15 -0800</bug_when>
    <thetext>Created attachment 386198
gcc build test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600680</commentid>
    <comment_count>11</comment_count>
      <attachid>386199</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 03:58:04 -0800</bug_when>
    <thetext>Created attachment 386199
gcc build test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600686</commentid>
    <comment_count>12</comment_count>
      <attachid>386203</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 04:45:54 -0800</bug_when>
    <thetext>Created attachment 386203
gcc build test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600690</commentid>
    <comment_count>13</comment_count>
      <attachid>386204</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 04:59:51 -0800</bug_when>
    <thetext>Created attachment 386204
gcc build test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600715</commentid>
    <comment_count>14</comment_count>
      <attachid>386212</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 06:30:08 -0800</bug_when>
    <thetext>Created attachment 386212
gcc build test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600721</commentid>
    <comment_count>15</comment_count>
      <attachid>386216</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-20 07:06:59 -0800</bug_when>
    <thetext>Created attachment 386216
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600733</commentid>
    <comment_count>16</comment_count>
      <attachid>386216</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-20 08:34:08 -0800</bug_when>
    <thetext>Comment on attachment 386216
patch

Clearing flags on attachment: 386216

Committed r253820: &lt;https://trac.webkit.org/changeset/253820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600734</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-20 08:34:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600735</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-20 08:35:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/58115301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600911</commentid>
    <comment_count>19</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-12-20 13:51:54 -0800</bug_when>
    <thetext>Reverted r253820 for reason:

Broke Mac testing

Committed r253844: &lt;https://trac.webkit.org/changeset/253844&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601084</commentid>
    <comment_count>20</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-21 04:29:44 -0800</bug_when>
    <thetext>The HashTrait change exposed a bug in the content extension code. I&apos;ll do that change separately in bug 205540.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601093</commentid>
    <comment_count>21</comment_count>
      <attachid>386297</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-21 09:24:44 -0800</bug_when>
    <thetext>Created attachment 386297
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601163</commentid>
    <comment_count>22</comment_count>
      <attachid>386315</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-22 07:35:57 -0800</bug_when>
    <thetext>Created attachment 386315
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601168</commentid>
    <comment_count>23</comment_count>
      <attachid>386315</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-22 10:07:03 -0800</bug_when>
    <thetext>Comment on attachment 386315
patch

Clearing flags on attachment: 386315

Committed r253875: &lt;https://trac.webkit.org/changeset/253875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601169</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-22 10:07:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385993</attachid>
            <date>2019-12-18 12:22:19 -0800</date>
            <delta_ts>2019-12-18 12:57:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation.patch</filename>
            <type>text/plain</type>
            <size>11711</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzN2E5ZjdhOGNmOC4uOGRhOTZjODE2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgdGhlIHdob2xlIHRyZWUg
d2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAgV2UgY2FuIGRv
IGJldHRlci4KKworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1
bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRl
ZCk6CisKKyAgICAgICAgQnVpbGQgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQgZnJvbSB0aGUgcnVs
ZXMgc2VlbiBpbnNpZGUgZHluYW1pYyBtZWRpYSBxdWVyaWVzLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZO
ZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb246OmlzRW1w
dHkgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1
ZXJpZXMpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMpOgorCisgICAgICAgIFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3Vy
YXRlIHN0eWxlIGludmFsaWRhdGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5oOgorCiAyMDE5LTEyLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdHlsZTo6SW52YWxpZGF0b3Igc2hvdWxkIGJlIGFibGUgdG8gaW52YWxpZGF0
ZSB1c2luZyBtdWx0aXBsZSBSdWxlU2V0cyBpbiBvbmUgcGFzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0
LmNwcAppbmRleCAxNDg3YzFhNjI2YS4uMDRkMWUwN2JmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVT
ZXQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUm
IHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9yCiAgICAgbV9m
ZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXMocnVsZURhdGEpOwogCiAgICAgaWYgKG1lZGlhUXVlcnlD
b2xsZWN0b3IpCi0gICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVQb3NpdGlvbklm
TmVlZGVkKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgICAgICBtZWRpYVF1ZXJ5Q29sbGVjdG9y
LT5hZGRSdWxlSWZOZWVkZWQocnVsZURhdGEpOwogCiAgICAgdW5zaWduZWQgY2xhc3NCdWNrZXRT
aXplID0gMDsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3RvciA9IG51bGxwdHI7CkBA
IC00MDUsOSArNDA1LDEwIEBAIHZvaWQgUnVsZVNldDo6dHJhdmVyc2VSdWxlRGF0YXMoRnVuY3Rp
b24mJiBmdW5jdGlvbikKICAgICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKIH0K
IAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3Ip
CitSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gUnVsZVNldDo6ZXZhbHV0ZUR5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9y
KQogewotICAgIGJvb2wgY2hhbmdlcyA9IGZhbHNlOworICAgIE1lZGlhUXVlcnlTdHlsZUludmFs
aWRhdGlvbiBpbnZhbGlkYXRpb247CisKICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSdWxlcyA6IG1f
ZHluYW1pY01lZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAg
ICAgICAgIGZvciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlhUXVlcnlTZXRzKSB7CkBA
IC00MjAsMTggKzQyMSwxOCBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1
bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0CiAgICAgICAgIGlmIChy
ZXN1bHQgIT0gZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAgICAgZHluYW1pY1J1bGVz
LnJlc3VsdCA9IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWljUnVsZXMucmVxdWlyZXNG
dWxsUmVzZXQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5
cGU6OlJlc2V0OworICAgICAgICAgICAgICAgIHJldHVybiB7IHRydWUgfTsKIAogICAgICAgICAg
ICAgdHJhdmVyc2VSdWxlRGF0YXMoWyZdKFJ1bGVEYXRhJiBydWxlRGF0YSkgewogICAgICAgICAg
ICAgICAgIGlmICghZHluYW1pY1J1bGVzLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5jb250YWlucyhy
dWxlRGF0YS5wb3NpdGlvbigpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgICAgIHJ1bGVEYXRhLnNldEVuYWJsZWQocmVzdWx0KTsKLSAgICAgICAgICAgICAgICBj
aGFuZ2VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpbnZhbGlkYXRpb24uaW52YWxpZGF0aW9u
UnVsZVNldHMuYXBwZW5kKGR5bmFtaWNSdWxlcy5pbnZhbGlkYXRpb25SdWxlU2V0LmdldCgpKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGNoYW5nZXMg
PyBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlIDogTWVkaWFRdWVyeVN0eWxlVXBk
YXRlVHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gaW52YWxpZGF0aW9uOwogfQogCiBib29sIFJ1bGVT
ZXQ6Omhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC01MDgsNiArNTA5LDEw
IEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cG9wKE1lZGlhUXVlcnlTZXQq
IHNldCkKICAgICAgICAgaWYgKGNvbGxlY3REeW5hbWljKSB7CiAgICAgICAgICAgICBhdXRvJiB0
b0FkZCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9uczsK
ICAgICAgICAgICAgIHJ1bGVzLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hZGQodG9BZGQuYmVnaW4o
KSwgdG9BZGQuZW5kKCkpOworCisgICAgICAgICAgICBydWxlcy5pbnZhbGlkYXRpb25SdWxlU2V0
ID0gV1RGTW92ZShkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5pbnZhbGlkYXRpb25SdWxlU2V0
KTsKKyAgICAgICAgICAgIGlmIChydWxlcy5pbnZhbGlkYXRpb25SdWxlU2V0KQorICAgICAgICAg
ICAgICAgIHJ1bGVzLmludmFsaWRhdGlvblJ1bGVTZXQtPnNocmlua1RvRml0KCk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgcnVsZXMucmVxdWlyZXNGdWxsUmVzZXQgPSB0cnVlOwogCkBA
IC01MjQsMTEgKzUyOSwxNyBAQCB2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmRp
ZE11dGF0ZVJlc29sdmVyKCkKICAgICBkaWRNdXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRp
YVF1ZXJ5ID0gdHJ1ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjph
ZGRSdWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3QgaW5kZXgpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlh
UXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRlZChSdWxlRGF0YSYgcnVsZURhdGEpCiB7CiAg
ICAgaWYgKGR5bmFtaWNDb250ZXh0U3RhY2suaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVu
ZChpbmRleCk7CisKKyAgICBhdXRvJiBjb250ZXh0ID0gZHluYW1pY0NvbnRleHRTdGFjay5sYXN0
KCk7CisgICAgY29udGV4dC5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYXBwZW5kKHJ1bGVEYXRhLnBv
c2l0aW9uKCkpOworCisgICAgaWYgKCFjb250ZXh0LmludmFsaWRhdGlvblJ1bGVTZXQpCisgICAg
ICAgIGNvbnRleHQuaW52YWxpZGF0aW9uUnVsZVNldCA9IG1ha2VVbmlxdWU8UnVsZVNldD4oKTsK
KyAgICBjb250ZXh0LmludmFsaWRhdGlvblJ1bGVTZXQtPmFkZFJ1bGUoKnJ1bGVEYXRhLnJ1bGUo
KSwgcnVsZURhdGEuc2VsZWN0b3JJbmRleCgpLCBydWxlRGF0YS5zZWxlY3Rvckxpc3RJbmRleCgp
KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKaW5kZXggODRkZGZhNmMxN2MuLjU3OTQ2ZGJi
ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAg
ICBzdHJ1Y3QgRHluYW1pY01lZGlhUXVlcnlSdWxlcyB7CiAgICAgICAgIFZlY3RvcjxSZWY8TWVk
aWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOwogICAgICAgICBIYXNoU2V0PHNpemVfdCwgRGVm
YXVsdEhhc2g8c2l6ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0
czxzaXplX3Q+PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxSdWxlU2V0PiBpbnZhbGlkYXRpb25SdWxlU2V0OwogICAgICAgICBib29sIHJlcXVpcmVzRnVs
bFJlc2V0IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCByZXN1bHQgeyB0cnVlIH07CiAgICAgfTsK
QEAgLTc4LDYgKzc5LDcgQEAgcHVibGljOgogICAgICAgICBzdHJ1Y3QgRHluYW1pY0NvbnRleHQg
ewogICAgICAgICAgICAgUmVmPE1lZGlhUXVlcnlTZXQ+IHNldDsKICAgICAgICAgICAgIFZlY3Rv
cjxzaXplX3Q+IGFmZmVjdGVkUnVsZVBvc2l0aW9ucyB7IH07CisgICAgICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UnVsZVNldD4gaW52YWxpZGF0aW9uUnVsZVNldCB7IH07CiAgICAgICAgIH07CiAg
ICAgICAgIFZlY3RvcjxEeW5hbWljQ29udGV4dD4gZHluYW1pY0NvbnRleHRTdGFjayB7IH07CiAK
QEAgLTg4LDcgKzkwLDcgQEAgcHVibGljOgogICAgICAgICBib29sIHB1c2hBbmRFdmFsdWF0ZShN
ZWRpYVF1ZXJ5U2V0Kik7CiAgICAgICAgIHZvaWQgcG9wKE1lZGlhUXVlcnlTZXQqKTsKICAgICAg
ICAgdm9pZCBkaWRNdXRhdGVSZXNvbHZlcigpOwotICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlv
bklmTmVlZGVkKHNpemVfdCk7CisgICAgICAgIHZvaWQgYWRkUnVsZUlmTmVlZGVkKFJ1bGVEYXRh
Jik7CiAgICAgfTsKIAogICAgIHZvaWQgYWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRl
bnRzJiwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwpAQCAtMTAzLDggKzEwNSwxMyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29u
c3QgeyByZXR1cm4gbV9oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllczsgfQogCi0gICAg
ZW51bSBjbGFzcyBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIHsgTm9uZSwgUmVzb2x2ZSwgUmVz
ZXQgfTsKLSAgICBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFR
dWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKKyAgICBzdHJ1Y3QgTWVkaWFR
dWVyeVN0eWxlSW52YWxpZGF0aW9uIHsKKyAgICAgICAgYm9vbCBuZWVkc1Jlc2V0IHsgZmFsc2Ug
fTsKKyAgICAgICAgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiBpbnZhbGlkYXRpb25SdWxlU2V0
czsKKworICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbmVlZHNSZXNldCAm
JiBpbnZhbGlkYXRpb25SdWxlU2V0cy5pc0VtcHR5KCk7IH0KKyAgICB9OworICAgIE1lZGlhUXVl
cnlTdHlsZUludmFsaWRhdGlvbiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBjb25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVy
ZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlci5jcHAKaW5kZXggMzU5NDRkMTg2ODQuLjA3YmEyYzZiN2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApAQCAtNjA3LDcgKzYwNyw3IEBAIGJvb2wgUmVz
b2x2ZXI6Omhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1
cm4gbV9ydWxlU2V0cy5oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpOwogfQogCi1S
dWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFt
aWNNZWRpYVF1ZXJpZXMoKQorUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uIFJl
c29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQogewogICAgIHJldHVybiBtX3J1
bGVTZXRzLmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKG1fbWVkaWFRdWVyeUV2YWx1YXRv
cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKaW5kZXggMmVkNWZlODVjOTIu
LmQ4NTljMDAwMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC0xMzIs
NyArMTMyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBk
YXRlVHlwZSBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsKKyAgICBSdWxlU2V0OjpNZWRp
YVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCk7CiAK
ICAgICB2b2lkIGFkZEtleWZyYW1lU3R5bGUoUmVmPFN0eWxlUnVsZUtleWZyYW1lcz4mJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggOTBiNjNkMmRlNDguLjdiM2MzNjFl
YzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApAQCAtNjUxLDE5ICs2NTEsMTYg
QEAgdm9pZCBTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1bmN0aW9uJiYgdGVzdEZ1
bmN0aW9uKQogICAgIGlmICghcmVzb2x2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8g
dXBkYXRlVHlwZSA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOworICAgIGF1dG8gaW52YWxpZGF0
aW9uID0gdGVzdEZ1bmN0aW9uKCpyZXNvbHZlcik7CiAKLSAgICBzd2l0Y2ggKHVwZGF0ZVR5cGUp
IHsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU6Cisg
ICAgaWYgKGludmFsaWRhdGlvbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBjYXNl
IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29sdmU6Ci0gICAgICAgIC8v
IEZJWE1FOiBXZSBjb3VsZCBoYXZlIGFuIGludmFsaWRhdGlvbiBydWxlc2V0IGZvciBydWxlcyBp
bnNpZGUgZHluYW1pYyBtZWRpYSBxdWVyaWVzLgotICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRF
bGVtZW50ID0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3Vt
ZW50RWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OgorCisg
ICAgaWYgKGludmFsaWRhdGlvbi5uZWVkc1Jlc2V0KQogICAgICAgICBzY2hlZHVsZVVwZGF0ZShV
cGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24pOwotICAgICAgICBicmVhazsKKyAg
ICBlbHNlIHsKKyAgICAgICAgSW52YWxpZGF0b3IgaW52YWxpZGF0b3IoaW52YWxpZGF0aW9uLmlu
dmFsaWRhdGlvblJ1bGVTZXRzKTsKKyAgICAgICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxl
KG1fZG9jdW1lbnQpOwogICAgIH0KIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bWVk
aWFRdWVyeVJlc3VsdENoYW5nZWQobV9kb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCAwMTFjNzk2MWE0OC4uZDNmZjNlYTAxNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAtMTQxLDI3
ICsxNDEsMzEgQEAgYm9vbCBTY29wZVJ1bGVTZXRzOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlh
UXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1
ZXJ5U3R5bGVVcGRhdGVUeXBlIFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVy
eVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK1J1bGVTZXQ6Ok1l
ZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBTY29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01l
ZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCiB7Ci0g
ICAgYXV0byB1cGRhdGVUeXBlID0gUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6
Tm9uZTsKKyAgICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gaW52YWxpZGF0
aW9uOwogCiAgICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0KSB7CiAgICAgICAg
IGlmICghcnVsZVNldCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgYXV0byBu
ZXdVcGRhdGVUeXBlID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZh
bHVhdG9yKTsKLSAgICAgICAgaWYgKG5ld1VwZGF0ZVR5cGUgPiB1cGRhdGVUeXBlKQotICAgICAg
ICAgICAgdXBkYXRlVHlwZSA9IG5ld1VwZGF0ZVR5cGU7Ci0gICAgICAgIHJldHVybiB1cGRhdGVU
eXBlID09IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OworICAgICAg
ICBhdXRvIG5ld0ludmFsaWRhdGlvbiA9IHJ1bGVTZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFRdWVy
eVJ1bGVzKGV2YWx1YXRvcik7CisgICAgICAgIGlmIChuZXdJbnZhbGlkYXRpb24ubmVlZHNSZXNl
dCkgeworICAgICAgICAgICAgaW52YWxpZGF0aW9uLm5lZWRzUmVzZXQgPSB0cnVlOworICAgICAg
ICAgICAgaW52YWxpZGF0aW9uLmludmFsaWRhdGlvblJ1bGVTZXRzID0geyB9OworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGludmFsaWRhdGlvbi5pbnZhbGlkYXRpb25SdWxlU2V0cy5hcHBl
bmRWZWN0b3IoV1RGTW92ZShuZXdJbnZhbGlkYXRpb24uaW52YWxpZGF0aW9uUnVsZVNldHMpKTsK
KworICAgICAgICByZXR1cm4gaW52YWxpZGF0aW9uLm5lZWRzUmVzZXQ7CiAgICAgfTsKIAogICAg
IGlmIChldmFsdWF0ZShtX2F1dGhvclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7
CisgICAgICAgIHJldHVybiBpbnZhbGlkYXRpb247CiAKICAgICBpZiAoZXZhbHVhdGUobV91c2Vy
U3R5bGUpKQotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZTsKKyAgICAgICAgcmV0dXJuIGludmFs
aWRhdGlvbjsKIAogICAgIGV2YWx1YXRlKG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKTsKLSAg
ICByZXR1cm4gdXBkYXRlVHlwZTsKKyAgICByZXR1cm4gaW52YWxpZGF0aW9uOwogfQogCiB2b2lk
IFNjb3BlUnVsZVNldHM6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8Q1NTU3R5bGVTaGVldD4+JiBzdHlsZVNoZWV0cywgTWVkaWFRdWVyeUV2YWx1YXRvciogbWVk
aXVtLCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzJiBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA5ZGE3OGEzMzg3Ny4u
ODA0YjEzMTY2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVS
dWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5o
CkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFR
dWVyeVN0eWxlKCk7CiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVz
KCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRl
RHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisgICAg
UnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uIGV2YWx1dGVEeW5hbWljTWVkaWFR
dWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKIAogICAgIFJ1bGVGZWF0dXJl
U2V0JiBtdXRhYmxlRmVhdHVyZXMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385997</attachid>
            <date>2019-12-18 12:57:50 -0800</date>
            <delta_ts>2019-12-18 22:59:09 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-2.patch</filename>
            <type>text/plain</type>
            <size>12096</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzN2E5ZjdhOGNmOC4uOGRhOTZjODE2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgdGhlIHdob2xlIHRyZWUg
d2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAgV2UgY2FuIGRv
IGJldHRlci4KKworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1
bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRl
ZCk6CisKKyAgICAgICAgQnVpbGQgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQgZnJvbSB0aGUgcnVs
ZXMgc2VlbiBpbnNpZGUgZHluYW1pYyBtZWRpYSBxdWVyaWVzLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZO
ZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb246OmlzRW1w
dHkgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1
ZXJpZXMpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMpOgorCisgICAgICAgIFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3Vy
YXRlIHN0eWxlIGludmFsaWRhdGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5oOgorCiAyMDE5LTEyLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdHlsZTo6SW52YWxpZGF0b3Igc2hvdWxkIGJlIGFibGUgdG8gaW52YWxpZGF0
ZSB1c2luZyBtdWx0aXBsZSBSdWxlU2V0cyBpbiBvbmUgcGFzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0
LmNwcAppbmRleCAxNDg3YzFhNjI2YS4uZjYyMDFjMDIyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVT
ZXQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUm
IHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9yCiAgICAgbV9m
ZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXMocnVsZURhdGEpOwogCiAgICAgaWYgKG1lZGlhUXVlcnlD
b2xsZWN0b3IpCi0gICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVQb3NpdGlvbklm
TmVlZGVkKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgICAgICBtZWRpYVF1ZXJ5Q29sbGVjdG9y
LT5hZGRSdWxlSWZOZWVkZWQocnVsZURhdGEpOwogCiAgICAgdW5zaWduZWQgY2xhc3NCdWNrZXRT
aXplID0gMDsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3RvciA9IG51bGxwdHI7CkBA
IC00MDUsOSArNDA1LDEwIEBAIHZvaWQgUnVsZVNldDo6dHJhdmVyc2VSdWxlRGF0YXMoRnVuY3Rp
b24mJiBmdW5jdGlvbikKICAgICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKIH0K
IAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3Ip
CitNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRp
YVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAg
IGJvb2wgY2hhbmdlcyA9IGZhbHNlOworICAgIE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBp
bnZhbGlkYXRpb247CisKICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSdWxlcyA6IG1fZHluYW1pY01l
ZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAgICAgICAgIGZv
ciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlhUXVlcnlTZXRzKSB7CkBAIC00MjAsMTgg
KzQyMSwxOSBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0CiAgICAgICAgIGlmIChyZXN1bHQgIT0g
ZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAgICAgZHluYW1pY1J1bGVzLnJlc3VsdCA9
IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWljUnVsZXMucmVxdWlyZXNGdWxsUmVzZXQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0
OworICAgICAgICAgICAgICAgIHJldHVybiB7IE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6
VHlwZTo6UmVzZXQgfTsKIAogICAgICAgICAgICAgdHJhdmVyc2VSdWxlRGF0YXMoWyZdKFJ1bGVE
YXRhJiBydWxlRGF0YSkgewogICAgICAgICAgICAgICAgIGlmICghZHluYW1pY1J1bGVzLmFmZmVj
dGVkUnVsZVBvc2l0aW9ucy5jb250YWlucyhydWxlRGF0YS5wb3NpdGlvbigpKSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIHJ1bGVEYXRhLnNldEVuYWJsZWQo
cmVzdWx0KTsKLSAgICAgICAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBpbnZhbGlkYXRpb24udHlwZSA9IE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6VHlwZTo6
SW52YWxpZGF0b3I7CisgICAgICAgICAgICAgICAgaW52YWxpZGF0aW9uLmludmFsaWRhdGlvblJ1
bGVTZXRzLmFwcGVuZChkeW5hbWljUnVsZXMuaW52YWxpZGF0aW9uUnVsZVNldC5nZXQoKSk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBjaGFuZ2VzID8g
TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZSA6IE1lZGlhUXVlcnlTdHlsZVVwZGF0
ZVR5cGU6Ok5vbmU7CisgICAgcmV0dXJuIGludmFsaWRhdGlvbjsKIH0KIAogYm9vbCBSdWxlU2V0
OjpoYXNTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoKSBjb25zdApAQCAtNTA4LDYgKzUxMCwxMCBA
QCB2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChNZWRpYVF1ZXJ5U2V0KiBz
ZXQpCiAgICAgICAgIGlmIChjb2xsZWN0RHluYW1pYykgewogICAgICAgICAgICAgYXV0byYgdG9B
ZGQgPSBkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5hZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CiAg
ICAgICAgICAgICBydWxlcy5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYWRkKHRvQWRkLmJlZ2luKCks
IHRvQWRkLmVuZCgpKTsKKworICAgICAgICAgICAgcnVsZXMuaW52YWxpZGF0aW9uUnVsZVNldCA9
IFdURk1vdmUoZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuaW52YWxpZGF0aW9uUnVsZVNldCk7
CisgICAgICAgICAgICBpZiAocnVsZXMuaW52YWxpZGF0aW9uUnVsZVNldCkKKyAgICAgICAgICAg
ICAgICBydWxlcy5pbnZhbGlkYXRpb25SdWxlU2V0LT5zaHJpbmtUb0ZpdCgpOwogICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgIHJ1bGVzLnJlcXVpcmVzRnVsbFJlc2V0ID0gdHJ1ZTsKIApAQCAt
NTI0LDExICs1MzAsMTcgQEAgdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpkaWRN
dXRhdGVSZXNvbHZlcigpCiAgICAgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVkaWFR
dWVyeSA9IHRydWU7CiB9CiAKLXZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRk
UnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90IGluZGV4KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1
ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQoUnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAg
IGlmIChkeW5hbWljQ29udGV4dFN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBlbmQo
aW5kZXgpOworCisgICAgYXV0byYgY29udGV4dCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgp
OworICAgIGNvbnRleHQuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVuZChydWxlRGF0YS5wb3Np
dGlvbigpKTsKKworICAgIGlmICghY29udGV4dC5pbnZhbGlkYXRpb25SdWxlU2V0KQorICAgICAg
ICBjb250ZXh0LmludmFsaWRhdGlvblJ1bGVTZXQgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7Cisg
ICAgY29udGV4dC5pbnZhbGlkYXRpb25SdWxlU2V0LT5hZGRSdWxlKCpydWxlRGF0YS5ydWxlKCks
IHJ1bGVEYXRhLnNlbGVjdG9ySW5kZXgoKSwgcnVsZURhdGEuc2VsZWN0b3JMaXN0SW5kZXgoKSk7
CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCmluZGV4IDg0ZGRmYTZjMTdjLi40NzZmNTAxZmY3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaApAQCAtNDAsNiArNDAsMjIgQEAgY2xhc3MgU3R5bGVT
aGVldENvbnRlbnRzOwogbmFtZXNwYWNlIFN0eWxlIHsKIAogY2xhc3MgUmVzb2x2ZXI7CitjbGFz
cyBSdWxlU2V0OworCitzdHJ1Y3QgTWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uIHsKKyAgICBl
bnVtIGNsYXNzIFR5cGUgeyBOb25lLCBJbnZhbGlkYXRvciwgUmVzZXQgfTsKKyAgICBUeXBlIHR5
cGUgeyBUeXBlOjpOb25lIH07CisgICAgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiBpbnZhbGlk
YXRpb25SdWxlU2V0cyB7IH07CisKKyAgICB2b2lkIGFwcGVuZChNZWRpYVF1ZXJ5U3R5bGVJbnZh
bGlkYXRpb24mJiBvdGhlcikKKyAgICB7CisgICAgICAgIHR5cGUgPSBzdGQ6Om1heCh0eXBlLCBv
dGhlci50eXBlKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVHlwZTo6UmVzZXQpCisgICAgICAgICAg
ICBpbnZhbGlkYXRpb25SdWxlU2V0cy5jbGVhcigpOworICAgICAgICBlbHNlIGlmICh0eXBlID09
IFR5cGU6OkludmFsaWRhdG9yKQorICAgICAgICAgICAgaW52YWxpZGF0aW9uUnVsZVNldHMuYXBw
ZW5kVmVjdG9yKFdURk1vdmUob3RoZXIuaW52YWxpZGF0aW9uUnVsZVNldHMpKTsKKyAgICB9Cit9
OwogCiBjbGFzcyBSdWxlU2V0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxlU2V0KTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02NSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICBz
dHJ1Y3QgRHluYW1pY01lZGlhUXVlcnlSdWxlcyB7CiAgICAgICAgIFZlY3RvcjxSZWY8TWVkaWFR
dWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOwogICAgICAgICBIYXNoU2V0PHNpemVfdCwgRGVmYXVs
dEhhc2g8c2l6ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxz
aXplX3Q+PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxS
dWxlU2V0PiBpbnZhbGlkYXRpb25SdWxlU2V0OwogICAgICAgICBib29sIHJlcXVpcmVzRnVsbFJl
c2V0IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCByZXN1bHQgeyB0cnVlIH07CiAgICAgfTsKQEAg
LTc4LDYgKzk1LDcgQEAgcHVibGljOgogICAgICAgICBzdHJ1Y3QgRHluYW1pY0NvbnRleHQgewog
ICAgICAgICAgICAgUmVmPE1lZGlhUXVlcnlTZXQ+IHNldDsKICAgICAgICAgICAgIFZlY3Rvcjxz
aXplX3Q+IGFmZmVjdGVkUnVsZVBvc2l0aW9ucyB7IH07CisgICAgICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UnVsZVNldD4gaW52YWxpZGF0aW9uUnVsZVNldCB7IH07CiAgICAgICAgIH07CiAgICAg
ICAgIFZlY3RvcjxEeW5hbWljQ29udGV4dD4gZHluYW1pY0NvbnRleHRTdGFjayB7IH07CiAKQEAg
LTg4LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBwdXNoQW5kRXZhbHVhdGUoTWVk
aWFRdWVyeVNldCopOwogICAgICAgICB2b2lkIHBvcChNZWRpYVF1ZXJ5U2V0Kik7CiAgICAgICAg
IHZvaWQgZGlkTXV0YXRlUmVzb2x2ZXIoKTsKLSAgICAgICAgdm9pZCBhZGRSdWxlUG9zaXRpb25J
Zk5lZWRlZChzaXplX3QpOworICAgICAgICB2b2lkIGFkZFJ1bGVJZk5lZWRlZChSdWxlRGF0YSYp
OwogICAgIH07CiAKICAgICB2b2lkIGFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50
cyYsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKQEAgLTEwMyw4ICsxMjEsNyBAQCBwdWJs
aWM6CiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllczsgfQogCi0gICAgZW51
bSBjbGFzcyBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIHsgTm9uZSwgUmVzb2x2ZSwgUmVzZXQg
fTsKLSAgICBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFRdWVy
eVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKKyAgICBNZWRpYVF1ZXJ5U3R5bGVJ
bnZhbGlkYXRpb24gZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVy
eUV2YWx1YXRvciYpOwogCiAgICAgY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkgY29u
c3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2
ZXIuY3BwCmluZGV4IDM1OTQ0ZDE4Njg0Li5lZjE4NGJjMTQ4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTYwNyw3ICs2MDcsNyBAQCBib29sIFJlc29sdmVyOjpo
YXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcnVs
ZVNldHMuaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKTsKIH0KIAotUnVsZVNldDo6
TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSZXNvbHZlcjo6ZXZhbHVhdGVEeW5hbWljTWVkaWFR
dWVyaWVzKCkKK01lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBSZXNvbHZlcjo6ZXZhbHVhdGVE
eW5hbWljTWVkaWFRdWVyaWVzKCkKIHsKICAgICByZXR1cm4gbV9ydWxlU2V0cy5ldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhtX21lZGlhUXVlcnlFdmFsdWF0b3IpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVSZXNvbHZlci5oCmluZGV4IDJlZDVmZTg1YzkyLi41NjVhMTViNjUxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygp
IGNvbnN0OwotICAgIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHVhdGVE
eW5hbWljTWVkaWFRdWVyaWVzKCk7CisgICAgTWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uIGV2
YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygpOwogCiAgICAgdm9pZCBhZGRLZXlmcmFtZVN0eWxl
KFJlZjxTdHlsZVJ1bGVLZXlmcmFtZXM+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUu
Y3BwCmluZGV4IDkwYjYzZDJkZTQ4Li5lZGU0M2U0NDY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTY29wZS5jcHAKQEAgLTY1MSwxNyArNjUxLDE3IEBAIHZvaWQgU2NvcGU6OmV2YWx1YXRlTWVk
aWFRdWVyaWVzKFRlc3RGdW5jdGlvbiYmIHRlc3RGdW5jdGlvbikKICAgICBpZiAoIXJlc29sdmVy
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHVwZGF0ZVR5cGUgPSB0ZXN0RnVuY3Rpb24o
KnJlc29sdmVyKTsKKyAgICBhdXRvIGludmFsaWRhdGlvbiA9IHRlc3RGdW5jdGlvbigqcmVzb2x2
ZXIpOwogCi0gICAgc3dpdGNoICh1cGRhdGVUeXBlKSB7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRp
YVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOgorICAgIHN3aXRjaCAoaW52YWxpZGF0aW9uLnR5
cGUpIHsKKyAgICBjYXNlIE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6VHlwZTo6Tm9uZToK
ICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRl
VHlwZTo6UmVzb2x2ZToKLSAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGhhdmUgYW4gaW52YWxp
ZGF0aW9uIHJ1bGVzZXQgZm9yIHJ1bGVzIGluc2lkZSBkeW5hbWljIG1lZGlhIHF1ZXJpZXMuCi0g
ICAgICAgIGlmIChhdXRvKiBkb2N1bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxl
bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JT
dWJ0cmVlKCk7CisgICAgY2FzZSBNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb246OlR5cGU6Oklu
dmFsaWRhdG9yOiB7CisgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGludmFsaWRhdGlv
bi5pbnZhbGlkYXRpb25SdWxlU2V0cyk7CisgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVT
dHlsZShtX2RvY3VtZW50KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRp
YVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDoKKyAgICB9CisgICAgY2FzZSBNZWRpYVF1ZXJ5
U3R5bGVJbnZhbGlkYXRpb246OlR5cGU6OlJlc2V0OgogICAgICAgICBzY2hlZHVsZVVwZGF0ZShV
cGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24pOwogICAgICAgICBicmVhazsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCAw
MTFjNzk2MWE0OC4uYmZhZmJjMjg3MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZVJ1bGVTZXRzLmNwcApAQCAtMTQxLDI3ICsxNDEsMjQgQEAgYm9vbCBTY29wZVJ1bGVTZXRz
OjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFNjb3BlUnVsZVNl
dHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0
b3ImIGV2YWx1YXRvcikKK01lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBTY29wZVJ1bGVTZXRz
OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9y
JiBldmFsdWF0b3IpCiB7Ci0gICAgYXV0byB1cGRhdGVUeXBlID0gUnVsZVNldDo6TWVkaWFRdWVy
eVN0eWxlVXBkYXRlVHlwZTo6Tm9uZTsKKyAgICBNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24g
aW52YWxpZGF0aW9uOwogCiAgICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0KSB7
CiAgICAgICAgIGlmICghcnVsZVNldCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgYXV0byBuZXdVcGRhdGVUeXBlID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMoZXZhbHVhdG9yKTsKLSAgICAgICAgaWYgKG5ld1VwZGF0ZVR5cGUgPiB1cGRhdGVUeXBl
KQotICAgICAgICAgICAgdXBkYXRlVHlwZSA9IG5ld1VwZGF0ZVR5cGU7Ci0gICAgICAgIHJldHVy
biB1cGRhdGVUeXBlID09IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0
OwotICAgIH07Ci0KLSAgICBpZiAoZXZhbHVhdGUobV9hdXRob3JTdHlsZSkpCi0gICAgICAgIHJl
dHVybiB1cGRhdGVUeXBlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoaW52YWxp
ZGF0aW9uLnR5cGUgPT0gTWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uOjpUeXBlOjpSZXNldCkK
KyAgICAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChldmFsdWF0ZShtX3VzZXJTdHlsZSkpCi0g
ICAgICAgIHJldHVybiB1cGRhdGVUeXBlOworICAgICAgICBpbnZhbGlkYXRpb24uYXBwZW5kKHJ1
bGVTZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcikpOworICAgIH07
CiAKKyAgICBldmFsdWF0ZShtX2F1dGhvclN0eWxlKTsKKyAgICBldmFsdWF0ZShtX3VzZXJTdHls
ZSk7CiAgICAgZXZhbHVhdGUobV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUpOwotICAgIHJldHVy
biB1cGRhdGVUeXBlOworCisgICAgcmV0dXJuIGludmFsaWRhdGlvbjsKIH0KIAogdm9pZCBTY29w
ZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENT
U1N0eWxlU2hlZXQ+PiYgc3R5bGVTaGVldHMsIE1lZGlhUXVlcnlFdmFsdWF0b3IqIG1lZGl1bSwg
SW5zcGVjdG9yQ1NTT01XcmFwcGVycyYgaW5zcGVjdG9yQ1NTT01XcmFwcGVycykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKaW5kZXggOWRhNzhhMzM4NzcuLjI3OWVh
ZGFmMGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNl
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaApAQCAt
NzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFVzZXJBZ2VudE1lZGlhUXVlcnlT
dHlsZSgpOwogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNv
bnN0OwotICAgIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFt
aWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOworICAgIE1lZGlh
UXVlcnlTdHlsZUludmFsaWRhdGlvbiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25z
dCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBSdWxlRmVhdHVyZVNldCYgbXV0YWJsZUZl
YXR1cmVzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386072</attachid>
            <date>2019-12-18 22:59:09 -0800</date>
            <delta_ts>2019-12-19 00:37:53 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-3.patch</filename>
            <type>text/plain</type>
            <size>13321</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1N2YzZDE5ZjVlYy4uY2ZmOGI1MTUzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgdGhlIHdob2xlIHRyZWUg
d2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAgV2UgY2FuIGRv
IGJldHRlci4KKworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1
bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRl
ZCk6CisKKyAgICAgICAgQnVpbGQgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQgZnJvbSB0aGUgcnVs
ZXMgc2VlbiBpbnNpZGUgZHluYW1pYyBtZWRpYSBxdWVyaWVzLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZO
ZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb246OmlzRW1w
dHkgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1
ZXJpZXMpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMpOgorCisgICAgICAgIFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3Vy
YXRlIHN0eWxlIGludmFsaWRhdGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5oOgorICAgICAgICAKIDIwMTktMTItMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgbWFjQ2F0YWx5c3Q6IEN1cnNvciBzaG91bGQgdXBkYXRl
IHdoZW4gdGhlIHBsYXRmb3JtIGRlZW1zIGl0IG5lY2Vzc2FyeQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0
LmNwcAppbmRleCAxNDg3YzFhNjI2YS4uMTYyNTFiMDkxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVT
ZXQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUm
IHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9yCiAgICAgbV9m
ZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXMocnVsZURhdGEpOwogCiAgICAgaWYgKG1lZGlhUXVlcnlD
b2xsZWN0b3IpCi0gICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVQb3NpdGlvbklm
TmVlZGVkKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgICAgICBtZWRpYVF1ZXJ5Q29sbGVjdG9y
LT5hZGRSdWxlSWZOZWVkZWQocnVsZURhdGEpOwogCiAgICAgdW5zaWduZWQgY2xhc3NCdWNrZXRT
aXplID0gMDsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3RvciA9IG51bGxwdHI7CkBA
IC00MDUsOSArNDA1LDEwIEBAIHZvaWQgUnVsZVNldDo6dHJhdmVyc2VSdWxlRGF0YXMoRnVuY3Rp
b24mJiBmdW5jdGlvbikKICAgICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKIH0K
IAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3Ip
CitNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRp
YVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAg
IGJvb2wgY2hhbmdlcyA9IGZhbHNlOworICAgIE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBp
bnZhbGlkYXRpb247CisKICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSdWxlcyA6IG1fZHluYW1pY01l
ZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAgICAgICAgIGZv
ciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlhUXVlcnlTZXRzKSB7CkBAIC00MjAsMTgg
KzQyMSwxOSBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0CiAgICAgICAgIGlmIChyZXN1bHQgIT0g
ZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAgICAgZHluYW1pY1J1bGVzLnJlc3VsdCA9
IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWljUnVsZXMucmVxdWlyZXNGdWxsUmVzZXQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0
OworICAgICAgICAgICAgICAgIHJldHVybiB7IE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6
VHlwZTo6UmVzZXQgfTsKIAogICAgICAgICAgICAgdHJhdmVyc2VSdWxlRGF0YXMoWyZdKFJ1bGVE
YXRhJiBydWxlRGF0YSkgewogICAgICAgICAgICAgICAgIGlmICghZHluYW1pY1J1bGVzLmFmZmVj
dGVkUnVsZVBvc2l0aW9ucy5jb250YWlucyhydWxlRGF0YS5wb3NpdGlvbigpKSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIHJ1bGVEYXRhLnNldEVuYWJsZWQo
cmVzdWx0KTsKLSAgICAgICAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBpbnZhbGlkYXRpb24udHlwZSA9IE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6VHlwZTo6
SW52YWxpZGF0ZTsKKyAgICAgICAgICAgICAgICBpbnZhbGlkYXRpb24uaW52YWxpZGF0aW9uUnVs
ZVNldHMuYXBwZW5kKGR5bmFtaWNSdWxlcy5pbnZhbGlkYXRpb25SdWxlU2V0LmdldCgpKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGNoYW5nZXMgPyBN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlIDogTWVkaWFRdWVyeVN0eWxlVXBkYXRl
VHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gaW52YWxpZGF0aW9uOwogfQogCiBib29sIFJ1bGVTZXQ6
Omhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC00NzIsNyArNDc0LDcgQEAg
dm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0
b3I6On5NZWRpYVF1ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0OwogCi1ib29sIFJ1bGVTZXQ6Ok1l
ZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBzZXQpCiti
b29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShjb25zdCBN
ZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVybiB0cnVl
OwpAQCAtNDk1LDcgKzQ5Nyw3IEBAIGJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6
cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCog
c2V0KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoY29uc3QgTWVkaWFR
dWVyeVNldCogc2V0KQogewogICAgIGlmICghc2V0IHx8IGR5bmFtaWNDb250ZXh0U3RhY2suaXNF
bXB0eSgpIHx8IHNldCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuc2V0LmdldCgpKQog
ICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTEwLDEwIEBAIHZvaWQgUnVsZVNldDo6TWVkaWFR
dWVyeUNvbGxlY3Rvcjo6cG9wKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICAgICAgaWYgKGNvbGxl
Y3REeW5hbWljKSB7CiAgICAgICAgICAgICBhdXRvJiB0b0FkZCA9IGR5bmFtaWNDb250ZXh0U3Rh
Y2subGFzdCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9uczsKICAgICAgICAgICAgIHJ1bGVzLmFmZmVj
dGVkUnVsZVBvc2l0aW9ucy5hZGQodG9BZGQuYmVnaW4oKSwgdG9BZGQuZW5kKCkpOworCisgICAg
ICAgICAgICBydWxlcy5pbnZhbGlkYXRpb25SdWxlU2V0ID0gV1RGTW92ZShkeW5hbWljQ29udGV4
dFN0YWNrLmxhc3QoKS5pbnZhbGlkYXRpb25SdWxlU2V0KTsKKyAgICAgICAgICAgIGlmIChydWxl
cy5pbnZhbGlkYXRpb25SdWxlU2V0KQorICAgICAgICAgICAgICAgIHJ1bGVzLmludmFsaWRhdGlv
blJ1bGVTZXQtPnNocmlua1RvRml0KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcnVs
ZXMucmVxdWlyZXNGdWxsUmVzZXQgPSB0cnVlOwogCkBAIC01MjQsMTEgKzUzMCwxNyBAQCB2b2lk
IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmRpZE11dGF0ZVJlc29sdmVyKCkKICAgICBk
aWRNdXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5ID0gdHJ1ZTsKIH0KIAotdm9p
ZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25JZk5lZWRlZChz
aXplX3QgaW5kZXgpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJ
Zk5lZWRlZChjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCiB7CiAgICAgaWYgKGR5bmFtaWNDb250
ZXh0U3RhY2suaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgZHluYW1pY0NvbnRleHRT
dGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVuZChpbmRleCk7CisKKyAgICBh
dXRvJiBjb250ZXh0ID0gZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCk7CisgICAgY29udGV4dC5h
ZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYXBwZW5kKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworCisgICAg
aWYgKCFjb250ZXh0LmludmFsaWRhdGlvblJ1bGVTZXQpCisgICAgICAgIGNvbnRleHQuaW52YWxp
ZGF0aW9uUnVsZVNldCA9IG1ha2VVbmlxdWU8UnVsZVNldD4oKTsKKyAgICBjb250ZXh0LmludmFs
aWRhdGlvblJ1bGVTZXQtPmFkZFJ1bGUoKnJ1bGVEYXRhLnJ1bGUoKSwgcnVsZURhdGEuc2VsZWN0
b3JJbmRleCgpLCBydWxlRGF0YS5zZWxlY3Rvckxpc3RJbmRleCgpKTsKIH0KIAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlU2V0LmgKaW5kZXggODRkZGZhNmMxN2MuLjU2YTYyZDZhMDQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
UnVsZVNldC5oCkBAIC00MCw2ICs0MCwyMiBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBu
YW1lc3BhY2UgU3R5bGUgewogCiBjbGFzcyBSZXNvbHZlcjsKK2NsYXNzIFJ1bGVTZXQ7CisKK3N0
cnVjdCBNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24geworICAgIGVudW0gY2xhc3MgVHlwZSB7
IE5vbmUsIEludmFsaWRhdGUsIFJlc2V0IH07CisgICAgVHlwZSB0eXBlIHsgVHlwZTo6Tm9uZSB9
OworICAgIFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4gaW52YWxpZGF0aW9uUnVsZVNldHMgeyB9
OworCisgICAgdm9pZCBhcHBlbmQoTWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uJiYgb3RoZXIp
CisgICAgeworICAgICAgICB0eXBlID0gc3RkOjptYXgodHlwZSwgb3RoZXIudHlwZSk7CisgICAg
ICAgIGlmICh0eXBlID09IFR5cGU6OlJlc2V0KQorICAgICAgICAgICAgaW52YWxpZGF0aW9uUnVs
ZVNldHMuY2xlYXIoKTsKKyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBUeXBlOjpJbnZhbGlkYXRl
KQorICAgICAgICAgICAgaW52YWxpZGF0aW9uUnVsZVNldHMuYXBwZW5kVmVjdG9yKFdURk1vdmUo
b3RoZXIuaW52YWxpZGF0aW9uUnVsZVNldHMpKTsKKyAgICB9Cit9OwogCiBjbGFzcyBSdWxlU2V0
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxlU2V0KTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CkBAIC02Myw4ICs3OSw5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRv
bVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJ1bGVEYXRhVmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAK
ICAgICBzdHJ1Y3QgRHluYW1pY01lZGlhUXVlcnlSdWxlcyB7Ci0gICAgICAgIFZlY3RvcjxSZWY8
TWVkaWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOworICAgICAgICBWZWN0b3I8UmVmPGNvbnN0
IE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsKICAgICAgICAgSGFzaFNldDxzaXplX3Qs
IERlZmF1bHRIYXNoPHNpemVfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hU
cmFpdHM8c2l6ZV90Pj4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zOworICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UnVsZVNldD4gaW52YWxpZGF0aW9uUnVsZVNldDsKICAgICAgICAgYm9vbCByZXF1aXJl
c0Z1bGxSZXNldCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgcmVzdWx0IHsgdHJ1ZSB9OwogICAg
IH07CkBAIC03Niw4ICs5Myw5IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgYm9vbCBjb2xsZWN0
RHluYW1pYyB7IGZhbHNlIH07CiAKICAgICAgICAgc3RydWN0IER5bmFtaWNDb250ZXh0IHsKLSAg
ICAgICAgICAgIFJlZjxNZWRpYVF1ZXJ5U2V0PiBzZXQ7CisgICAgICAgICAgICBSZWY8Y29uc3Qg
TWVkaWFRdWVyeVNldD4gc2V0OwogICAgICAgICAgICAgVmVjdG9yPHNpemVfdD4gYWZmZWN0ZWRS
dWxlUG9zaXRpb25zIHsgfTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0PiBp
bnZhbGlkYXRpb25SdWxlU2V0IHsgfTsKICAgICAgICAgfTsKICAgICAgICAgVmVjdG9yPER5bmFt
aWNDb250ZXh0PiBkeW5hbWljQ29udGV4dFN0YWNrIHsgfTsKIApAQCAtODUsMTAgKzEwMywxMCBA
QCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVk
aWFRdWVyeSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJpZXMgeyBmYWxzZSB9OwogCi0gICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRlKE1lZGlh
UXVlcnlTZXQqKTsKLSAgICAgICAgdm9pZCBwb3AoTWVkaWFRdWVyeVNldCopOworICAgICAgICBi
b29sIHB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAgIHZvaWQg
cG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKICAgICAgICAgdm9pZCBkaWRNdXRhdGVSZXNvbHZl
cigpOwotICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCk7CisgICAg
ICAgIHZvaWQgYWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRhJik7CiAgICAgfTsKIAogICAg
IHZvaWQgYWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzJiwgY29uc3QgTWVkaWFR
dWVyeUV2YWx1YXRvciYpOwpAQCAtMTAzLDggKzEyMSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzOyB9CiAKLSAgICBlbnVtIGNsYXNzIE1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGUgeyBOb25lLCBSZXNvbHZlLCBSZXNldCB9OwotICAgIE1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVk
aWFRdWVyeUV2YWx1YXRvciYpOworICAgIE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBldmFs
dXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAK
ICAgICBjb25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2Zl
YXR1cmVzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMzU5
NDRkMTg2ODQuLmVmMTg0YmMxNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVy
LmNwcApAQCAtNjA3LDcgKzYwNyw3IEBAIGJvb2wgUmVzb2x2ZXI6Omhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ydWxlU2V0cy5oYXNWaWV3cG9y
dERlcGVuZGVudE1lZGlhUXVlcmllcygpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVV
cGRhdGVUeXBlIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQorTWVkaWFR
dWVyeVN0eWxlSW52YWxpZGF0aW9uIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJp
ZXMoKQogewogICAgIHJldHVybiBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1
bGVzKG1fbWVkaWFRdWVyeUV2YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVyLmgKaW5kZXggMmVkNWZlODVjOTIuLjU2NWExNWI2NTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAg
ICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVs
ZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJp
ZXMoKTsKKyAgICBNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gZXZhbHVhdGVEeW5hbWljTWVk
aWFRdWVyaWVzKCk7CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5bGUoUmVmPFN0eWxlUnVsZUtl
eWZyYW1lcz4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggOTBiNjNk
MmRlNDguLjkwYzExZThkZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApAQCAt
NjUxLDE3ICs2NTEsMjAgQEAgdm9pZCBTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1
bmN0aW9uJiYgdGVzdEZ1bmN0aW9uKQogICAgIGlmICghcmVzb2x2ZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gdXBkYXRlVHlwZSA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOworICAg
IGF1dG8gaW52YWxpZGF0aW9uID0gdGVzdEZ1bmN0aW9uKCpyZXNvbHZlcik7CiAKLSAgICBzd2l0
Y2ggKHVwZGF0ZVR5cGUpIHsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0
ZVR5cGU6Ok5vbmU6CisgICAgc3dpdGNoIChpbnZhbGlkYXRpb24udHlwZSkgeworICAgIGNhc2Ug
TWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uOjpUeXBlOjpOb25lOgogICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlOgot
ICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgaGF2ZSBhbiBpbnZhbGlkYXRpb24gcnVsZXNldCBm
b3IgcnVsZXMgaW5zaWRlIGR5bmFtaWMgbWVkaWEgcXVlcmllcy4KLSAgICAgICAgaWYgKGF1dG8q
IGRvY3VtZW50RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAg
ICAgICBkb2N1bWVudEVsZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICBj
YXNlIE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6VHlwZTo6SW52YWxpZGF0ZTogeworICAg
ICAgICBJbnZhbGlkYXRvciBpbnZhbGlkYXRvcihpbnZhbGlkYXRpb24uaW52YWxpZGF0aW9uUnVs
ZVNldHMpOworICAgICAgICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAgaW52YWxpZGF0
b3IuaW52YWxpZGF0ZVN0eWxlKCptX3NoYWRvd1Jvb3QpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CiAgICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ6
CisgICAgfQorICAgIGNhc2UgTWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uOjpUeXBlOjpSZXNl
dDoKICAgICAgICAgc2NoZWR1bGVVcGRhdGUoVXBkYXRlVHlwZTo6Q29udGVudHNPckludGVycHJl
dGF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggMDExYzc5NjFhNDguLmJmYWZiYzI4NzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAgLTE0MSwyNyAr
MTQxLDI0IEBAIGJvb2wgU2NvcGVSdWxlU2V0czo6aGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1
ZXJpZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUnVsZVNldDo6TWVkaWFRdWVy
eVN0eWxlVXBkYXRlVHlwZSBTY29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlS
dWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCitNZWRpYVF1ZXJ5U3R5
bGVJbnZhbGlkYXRpb24gU2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVs
ZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAgIGF1dG8gdXBk
YXRlVHlwZSA9IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU7CisgICAg
TWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uIGludmFsaWRhdGlvbjsKIAogICAgIGF1dG8gZXZh
bHVhdGUgPSBbJl0oYXV0byYgcnVsZVNldCkgewogICAgICAgICBpZiAoIXJ1bGVTZXQpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGF1dG8gbmV3VXBkYXRlVHlwZSA9IHJ1bGVT
ZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcik7Ci0gICAgICAgIGlm
IChuZXdVcGRhdGVUeXBlID4gdXBkYXRlVHlwZSkKLSAgICAgICAgICAgIHVwZGF0ZVR5cGUgPSBu
ZXdVcGRhdGVUeXBlOwotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZSA9PSBSdWxlU2V0OjpNZWRp
YVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDsKLSAgICB9OwotCi0gICAgaWYgKGV2YWx1YXRl
KG1fYXV0aG9yU3R5bGUpKQotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgaWYgKGludmFsaWRhdGlvbi50eXBlID09IE1lZGlhUXVlcnlTdHls
ZUludmFsaWRhdGlvbjo6VHlwZTo6UmVzZXQpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoZXZhbHVhdGUobV91c2VyU3R5bGUpKQotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZTsKKyAg
ICAgICAgaW52YWxpZGF0aW9uLmFwcGVuZChydWxlU2V0LT5ldmFsdXRlRHluYW1pY01lZGlhUXVl
cnlSdWxlcyhldmFsdWF0b3IpKTsKKyAgICB9OwogCisgICAgZXZhbHVhdGUobV9hdXRob3JTdHls
ZSk7CisgICAgZXZhbHVhdGUobV91c2VyU3R5bGUpOwogICAgIGV2YWx1YXRlKG1fdXNlckFnZW50
TWVkaWFRdWVyeVN0eWxlKTsKLSAgICByZXR1cm4gdXBkYXRlVHlwZTsKKworICAgIHJldHVybiBp
bnZhbGlkYXRpb247CiB9CiAKIHZvaWQgU2NvcGVSdWxlU2V0czo6YXBwZW5kQXV0aG9yU3R5bGVT
aGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIHN0eWxlU2hlZXRzLCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yKiBtZWRpdW0sIEluc3BlY3RvckNTU09NV3JhcHBlcnMmIGluc3Bl
Y3RvckNTU09NV3JhcHBlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVNjb3BlUnVsZVNldHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0
cy5oCmluZGV4IDlkYTc4YTMzODc3Li4yNzllYWRhZjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXRVc2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKTsKIAogICAgIGJvb2wgaGFzVmlld3Bv
cnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdDsKLSAgICBSdWxlU2V0OjpNZWRpYVF1ZXJ5
U3R5bGVVcGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlh
UXVlcnlFdmFsdWF0b3ImKTsKKyAgICBNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gZXZhbHV0
ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwogCiAg
ICAgUnVsZUZlYXR1cmVTZXQmIG11dGFibGVGZWF0dXJlcygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386079</attachid>
            <date>2019-12-19 00:37:53 -0800</date>
            <delta_ts>2019-12-20 02:07:51 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-4.patch</filename>
            <type>text/plain</type>
            <size>13420</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1N2YzZDE5ZjVlYy4uY2ZmOGI1MTUzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgdGhlIHdob2xlIHRyZWUg
d2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAgV2UgY2FuIGRv
IGJldHRlci4KKworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1
bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRl
ZCk6CisKKyAgICAgICAgQnVpbGQgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQgZnJvbSB0aGUgcnVs
ZXMgc2VlbiBpbnNpZGUgZHluYW1pYyBtZWRpYSBxdWVyaWVzLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZO
ZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb246OmlzRW1w
dHkgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1
ZXJpZXMpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMpOgorCisgICAgICAgIFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3Vy
YXRlIHN0eWxlIGludmFsaWRhdGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5oOgorICAgICAgICAKIDIwMTktMTItMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgbWFjQ2F0YWx5c3Q6IEN1cnNvciBzaG91bGQgdXBkYXRl
IHdoZW4gdGhlIHBsYXRmb3JtIGRlZW1zIGl0IG5lY2Vzc2FyeQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0
LmNwcAppbmRleCAxNDg3YzFhNjI2YS4uNWIzZjA3NzEzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVT
ZXQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUm
IHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9yCiAgICAgbV9m
ZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXMocnVsZURhdGEpOwogCiAgICAgaWYgKG1lZGlhUXVlcnlD
b2xsZWN0b3IpCi0gICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVQb3NpdGlvbklm
TmVlZGVkKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgICAgICBtZWRpYVF1ZXJ5Q29sbGVjdG9y
LT5hZGRSdWxlSWZOZWVkZWQocnVsZURhdGEpOwogCiAgICAgdW5zaWduZWQgY2xhc3NCdWNrZXRT
aXplID0gMDsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3RvciA9IG51bGxwdHI7CkBA
IC00MDUsOSArNDA1LDEwIEBAIHZvaWQgUnVsZVNldDo6dHJhdmVyc2VSdWxlRGF0YXMoRnVuY3Rp
b24mJiBmdW5jdGlvbikKICAgICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKIH0K
IAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3Ip
CitNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRp
YVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAg
IGJvb2wgY2hhbmdlcyA9IGZhbHNlOworICAgIE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBp
bnZhbGlkYXRpb247CisKICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSdWxlcyA6IG1fZHluYW1pY01l
ZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAgICAgICAgIGZv
ciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlhUXVlcnlTZXRzKSB7CkBAIC00MjAsMTgg
KzQyMSwyMCBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0CiAgICAgICAgIGlmIChyZXN1bHQgIT0g
ZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAgICAgZHluYW1pY1J1bGVzLnJlc3VsdCA9
IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWljUnVsZXMucmVxdWlyZXNGdWxsUmVzZXQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0
OworICAgICAgICAgICAgICAgIHJldHVybiB7IE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6
VHlwZTo6UmVzZXQgfTsKIAogICAgICAgICAgICAgdHJhdmVyc2VSdWxlRGF0YXMoWyZdKFJ1bGVE
YXRhJiBydWxlRGF0YSkgewogICAgICAgICAgICAgICAgIGlmICghZHluYW1pY1J1bGVzLmFmZmVj
dGVkUnVsZVBvc2l0aW9ucy5jb250YWlucyhydWxlRGF0YS5wb3NpdGlvbigpKSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIHJ1bGVEYXRhLnNldEVuYWJsZWQo
cmVzdWx0KTsKLSAgICAgICAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTsKICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICBpbnZhbGlkYXRpb24udHlwZSA9IE1lZGlhUXVlcnlTdHlsZUludmFs
aWRhdGlvbjo6VHlwZTo6SW52YWxpZGF0ZTsKKyAgICAgICAgICAgIGludmFsaWRhdGlvbi5pbnZh
bGlkYXRpb25SdWxlU2V0cy5hcHBlbmQoZHluYW1pY1J1bGVzLmludmFsaWRhdGlvblJ1bGVTZXQu
Z2V0KCkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGNoYW5nZXMgPyBNZWRpYVF1
ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlIDogTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6
Tm9uZTsKKyAgICByZXR1cm4gaW52YWxpZGF0aW9uOwogfQogCiBib29sIFJ1bGVTZXQ6Omhhc1No
YWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC00NzIsNyArNDc1LDcgQEAgdm9pZCBS
dWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6On5N
ZWRpYVF1ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0OwogCi1ib29sIFJ1bGVTZXQ6Ok1lZGlhUXVl
cnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBzZXQpCitib29sIFJ1
bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1
ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
NDk1LDcgKzQ5OCw3IEBAIGJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFu
ZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQor
dm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoY29uc3QgTWVkaWFRdWVyeVNl
dCogc2V0KQogewogICAgIGlmICghc2V0IHx8IGR5bmFtaWNDb250ZXh0U3RhY2suaXNFbXB0eSgp
IHx8IHNldCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuc2V0LmdldCgpKQogICAgICAg
ICByZXR1cm47CkBAIC01MDgsNiArNTExLDEwIEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNv
bGxlY3Rvcjo6cG9wKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICAgICAgaWYgKGNvbGxlY3REeW5h
bWljKSB7CiAgICAgICAgICAgICBhdXRvJiB0b0FkZCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFz
dCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9uczsKICAgICAgICAgICAgIHJ1bGVzLmFmZmVjdGVkUnVs
ZVBvc2l0aW9ucy5hZGQodG9BZGQuYmVnaW4oKSwgdG9BZGQuZW5kKCkpOworCisgICAgICAgICAg
ICBydWxlcy5pbnZhbGlkYXRpb25SdWxlU2V0ID0gV1RGTW92ZShkeW5hbWljQ29udGV4dFN0YWNr
Lmxhc3QoKS5pbnZhbGlkYXRpb25SdWxlU2V0KTsKKyAgICAgICAgICAgIGlmIChydWxlcy5pbnZh
bGlkYXRpb25SdWxlU2V0KQorICAgICAgICAgICAgICAgIHJ1bGVzLmludmFsaWRhdGlvblJ1bGVT
ZXQtPnNocmlua1RvRml0KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcnVsZXMucmVx
dWlyZXNGdWxsUmVzZXQgPSB0cnVlOwogCkBAIC01MjQsMTEgKzUzMSwxNyBAQCB2b2lkIFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmRpZE11dGF0ZVJlc29sdmVyKCkKICAgICBkaWRNdXRh
dGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5ID0gdHJ1ZTsKIH0KIAotdm9pZCBSdWxl
U2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3Qg
aW5kZXgpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRl
ZChjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCiB7CiAgICAgaWYgKGR5bmFtaWNDb250ZXh0U3Rh
Y2suaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgZHluYW1pY0NvbnRleHRTdGFjay5s
YXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVuZChpbmRleCk7CisKKyAgICBhdXRvJiBj
b250ZXh0ID0gZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCk7CisgICAgY29udGV4dC5hZmZlY3Rl
ZFJ1bGVQb3NpdGlvbnMuYXBwZW5kKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworCisgICAgaWYgKCFj
b250ZXh0LmludmFsaWRhdGlvblJ1bGVTZXQpCisgICAgICAgIGNvbnRleHQuaW52YWxpZGF0aW9u
UnVsZVNldCA9IG1ha2VVbmlxdWU8UnVsZVNldD4oKTsKKyAgICBjb250ZXh0LmludmFsaWRhdGlv
blJ1bGVTZXQtPmFkZFJ1bGUoKnJ1bGVEYXRhLnJ1bGUoKSwgcnVsZURhdGEuc2VsZWN0b3JJbmRl
eCgpLCBydWxlRGF0YS5zZWxlY3Rvckxpc3RJbmRleCgpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmgKaW5kZXggODRkZGZhNmMxN2MuLjU2YTYyZDZhMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNl
dC5oCkBAIC00MCw2ICs0MCwyMiBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBuYW1lc3Bh
Y2UgU3R5bGUgewogCiBjbGFzcyBSZXNvbHZlcjsKK2NsYXNzIFJ1bGVTZXQ7CisKK3N0cnVjdCBN
ZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24geworICAgIGVudW0gY2xhc3MgVHlwZSB7IE5vbmUs
IEludmFsaWRhdGUsIFJlc2V0IH07CisgICAgVHlwZSB0eXBlIHsgVHlwZTo6Tm9uZSB9OworICAg
IFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4gaW52YWxpZGF0aW9uUnVsZVNldHMgeyB9OworCisg
ICAgdm9pZCBhcHBlbmQoTWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uJiYgb3RoZXIpCisgICAg
eworICAgICAgICB0eXBlID0gc3RkOjptYXgodHlwZSwgb3RoZXIudHlwZSk7CisgICAgICAgIGlm
ICh0eXBlID09IFR5cGU6OlJlc2V0KQorICAgICAgICAgICAgaW52YWxpZGF0aW9uUnVsZVNldHMu
Y2xlYXIoKTsKKyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBUeXBlOjpJbnZhbGlkYXRlKQorICAg
ICAgICAgICAgaW52YWxpZGF0aW9uUnVsZVNldHMuYXBwZW5kVmVjdG9yKFdURk1vdmUob3RoZXIu
aW52YWxpZGF0aW9uUnVsZVNldHMpKTsKKyAgICB9Cit9OwogCiBjbGFzcyBSdWxlU2V0IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxlU2V0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CkBAIC02Myw4ICs3OSw5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmlu
Zywgc3RkOjp1bmlxdWVfcHRyPFJ1bGVEYXRhVmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKICAgICBz
dHJ1Y3QgRHluYW1pY01lZGlhUXVlcnlSdWxlcyB7Ci0gICAgICAgIFZlY3RvcjxSZWY8TWVkaWFR
dWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOworICAgICAgICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlh
UXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsKICAgICAgICAgSGFzaFNldDxzaXplX3QsIERlZmF1
bHRIYXNoPHNpemVfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8
c2l6ZV90Pj4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UnVsZVNldD4gaW52YWxpZGF0aW9uUnVsZVNldDsKICAgICAgICAgYm9vbCByZXF1aXJlc0Z1bGxS
ZXNldCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgcmVzdWx0IHsgdHJ1ZSB9OwogICAgIH07CkBA
IC03Niw4ICs5Myw5IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgYm9vbCBjb2xsZWN0RHluYW1p
YyB7IGZhbHNlIH07CiAKICAgICAgICAgc3RydWN0IER5bmFtaWNDb250ZXh0IHsKLSAgICAgICAg
ICAgIFJlZjxNZWRpYVF1ZXJ5U2V0PiBzZXQ7CisgICAgICAgICAgICBSZWY8Y29uc3QgTWVkaWFR
dWVyeVNldD4gc2V0OwogICAgICAgICAgICAgVmVjdG9yPHNpemVfdD4gYWZmZWN0ZWRSdWxlUG9z
aXRpb25zIHsgfTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0PiBpbnZhbGlk
YXRpb25SdWxlU2V0IHsgfTsKICAgICAgICAgfTsKICAgICAgICAgVmVjdG9yPER5bmFtaWNDb250
ZXh0PiBkeW5hbWljQ29udGV4dFN0YWNrIHsgfTsKIApAQCAtODUsMTAgKzEwMywxMCBAQCBwdWJs
aWM6CiAgICAgICAgIGJvb2wgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVy
eSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJp
ZXMgeyBmYWxzZSB9OwogCi0gICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlT
ZXQqKTsKLSAgICAgICAgdm9pZCBwb3AoTWVkaWFRdWVyeVNldCopOworICAgICAgICBib29sIHB1
c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAgIHZvaWQgcG9wKGNv
bnN0IE1lZGlhUXVlcnlTZXQqKTsKICAgICAgICAgdm9pZCBkaWRNdXRhdGVSZXNvbHZlcigpOwot
ICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCk7CisgICAgICAgIHZv
aWQgYWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRhJik7CiAgICAgfTsKIAogICAgIHZvaWQg
YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzJiwgY29uc3QgTWVkaWFRdWVyeUV2
YWx1YXRvciYpOwpAQCAtMTAzLDggKzEyMSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzVmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc1ZpZXdwb3J0
RGVwZW5kZW50TWVkaWFRdWVyaWVzOyB9CiAKLSAgICBlbnVtIGNsYXNzIE1lZGlhUXVlcnlTdHls
ZVVwZGF0ZVR5cGUgeyBOb25lLCBSZXNvbHZlLCBSZXNldCB9OwotICAgIE1lZGlhUXVlcnlTdHls
ZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVy
eUV2YWx1YXRvciYpOworICAgIE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbiBldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBj
b25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVz
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMzU5NDRkMTg2
ODQuLmVmMTg0YmMxNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApA
QCAtNjA3LDcgKzYwNyw3IEBAIGJvb2wgUmVzb2x2ZXI6Omhhc1ZpZXdwb3J0RGVwZW5kZW50TWVk
aWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ydWxlU2V0cy5oYXNWaWV3cG9ydERlcGVu
ZGVudE1lZGlhUXVlcmllcygpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVU
eXBlIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQorTWVkaWFRdWVyeVN0
eWxlSW52YWxpZGF0aW9uIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQog
ewogICAgIHJldHVybiBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKG1f
bWVkaWFRdWVyeUV2YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgK
aW5kZXggMmVkNWZlODVjOTIuLjU2NWExNWI2NTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlci5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBib29s
IGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6
TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsK
KyAgICBNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVy
aWVzKCk7CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5bGUoUmVmPFN0eWxlUnVsZUtleWZyYW1l
cz4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggOTBiNjNkMmRlNDgu
LmVjMzExNGZiNzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApAQCAtNjUxLDE3
ICs2NTEsMjEgQEAgdm9pZCBTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1bmN0aW9u
JiYgdGVzdEZ1bmN0aW9uKQogICAgIGlmICghcmVzb2x2ZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8gdXBkYXRlVHlwZSA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOworICAgIGF1dG8g
aW52YWxpZGF0aW9uID0gdGVzdEZ1bmN0aW9uKCpyZXNvbHZlcik7CiAKLSAgICBzd2l0Y2ggKHVw
ZGF0ZVR5cGUpIHsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6
Ok5vbmU6CisgICAgc3dpdGNoIChpbnZhbGlkYXRpb24udHlwZSkgeworICAgIGNhc2UgTWVkaWFR
dWVyeVN0eWxlSW52YWxpZGF0aW9uOjpUeXBlOjpOb25lOgogICAgICAgICByZXR1cm47Ci0gICAg
Y2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlOgotICAgICAg
ICAvLyBGSVhNRTogV2UgY291bGQgaGF2ZSBhbiBpbnZhbGlkYXRpb24gcnVsZXNldCBmb3IgcnVs
ZXMgaW5zaWRlIGR5bmFtaWMgbWVkaWEgcXVlcmllcy4KLSAgICAgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICBk
b2N1bWVudEVsZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICBjYXNlIE1l
ZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6VHlwZTo6SW52YWxpZGF0ZTogeworICAgICAgICBJ
bnZhbGlkYXRvciBpbnZhbGlkYXRvcihpbnZhbGlkYXRpb24uaW52YWxpZGF0aW9uUnVsZVNldHMp
OworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImludmFsaWRhdGlvblJ1bGVTZXRzLnNpemUoKSAl
enVcbiIsIGludmFsaWRhdGlvbi5pbnZhbGlkYXRpb25SdWxlU2V0cy5zaXplKCkpOworICAgICAg
ICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0
eWxlKCptX3NoYWRvd1Jvb3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnZhbGlkYXRv
ci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ6CisgICAgfQorICAgIGNh
c2UgTWVkaWFRdWVyeVN0eWxlSW52YWxpZGF0aW9uOjpUeXBlOjpSZXNldDoKICAgICAgICAgc2No
ZWR1bGVVcGRhdGUoVXBkYXRlVHlwZTo6Q29udGVudHNPckludGVycHJldGF0aW9uKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0
cy5jcHAKaW5kZXggMDExYzc5NjFhNDguLmJmYWZiYzI4NzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAgLTE0MSwyNyArMTQxLDI0IEBAIGJvb2wg
U2NvcGVSdWxlU2V0czo6aGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdAog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlw
ZSBTY29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCitNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24g
U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFR
dWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAgIGF1dG8gdXBkYXRlVHlwZSA9IFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU7CisgICAgTWVkaWFRdWVyeVN0eWxl
SW52YWxpZGF0aW9uIGludmFsaWRhdGlvbjsKIAogICAgIGF1dG8gZXZhbHVhdGUgPSBbJl0oYXV0
byYgcnVsZVNldCkgewogICAgICAgICBpZiAoIXJ1bGVTZXQpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIGF1dG8gbmV3VXBkYXRlVHlwZSA9IHJ1bGVTZXQtPmV2YWx1dGVEeW5h
bWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcik7Ci0gICAgICAgIGlmIChuZXdVcGRhdGVUeXBl
ID4gdXBkYXRlVHlwZSkKLSAgICAgICAgICAgIHVwZGF0ZVR5cGUgPSBuZXdVcGRhdGVUeXBlOwot
ICAgICAgICByZXR1cm4gdXBkYXRlVHlwZSA9PSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRh
dGVUeXBlOjpSZXNldDsKLSAgICB9OwotCi0gICAgaWYgKGV2YWx1YXRlKG1fYXV0aG9yU3R5bGUp
KQotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgaWYgKGludmFsaWRhdGlvbi50eXBlID09IE1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6
VHlwZTo6UmVzZXQpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoZXZhbHVhdGUobV91
c2VyU3R5bGUpKQotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZTsKKyAgICAgICAgaW52YWxpZGF0
aW9uLmFwcGVuZChydWxlU2V0LT5ldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhldmFsdWF0
b3IpKTsKKyAgICB9OwogCisgICAgZXZhbHVhdGUobV9hdXRob3JTdHlsZSk7CisgICAgZXZhbHVh
dGUobV91c2VyU3R5bGUpOwogICAgIGV2YWx1YXRlKG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxl
KTsKLSAgICByZXR1cm4gdXBkYXRlVHlwZTsKKworICAgIHJldHVybiBpbnZhbGlkYXRpb247CiB9
CiAKIHZvaWQgU2NvcGVSdWxlU2V0czo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMoY29uc3QgVmVj
dG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIHN0eWxlU2hlZXRzLCBNZWRpYVF1ZXJ5RXZhbHVh
dG9yKiBtZWRpdW0sIEluc3BlY3RvckNTU09NV3JhcHBlcnMmIGluc3BlY3RvckNTU09NV3JhcHBl
cnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCmluZGV4IDlkYTc4
YTMzODc3Li4yNzllYWRhZjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTY29wZVJ1bGVTZXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1
bGVTZXRzLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRVc2VyQWdl
bnRNZWRpYVF1ZXJ5U3R5bGUoKTsKIAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJpZXMoKSBjb25zdDsKLSAgICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBl
IGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3Im
KTsKKyAgICBNZWRpYVF1ZXJ5U3R5bGVJbnZhbGlkYXRpb24gZXZhbHV0ZUR5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwogCiAgICAgUnVsZUZlYXR1cmVT
ZXQmIG11dGFibGVGZWF0dXJlcygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386189</attachid>
            <date>2019-12-20 02:07:51 -0800</date>
            <delta_ts>2019-12-20 02:20:05 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated.patch</filename>
            <type>text/plain</type>
            <size>16354</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uMTNkYWYwOTRhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgc3R5bGUgb2YgdGhlIHdo
b2xlIHRyZWUgd2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAg
V2UgY2FuIGRvIGJldHRlciBieSBjb25zdHJ1Y3RpbmcgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQg
YW5kIGludmFsaWRhdGluZyBvbmx5IHRob3NlCisgICAgICAgIGVsZW1lbnRzIHRoYXQgYXJlIHBv
dGVudGlhbGx5IGFmZmVjdGVkLgorCisgICAgICAgICogc3R5bGUvUnVsZVNldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6YWRkUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRk
UnVsZUlmTmVlZGVkKToKKworICAgICAgICBDb2xsZWN0IFJ1bGVGZWF0dXJlcyB3aGljaCB3ZSBs
YXRlciB1c2UgdG8gYnVpbGQgaW52YWxpZGF0aW9uIFJ1bGVTZXQuCisKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25J
Zk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5bGUvUnVsZVNldC5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6aXNF
bXB0eSBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcyk6
CisKKyAgICAgICAgUmV0dXJuIGEgdmVjdG9yIG9mIG1lZGlhIHF1ZXJ5IGluZGV4ZXMgdGhhdCBm
bGlwcGVkIHZhbHVlLiBUaGlzIHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzZXQgb2YgY2hhbmdlcy4K
KyAgICAgICAgQWxzbyByZXR1cm4gdGhlIFJ1bGVGZWF0dXJlcyBhc3NvY2lhdGVkIHdpdGggdGhl
IHNldCBvZiBjaGFuZ2VzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNj
b3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyk6CisKKyAgICAgICAgVXNlIHRoZSBpbnZhbGlkYXRp
b24gUnVsZVNldCBmb3IgYWNjdXJhdGUgc3R5bGUgaW52YWxpZGF0aW9uLgorCisgICAgICAgICog
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpT
Y29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyk6CisKKyAgICAgICAg
Q29uc3RydWN0IGFuZCBjYWNoZSBhbiBpbnZhbGlkYXRpb24gUnVsZVNldCBhbmQgYXNzb2NpYXRl
IHdpdGggYSBzZXQgb2YgbWVkaWEgcXVlcnkgY2hhbmdlcy4KKworICAgICAgICAqIHN0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5oOgorCiAyMDE5LTEyLTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUzNzExLgpAQCAt
NTE1LDcgKzU1Niw3IEBACiAgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNl
dENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUpOiBEZWxldGVkLgogICAgICAgICBBbGxvdyBXZWIg
SW5zcGVjdG9yIHRvIG92ZXJyaWRlIHRoZSBgc2hvd0RlYnVnQm9yZGVyc2AgYW5kIGBzaG93UmVw
YWludENvdW50ZXJgIHNldHRpbmdzIHZpYQogICAgICAgICB0aGUgYGluc3BlY3Rvck92ZXJyaWRl
YCBrZXksIHJhdGhlciB0aGFuIHNldHRpbmcgdGhlbSBtYW51YWxseSB2aWEgYSBzcGVjaWFsIGBQ
YWdlYCBjb21tYW5kLgotCisgICAgICAgIAogMjAxOS0xMi0xOCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBtYWNDYXRhbHlzdDogQ3Vyc29yIHNob3Vs
ZCB1cGRhdGUgd2hlbiB0aGUgcGxhdGZvcm0gZGVlbXMgaXQgbmVjZXNzYXJ5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1J1bGVTZXQuY3BwCmluZGV4IDE0ODdjMWE2MjZhLi4zZGM1ZDdiODlkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUnVsZVNldC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0
eWxlUnVsZSYgcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5zaWduZWQgc2VsZWN0b3IK
ICAgICBtX2ZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlcyhydWxlRGF0YSk7CiAKICAgICBpZiAobWVk
aWFRdWVyeUNvbGxlY3RvcikKLSAgICAgICAgbWVkaWFRdWVyeUNvbGxlY3Rvci0+YWRkUnVsZVBv
c2l0aW9uSWZOZWVkZWQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAgICAgIG1lZGlhUXVlcnlD
b2xsZWN0b3ItPmFkZFJ1bGVJZk5lZWRlZChydWxlRGF0YSk7CiAKICAgICB1bnNpZ25lZCBjbGFz
c0J1Y2tldFNpemUgPSAwOwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBpZFNlbGVjdG9yID0gbnVs
bHB0cjsKQEAgLTQwNSw5ICs0MDUsMTEgQEAgdm9pZCBSdWxlU2V0Ojp0cmF2ZXJzZVJ1bGVEYXRh
cyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQogICAgIHRyYXZlcnNlVmVjdG9yKG1fdW5pdmVyc2FsUnVs
ZXMpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2
YWx1YXRvcikKK0R5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBSdWxlU2V0OjpldmFs
dXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFs
dWF0b3IpCiB7Ci0gICAgYm9vbCBjaGFuZ2VzID0gZmFsc2U7CisgICAgRHluYW1pY01lZGlhUXVl
cnlFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRpb25SZXN1bHQ7CisKKyAgICBzaXplX3QgbWVkaWFR
dWVyeUluZGV4ID0gMDsKICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSdWxlcyA6IG1fZHluYW1pY01l
ZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAgICAgICAgIGZv
ciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlhUXVlcnlTZXRzKSB7CkBAIC00MjAsMTgg
KzQyMiwyMyBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0CiAgICAgICAgIGlmIChyZXN1bHQgIT0g
ZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAgICAgZHluYW1pY1J1bGVzLnJlc3VsdCA9
IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWljUnVsZXMucmVxdWlyZXNGdWxsUmVzZXQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0
OworICAgICAgICAgICAgICAgIHJldHVybiB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJl
c3VsdDo6VHlwZTo6UmVzZXRTdHlsZSB9OwogCiAgICAgICAgICAgICB0cmF2ZXJzZVJ1bGVEYXRh
cyhbJl0oUnVsZURhdGEmIHJ1bGVEYXRhKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFkeW5hbWlj
UnVsZXMuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmNvbnRhaW5zKHJ1bGVEYXRhLnBvc2l0aW9uKCkp
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgcnVsZURhdGEu
c2V0RW5hYmxlZChyZXN1bHQpOwotICAgICAgICAgICAgICAgIGNoYW5nZXMgPSB0cnVlOwogICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGV2YWx1YXRpb25SZXN1bHQudHlwZSA9IER5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdDo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOworICAg
ICAgICAgICAgZXZhbHVhdGlvblJlc3VsdC5jaGFuZ2VkUXVlcnlJbmRleGVzLmFwcGVuZChtZWRp
YVF1ZXJ5SW5kZXgpOworICAgICAgICAgICAgZXZhbHVhdGlvblJlc3VsdC5ydWxlRmVhdHVyZXMu
YXBwZW5kKCZkeW5hbWljUnVsZXMucnVsZUZlYXR1cmVzKTsKICAgICAgICAgfQorCisgICAgICAg
ICsrbWVkaWFRdWVyeUluZGV4OwogICAgIH0KIAotICAgIHJldHVybiBjaGFuZ2VzID8gTWVkaWFR
dWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZSA6IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6
Ok5vbmU7CisgICAgcmV0dXJuIGV2YWx1YXRpb25SZXN1bHQ7CiB9CiAKIGJvb2wgUnVsZVNldDo6
aGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkgY29uc3QKQEAgLTQ3Miw3ICs0NzksNyBAQCB2
b2lkIFJ1bGVTZXQ6OnNocmlua1RvRml0KCkKIAogUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rv
cjo6fk1lZGlhUXVlcnlDb2xsZWN0b3IoKSA9IGRlZmF1bHQ7CiAKLWJvb2wgUnVsZVNldDo6TWVk
aWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKK2Jv
b2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKGNvbnN0IE1l
ZGlhUXVlcnlTZXQqIHNldCkKIHsKICAgICBpZiAoIXNldCkKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC00OTUsNyArNTAyLDcgQEAgYm9vbCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpw
dXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCogc2V0KQogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChNZWRpYVF1ZXJ5U2V0KiBz
ZXQpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChjb25zdCBNZWRpYVF1
ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQgfHwgZHluYW1pY0NvbnRleHRTdGFjay5pc0Vt
cHR5KCkgfHwgc2V0ICE9ICZkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5zZXQuZ2V0KCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTUwOCw2ICs1MTUsOSBAQCB2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVl
cnlDb2xsZWN0b3I6OnBvcChNZWRpYVF1ZXJ5U2V0KiBzZXQpCiAgICAgICAgIGlmIChjb2xsZWN0
RHluYW1pYykgewogICAgICAgICAgICAgYXV0byYgdG9BZGQgPSBkeW5hbWljQ29udGV4dFN0YWNr
Lmxhc3QoKS5hZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CiAgICAgICAgICAgICBydWxlcy5hZmZlY3Rl
ZFJ1bGVQb3NpdGlvbnMuYWRkKHRvQWRkLmJlZ2luKCksIHRvQWRkLmVuZCgpKTsKKworICAgICAg
ICAgICAgcnVsZXMucnVsZUZlYXR1cmVzID0gV1RGTW92ZShkeW5hbWljQ29udGV4dFN0YWNrLmxh
c3QoKS5ydWxlRmVhdHVyZXMpOworICAgICAgICAgICAgcnVsZXMucnVsZUZlYXR1cmVzLnNocmlu
a1RvRml0KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcnVsZXMucmVxdWlyZXNGdWxs
UmVzZXQgPSB0cnVlOwogCkBAIC01MjQsMTEgKzUzNCwxNCBAQCB2b2lkIFJ1bGVTZXQ6Ok1lZGlh
UXVlcnlDb2xsZWN0b3I6OmRpZE11dGF0ZVJlc29sdmVyKCkKICAgICBkaWRNdXRhdGVSZXNvbHZl
cldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5ID0gdHJ1ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRp
YVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3QgaW5kZXgpCit2
b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRlZChjb25zdCBS
dWxlRGF0YSYgcnVsZURhdGEpCiB7CiAgICAgaWYgKGR5bmFtaWNDb250ZXh0U3RhY2suaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuYWZm
ZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVuZChpbmRleCk7CisKKyAgICBhdXRvJiBjb250ZXh0ID0g
ZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCk7CisgICAgY29udGV4dC5hZmZlY3RlZFJ1bGVQb3Np
dGlvbnMuYXBwZW5kKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgIGNvbnRleHQucnVsZUZlYXR1
cmVzLmFwcGVuZCh7IHJ1bGVEYXRhLnJ1bGUoKSwgcnVsZURhdGEuc2VsZWN0b3JJbmRleCgpLCBy
dWxlRGF0YS5zZWxlY3Rvckxpc3RJbmRleCgpIH0pOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQu
aAppbmRleCA4NGRkZmE2YzE3Yy4uMGZmMjc2ODM0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgK
QEAgLTQwLDYgKzQwLDI4IEBAIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIG5hbWVzcGFjZSBT
dHlsZSB7CiAKIGNsYXNzIFJlc29sdmVyOworY2xhc3MgUnVsZVNldDsKKworc3RydWN0IER5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCB7CisgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9D
aGFuZ2UsIEludmFsaWRhdGVTdHlsZSwgUmVzZXRTdHlsZSB9OworICAgIFR5cGUgdHlwZSB7IFR5
cGU6Ok5vQ2hhbmdlIH07CisgICAgVmVjdG9yPHNpemVfdD4gY2hhbmdlZFF1ZXJ5SW5kZXhlcyB7
IH07CisgICAgVmVjdG9yPGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4qPiBydWxlRmVhdHVyZXM7
CisgICAgY29uc3QgUnVsZVNldCogaW52YWxpZGF0aW9uUnVsZVNldCB7IG51bGxwdHIgfTsKKwor
ICAgIHZvaWQgYXBwZW5kKER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCYmIG90aGVy
KQorICAgIHsKKyAgICAgICAgdHlwZSA9IHN0ZDo6bWF4KHR5cGUsIG90aGVyLnR5cGUpOworICAg
ICAgICBpZiAodHlwZSA9PSBUeXBlOjpSZXNldFN0eWxlKSB7CisgICAgICAgICAgICBjaGFuZ2Vk
UXVlcnlJbmRleGVzLmNsZWFyKCk7CisgICAgICAgICAgICBydWxlRmVhdHVyZXMuY2xlYXIoKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh0eXBlID09IFR5cGU6OkludmFsaWRhdGVTdHls
ZSkgeworICAgICAgICAgICAgY2hhbmdlZFF1ZXJ5SW5kZXhlcy5hcHBlbmRWZWN0b3IoV1RGTW92
ZShvdGhlci5jaGFuZ2VkUXVlcnlJbmRleGVzKSk7CisgICAgICAgICAgICBydWxlRmVhdHVyZXMu
YXBwZW5kVmVjdG9yKFdURk1vdmUob3RoZXIucnVsZUZlYXR1cmVzKSk7CisgICAgICAgIH0KKyAg
ICB9Cit9OwogCiBjbGFzcyBSdWxlU2V0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxl
U2V0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02Myw4ICs4NSw5IEBAIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJ1bGVEYXRh
VmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKICAgICBzdHJ1Y3QgRHluYW1pY01lZGlhUXVlcnlSdWxl
cyB7Ci0gICAgICAgIFZlY3RvcjxSZWY8TWVkaWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOwor
ICAgICAgICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsK
ICAgICAgICAgSGFzaFNldDxzaXplX3QsIERlZmF1bHRIYXNoPHNpemVfdD46Okhhc2gsIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8c2l6ZV90Pj4gYWZmZWN0ZWRSdWxlUG9zaXRp
b25zOworICAgICAgICBWZWN0b3I8UnVsZUZlYXR1cmU+IHJ1bGVGZWF0dXJlczsKICAgICAgICAg
Ym9vbCByZXF1aXJlc0Z1bGxSZXNldCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgcmVzdWx0IHsg
dHJ1ZSB9OwogICAgIH07CkBAIC03Niw4ICs5OSw5IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qg
Ym9vbCBjb2xsZWN0RHluYW1pYyB7IGZhbHNlIH07CiAKICAgICAgICAgc3RydWN0IER5bmFtaWND
b250ZXh0IHsKLSAgICAgICAgICAgIFJlZjxNZWRpYVF1ZXJ5U2V0PiBzZXQ7CisgICAgICAgICAg
ICBSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4gc2V0OwogICAgICAgICAgICAgVmVjdG9yPHNpemVf
dD4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zIHsgfTsKKyAgICAgICAgICAgIFZlY3RvcjxSdWxlRmVh
dHVyZT4gcnVsZUZlYXR1cmVzIHsgfTsKICAgICAgICAgfTsKICAgICAgICAgVmVjdG9yPER5bmFt
aWNDb250ZXh0PiBkeW5hbWljQ29udGV4dFN0YWNrIHsgfTsKIApAQCAtODUsMTAgKzEwOSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVk
aWFRdWVyeSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJpZXMgeyBmYWxzZSB9OwogCi0gICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRlKE1lZGlh
UXVlcnlTZXQqKTsKLSAgICAgICAgdm9pZCBwb3AoTWVkaWFRdWVyeVNldCopOworICAgICAgICBi
b29sIHB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAgIHZvaWQg
cG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKICAgICAgICAgdm9pZCBkaWRNdXRhdGVSZXNvbHZl
cigpOwotICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCk7CisgICAg
ICAgIHZvaWQgYWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRhJik7CiAgICAgfTsKIAogICAg
IHZvaWQgYWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzJiwgY29uc3QgTWVkaWFR
dWVyeUV2YWx1YXRvciYpOwpAQCAtMTAzLDggKzEyNyw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzOyB9CiAKLSAgICBlbnVtIGNsYXNzIE1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGUgeyBOb25lLCBSZXNvbHZlLCBSZXNldCB9OwotICAgIE1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVk
aWFRdWVyeUV2YWx1YXRvciYpOworICAgIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3Vs
dCBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9y
Jik7CiAKICAgICBjb25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMoKSBjb25zdCB7IHJldHVy
biBtX2ZlYXR1cmVzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKaW5k
ZXggMzU5NDRkMTg2ODQuLjk3NTlhYTViOGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVyLmNwcApAQCAtNjA3LDcgKzYwNyw3IEBAIGJvb2wgUmVzb2x2ZXI6Omhhc1ZpZXdwb3J0
RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ydWxlU2V0cy5oYXNW
aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5
U3R5bGVVcGRhdGVUeXBlIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQor
RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0IFJlc29sdmVyOjpldmFsdWF0ZUR5bmFt
aWNNZWRpYVF1ZXJpZXMoKQogewogICAgIHJldHVybiBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzKG1fbWVkaWFRdWVyeUV2YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVyLmgKaW5kZXggMmVkNWZlODVjOTIuLmU3ZDc1NzE2MjdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29u
c3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFt
aWNNZWRpYVF1ZXJpZXMoKTsKKyAgICBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQg
ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCk7CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5
bGUoUmVmPFN0eWxlUnVsZUtleWZyYW1lcz4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZS5jcHAKaW5kZXggOTBiNjNkMmRlNDguLmQwNjBmMmY3ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlLmNwcApAQCAtNjUxLDE3ICs2NTEsMjAgQEAgdm9pZCBTY29wZTo6ZXZhbHVhdGVN
ZWRpYVF1ZXJpZXMoVGVzdEZ1bmN0aW9uJiYgdGVzdEZ1bmN0aW9uKQogICAgIGlmICghcmVzb2x2
ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdXBkYXRlVHlwZSA9IHRlc3RGdW5jdGlv
bigqcmVzb2x2ZXIpOworICAgIGF1dG8gZXZhbGlhdGlvblJlc3VsdCA9IHRlc3RGdW5jdGlvbigq
cmVzb2x2ZXIpOwogCi0gICAgc3dpdGNoICh1cGRhdGVUeXBlKSB7Ci0gICAgY2FzZSBSdWxlU2V0
OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOgorICAgIHN3aXRjaCAoZXZhbGlhdGlv
blJlc3VsdC50eXBlKSB7CisgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1
bHQ6OlR5cGU6Ok5vQ2hhbmdlOgogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBSdWxlU2V0OjpN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlOgotICAgICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgaGF2ZSBhbiBpbnZhbGlkYXRpb24gcnVsZXNldCBmb3IgcnVsZXMgaW5zaWRlIGR5bmFt
aWMgbWVkaWEgcXVlcmllcy4KLSAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IG1f
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudEVsZW1lbnQt
PmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5
RXZhbHVhdGlvblJlc3VsdDo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOiB7CisgICAgICAgIEludmFs
aWRhdG9yIGludmFsaWRhdG9yKHsgZXZhbGlhdGlvblJlc3VsdC5pbnZhbGlkYXRpb25SdWxlU2V0
IH0pOworICAgICAgICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAgaW52YWxpZGF0b3Iu
aW52YWxpZGF0ZVN0eWxlKCptX3NoYWRvd1Jvb3QpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ6Cisg
ICAgfQorICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0OjpUeXBlOjpS
ZXNldFN0eWxlOgogICAgICAgICBzY2hlZHVsZVVwZGF0ZShVcGRhdGVUeXBlOjpDb250ZW50c09y
SW50ZXJwcmV0YXRpb24pOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCAwMTFjNzk2MWE0OC4uNTFkMDQ2YTE0
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAt
MTQxLDI3ICsxNDEsMzggQEAgYm9vbCBTY29wZVJ1bGVTZXRzOjpoYXNWaWV3cG9ydERlcGVuZGVu
dE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SdWxlU2V0OjpN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVk
aWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK0R5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBTY29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1p
Y01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCiB7
Ci0gICAgYXV0byB1cGRhdGVUeXBlID0gUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlw
ZTo6Tm9uZTsKKyAgICBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGlv
blJlc3VsdDsKIAotICAgIGF1dG8gZXZhbHVhdGUgPSBbJl0oYXV0byYgcnVsZVNldCkgeworICAg
IGF1dG8gZXZhbHVhdGUgPSBbJl0oYXV0byogcnVsZVNldCkgewogICAgICAgICBpZiAoIXJ1bGVT
ZXQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGF1dG8gbmV3VXBkYXRlVHlw
ZSA9IHJ1bGVTZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcik7Ci0g
ICAgICAgIGlmIChuZXdVcGRhdGVUeXBlID4gdXBkYXRlVHlwZSkKLSAgICAgICAgICAgIHVwZGF0
ZVR5cGUgPSBuZXdVcGRhdGVUeXBlOwotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZSA9PSBSdWxl
U2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKGV2YWx1YXRpb25SZXN1bHQudHlwZSA9PSBEeW5hbWljTWVkaWFRdWVy
eUV2YWx1YXRpb25SZXN1bHQ6OlR5cGU6OlJlc2V0U3R5bGUpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGV2YWx1YXRpb25SZXN1bHQuYXBwZW5kKHJ1bGVTZXQtPmV2YWx1dGVEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcikpOwogICAgIH07CiAKLSAgICBpZiAoZXZhbHVhdGUo
bV9hdXRob3JTdHlsZSkpCi0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOwotCi0gICAgaWYgKGV2
YWx1YXRlKG1fdXNlclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgZXZh
bHVhdGUoYXV0aG9yU3R5bGUoKSk7CisgICAgZXZhbHVhdGUodXNlclN0eWxlKCkpOworICAgIGV2
YWx1YXRlKHVzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSgpKTsKKworICAgIGlmIChldmFsdWF0aW9u
UmVzdWx0LnR5cGUgPT0gRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0OjpUeXBlOjpJ
bnZhbGlkYXRlU3R5bGUpIHsKKyAgICAgICAgLy8gZXZhbHVhdGlvblJlc3VsdC5jaGFuZ2VkUXVl
cnlJbmRleGVzIGlzIGEgdmVjdG9yIG9mIGlkZW50aWZpZXJzIGZvciBtZWRpYSBxdWVyaWVzIHRo
YXQgZmxpcHBlZCB2YWx1ZSBkdXJpbmcgdGhpcyBldmFsdWF0aW9uLgorICAgICAgICAvLyBXZSB1
c2UgaXQgZGlyZWN0bHkgYXMgdGhlIGNhY2hlIGtleSBmb3IgdGhlIGFzc29jaWF0ZWQgaW52YWxp
ZGF0aW9uIHJ1bGUgc2V0LgorICAgICAgICBhdXRvJiBydWxlU2V0ID0gbV9tZWRpYVF1ZXJ5SW52
YWxpZGF0aW9uUnVsZVNldENhY2hlLmVuc3VyZShldmFsdWF0aW9uUmVzdWx0LmNoYW5nZWRRdWVy
eUluZGV4ZXMsIFsmXSB7CisgICAgICAgICAgICBhdXRvIHJ1bGVTZXQgPSBtYWtlVW5pcXVlPFJ1
bGVTZXQ+KCk7CisgICAgICAgICAgICBmb3IgKGF1dG8qIGZlYXR1cmVWZWN0b3IgOiBldmFsdWF0
aW9uUmVzdWx0LnJ1bGVGZWF0dXJlcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgZmVh
dHVyZSA6ICpmZWF0dXJlVmVjdG9yKQorICAgICAgICAgICAgICAgICAgICBydWxlU2V0LT5hZGRS
dWxlKCpmZWF0dXJlLnJ1bGUsIGZlYXR1cmUuc2VsZWN0b3JJbmRleCwgZmVhdHVyZS5zZWxlY3Rv
ckxpc3RJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcnVsZVNldDsK
KyAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgICAgIGV2YWx1YXRpb25SZXN1bHQu
aW52YWxpZGF0aW9uUnVsZVNldCA9IHJ1bGVTZXQuZ2V0KCk7CisgICAgfQogCi0gICAgZXZhbHVh
dGUobV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUpOwotICAgIHJldHVybiB1cGRhdGVUeXBlOwor
ICAgIHJldHVybiBldmFsdWF0aW9uUmVzdWx0OwogfQogCiB2b2lkIFNjb3BlUnVsZVNldHM6OmFw
cGVuZEF1dGhvclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+
JiBzdHlsZVNoZWV0cywgTWVkaWFRdWVyeUV2YWx1YXRvciogbWVkaXVtLCBJbnNwZWN0b3JDU1NP
TVdyYXBwZXJzJiBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzKQpAQCAtMjAyLDYgKzIxMyw3IEBAIHZv
aWQgU2NvcGVSdWxlU2V0czo6Y29sbGVjdEZlYXR1cmVzKCkgY29uc3QKICAgICBtX2NsYXNzSW52
YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsKICAgICBtX2F0dHJpYnV0ZUludmFsaWRhdGlvblJ1
bGVTZXRzLmNsZWFyKCk7CiAgICAgbV9jYWNoZWRIYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVB
dHRyaWJ1dGUgPSBXVEY6Om51bGxvcHQ7CisgICAgbV9tZWRpYVF1ZXJ5SW52YWxpZGF0aW9uUnVs
ZVNldENhY2hlLmNsZWFyKCk7CiAKICAgICBtX2ZlYXR1cmVzLnNocmlua1RvRml0KCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCmluZGV4IDlkYTc4YTMzODc3
Li5jYmVlZTZkMDI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZVJ1bGVTZXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRz
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvckhhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OSw3ICs4MCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKICAgICBi
b29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNl
dDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxl
cyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisgICAgRHluYW1pY01lZGlhUXVlcnlFdmFs
dWF0aW9uUmVzdWx0IGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVl
cnlFdmFsdWF0b3ImKTsKIAogICAgIFJ1bGVGZWF0dXJlU2V0JiBtdXRhYmxlRmVhdHVyZXMoKTsK
IApAQCAtMTAxLDYgKzEwMiw4IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21T
dHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2Ns
YXNzSW52YWxpZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcs
IHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2F0dHJpYnV0
ZUludmFsaWRhdGlvblJ1bGVTZXRzOwogCisgICAgbXV0YWJsZSBIYXNoTWFwPFZlY3RvcjxzaXpl
X3Q+LCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUnVsZVNldD4+IG1fbWVkaWFRdWVyeUludmFsaWRh
dGlvblJ1bGVTZXRDYWNoZTsKKwogICAgIG11dGFibGUgT3B0aW9uYWw8Ym9vbD4gbV9jYWNoZWRI
YXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVBdHRyaWJ1dGU7CiAKICAgICBtdXRhYmxlIHVuc2ln
bmVkIG1fZGVmYXVsdFN0eWxlVmVyc2lvbk9uRmVhdHVyZUNvbGxlY3Rpb24geyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386190</attachid>
            <date>2019-12-20 02:20:05 -0800</date>
            <delta_ts>2019-12-20 02:21:31 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated-2.patch</filename>
            <type>text/plain</type>
            <size>16355</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uMTNkYWYwOTRhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgc3R5bGUgb2YgdGhlIHdo
b2xlIHRyZWUgd2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAg
V2UgY2FuIGRvIGJldHRlciBieSBjb25zdHJ1Y3RpbmcgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQg
YW5kIGludmFsaWRhdGluZyBvbmx5IHRob3NlCisgICAgICAgIGVsZW1lbnRzIHRoYXQgYXJlIHBv
dGVudGlhbGx5IGFmZmVjdGVkLgorCisgICAgICAgICogc3R5bGUvUnVsZVNldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6YWRkUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRk
UnVsZUlmTmVlZGVkKToKKworICAgICAgICBDb2xsZWN0IFJ1bGVGZWF0dXJlcyB3aGljaCB3ZSBs
YXRlciB1c2UgdG8gYnVpbGQgaW52YWxpZGF0aW9uIFJ1bGVTZXQuCisKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25J
Zk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5bGUvUnVsZVNldC5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6aXNF
bXB0eSBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcyk6
CisKKyAgICAgICAgUmV0dXJuIGEgdmVjdG9yIG9mIG1lZGlhIHF1ZXJ5IGluZGV4ZXMgdGhhdCBm
bGlwcGVkIHZhbHVlLiBUaGlzIHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzZXQgb2YgY2hhbmdlcy4K
KyAgICAgICAgQWxzbyByZXR1cm4gdGhlIFJ1bGVGZWF0dXJlcyBhc3NvY2lhdGVkIHdpdGggdGhl
IHNldCBvZiBjaGFuZ2VzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNj
b3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyk6CisKKyAgICAgICAgVXNlIHRoZSBpbnZhbGlkYXRp
b24gUnVsZVNldCBmb3IgYWNjdXJhdGUgc3R5bGUgaW52YWxpZGF0aW9uLgorCisgICAgICAgICog
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpT
Y29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyk6CisKKyAgICAgICAg
Q29uc3RydWN0IGFuZCBjYWNoZSBhbiBpbnZhbGlkYXRpb24gUnVsZVNldCBhbmQgYXNzb2NpYXRl
IHdpdGggYSBzZXQgb2YgbWVkaWEgcXVlcnkgY2hhbmdlcy4KKworICAgICAgICAqIHN0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5oOgorCiAyMDE5LTEyLTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUzNzExLgpAQCAt
NTE1LDcgKzU1Niw3IEBACiAgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNl
dENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUpOiBEZWxldGVkLgogICAgICAgICBBbGxvdyBXZWIg
SW5zcGVjdG9yIHRvIG92ZXJyaWRlIHRoZSBgc2hvd0RlYnVnQm9yZGVyc2AgYW5kIGBzaG93UmVw
YWludENvdW50ZXJgIHNldHRpbmdzIHZpYQogICAgICAgICB0aGUgYGluc3BlY3Rvck92ZXJyaWRl
YCBrZXksIHJhdGhlciB0aGFuIHNldHRpbmcgdGhlbSBtYW51YWxseSB2aWEgYSBzcGVjaWFsIGBQ
YWdlYCBjb21tYW5kLgotCisgICAgICAgIAogMjAxOS0xMi0xOCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBtYWNDYXRhbHlzdDogQ3Vyc29yIHNob3Vs
ZCB1cGRhdGUgd2hlbiB0aGUgcGxhdGZvcm0gZGVlbXMgaXQgbmVjZXNzYXJ5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1J1bGVTZXQuY3BwCmluZGV4IDE0ODdjMWE2MjZhLi4zZGM1ZDdiODlkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUnVsZVNldC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0
eWxlUnVsZSYgcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5zaWduZWQgc2VsZWN0b3IK
ICAgICBtX2ZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlcyhydWxlRGF0YSk7CiAKICAgICBpZiAobWVk
aWFRdWVyeUNvbGxlY3RvcikKLSAgICAgICAgbWVkaWFRdWVyeUNvbGxlY3Rvci0+YWRkUnVsZVBv
c2l0aW9uSWZOZWVkZWQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAgICAgIG1lZGlhUXVlcnlD
b2xsZWN0b3ItPmFkZFJ1bGVJZk5lZWRlZChydWxlRGF0YSk7CiAKICAgICB1bnNpZ25lZCBjbGFz
c0J1Y2tldFNpemUgPSAwOwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBpZFNlbGVjdG9yID0gbnVs
bHB0cjsKQEAgLTQwNSw5ICs0MDUsMTEgQEAgdm9pZCBSdWxlU2V0Ojp0cmF2ZXJzZVJ1bGVEYXRh
cyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQogICAgIHRyYXZlcnNlVmVjdG9yKG1fdW5pdmVyc2FsUnVs
ZXMpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2
YWx1YXRvcikKK0R5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBSdWxlU2V0OjpldmFs
dXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFs
dWF0b3IpCiB7Ci0gICAgYm9vbCBjaGFuZ2VzID0gZmFsc2U7CisgICAgRHluYW1pY01lZGlhUXVl
cnlFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRpb25SZXN1bHQ7CisKKyAgICBzaXplX3QgbWVkaWFR
dWVyeUluZGV4ID0gMDsKICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSdWxlcyA6IG1fZHluYW1pY01l
ZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAgICAgICAgIGZv
ciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlhUXVlcnlTZXRzKSB7CkBAIC00MjAsMTgg
KzQyMiwyMyBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0CiAgICAgICAgIGlmIChyZXN1bHQgIT0g
ZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAgICAgZHluYW1pY1J1bGVzLnJlc3VsdCA9
IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWljUnVsZXMucmVxdWlyZXNGdWxsUmVzZXQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0
OworICAgICAgICAgICAgICAgIHJldHVybiB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJl
c3VsdDo6VHlwZTo6UmVzZXRTdHlsZSB9OwogCiAgICAgICAgICAgICB0cmF2ZXJzZVJ1bGVEYXRh
cyhbJl0oUnVsZURhdGEmIHJ1bGVEYXRhKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFkeW5hbWlj
UnVsZXMuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmNvbnRhaW5zKHJ1bGVEYXRhLnBvc2l0aW9uKCkp
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgcnVsZURhdGEu
c2V0RW5hYmxlZChyZXN1bHQpOwotICAgICAgICAgICAgICAgIGNoYW5nZXMgPSB0cnVlOwogICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGV2YWx1YXRpb25SZXN1bHQudHlwZSA9IER5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdDo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOworICAg
ICAgICAgICAgZXZhbHVhdGlvblJlc3VsdC5jaGFuZ2VkUXVlcnlJbmRleGVzLmFwcGVuZChtZWRp
YVF1ZXJ5SW5kZXgpOworICAgICAgICAgICAgZXZhbHVhdGlvblJlc3VsdC5ydWxlRmVhdHVyZXMu
YXBwZW5kKCZkeW5hbWljUnVsZXMucnVsZUZlYXR1cmVzKTsKICAgICAgICAgfQorCisgICAgICAg
ICsrbWVkaWFRdWVyeUluZGV4OwogICAgIH0KIAotICAgIHJldHVybiBjaGFuZ2VzID8gTWVkaWFR
dWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZSA6IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6
Ok5vbmU7CisgICAgcmV0dXJuIGV2YWx1YXRpb25SZXN1bHQ7CiB9CiAKIGJvb2wgUnVsZVNldDo6
aGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkgY29uc3QKQEAgLTQ3Miw3ICs0NzksNyBAQCB2
b2lkIFJ1bGVTZXQ6OnNocmlua1RvRml0KCkKIAogUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rv
cjo6fk1lZGlhUXVlcnlDb2xsZWN0b3IoKSA9IGRlZmF1bHQ7CiAKLWJvb2wgUnVsZVNldDo6TWVk
aWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKK2Jv
b2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKGNvbnN0IE1l
ZGlhUXVlcnlTZXQqIHNldCkKIHsKICAgICBpZiAoIXNldCkKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC00OTUsNyArNTAyLDcgQEAgYm9vbCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpw
dXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCogc2V0KQogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChNZWRpYVF1ZXJ5U2V0KiBz
ZXQpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChjb25zdCBNZWRpYVF1
ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQgfHwgZHluYW1pY0NvbnRleHRTdGFjay5pc0Vt
cHR5KCkgfHwgc2V0ICE9ICZkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5zZXQuZ2V0KCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTUwOCw2ICs1MTUsOSBAQCB2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVl
cnlDb2xsZWN0b3I6OnBvcChNZWRpYVF1ZXJ5U2V0KiBzZXQpCiAgICAgICAgIGlmIChjb2xsZWN0
RHluYW1pYykgewogICAgICAgICAgICAgYXV0byYgdG9BZGQgPSBkeW5hbWljQ29udGV4dFN0YWNr
Lmxhc3QoKS5hZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CiAgICAgICAgICAgICBydWxlcy5hZmZlY3Rl
ZFJ1bGVQb3NpdGlvbnMuYWRkKHRvQWRkLmJlZ2luKCksIHRvQWRkLmVuZCgpKTsKKworICAgICAg
ICAgICAgcnVsZXMucnVsZUZlYXR1cmVzID0gV1RGTW92ZShkeW5hbWljQ29udGV4dFN0YWNrLmxh
c3QoKS5ydWxlRmVhdHVyZXMpOworICAgICAgICAgICAgcnVsZXMucnVsZUZlYXR1cmVzLnNocmlu
a1RvRml0KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcnVsZXMucmVxdWlyZXNGdWxs
UmVzZXQgPSB0cnVlOwogCkBAIC01MjQsMTEgKzUzNCwxNCBAQCB2b2lkIFJ1bGVTZXQ6Ok1lZGlh
UXVlcnlDb2xsZWN0b3I6OmRpZE11dGF0ZVJlc29sdmVyKCkKICAgICBkaWRNdXRhdGVSZXNvbHZl
cldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5ID0gdHJ1ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRp
YVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3QgaW5kZXgpCit2
b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRlZChjb25zdCBS
dWxlRGF0YSYgcnVsZURhdGEpCiB7CiAgICAgaWYgKGR5bmFtaWNDb250ZXh0U3RhY2suaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuYWZm
ZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVuZChpbmRleCk7CisKKyAgICBhdXRvJiBjb250ZXh0ID0g
ZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCk7CisgICAgY29udGV4dC5hZmZlY3RlZFJ1bGVQb3Np
dGlvbnMuYXBwZW5kKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgIGNvbnRleHQucnVsZUZlYXR1
cmVzLmFwcGVuZCh7IHJ1bGVEYXRhLnJ1bGUoKSwgcnVsZURhdGEuc2VsZWN0b3JJbmRleCgpLCBy
dWxlRGF0YS5zZWxlY3Rvckxpc3RJbmRleCgpIH0pOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQu
aAppbmRleCA4NGRkZmE2YzE3Yy4uMGZmMjc2ODM0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgK
QEAgLTQwLDYgKzQwLDI4IEBAIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIG5hbWVzcGFjZSBT
dHlsZSB7CiAKIGNsYXNzIFJlc29sdmVyOworY2xhc3MgUnVsZVNldDsKKworc3RydWN0IER5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCB7CisgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9D
aGFuZ2UsIEludmFsaWRhdGVTdHlsZSwgUmVzZXRTdHlsZSB9OworICAgIFR5cGUgdHlwZSB7IFR5
cGU6Ok5vQ2hhbmdlIH07CisgICAgVmVjdG9yPHNpemVfdD4gY2hhbmdlZFF1ZXJ5SW5kZXhlcyB7
IH07CisgICAgVmVjdG9yPGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4qPiBydWxlRmVhdHVyZXM7
CisgICAgY29uc3QgUnVsZVNldCogaW52YWxpZGF0aW9uUnVsZVNldCB7IG51bGxwdHIgfTsKKwor
ICAgIHZvaWQgYXBwZW5kKER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCYmIG90aGVy
KQorICAgIHsKKyAgICAgICAgdHlwZSA9IHN0ZDo6bWF4KHR5cGUsIG90aGVyLnR5cGUpOworICAg
ICAgICBpZiAodHlwZSA9PSBUeXBlOjpSZXNldFN0eWxlKSB7CisgICAgICAgICAgICBjaGFuZ2Vk
UXVlcnlJbmRleGVzLmNsZWFyKCk7CisgICAgICAgICAgICBydWxlRmVhdHVyZXMuY2xlYXIoKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh0eXBlID09IFR5cGU6OkludmFsaWRhdGVTdHls
ZSkgeworICAgICAgICAgICAgY2hhbmdlZFF1ZXJ5SW5kZXhlcy5hcHBlbmRWZWN0b3IoV1RGTW92
ZShvdGhlci5jaGFuZ2VkUXVlcnlJbmRleGVzKSk7CisgICAgICAgICAgICBydWxlRmVhdHVyZXMu
YXBwZW5kVmVjdG9yKFdURk1vdmUob3RoZXIucnVsZUZlYXR1cmVzKSk7CisgICAgICAgIH0KKyAg
ICB9Cit9OwogCiBjbGFzcyBSdWxlU2V0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxl
U2V0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02Myw4ICs4NSw5IEBAIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJ1bGVEYXRh
VmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKICAgICBzdHJ1Y3QgRHluYW1pY01lZGlhUXVlcnlSdWxl
cyB7Ci0gICAgICAgIFZlY3RvcjxSZWY8TWVkaWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOwor
ICAgICAgICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsK
ICAgICAgICAgSGFzaFNldDxzaXplX3QsIERlZmF1bHRIYXNoPHNpemVfdD46Okhhc2gsIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8c2l6ZV90Pj4gYWZmZWN0ZWRSdWxlUG9zaXRp
b25zOworICAgICAgICBWZWN0b3I8UnVsZUZlYXR1cmU+IHJ1bGVGZWF0dXJlczsKICAgICAgICAg
Ym9vbCByZXF1aXJlc0Z1bGxSZXNldCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgcmVzdWx0IHsg
dHJ1ZSB9OwogICAgIH07CkBAIC03Niw4ICs5OSw5IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qg
Ym9vbCBjb2xsZWN0RHluYW1pYyB7IGZhbHNlIH07CiAKICAgICAgICAgc3RydWN0IER5bmFtaWND
b250ZXh0IHsKLSAgICAgICAgICAgIFJlZjxNZWRpYVF1ZXJ5U2V0PiBzZXQ7CisgICAgICAgICAg
ICBSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4gc2V0OwogICAgICAgICAgICAgVmVjdG9yPHNpemVf
dD4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zIHsgfTsKKyAgICAgICAgICAgIFZlY3RvcjxSdWxlRmVh
dHVyZT4gcnVsZUZlYXR1cmVzIHsgfTsKICAgICAgICAgfTsKICAgICAgICAgVmVjdG9yPER5bmFt
aWNDb250ZXh0PiBkeW5hbWljQ29udGV4dFN0YWNrIHsgfTsKIApAQCAtODUsMTAgKzEwOSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVk
aWFRdWVyeSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJpZXMgeyBmYWxzZSB9OwogCi0gICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRlKE1lZGlh
UXVlcnlTZXQqKTsKLSAgICAgICAgdm9pZCBwb3AoTWVkaWFRdWVyeVNldCopOworICAgICAgICBi
b29sIHB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAgIHZvaWQg
cG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKICAgICAgICAgdm9pZCBkaWRNdXRhdGVSZXNvbHZl
cigpOwotICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCk7CisgICAg
ICAgIHZvaWQgYWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRhJik7CiAgICAgfTsKIAogICAg
IHZvaWQgYWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzJiwgY29uc3QgTWVkaWFR
dWVyeUV2YWx1YXRvciYpOwpAQCAtMTAzLDggKzEyNyw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzOyB9CiAKLSAgICBlbnVtIGNsYXNzIE1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGUgeyBOb25lLCBSZXNvbHZlLCBSZXNldCB9OwotICAgIE1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVk
aWFRdWVyeUV2YWx1YXRvciYpOworICAgIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3Vs
dCBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9y
Jik7CiAKICAgICBjb25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMoKSBjb25zdCB7IHJldHVy
biBtX2ZlYXR1cmVzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKaW5k
ZXggMzU5NDRkMTg2ODQuLjk3NTlhYTViOGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVyLmNwcApAQCAtNjA3LDcgKzYwNyw3IEBAIGJvb2wgUmVzb2x2ZXI6Omhhc1ZpZXdwb3J0
RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ydWxlU2V0cy5oYXNW
aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5
U3R5bGVVcGRhdGVUeXBlIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQor
RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0IFJlc29sdmVyOjpldmFsdWF0ZUR5bmFt
aWNNZWRpYVF1ZXJpZXMoKQogewogICAgIHJldHVybiBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzKG1fbWVkaWFRdWVyeUV2YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVyLmgKaW5kZXggMmVkNWZlODVjOTIuLmU3ZDc1NzE2MjdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29u
c3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFt
aWNNZWRpYVF1ZXJpZXMoKTsKKyAgICBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQg
ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCk7CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5
bGUoUmVmPFN0eWxlUnVsZUtleWZyYW1lcz4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZS5jcHAKaW5kZXggOTBiNjNkMmRlNDguLmQwNjBmMmY3ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlLmNwcApAQCAtNjUxLDE3ICs2NTEsMjAgQEAgdm9pZCBTY29wZTo6ZXZhbHVhdGVN
ZWRpYVF1ZXJpZXMoVGVzdEZ1bmN0aW9uJiYgdGVzdEZ1bmN0aW9uKQogICAgIGlmICghcmVzb2x2
ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdXBkYXRlVHlwZSA9IHRlc3RGdW5jdGlv
bigqcmVzb2x2ZXIpOworICAgIGF1dG8gZXZhbGlhdGlvblJlc3VsdCA9IHRlc3RGdW5jdGlvbigq
cmVzb2x2ZXIpOwogCi0gICAgc3dpdGNoICh1cGRhdGVUeXBlKSB7Ci0gICAgY2FzZSBSdWxlU2V0
OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOgorICAgIHN3aXRjaCAoZXZhbGlhdGlv
blJlc3VsdC50eXBlKSB7CisgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1
bHQ6OlR5cGU6Ok5vQ2hhbmdlOgogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBSdWxlU2V0OjpN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlOgotICAgICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgaGF2ZSBhbiBpbnZhbGlkYXRpb24gcnVsZXNldCBmb3IgcnVsZXMgaW5zaWRlIGR5bmFt
aWMgbWVkaWEgcXVlcmllcy4KLSAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IG1f
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudEVsZW1lbnQt
PmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5
RXZhbHVhdGlvblJlc3VsdDo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOiB7CisgICAgICAgIEludmFs
aWRhdG9yIGludmFsaWRhdG9yKHsgZXZhbGlhdGlvblJlc3VsdC5pbnZhbGlkYXRpb25SdWxlU2V0
IH0pOworICAgICAgICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAgaW52YWxpZGF0b3Iu
aW52YWxpZGF0ZVN0eWxlKCptX3NoYWRvd1Jvb3QpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ6Cisg
ICAgfQorICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0OjpUeXBlOjpS
ZXNldFN0eWxlOgogICAgICAgICBzY2hlZHVsZVVwZGF0ZShVcGRhdGVUeXBlOjpDb250ZW50c09y
SW50ZXJwcmV0YXRpb24pOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCAwMTFjNzk2MWE0OC4uNGVlNjQyY2Jl
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAt
MTQxLDI3ICsxNDEsMzggQEAgYm9vbCBTY29wZVJ1bGVTZXRzOjpoYXNWaWV3cG9ydERlcGVuZGVu
dE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SdWxlU2V0OjpN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVk
aWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK0R5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBTY29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1p
Y01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCiB7
Ci0gICAgYXV0byB1cGRhdGVUeXBlID0gUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlw
ZTo6Tm9uZTsKKyAgICBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGlv
blJlc3VsdDsKIAotICAgIGF1dG8gZXZhbHVhdGUgPSBbJl0oYXV0byYgcnVsZVNldCkgeworICAg
IGF1dG8gZXZhbHVhdGUgPSBbJl0oYXV0byogcnVsZVNldCkgewogICAgICAgICBpZiAoIXJ1bGVT
ZXQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGF1dG8gbmV3VXBkYXRlVHlw
ZSA9IHJ1bGVTZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcik7Ci0g
ICAgICAgIGlmIChuZXdVcGRhdGVUeXBlID4gdXBkYXRlVHlwZSkKLSAgICAgICAgICAgIHVwZGF0
ZVR5cGUgPSBuZXdVcGRhdGVUeXBlOwotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZSA9PSBSdWxl
U2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKGV2YWx1YXRpb25SZXN1bHQudHlwZSA9PSBEeW5hbWljTWVkaWFRdWVy
eUV2YWx1YXRpb25SZXN1bHQ6OlR5cGU6OlJlc2V0U3R5bGUpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGV2YWx1YXRpb25SZXN1bHQuYXBwZW5kKHJ1bGVTZXQtPmV2YWx1dGVEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcikpOwogICAgIH07CiAKLSAgICBpZiAoZXZhbHVhdGUo
bV9hdXRob3JTdHlsZSkpCi0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOwotCi0gICAgaWYgKGV2
YWx1YXRlKG1fdXNlclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgZXZh
bHVhdGUoJmF1dGhvclN0eWxlKCkpOworICAgIGV2YWx1YXRlKHVzZXJTdHlsZSgpKTsKKyAgICBl
dmFsdWF0ZSh1c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKSk7CisKKyAgICBpZiAoZXZhbHVhdGlv
blJlc3VsdC50eXBlID09IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdDo6VHlwZTo6
SW52YWxpZGF0ZVN0eWxlKSB7CisgICAgICAgIC8vIGV2YWx1YXRpb25SZXN1bHQuY2hhbmdlZFF1
ZXJ5SW5kZXhlcyBpcyBhIHZlY3RvciBvZiBpZGVudGlmaWVycyBmb3IgbWVkaWEgcXVlcmllcyB0
aGF0IGZsaXBwZWQgdmFsdWUgZHVyaW5nIHRoaXMgZXZhbHVhdGlvbi4KKyAgICAgICAgLy8gV2Ug
dXNlIGl0IGRpcmVjdGx5IGFzIHRoZSBjYWNoZSBrZXkgZm9yIHRoZSBhc3NvY2lhdGVkIGludmFs
aWRhdGlvbiBydWxlIHNldC4KKyAgICAgICAgYXV0byYgcnVsZVNldCA9IG1fbWVkaWFRdWVyeUlu
dmFsaWRhdGlvblJ1bGVTZXRDYWNoZS5lbnN1cmUoZXZhbHVhdGlvblJlc3VsdC5jaGFuZ2VkUXVl
cnlJbmRleGVzLCBbJl0geworICAgICAgICAgICAgYXV0byBydWxlU2V0ID0gbWFrZVVuaXF1ZTxS
dWxlU2V0PigpOworICAgICAgICAgICAgZm9yIChhdXRvKiBmZWF0dXJlVmVjdG9yIDogZXZhbHVh
dGlvblJlc3VsdC5ydWxlRmVhdHVyZXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGZl
YXR1cmUgOiAqZmVhdHVyZVZlY3RvcikKKyAgICAgICAgICAgICAgICAgICAgcnVsZVNldC0+YWRk
UnVsZSgqZmVhdHVyZS5ydWxlLCBmZWF0dXJlLnNlbGVjdG9ySW5kZXgsIGZlYXR1cmUuc2VsZWN0
b3JMaXN0SW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJ1bGVTZXQ7
CisgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAgICAgICBldmFsdWF0aW9uUmVzdWx0
LmludmFsaWRhdGlvblJ1bGVTZXQgPSBydWxlU2V0LmdldCgpOworICAgIH0KIAotICAgIGV2YWx1
YXRlKG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKTsKLSAgICByZXR1cm4gdXBkYXRlVHlwZTsK
KyAgICByZXR1cm4gZXZhbHVhdGlvblJlc3VsdDsKIH0KIAogdm9pZCBTY29wZVJ1bGVTZXRzOjph
cHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+
PiYgc3R5bGVTaGVldHMsIE1lZGlhUXVlcnlFdmFsdWF0b3IqIG1lZGl1bSwgSW5zcGVjdG9yQ1NT
T01XcmFwcGVycyYgaW5zcGVjdG9yQ1NTT01XcmFwcGVycykKQEAgLTIwMiw2ICsyMTMsNyBAQCB2
b2lkIFNjb3BlUnVsZVNldHM6OmNvbGxlY3RGZWF0dXJlcygpIGNvbnN0CiAgICAgbV9jbGFzc0lu
dmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CiAgICAgbV9hdHRyaWJ1dGVJbnZhbGlkYXRpb25S
dWxlU2V0cy5jbGVhcigpOwogICAgIG1fY2FjaGVkSGFzQ29tcGxleFNlbGVjdG9yc0ZvclN0eWxl
QXR0cmlidXRlID0gV1RGOjpudWxsb3B0OworICAgIG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1
bGVTZXRDYWNoZS5jbGVhcigpOwogCiAgICAgbV9mZWF0dXJlcy5zaHJpbmtUb0ZpdCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA5ZGE3OGEzMzg3
Ny4uY2JlZWU2ZDAyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0
cy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3JIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzksNyArODAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXNldFVzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSgpOwogCiAgICAg
Ym9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0OwotICAgIFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVs
ZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOworICAgIER5bmFtaWNNZWRpYVF1ZXJ5RXZh
bHVhdGlvblJlc3VsdCBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1
ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBSdWxlRmVhdHVyZVNldCYgbXV0YWJsZUZlYXR1cmVzKCk7
CiAKQEAgLTEwMSw2ICsxMDIsOCBAQCBwcml2YXRlOgogICAgIG11dGFibGUgSGFzaE1hcDxBdG9t
U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+Pj4gbV9j
bGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzOwogICAgIG11dGFibGUgSGFzaE1hcDxBdG9tU3RyaW5n
LCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+Pj4gbV9hdHRyaWJ1
dGVJbnZhbGlkYXRpb25SdWxlU2V0czsKIAorICAgIG11dGFibGUgSGFzaE1hcDxWZWN0b3I8c2l6
ZV90Piwgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFJ1bGVTZXQ+PiBtX21lZGlhUXVlcnlJbnZhbGlk
YXRpb25SdWxlU2V0Q2FjaGU7CisKICAgICBtdXRhYmxlIE9wdGlvbmFsPGJvb2w+IG1fY2FjaGVk
SGFzQ29tcGxleFNlbGVjdG9yc0ZvclN0eWxlQXR0cmlidXRlOwogCiAgICAgbXV0YWJsZSB1bnNp
Z25lZCBtX2RlZmF1bHRTdHlsZVZlcnNpb25PbkZlYXR1cmVDb2xsZWN0aW9uIHsgMCB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386191</attachid>
            <date>2019-12-20 02:21:31 -0800</date>
            <delta_ts>2019-12-20 02:25:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated-3.patch</filename>
            <type>text/plain</type>
            <size>15906</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uOWVmZmI4YmJlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgc3R5bGUgb2YgdGhlIHdo
b2xlIHRyZWUgd2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAg
V2UgY2FuIGRvIGJldHRlciBieSBjb25zdHJ1Y3RpbmcgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQg
YW5kIGludmFsaWRhdGluZyBvbmx5IHRob3NlCisgICAgICAgIGVsZW1lbnRzIHRoYXQgYXJlIHBv
dGVudGlhbGx5IGFmZmVjdGVkLgorCisgICAgICAgICogc3R5bGUvUnVsZVNldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6YWRkUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRk
UnVsZUlmTmVlZGVkKToKKworICAgICAgICBDb2xsZWN0IFJ1bGVGZWF0dXJlcyB3aGljaCB3ZSBs
YXRlciB1c2UgdG8gYnVpbGQgaW52YWxpZGF0aW9uIFJ1bGVTZXQuCisKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25J
Zk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5bGUvUnVsZVNldC5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6aXNF
bXB0eSBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcyk6
CisKKyAgICAgICAgUmV0dXJuIGEgdmVjdG9yIG9mIG1lZGlhIHF1ZXJ5IGluZGV4ZXMgdGhhdCBm
bGlwcGVkIHZhbHVlLiBUaGlzIHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzZXQgb2YgY2hhbmdlcy4K
KyAgICAgICAgQWxzbyByZXR1cm4gdGhlIFJ1bGVGZWF0dXJlcyBhc3NvY2lhdGVkIHdpdGggdGhl
IHNldCBvZiBjaGFuZ2VzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNj
b3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyk6CisKKyAgICAgICAgVXNlIHRoZSBpbnZhbGlkYXRp
b24gUnVsZVNldCBmb3IgYWNjdXJhdGUgc3R5bGUgaW52YWxpZGF0aW9uLgorCisgICAgICAgICog
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpT
Y29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyk6CisKKyAgICAgICAg
Q29uc3RydWN0IGFuZCBjYWNoZSBhbiBpbnZhbGlkYXRpb24gUnVsZVNldCBhbmQgYXNzb2NpYXRl
IHdpdGggYSBzZXQgb2YgbWVkaWEgcXVlcnkgY2hhbmdlcy4KKworICAgICAgICAqIHN0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5oOgorCiAyMDE5LTEyLTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUzNzExLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9SdWxlU2V0LmNwcAppbmRleCAxNDg3YzFhNjI2YS4uM2RjNWQ3Yjg5ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1J1bGVTZXQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRk
UnVsZShTdHlsZVJ1bGUmIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNl
bGVjdG9yCiAgICAgbV9mZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXMocnVsZURhdGEpOwogCiAgICAg
aWYgKG1lZGlhUXVlcnlDb2xsZWN0b3IpCi0gICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFk
ZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgICAgICBtZWRp
YVF1ZXJ5Q29sbGVjdG9yLT5hZGRSdWxlSWZOZWVkZWQocnVsZURhdGEpOwogCiAgICAgdW5zaWdu
ZWQgY2xhc3NCdWNrZXRTaXplID0gMDsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3Rv
ciA9IG51bGxwdHI7CkBAIC00MDUsOSArNDA1LDExIEBAIHZvaWQgUnVsZVNldDo6dHJhdmVyc2VS
dWxlRGF0YXMoRnVuY3Rpb24mJiBmdW5jdGlvbikKICAgICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZl
cnNhbFJ1bGVzKTsKIH0KIAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxl
U2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVh
dG9yJiBldmFsdWF0b3IpCitEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgUnVsZVNl
dDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRv
ciYgZXZhbHVhdG9yKQogewotICAgIGJvb2wgY2hhbmdlcyA9IGZhbHNlOworICAgIER5bmFtaWNN
ZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBldmFsdWF0aW9uUmVzdWx0OworCisgICAgc2l6ZV90
IG1lZGlhUXVlcnlJbmRleCA9IDA7CiAgICAgZm9yIChhdXRvJiBkeW5hbWljUnVsZXMgOiBtX2R5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAg
ICAgICBmb3IgKGF1dG8mIHNldCA6IGR5bmFtaWNSdWxlcy5tZWRpYVF1ZXJ5U2V0cykgewpAQCAt
NDIwLDE4ICs0MjIsMjMgQEAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxl
U2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdAogICAgICAgICBpZiAocmVz
dWx0ICE9IGR5bmFtaWNSdWxlcy5yZXN1bHQpIHsKICAgICAgICAgICAgIGR5bmFtaWNSdWxlcy5y
ZXN1bHQgPSByZXN1bHQ7CiAgICAgICAgICAgICBpZiAoZHluYW1pY1J1bGVzLnJlcXVpcmVzRnVs
bFJlc2V0KQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBl
OjpSZXNldDsKKyAgICAgICAgICAgICAgICByZXR1cm4geyBEeW5hbWljTWVkaWFRdWVyeUV2YWx1
YXRpb25SZXN1bHQ6OlR5cGU6OlJlc2V0U3R5bGUgfTsKIAogICAgICAgICAgICAgdHJhdmVyc2VS
dWxlRGF0YXMoWyZdKFJ1bGVEYXRhJiBydWxlRGF0YSkgewogICAgICAgICAgICAgICAgIGlmICgh
ZHluYW1pY1J1bGVzLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5jb250YWlucyhydWxlRGF0YS5wb3Np
dGlvbigpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIHJ1
bGVEYXRhLnNldEVuYWJsZWQocmVzdWx0KTsKLSAgICAgICAgICAgICAgICBjaGFuZ2VzID0gdHJ1
ZTsKICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBldmFsdWF0aW9uUmVzdWx0LnR5cGUg
PSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQ6OlR5cGU6OkludmFsaWRhdGVTdHls
ZTsKKyAgICAgICAgICAgIGV2YWx1YXRpb25SZXN1bHQuY2hhbmdlZFF1ZXJ5SW5kZXhlcy5hcHBl
bmQobWVkaWFRdWVyeUluZGV4KTsKKyAgICAgICAgICAgIGV2YWx1YXRpb25SZXN1bHQucnVsZUZl
YXR1cmVzLmFwcGVuZCgmZHluYW1pY1J1bGVzLnJ1bGVGZWF0dXJlcyk7CiAgICAgICAgIH0KKwor
ICAgICAgICArK21lZGlhUXVlcnlJbmRleDsKICAgICB9CiAKLSAgICByZXR1cm4gY2hhbmdlcyA/
IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29sdmUgOiBNZWRpYVF1ZXJ5U3R5bGVVcGRh
dGVUeXBlOjpOb25lOworICAgIHJldHVybiBldmFsdWF0aW9uUmVzdWx0OwogfQogCiBib29sIFJ1
bGVTZXQ6Omhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC00NzIsNyArNDc5
LDcgQEAgdm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlD
b2xsZWN0b3I6On5NZWRpYVF1ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0OwogCi1ib29sIFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBz
ZXQpCitib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShj
b25zdCBNZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtNDk1LDcgKzUwMiw3IEBAIGJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxl
Y3Rvcjo6cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVy
eVNldCogc2V0KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoY29uc3Qg
TWVkaWFRdWVyeVNldCogc2V0KQogewogICAgIGlmICghc2V0IHx8IGR5bmFtaWNDb250ZXh0U3Rh
Y2suaXNFbXB0eSgpIHx8IHNldCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuc2V0Lmdl
dCgpKQogICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTE1LDkgQEAgdm9pZCBSdWxlU2V0OjpN
ZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQogICAgICAgICBpZiAo
Y29sbGVjdER5bmFtaWMpIHsKICAgICAgICAgICAgIGF1dG8mIHRvQWRkID0gZHluYW1pY0NvbnRl
eHRTdGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zOwogICAgICAgICAgICAgcnVsZXMu
YWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFkZCh0b0FkZC5iZWdpbigpLCB0b0FkZC5lbmQoKSk7CisK
KyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJlcyA9IFdURk1vdmUoZHluYW1pY0NvbnRleHRT
dGFjay5sYXN0KCkucnVsZUZlYXR1cmVzKTsKKyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJl
cy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJ1bGVzLnJlcXVp
cmVzRnVsbFJlc2V0ID0gdHJ1ZTsKIApAQCAtNTI0LDExICs1MzQsMTQgQEAgdm9pZCBSdWxlU2V0
OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpkaWRNdXRhdGVSZXNvbHZlcigpCiAgICAgZGlkTXV0YXRl
UmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVyeSA9IHRydWU7CiB9CiAKLXZvaWQgUnVsZVNl
dDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90IGlu
ZGV4KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQo
Y29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAgIGlmIChkeW5hbWljQ29udGV4dFN0YWNr
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGR5bmFtaWNDb250ZXh0U3RhY2subGFz
dCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBlbmQoaW5kZXgpOworCisgICAgYXV0byYgY29u
dGV4dCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpOworICAgIGNvbnRleHQuYWZmZWN0ZWRS
dWxlUG9zaXRpb25zLmFwcGVuZChydWxlRGF0YS5wb3NpdGlvbigpKTsKKyAgICBjb250ZXh0LnJ1
bGVGZWF0dXJlcy5hcHBlbmQoeyBydWxlRGF0YS5ydWxlKCksIHJ1bGVEYXRhLnNlbGVjdG9ySW5k
ZXgoKSwgcnVsZURhdGEuc2VsZWN0b3JMaXN0SW5kZXgoKSB9KTsKIH0KIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
dWxlU2V0LmgKaW5kZXggODRkZGZhNmMxN2MuLjBmZjI3NjgzNGFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVs
ZVNldC5oCkBAIC00MCw2ICs0MCwyOCBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBuYW1l
c3BhY2UgU3R5bGUgewogCiBjbGFzcyBSZXNvbHZlcjsKK2NsYXNzIFJ1bGVTZXQ7CisKK3N0cnVj
dCBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgeworICAgIGVudW0gY2xhc3MgVHlw
ZSB7IE5vQ2hhbmdlLCBJbnZhbGlkYXRlU3R5bGUsIFJlc2V0U3R5bGUgfTsKKyAgICBUeXBlIHR5
cGUgeyBUeXBlOjpOb0NoYW5nZSB9OworICAgIFZlY3RvcjxzaXplX3Q+IGNoYW5nZWRRdWVyeUlu
ZGV4ZXMgeyB9OworICAgIFZlY3Rvcjxjb25zdCBWZWN0b3I8UnVsZUZlYXR1cmU+Kj4gcnVsZUZl
YXR1cmVzOworICAgIGNvbnN0IFJ1bGVTZXQqIGludmFsaWRhdGlvblJ1bGVTZXQgeyBudWxscHRy
IH07CisKKyAgICB2b2lkIGFwcGVuZChEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQm
JiBvdGhlcikKKyAgICB7CisgICAgICAgIHR5cGUgPSBzdGQ6Om1heCh0eXBlLCBvdGhlci50eXBl
KTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVHlwZTo6UmVzZXRTdHlsZSkgeworICAgICAgICAgICAg
Y2hhbmdlZFF1ZXJ5SW5kZXhlcy5jbGVhcigpOworICAgICAgICAgICAgcnVsZUZlYXR1cmVzLmNs
ZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBUeXBlOjpJbnZhbGlk
YXRlU3R5bGUpIHsKKyAgICAgICAgICAgIGNoYW5nZWRRdWVyeUluZGV4ZXMuYXBwZW5kVmVjdG9y
KFdURk1vdmUob3RoZXIuY2hhbmdlZFF1ZXJ5SW5kZXhlcykpOworICAgICAgICAgICAgcnVsZUZl
YXR1cmVzLmFwcGVuZFZlY3RvcihXVEZNb3ZlKG90aGVyLnJ1bGVGZWF0dXJlcykpOworICAgICAg
ICB9CisgICAgfQorfTsKIAogY2xhc3MgUnVsZVNldCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUnVsZVNldCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNjMsOCArODUsOSBAQCBw
dWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxS
dWxlRGF0YVZlY3Rvcj4+IEF0b21SdWxlTWFwOwogCiAgICAgc3RydWN0IER5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMgewotICAgICAgICBWZWN0b3I8UmVmPE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5
U2V0czsKKyAgICAgICAgVmVjdG9yPFJlZjxjb25zdCBNZWRpYVF1ZXJ5U2V0Pj4gbWVkaWFRdWVy
eVNldHM7CiAgICAgICAgIEhhc2hTZXQ8c2l6ZV90LCBEZWZhdWx0SGFzaDxzaXplX3Q+OjpIYXNo
LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHNpemVfdD4+IGFmZmVjdGVkUnVs
ZVBvc2l0aW9uczsKKyAgICAgICAgVmVjdG9yPFJ1bGVGZWF0dXJlPiBydWxlRmVhdHVyZXM7CiAg
ICAgICAgIGJvb2wgcmVxdWlyZXNGdWxsUmVzZXQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHJl
c3VsdCB7IHRydWUgfTsKICAgICB9OwpAQCAtNzYsOCArOTksOSBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IGJvb2wgY29sbGVjdER5bmFtaWMgeyBmYWxzZSB9OwogCiAgICAgICAgIHN0cnVjdCBE
eW5hbWljQ29udGV4dCB7Ci0gICAgICAgICAgICBSZWY8TWVkaWFRdWVyeVNldD4gc2V0OworICAg
ICAgICAgICAgUmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+IHNldDsKICAgICAgICAgICAgIFZlY3Rv
cjxzaXplX3Q+IGFmZmVjdGVkUnVsZVBvc2l0aW9ucyB7IH07CisgICAgICAgICAgICBWZWN0b3I8
UnVsZUZlYXR1cmU+IHJ1bGVGZWF0dXJlcyB7IH07CiAgICAgICAgIH07CiAgICAgICAgIFZlY3Rv
cjxEeW5hbWljQ29udGV4dD4gZHluYW1pY0NvbnRleHRTdGFjayB7IH07CiAKQEAgLTg1LDEwICsx
MDksMTAgQEAgcHVibGljOgogICAgICAgICBib29sIGRpZE11dGF0ZVJlc29sdmVyV2l0aGluRHlu
YW1pY01lZGlhUXVlcnkgeyBmYWxzZSB9OwogICAgICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzIHsgZmFsc2UgfTsKIAotICAgICAgICBib29sIHB1c2hBbmRFdmFsdWF0
ZShNZWRpYVF1ZXJ5U2V0Kik7Ci0gICAgICAgIHZvaWQgcG9wKE1lZGlhUXVlcnlTZXQqKTsKKyAg
ICAgICAgYm9vbCBwdXNoQW5kRXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeVNldCopOworICAgICAg
ICB2b2lkIHBvcChjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CiAgICAgICAgIHZvaWQgZGlkTXV0YXRl
UmVzb2x2ZXIoKTsKLSAgICAgICAgdm9pZCBhZGRSdWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3Qp
OworICAgICAgICB2b2lkIGFkZFJ1bGVJZk5lZWRlZChjb25zdCBSdWxlRGF0YSYpOwogICAgIH07
CiAKICAgICB2b2lkIGFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyYsIGNvbnN0
IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKQEAgLTEwMyw4ICsxMjcsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllczsgfQogCi0gICAgZW51bSBjbGFzcyBN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIHsgTm9uZSwgUmVzb2x2ZSwgUmVzZXQgfTsKLSAgICBN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNv
bnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKKyAgICBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRp
b25SZXN1bHQgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2
YWx1YXRvciYpOwogCiAgICAgY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkgY29uc3Qg
eyByZXR1cm4gbV9mZWF0dXJlczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIu
Y3BwCmluZGV4IDM1OTQ0ZDE4Njg0Li45NzU5YWE1YjhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTYwNyw3ICs2MDcsNyBAQCBib29sIFJlc29sdmVyOjpoYXNW
aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcnVsZVNl
dHMuaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKTsKIH0KIAotUnVsZVNldDo6TWVk
aWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSZXNvbHZlcjo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVy
aWVzKCkKK0R5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBSZXNvbHZlcjo6ZXZhbHVh
dGVEeW5hbWljTWVkaWFRdWVyaWVzKCkKIHsKICAgICByZXR1cm4gbV9ydWxlU2V0cy5ldmFsdXRl
RHluYW1pY01lZGlhUXVlcnlSdWxlcyhtX21lZGlhUXVlcnlFdmFsdWF0b3IpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCmluZGV4IDJlZDVmZTg1YzkyLi5lN2Q3NTcxNjI3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmll
cygpIGNvbnN0OwotICAgIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHVh
dGVEeW5hbWljTWVkaWFRdWVyaWVzKCk7CisgICAgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9u
UmVzdWx0IGV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygpOwogCiAgICAgdm9pZCBhZGRLZXlm
cmFtZVN0eWxlKFJlZjxTdHlsZVJ1bGVLZXlmcmFtZXM+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGUuY3BwCmluZGV4IDkwYjYzZDJkZTQ4Li5kMDYwZjJmN2RmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVTY29wZS5jcHAKQEAgLTY1MSwxNyArNjUxLDIwIEBAIHZvaWQgU2NvcGU6OmV2
YWx1YXRlTWVkaWFRdWVyaWVzKFRlc3RGdW5jdGlvbiYmIHRlc3RGdW5jdGlvbikKICAgICBpZiAo
IXJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHVwZGF0ZVR5cGUgPSB0ZXN0
RnVuY3Rpb24oKnJlc29sdmVyKTsKKyAgICBhdXRvIGV2YWxpYXRpb25SZXN1bHQgPSB0ZXN0RnVu
Y3Rpb24oKnJlc29sdmVyKTsKIAotICAgIHN3aXRjaCAodXBkYXRlVHlwZSkgewotICAgIGNhc2Ug
UnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6Tm9uZToKKyAgICBzd2l0Y2ggKGV2
YWxpYXRpb25SZXN1bHQudHlwZSkgeworICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0
aW9uUmVzdWx0OjpUeXBlOjpOb0NoYW5nZToKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgUnVs
ZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZToKLSAgICAgICAgLy8gRklY
TUU6IFdlIGNvdWxkIGhhdmUgYW4gaW52YWxpZGF0aW9uIHJ1bGVzZXQgZm9yIHJ1bGVzIGluc2lk
ZSBkeW5hbWljIG1lZGlhIHF1ZXJpZXMuCi0gICAgICAgIGlmIChhdXRvKiBkb2N1bWVudEVsZW1l
bnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnRF
bGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CisgICAgY2FzZSBEeW5hbWljTWVk
aWFRdWVyeUV2YWx1YXRpb25SZXN1bHQ6OlR5cGU6OkludmFsaWRhdGVTdHlsZTogeworICAgICAg
ICBJbnZhbGlkYXRvciBpbnZhbGlkYXRvcih7IGV2YWxpYXRpb25SZXN1bHQuaW52YWxpZGF0aW9u
UnVsZVNldCB9KTsKKyAgICAgICAgaWYgKG1fc2hhZG93Um9vdCkKKyAgICAgICAgICAgIGludmFs
aWRhdG9yLmludmFsaWRhdGVTdHlsZSgqbV9zaGFkb3dSb290KTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxlKG1fZG9jdW1lbnQpOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJl
c2V0OgorICAgIH0KKyAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdDo6
VHlwZTo6UmVzZXRTdHlsZToKICAgICAgICAgc2NoZWR1bGVVcGRhdGUoVXBkYXRlVHlwZTo6Q29u
dGVudHNPckludGVycHJldGF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggMDExYzc5NjFhNDguLjRl
ZTY0MmNiZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVs
ZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5j
cHAKQEAgLTE0MSwyNyArMTQxLDM4IEBAIGJvb2wgU2NvcGVSdWxlU2V0czo6aGFzVmlld3BvcnRE
ZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUnVs
ZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBTY29wZVJ1bGVTZXRzOjpldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3Ip
CitEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgU2NvcGVSdWxlU2V0czo6ZXZhbHV0
ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVh
dG9yKQogewotICAgIGF1dG8gdXBkYXRlVHlwZSA9IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVw
ZGF0ZVR5cGU6Ok5vbmU7CisgICAgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0IGV2
YWx1YXRpb25SZXN1bHQ7CiAKLSAgICBhdXRvIGV2YWx1YXRlID0gWyZdKGF1dG8mIHJ1bGVTZXQp
IHsKKyAgICBhdXRvIGV2YWx1YXRlID0gWyZdKGF1dG8qIHJ1bGVTZXQpIHsKICAgICAgICAgaWYg
KCFydWxlU2V0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBhdXRvIG5ld1Vw
ZGF0ZVR5cGUgPSBydWxlU2V0LT5ldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhldmFsdWF0
b3IpOwotICAgICAgICBpZiAobmV3VXBkYXRlVHlwZSA+IHVwZGF0ZVR5cGUpCi0gICAgICAgICAg
ICB1cGRhdGVUeXBlID0gbmV3VXBkYXRlVHlwZTsKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGUg
PT0gUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIGlmIChldmFsdWF0aW9uUmVzdWx0LnR5cGUgPT0gRHluYW1pY01l
ZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0OjpUeXBlOjpSZXNldFN0eWxlKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBldmFsdWF0aW9uUmVzdWx0LmFwcGVuZChydWxlU2V0LT5ldmFsdXRl
RHluYW1pY01lZGlhUXVlcnlSdWxlcyhldmFsdWF0b3IpKTsKICAgICB9OwogCi0gICAgaWYgKGV2
YWx1YXRlKG1fYXV0aG9yU3R5bGUpKQotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZTsKLQotICAg
IGlmIChldmFsdWF0ZShtX3VzZXJTdHlsZSkpCi0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOwor
ICAgIGV2YWx1YXRlKCZhdXRob3JTdHlsZSgpKTsKKyAgICBldmFsdWF0ZSh1c2VyU3R5bGUoKSk7
CisgICAgZXZhbHVhdGUodXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCkpOworCisgICAgaWYgKGV2
YWx1YXRpb25SZXN1bHQudHlwZSA9PSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQ6
OlR5cGU6OkludmFsaWRhdGVTdHlsZSkgeworICAgICAgICAvLyBldmFsdWF0aW9uUmVzdWx0LmNo
YW5nZWRRdWVyeUluZGV4ZXMgaXMgYSB2ZWN0b3Igb2YgaWRlbnRpZmllcnMgZm9yIG1lZGlhIHF1
ZXJpZXMgdGhhdCBmbGlwcGVkIHZhbHVlIGR1cmluZyB0aGlzIGV2YWx1YXRpb24uCisgICAgICAg
IC8vIFdlIHVzZSBpdCBkaXJlY3RseSBhcyB0aGUgY2FjaGUga2V5IGZvciB0aGUgYXNzb2NpYXRl
ZCBpbnZhbGlkYXRpb24gcnVsZSBzZXQuCisgICAgICAgIGF1dG8mIHJ1bGVTZXQgPSBtX21lZGlh
UXVlcnlJbnZhbGlkYXRpb25SdWxlU2V0Q2FjaGUuZW5zdXJlKGV2YWx1YXRpb25SZXN1bHQuY2hh
bmdlZFF1ZXJ5SW5kZXhlcywgWyZdIHsKKyAgICAgICAgICAgIGF1dG8gcnVsZVNldCA9IG1ha2VV
bmlxdWU8UnVsZVNldD4oKTsKKyAgICAgICAgICAgIGZvciAoYXV0byogZmVhdHVyZVZlY3RvciA6
IGV2YWx1YXRpb25SZXN1bHQucnVsZUZlYXR1cmVzKSB7CisgICAgICAgICAgICAgICAgZm9yIChh
dXRvJiBmZWF0dXJlIDogKmZlYXR1cmVWZWN0b3IpCisgICAgICAgICAgICAgICAgICAgIHJ1bGVT
ZXQtPmFkZFJ1bGUoKmZlYXR1cmUucnVsZSwgZmVhdHVyZS5zZWxlY3RvckluZGV4LCBmZWF0dXJl
LnNlbGVjdG9yTGlzdEluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBy
dWxlU2V0OworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICAgICAgZXZhbHVhdGlv
blJlc3VsdC5pbnZhbGlkYXRpb25SdWxlU2V0ID0gcnVsZVNldC5nZXQoKTsKKyAgICB9CiAKLSAg
ICBldmFsdWF0ZShtX3VzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSk7Ci0gICAgcmV0dXJuIHVwZGF0
ZVR5cGU7CisgICAgcmV0dXJuIGV2YWx1YXRpb25SZXN1bHQ7CiB9CiAKIHZvaWQgU2NvcGVSdWxl
U2V0czo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHls
ZVNoZWV0Pj4mIHN0eWxlU2hlZXRzLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBtZWRpdW0sIEluc3Bl
Y3RvckNTU09NV3JhcHBlcnMmIGluc3BlY3RvckNTU09NV3JhcHBlcnMpCkBAIC0yMDIsNiArMjEz
LDcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjpjb2xsZWN0RmVhdHVyZXMoKSBjb25zdAogICAgIG1f
Y2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cy5jbGVhcigpOwogICAgIG1fYXR0cmlidXRlSW52YWxp
ZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsKICAgICBtX2NhY2hlZEhhc0NvbXBsZXhTZWxlY3RvcnNG
b3JTdHlsZUF0dHJpYnV0ZSA9IFdURjo6bnVsbG9wdDsKKyAgICBtX21lZGlhUXVlcnlJbnZhbGlk
YXRpb25SdWxlU2V0Q2FjaGUuY2xlYXIoKTsKIAogICAgIG1fZmVhdHVyZXMuc2hyaW5rVG9GaXQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0
cy5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKaW5kZXggOWRh
NzhhMzM4NzcuLmNiZWVlNmQwMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlUnVsZVNldHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9ySGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc5LDcgKzgw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRVc2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKTsK
IAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdDsKLSAg
ICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFR
dWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKKyAgICBEeW5hbWljTWVkaWFR
dWVyeUV2YWx1YXRpb25SZXN1bHQgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3Qg
TWVkaWFRdWVyeUV2YWx1YXRvciYpOwogCiAgICAgUnVsZUZlYXR1cmVTZXQmIG11dGFibGVGZWF0
dXJlcygpOwogCkBAIC0xMDEsNiArMTAyLDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIEhhc2hN
YXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0
Pj4+IG1fY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0czsKICAgICBtdXRhYmxlIEhhc2hNYXA8QXRv
bVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1f
YXR0cmlidXRlSW52YWxpZGF0aW9uUnVsZVNldHM7CiAKKyAgICBtdXRhYmxlIEhhc2hNYXA8VmVj
dG9yPHNpemVfdD4sIHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBSdWxlU2V0Pj4gbV9tZWRpYVF1ZXJ5
SW52YWxpZGF0aW9uUnVsZVNldENhY2hlOworCiAgICAgbXV0YWJsZSBPcHRpb25hbDxib29sPiBt
X2NhY2hlZEhhc0NvbXBsZXhTZWxlY3RvcnNGb3JTdHlsZUF0dHJpYnV0ZTsKIAogICAgIG11dGFi
bGUgdW5zaWduZWQgbV9kZWZhdWx0U3R5bGVWZXJzaW9uT25GZWF0dXJlQ29sbGVjdGlvbiB7IDAg
fTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386192</attachid>
            <date>2019-12-20 02:25:16 -0800</date>
            <delta_ts>2019-12-20 03:18:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated-3.patch</filename>
            <type>text/plain</type>
            <size>15901</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uOWVmZmI4YmJlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgc3R5bGUgb2YgdGhlIHdo
b2xlIHRyZWUgd2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAg
V2UgY2FuIGRvIGJldHRlciBieSBjb25zdHJ1Y3RpbmcgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQg
YW5kIGludmFsaWRhdGluZyBvbmx5IHRob3NlCisgICAgICAgIGVsZW1lbnRzIHRoYXQgYXJlIHBv
dGVudGlhbGx5IGFmZmVjdGVkLgorCisgICAgICAgICogc3R5bGUvUnVsZVNldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6YWRkUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRk
UnVsZUlmTmVlZGVkKToKKworICAgICAgICBDb2xsZWN0IFJ1bGVGZWF0dXJlcyB3aGljaCB3ZSBs
YXRlciB1c2UgdG8gYnVpbGQgaW52YWxpZGF0aW9uIFJ1bGVTZXQuCisKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25J
Zk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5bGUvUnVsZVNldC5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZUludmFsaWRhdGlvbjo6aXNF
bXB0eSBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcyk6
CisKKyAgICAgICAgUmV0dXJuIGEgdmVjdG9yIG9mIG1lZGlhIHF1ZXJ5IGluZGV4ZXMgdGhhdCBm
bGlwcGVkIHZhbHVlLiBUaGlzIHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzZXQgb2YgY2hhbmdlcy4K
KyAgICAgICAgQWxzbyByZXR1cm4gdGhlIFJ1bGVGZWF0dXJlcyBhc3NvY2lhdGVkIHdpdGggdGhl
IHNldCBvZiBjaGFuZ2VzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNj
b3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyk6CisKKyAgICAgICAgVXNlIHRoZSBpbnZhbGlkYXRp
b24gUnVsZVNldCBmb3IgYWNjdXJhdGUgc3R5bGUgaW52YWxpZGF0aW9uLgorCisgICAgICAgICog
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpT
Y29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyk6CisKKyAgICAgICAg
Q29uc3RydWN0IGFuZCBjYWNoZSBhbiBpbnZhbGlkYXRpb24gUnVsZVNldCBhbmQgYXNzb2NpYXRl
IHdpdGggYSBzZXQgb2YgbWVkaWEgcXVlcnkgY2hhbmdlcy4KKworICAgICAgICAqIHN0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5oOgorCiAyMDE5LTEyLTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUzNzExLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9SdWxlU2V0LmNwcAppbmRleCAxNDg3YzFhNjI2YS4uM2RjNWQ3Yjg5ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1J1bGVTZXQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRk
UnVsZShTdHlsZVJ1bGUmIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNl
bGVjdG9yCiAgICAgbV9mZWF0dXJlcy5jb2xsZWN0RmVhdHVyZXMocnVsZURhdGEpOwogCiAgICAg
aWYgKG1lZGlhUXVlcnlDb2xsZWN0b3IpCi0gICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFk
ZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgICAgICBtZWRp
YVF1ZXJ5Q29sbGVjdG9yLT5hZGRSdWxlSWZOZWVkZWQocnVsZURhdGEpOwogCiAgICAgdW5zaWdu
ZWQgY2xhc3NCdWNrZXRTaXplID0gMDsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3Rv
ciA9IG51bGxwdHI7CkBAIC00MDUsOSArNDA1LDExIEBAIHZvaWQgUnVsZVNldDo6dHJhdmVyc2VS
dWxlRGF0YXMoRnVuY3Rpb24mJiBmdW5jdGlvbikKICAgICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZl
cnNhbFJ1bGVzKTsKIH0KIAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxl
U2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVh
dG9yJiBldmFsdWF0b3IpCitEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgUnVsZVNl
dDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRv
ciYgZXZhbHVhdG9yKQogewotICAgIGJvb2wgY2hhbmdlcyA9IGZhbHNlOworICAgIER5bmFtaWNN
ZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBldmFsdWF0aW9uUmVzdWx0OworCisgICAgc2l6ZV90
IG1lZGlhUXVlcnlJbmRleCA9IDA7CiAgICAgZm9yIChhdXRvJiBkeW5hbWljUnVsZXMgOiBtX2R5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAg
ICAgICBmb3IgKGF1dG8mIHNldCA6IGR5bmFtaWNSdWxlcy5tZWRpYVF1ZXJ5U2V0cykgewpAQCAt
NDIwLDE4ICs0MjIsMjMgQEAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxl
U2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdAogICAgICAgICBpZiAocmVz
dWx0ICE9IGR5bmFtaWNSdWxlcy5yZXN1bHQpIHsKICAgICAgICAgICAgIGR5bmFtaWNSdWxlcy5y
ZXN1bHQgPSByZXN1bHQ7CiAgICAgICAgICAgICBpZiAoZHluYW1pY1J1bGVzLnJlcXVpcmVzRnVs
bFJlc2V0KQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBl
OjpSZXNldDsKKyAgICAgICAgICAgICAgICByZXR1cm4geyBEeW5hbWljTWVkaWFRdWVyeUV2YWx1
YXRpb25SZXN1bHQ6OlR5cGU6OlJlc2V0U3R5bGUgfTsKIAogICAgICAgICAgICAgdHJhdmVyc2VS
dWxlRGF0YXMoWyZdKFJ1bGVEYXRhJiBydWxlRGF0YSkgewogICAgICAgICAgICAgICAgIGlmICgh
ZHluYW1pY1J1bGVzLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5jb250YWlucyhydWxlRGF0YS5wb3Np
dGlvbigpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIHJ1
bGVEYXRhLnNldEVuYWJsZWQocmVzdWx0KTsKLSAgICAgICAgICAgICAgICBjaGFuZ2VzID0gdHJ1
ZTsKICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBldmFsdWF0aW9uUmVzdWx0LnR5cGUg
PSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQ6OlR5cGU6OkludmFsaWRhdGVTdHls
ZTsKKyAgICAgICAgICAgIGV2YWx1YXRpb25SZXN1bHQuY2hhbmdlZFF1ZXJ5SW5kZXhlcy5hcHBl
bmQobWVkaWFRdWVyeUluZGV4KTsKKyAgICAgICAgICAgIGV2YWx1YXRpb25SZXN1bHQucnVsZUZl
YXR1cmVzLmFwcGVuZCgmZHluYW1pY1J1bGVzLnJ1bGVGZWF0dXJlcyk7CiAgICAgICAgIH0KKwor
ICAgICAgICArK21lZGlhUXVlcnlJbmRleDsKICAgICB9CiAKLSAgICByZXR1cm4gY2hhbmdlcyA/
IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29sdmUgOiBNZWRpYVF1ZXJ5U3R5bGVVcGRh
dGVUeXBlOjpOb25lOworICAgIHJldHVybiBldmFsdWF0aW9uUmVzdWx0OwogfQogCiBib29sIFJ1
bGVTZXQ6Omhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC00NzIsNyArNDc5
LDcgQEAgdm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlD
b2xsZWN0b3I6On5NZWRpYVF1ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0OwogCi1ib29sIFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBz
ZXQpCitib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShj
b25zdCBNZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtNDk1LDcgKzUwMiw3IEBAIGJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxl
Y3Rvcjo6cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVy
eVNldCogc2V0KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoY29uc3Qg
TWVkaWFRdWVyeVNldCogc2V0KQogewogICAgIGlmICghc2V0IHx8IGR5bmFtaWNDb250ZXh0U3Rh
Y2suaXNFbXB0eSgpIHx8IHNldCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuc2V0Lmdl
dCgpKQogICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTE1LDkgQEAgdm9pZCBSdWxlU2V0OjpN
ZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQogICAgICAgICBpZiAo
Y29sbGVjdER5bmFtaWMpIHsKICAgICAgICAgICAgIGF1dG8mIHRvQWRkID0gZHluYW1pY0NvbnRl
eHRTdGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zOwogICAgICAgICAgICAgcnVsZXMu
YWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFkZCh0b0FkZC5iZWdpbigpLCB0b0FkZC5lbmQoKSk7CisK
KyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJlcyA9IFdURk1vdmUoZHluYW1pY0NvbnRleHRT
dGFjay5sYXN0KCkucnVsZUZlYXR1cmVzKTsKKyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJl
cy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJ1bGVzLnJlcXVp
cmVzRnVsbFJlc2V0ID0gdHJ1ZTsKIApAQCAtNTI0LDExICs1MzQsMTQgQEAgdm9pZCBSdWxlU2V0
OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpkaWRNdXRhdGVSZXNvbHZlcigpCiAgICAgZGlkTXV0YXRl
UmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVyeSA9IHRydWU7CiB9CiAKLXZvaWQgUnVsZVNl
dDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90IGlu
ZGV4KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQo
Y29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAgIGlmIChkeW5hbWljQ29udGV4dFN0YWNr
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGR5bmFtaWNDb250ZXh0U3RhY2subGFz
dCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBlbmQoaW5kZXgpOworCisgICAgYXV0byYgY29u
dGV4dCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpOworICAgIGNvbnRleHQuYWZmZWN0ZWRS
dWxlUG9zaXRpb25zLmFwcGVuZChydWxlRGF0YS5wb3NpdGlvbigpKTsKKyAgICBjb250ZXh0LnJ1
bGVGZWF0dXJlcy5hcHBlbmQoeyBydWxlRGF0YS5ydWxlKCksIHJ1bGVEYXRhLnNlbGVjdG9ySW5k
ZXgoKSwgcnVsZURhdGEuc2VsZWN0b3JMaXN0SW5kZXgoKSB9KTsKIH0KIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
dWxlU2V0LmgKaW5kZXggODRkZGZhNmMxN2MuLmY5ZTdjNjk5MmQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVs
ZVNldC5oCkBAIC00MCw2ICs0MCwyNyBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBuYW1l
c3BhY2UgU3R5bGUgewogCiBjbGFzcyBSZXNvbHZlcjsKK2NsYXNzIFJ1bGVTZXQ7CisKK3N0cnVj
dCBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgeworICAgIGVudW0gY2xhc3MgVHlw
ZSB7IE5vQ2hhbmdlLCBJbnZhbGlkYXRlU3R5bGUsIFJlc2V0U3R5bGUgfTsKKyAgICBUeXBlIHR5
cGUgeyBUeXBlOjpOb0NoYW5nZSB9OworICAgIFZlY3RvcjxzaXplX3Q+IGNoYW5nZWRRdWVyeUlu
ZGV4ZXMgeyB9OworICAgIFZlY3Rvcjxjb25zdCBWZWN0b3I8UnVsZUZlYXR1cmU+Kj4gcnVsZUZl
YXR1cmVzIHsgfTsKKyAgICBjb25zdCBSdWxlU2V0KiBpbnZhbGlkYXRpb25SdWxlU2V0IHsgbnVs
bHB0ciB9OworCisgICAgdm9pZCBhcHBlbmQoRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVz
dWx0JiYgb3RoZXIpCisgICAgeworICAgICAgICB0eXBlID0gc3RkOjptYXgodHlwZSwgb3RoZXIu
dHlwZSk7CisgICAgICAgIGlmICh0eXBlID09IFR5cGU6OlJlc2V0U3R5bGUpIHsKKyAgICAgICAg
ICAgIGNoYW5nZWRRdWVyeUluZGV4ZXMuY2xlYXIoKTsKKyAgICAgICAgICAgIHJ1bGVGZWF0dXJl
cy5jbGVhcigpOworICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gVHlwZTo6SW52YWxpZGF0ZVN0
eWxlKSB7CisgICAgICAgICAgICBjaGFuZ2VkUXVlcnlJbmRleGVzLmFwcGVuZFZlY3RvcihXVEZN
b3ZlKG90aGVyLmNoYW5nZWRRdWVyeUluZGV4ZXMpKTsKKyAgICAgICAgICAgIHJ1bGVGZWF0dXJl
cy5hcHBlbmRWZWN0b3IoV1RGTW92ZShvdGhlci5ydWxlRmVhdHVyZXMpKTsKKyAgICAgICAgfQor
ICAgIH0KK307CiAKIGNsYXNzIFJ1bGVTZXQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1
bGVTZXQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTYzLDggKzg0LDkgQEAgcHVibGlj
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZURh
dGFWZWN0b3I+PiBBdG9tUnVsZU1hcDsKIAogICAgIHN0cnVjdCBEeW5hbWljTWVkaWFRdWVyeVJ1
bGVzIHsKLSAgICAgICAgVmVjdG9yPFJlZjxNZWRpYVF1ZXJ5U2V0Pj4gbWVkaWFRdWVyeVNldHM7
CisgICAgICAgIFZlY3RvcjxSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRz
OwogICAgICAgICBIYXNoU2V0PHNpemVfdCwgRGVmYXVsdEhhc2g8c2l6ZV90Pjo6SGFzaCwgV1RG
OjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxzaXplX3Q+PiBhZmZlY3RlZFJ1bGVQb3Np
dGlvbnM7CisgICAgICAgIFZlY3RvcjxSdWxlRmVhdHVyZT4gcnVsZUZlYXR1cmVzOwogICAgICAg
ICBib29sIHJlcXVpcmVzRnVsbFJlc2V0IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCByZXN1bHQg
eyB0cnVlIH07CiAgICAgfTsKQEAgLTc2LDggKzk4LDkgQEAgcHVibGljOgogICAgICAgICBjb25z
dCBib29sIGNvbGxlY3REeW5hbWljIHsgZmFsc2UgfTsKIAogICAgICAgICBzdHJ1Y3QgRHluYW1p
Y0NvbnRleHQgewotICAgICAgICAgICAgUmVmPE1lZGlhUXVlcnlTZXQ+IHNldDsKKyAgICAgICAg
ICAgIFJlZjxjb25zdCBNZWRpYVF1ZXJ5U2V0PiBzZXQ7CiAgICAgICAgICAgICBWZWN0b3I8c2l6
ZV90PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnMgeyB9OworICAgICAgICAgICAgVmVjdG9yPFJ1bGVG
ZWF0dXJlPiBydWxlRmVhdHVyZXMgeyB9OwogICAgICAgICB9OwogICAgICAgICBWZWN0b3I8RHlu
YW1pY0NvbnRleHQ+IGR5bmFtaWNDb250ZXh0U3RhY2sgeyB9OwogCkBAIC04NSwxMCArMTA4LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBkaWRNdXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNN
ZWRpYVF1ZXJ5IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1l
ZGlhUXVlcmllcyB7IGZhbHNlIH07CiAKLSAgICAgICAgYm9vbCBwdXNoQW5kRXZhbHVhdGUoTWVk
aWFRdWVyeVNldCopOwotICAgICAgICB2b2lkIHBvcChNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAg
IGJvb2wgcHVzaEFuZEV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKKyAgICAgICAgdm9p
ZCBwb3AoY29uc3QgTWVkaWFRdWVyeVNldCopOwogICAgICAgICB2b2lkIGRpZE11dGF0ZVJlc29s
dmVyKCk7Ci0gICAgICAgIHZvaWQgYWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90KTsKKyAg
ICAgICAgdm9pZCBhZGRSdWxlSWZOZWVkZWQoY29uc3QgUnVsZURhdGEmKTsKICAgICB9OwogCiAg
ICAgdm9pZCBhZGRSdWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVudHMmLCBjb25zdCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yJik7CkBAIC0xMDMsOCArMTI2LDcgQEAgcHVibGljOgogCiAgICAgYm9v
bCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuIG1faGFz
Vmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXM7IH0KIAotICAgIGVudW0gY2xhc3MgTWVkaWFR
dWVyeVN0eWxlVXBkYXRlVHlwZSB7IE5vbmUsIFJlc29sdmUsIFJlc2V0IH07Ci0gICAgTWVkaWFR
dWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisgICAgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVz
dWx0IGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0
b3ImKTsKIAogICAgIGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcygpIGNvbnN0IHsgcmV0
dXJuIG1fZmVhdHVyZXM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApp
bmRleCAzNTk0NGQxODY4NC4uOTc1OWFhNWI4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZXIuY3BwCkBAIC02MDcsNyArNjA3LDcgQEAgYm9vbCBSZXNvbHZlcjo6aGFzVmlld3Bv
cnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdAogICAgIHJldHVybiBtX3J1bGVTZXRzLmhh
c1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCk7CiB9CiAKLVJ1bGVTZXQ6Ok1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGUgUmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygp
CitEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQgUmVzb2x2ZXI6OmV2YWx1YXRlRHlu
YW1pY01lZGlhUXVlcmllcygpCiB7CiAgICAgcmV0dXJuIG1fcnVsZVNldHMuZXZhbHV0ZUR5bmFt
aWNNZWRpYVF1ZXJ5UnVsZXMobV9tZWRpYVF1ZXJ5RXZhbHVhdG9yKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAyZWQ1ZmU4NWM5Mi4uZTdkNzU3MTYyN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBj
b25zdDsKLSAgICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1YXRlRHlu
YW1pY01lZGlhUXVlcmllcygpOworICAgIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3Vs
dCBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsKIAogICAgIHZvaWQgYWRkS2V5ZnJhbWVT
dHlsZShSZWY8U3R5bGVSdWxlS2V5ZnJhbWVzPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlLmNwcAppbmRleCA5MGI2M2QyZGU0OC4uZDA2MGYyZjdkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlU2NvcGUuY3BwCkBAIC02NTEsMTcgKzY1MSwyMCBAQCB2b2lkIFNjb3BlOjpldmFsdWF0
ZU1lZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAgaWYgKCFyZXNv
bHZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB1cGRhdGVUeXBlID0gdGVzdEZ1bmN0
aW9uKCpyZXNvbHZlcik7CisgICAgYXV0byBldmFsaWF0aW9uUmVzdWx0ID0gdGVzdEZ1bmN0aW9u
KCpyZXNvbHZlcik7CiAKLSAgICBzd2l0Y2ggKHVwZGF0ZVR5cGUpIHsKLSAgICBjYXNlIFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU6CisgICAgc3dpdGNoIChldmFsaWF0
aW9uUmVzdWx0LnR5cGUpIHsKKyAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJl
c3VsdDo6VHlwZTo6Tm9DaGFuZ2U6CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFJ1bGVTZXQ6
Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29sdmU6Ci0gICAgICAgIC8vIEZJWE1FOiBX
ZSBjb3VsZCBoYXZlIGFuIGludmFsaWRhdGlvbiBydWxlc2V0IGZvciBydWxlcyBpbnNpZGUgZHlu
YW1pYyBtZWRpYSBxdWVyaWVzLgotICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0g
bV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50RWxlbWVu
dC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOworICAgIGNhc2UgRHluYW1pY01lZGlhUXVl
cnlFdmFsdWF0aW9uUmVzdWx0OjpUeXBlOjpJbnZhbGlkYXRlU3R5bGU6IHsKKyAgICAgICAgSW52
YWxpZGF0b3IgaW52YWxpZGF0b3IoeyBldmFsaWF0aW9uUmVzdWx0LmludmFsaWRhdGlvblJ1bGVT
ZXQgfSk7CisgICAgICAgIGlmIChtX3NoYWRvd1Jvb3QpCisgICAgICAgICAgICBpbnZhbGlkYXRv
ci5pbnZhbGlkYXRlU3R5bGUoKm1fc2hhZG93Um9vdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZShtX2RvY3VtZW50KTsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDoK
KyAgICB9CisgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25SZXN1bHQ6OlR5cGU6
OlJlc2V0U3R5bGU6CiAgICAgICAgIHNjaGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGU6OkNvbnRlbnRz
T3JJbnRlcnByZXRhdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCmluZGV4IDAxMWM3OTYxYTQ4Li40ZWU2NDJj
YmVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCkBA
IC0xNDEsMjcgKzE0MSwzOCBAQCBib29sIFNjb3BlUnVsZVNldHM6Omhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJ1bGVTZXQ6
Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgU2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQorRHlu
YW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0IFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5h
bWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikK
IHsKLSAgICBhdXRvIHVwZGF0ZVR5cGUgPSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVU
eXBlOjpOb25lOworICAgIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvblJlc3VsdCBldmFsdWF0
aW9uUmVzdWx0OwogCi0gICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0KSB7Cisg
ICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvKiBydWxlU2V0KSB7CiAgICAgICAgIGlmICghcnVs
ZVNldCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgYXV0byBuZXdVcGRhdGVU
eXBlID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9yKTsK
LSAgICAgICAgaWYgKG5ld1VwZGF0ZVR5cGUgPiB1cGRhdGVUeXBlKQotICAgICAgICAgICAgdXBk
YXRlVHlwZSA9IG5ld1VwZGF0ZVR5cGU7Ci0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlID09IFJ1
bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBpZiAoZXZhbHVhdGlvblJlc3VsdC50eXBlID09IER5bmFtaWNNZWRpYVF1
ZXJ5RXZhbHVhdGlvblJlc3VsdDo6VHlwZTo6UmVzZXRTdHlsZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgZXZhbHVhdGlvblJlc3VsdC5hcHBlbmQocnVsZVNldC0+ZXZhbHV0ZUR5bmFt
aWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9yKSk7CiAgICAgfTsKIAotICAgIGlmIChldmFsdWF0
ZShtX2F1dGhvclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7Ci0KLSAgICBpZiAo
ZXZhbHVhdGUobV91c2VyU3R5bGUpKQotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZTsKKyAgICBl
dmFsdWF0ZSgmYXV0aG9yU3R5bGUoKSk7CisgICAgZXZhbHVhdGUodXNlclN0eWxlKCkpOworICAg
IGV2YWx1YXRlKHVzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSgpKTsKKworICAgIGlmIChldmFsdWF0
aW9uUmVzdWx0LnR5cGUgPT0gRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uUmVzdWx0OjpUeXBl
OjpJbnZhbGlkYXRlU3R5bGUpIHsKKyAgICAgICAgLy8gZXZhbHVhdGlvblJlc3VsdC5jaGFuZ2Vk
UXVlcnlJbmRleGVzIGlzIGEgdmVjdG9yIG9mIGlkZW50aWZpZXJzIGZvciBtZWRpYSBxdWVyaWVz
IHRoYXQgZmxpcHBlZCB2YWx1ZSBkdXJpbmcgdGhpcyBldmFsdWF0aW9uLgorICAgICAgICAvLyBX
ZSB1c2UgaXQgZGlyZWN0bHkgYXMgdGhlIGNhY2hlIGtleSBmb3IgdGhlIGFzc29jaWF0ZWQgaW52
YWxpZGF0aW9uIHJ1bGUgc2V0LgorICAgICAgICBhdXRvJiBydWxlU2V0ID0gbV9tZWRpYVF1ZXJ5
SW52YWxpZGF0aW9uUnVsZVNldENhY2hlLmVuc3VyZShldmFsdWF0aW9uUmVzdWx0LmNoYW5nZWRR
dWVyeUluZGV4ZXMsIFsmXSB7CisgICAgICAgICAgICBhdXRvIHJ1bGVTZXQgPSBtYWtlVW5pcXVl
PFJ1bGVTZXQ+KCk7CisgICAgICAgICAgICBmb3IgKGF1dG8qIGZlYXR1cmVWZWN0b3IgOiBldmFs
dWF0aW9uUmVzdWx0LnJ1bGVGZWF0dXJlcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byYg
ZmVhdHVyZSA6ICpmZWF0dXJlVmVjdG9yKQorICAgICAgICAgICAgICAgICAgICBydWxlU2V0LT5h
ZGRSdWxlKCpmZWF0dXJlLnJ1bGUsIGZlYXR1cmUuc2VsZWN0b3JJbmRleCwgZmVhdHVyZS5zZWxl
Y3Rvckxpc3RJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcnVsZVNl
dDsKKyAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgICAgIGV2YWx1YXRpb25SZXN1
bHQuaW52YWxpZGF0aW9uUnVsZVNldCA9IHJ1bGVTZXQuZ2V0KCk7CisgICAgfQogCi0gICAgZXZh
bHVhdGUobV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUpOwotICAgIHJldHVybiB1cGRhdGVUeXBl
OworICAgIHJldHVybiBldmFsdWF0aW9uUmVzdWx0OwogfQogCiB2b2lkIFNjb3BlUnVsZVNldHM6
OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVl
dD4+JiBzdHlsZVNoZWV0cywgTWVkaWFRdWVyeUV2YWx1YXRvciogbWVkaXVtLCBJbnNwZWN0b3JD
U1NPTVdyYXBwZXJzJiBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzKQpAQCAtMjAyLDYgKzIxMyw3IEBA
IHZvaWQgU2NvcGVSdWxlU2V0czo6Y29sbGVjdEZlYXR1cmVzKCkgY29uc3QKICAgICBtX2NsYXNz
SW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsKICAgICBtX2F0dHJpYnV0ZUludmFsaWRhdGlv
blJ1bGVTZXRzLmNsZWFyKCk7CiAgICAgbV9jYWNoZWRIYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5
bGVBdHRyaWJ1dGUgPSBXVEY6Om51bGxvcHQ7CisgICAgbV9tZWRpYVF1ZXJ5SW52YWxpZGF0aW9u
UnVsZVNldENhY2hlLmNsZWFyKCk7CiAKICAgICBtX2ZlYXR1cmVzLnNocmlua1RvRml0KCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCmluZGV4IDlkYTc4YTMz
ODc3Li5jYmVlZTZkMDI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZVJ1bGVTZXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVT
ZXRzLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvckhhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OSw3ICs4MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKICAg
ICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVs
ZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlS
dWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisgICAgRHluYW1pY01lZGlhUXVlcnlF
dmFsdWF0aW9uUmVzdWx0IGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlh
UXVlcnlFdmFsdWF0b3ImKTsKIAogICAgIFJ1bGVGZWF0dXJlU2V0JiBtdXRhYmxlRmVhdHVyZXMo
KTsKIApAQCAtMTAxLDYgKzEwMiw4IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0
b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBt
X2NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2F0dHJp
YnV0ZUludmFsaWRhdGlvblJ1bGVTZXRzOwogCisgICAgbXV0YWJsZSBIYXNoTWFwPFZlY3Rvcjxz
aXplX3Q+LCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUnVsZVNldD4+IG1fbWVkaWFRdWVyeUludmFs
aWRhdGlvblJ1bGVTZXRDYWNoZTsKKwogICAgIG11dGFibGUgT3B0aW9uYWw8Ym9vbD4gbV9jYWNo
ZWRIYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVBdHRyaWJ1dGU7CiAKICAgICBtdXRhYmxlIHVu
c2lnbmVkIG1fZGVmYXVsdFN0eWxlVmVyc2lvbk9uRmVhdHVyZUNvbGxlY3Rpb24geyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386194</attachid>
            <date>2019-12-20 03:18:04 -0800</date>
            <delta_ts>2019-12-20 07:06:59 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated-4.patch</filename>
            <type>text/plain</type>
            <size>14900</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uMTlkN2IxMDRjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMi0yMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUgc3R5bGUgb2YgdGhlIHdo
b2xlIHRyZWUgd2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcy4KKyAgICAgICAg
V2UgY2FuIGRvIGJldHRlciBieSBjb25zdHJ1Y3RpbmcgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQg
YW5kIGludmFsaWRhdGluZyBvbmx5IHRob3NlCisgICAgICAgIGVsZW1lbnRzIHRoYXQgYXJlIHBv
dGVudGlhbGx5IGFmZmVjdGVkLgorCisgICAgICAgICogc3R5bGUvUnVsZVNldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6YWRkUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorCisgICAg
ICAgIENvbnN0cnVjdCBhbmQgY2FjaGUgYW4gaW52YWxpZGF0aW9uIFJ1bGVTZXQgYW5kIGFzc29j
aWF0ZSB3aXRoIGEgc2V0IG9mIG1lZGlhIHF1ZXJ5IGNoYW5nZXMuCisKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6
OnBvcCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxl
Y3Rvcjo6YWRkUnVsZUlmTmVlZGVkKToKKworICAgICAgICBDb2xsZWN0IFJ1bGVGZWF0dXJlcyB3
aGljaCB3ZSBsYXRlciB1c2UgdG8gYnVpbGQgaW52YWxpZGF0aW9uIFJ1bGVTZXQuCisKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxl
UG9zaXRpb25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5bGUvUnVsZVNldC5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkR5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5n
ZXM6OmFwcGVuZCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcyk6
CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAqIHN0eWxlL1N0eWxl
U2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpldmFsdWF0ZU1lZGlh
UXVlcmllcyk6CisKKyAgICAgICAgVXNlIHRoZSBpbnZhbGlkYXRpb24gUnVsZVNldCBmb3IgYWNj
dXJhdGUgc3R5bGUgaW52YWxpZGF0aW9uLgorCisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1
bGVTZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1bGVTZXRzOjpldmFs
dXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyk6CisKKyAgICAgICAgQ29sbGVjdCBpbnZhbGlkYXRp
b24gUnVsZVNldHMgZm9yIGF1dGhvci91c2VyL3VzZXIgYWdlbnQgc3R5bGUuCisKKyAgICAgICAg
KiBzdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaDoKKwogMjAxOS0xMi0xOSAgQWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1
MzcxMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKaW5kZXggMTQ4N2MxYTYyNmEuLmVjZDM3NGUz
NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFJ1
bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxlJiBydWxlLCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCB1
bnNpZ25lZCBzZWxlY3RvcgogICAgIG1fZmVhdHVyZXMuY29sbGVjdEZlYXR1cmVzKHJ1bGVEYXRh
KTsKIAogICAgIGlmIChtZWRpYVF1ZXJ5Q29sbGVjdG9yKQotICAgICAgICBtZWRpYVF1ZXJ5Q29s
bGVjdG9yLT5hZGRSdWxlUG9zaXRpb25JZk5lZWRlZChydWxlRGF0YS5wb3NpdGlvbigpKTsKKyAg
ICAgICAgbWVkaWFRdWVyeUNvbGxlY3Rvci0+YWRkUnVsZUlmTmVlZGVkKHJ1bGVEYXRhKTsKIAog
ICAgIHVuc2lnbmVkIGNsYXNzQnVja2V0U2l6ZSA9IDA7CiAgICAgY29uc3QgQ1NTU2VsZWN0b3Iq
IGlkU2VsZWN0b3IgPSBudWxscHRyOwpAQCAtNDA1LDkgKzQwNSwxMiBAQCB2b2lkIFJ1bGVTZXQ6
OnRyYXZlcnNlUnVsZURhdGFzKEZ1bmN0aW9uJiYgZnVuY3Rpb24pCiAgICAgdHJhdmVyc2VWZWN0
b3IobV91bml2ZXJzYWxSdWxlcyk7CiB9CiAKLVJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0
ZVR5cGUgUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFR
dWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQorT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFs
dWF0aW9uQ2hhbmdlcz4gUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29u
c3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAgIGJvb2wgY2hhbmdlcyA9
IGZhbHNlOworICAgIFZlY3RvcjxzaXplX3Q+IGNoYW5nZWRRdWVyeUluZGV4ZXM7CisgICAgVmVj
dG9yPGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4qPiBydWxlRmVhdHVyZXM7CisKKyAgICBzaXpl
X3QgbWVkaWFRdWVyeUluZGV4ID0gMDsKICAgICBmb3IgKGF1dG8mIGR5bmFtaWNSdWxlcyA6IG1f
ZHluYW1pY01lZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAg
ICAgICAgIGZvciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlhUXVlcnlTZXRzKSB7CkBA
IC00MjAsMTggKzQyMywzNCBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1
bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0CiAgICAgICAgIGlmIChy
ZXN1bHQgIT0gZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAgICAgZHluYW1pY1J1bGVz
LnJlc3VsdCA9IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWljUnVsZXMucmVxdWlyZXNG
dWxsUmVzZXQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5
cGU6OlJlc2V0OworICAgICAgICAgICAgICAgIHJldHVybiB7IHsgRHluYW1pY01lZGlhUXVlcnlF
dmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6UmVzZXRTdHlsZSB9IH07CiAKICAgICAgICAgICAgIHRy
YXZlcnNlUnVsZURhdGFzKFsmXShSdWxlRGF0YSYgcnVsZURhdGEpIHsKICAgICAgICAgICAgICAg
ICBpZiAoIWR5bmFtaWNSdWxlcy5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuY29udGFpbnMocnVsZURh
dGEucG9zaXRpb24oKSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICBydWxlRGF0YS5zZXRFbmFibGVkKHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgY2hhbmdl
cyA9IHRydWU7CiAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgY2hhbmdlZFF1ZXJ5SW5k
ZXhlcy5hcHBlbmQobWVkaWFRdWVyeUluZGV4KTsKKyAgICAgICAgICAgIHJ1bGVGZWF0dXJlcy5h
cHBlbmQoJmR5bmFtaWNSdWxlcy5ydWxlRmVhdHVyZXMpOwogICAgICAgICB9CisKKyAgICAgICAg
KyttZWRpYVF1ZXJ5SW5kZXg7CiAgICAgfQogCi0gICAgcmV0dXJuIGNoYW5nZXMgPyBNZWRpYVF1
ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlIDogTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6
Tm9uZTsKKyAgICBpZiAoY2hhbmdlZFF1ZXJ5SW5kZXhlcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICBhdXRvJiBydWxlU2V0ID0gbV9tZWRpYVF1ZXJ5SW52YWxpZGF0aW9u
UnVsZVNldENhY2hlLmVuc3VyZShjaGFuZ2VkUXVlcnlJbmRleGVzLCBbJl0geworICAgICAgICBh
dXRvIHJ1bGVTZXQgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CisgICAgICAgIGZvciAoYXV0byog
ZmVhdHVyZVZlY3RvciA6IHJ1bGVGZWF0dXJlcykgeworICAgICAgICAgICAgZm9yIChhdXRvJiBm
ZWF0dXJlIDogKmZlYXR1cmVWZWN0b3IpCisgICAgICAgICAgICAgICAgcnVsZVNldC0+YWRkUnVs
ZSgqZmVhdHVyZS5ydWxlLCBmZWF0dXJlLnNlbGVjdG9ySW5kZXgsIGZlYXR1cmUuc2VsZWN0b3JM
aXN0SW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBydWxlU2V0OworICAgIH0pLml0
ZXJhdG9yLT52YWx1ZTsKKworICAgIHJldHVybiB7IHsgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0
aW9uQ2hhbmdlczo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlLCB7IHJ1bGVTZXQuZ2V0KCkgfSB9IH07
CiB9CiAKIGJvb2wgUnVsZVNldDo6aGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkgY29uc3QK
QEAgLTQ3Miw3ICs0OTEsNyBAQCB2b2lkIFJ1bGVTZXQ6OnNocmlua1RvRml0KCkKIAogUnVsZVNl
dDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6fk1lZGlhUXVlcnlDb2xsZWN0b3IoKSA9IGRlZmF1bHQ7
CiAKLWJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKE1l
ZGlhUXVlcnlTZXQqIHNldCkKK2Jvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVz
aEFuZEV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlTZXQqIHNldCkKIHsKICAgICBpZiAoIXNldCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00OTUsNyArNTE0LDcgQEAgYm9vbCBSdWxlU2V0OjpN
ZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCogc2V0KQog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6
OnBvcChNZWRpYVF1ZXJ5U2V0KiBzZXQpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0
b3I6OnBvcChjb25zdCBNZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQgfHwgZHlu
YW1pY0NvbnRleHRTdGFjay5pc0VtcHR5KCkgfHwgc2V0ICE9ICZkeW5hbWljQ29udGV4dFN0YWNr
Lmxhc3QoKS5zZXQuZ2V0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTUwOCw2ICs1MjcsOSBAQCB2
b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChNZWRpYVF1ZXJ5U2V0KiBzZXQp
CiAgICAgICAgIGlmIChjb2xsZWN0RHluYW1pYykgewogICAgICAgICAgICAgYXV0byYgdG9BZGQg
PSBkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5hZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CiAgICAg
ICAgICAgICBydWxlcy5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYWRkKHRvQWRkLmJlZ2luKCksIHRv
QWRkLmVuZCgpKTsKKworICAgICAgICAgICAgcnVsZXMucnVsZUZlYXR1cmVzID0gV1RGTW92ZShk
eW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5ydWxlRmVhdHVyZXMpOworICAgICAgICAgICAgcnVs
ZXMucnVsZUZlYXR1cmVzLnNocmlua1RvRml0KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgcnVsZXMucmVxdWlyZXNGdWxsUmVzZXQgPSB0cnVlOwogCkBAIC01MjQsMTEgKzU0NiwxNCBA
QCB2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmRpZE11dGF0ZVJlc29sdmVyKCkK
ICAgICBkaWRNdXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5ID0gdHJ1ZTsKIH0K
IAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlUG9zaXRpb25JZk5l
ZWRlZChzaXplX3QgaW5kZXgpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFk
ZFJ1bGVJZk5lZWRlZChjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCiB7CiAgICAgaWYgKGR5bmFt
aWNDb250ZXh0U3RhY2suaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgZHluYW1pY0Nv
bnRleHRTdGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVuZChpbmRleCk7CisK
KyAgICBhdXRvJiBjb250ZXh0ID0gZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCk7CisgICAgY29u
dGV4dC5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYXBwZW5kKHJ1bGVEYXRhLnBvc2l0aW9uKCkpOwor
ICAgIGNvbnRleHQucnVsZUZlYXR1cmVzLmFwcGVuZCh7IHJ1bGVEYXRhLnJ1bGUoKSwgcnVsZURh
dGEuc2VsZWN0b3JJbmRleCgpLCBydWxlRGF0YS5zZWxlY3Rvckxpc3RJbmRleCgpIH0pOwogfQog
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAppbmRleCA4NGRkZmE2YzE3Yy4uODY0NzQ5ZjdjMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlU2V0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1
bGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvckhhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KIApAQCAtNDAsNiAr
NDEsMjIgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogbmFtZXNwYWNlIFN0eWxlIHsKIAog
Y2xhc3MgUmVzb2x2ZXI7CitjbGFzcyBSdWxlU2V0OworCitzdHJ1Y3QgRHluYW1pY01lZGlhUXVl
cnlFdmFsdWF0aW9uQ2hhbmdlcyB7CisgICAgZW51bSBjbGFzcyBUeXBlIHsgSW52YWxpZGF0ZVN0
eWxlLCBSZXNldFN0eWxlIH07CisgICAgVHlwZSB0eXBlOworICAgIFZlY3Rvcjxjb25zdCBSdWxl
U2V0KiwgMT4gaW52YWxpZGF0aW9uUnVsZVNldHMgeyB9OworCisgICAgdm9pZCBhcHBlbmQoRHlu
YW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcyYmIG90aGVyKQorICAgIHsKKyAgICAgICAg
dHlwZSA9IHN0ZDo6bWF4KHR5cGUsIG90aGVyLnR5cGUpOworICAgICAgICBpZiAodHlwZSA9PSBU
eXBlOjpSZXNldFN0eWxlKQorICAgICAgICAgICAgaW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW52YWxpZGF0aW9uUnVsZVNldHMuYXBwZW5k
VmVjdG9yKFdURk1vdmUob3RoZXIuaW52YWxpZGF0aW9uUnVsZVNldHMpKTsKKyAgICB9OworfTsK
IAogY2xhc3MgUnVsZVNldCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUnVsZVNldCk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNjMsOCArODAsOSBAQCBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRGF0YVZlY3Rvcj4+
IEF0b21SdWxlTWFwOwogCiAgICAgc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMgewotICAg
ICAgICBWZWN0b3I8UmVmPE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsKKyAgICAgICAg
VmVjdG9yPFJlZjxjb25zdCBNZWRpYVF1ZXJ5U2V0Pj4gbWVkaWFRdWVyeVNldHM7CiAgICAgICAg
IEhhc2hTZXQ8c2l6ZV90LCBEZWZhdWx0SGFzaDxzaXplX3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVk
V2l0aFplcm9LZXlIYXNoVHJhaXRzPHNpemVfdD4+IGFmZmVjdGVkUnVsZVBvc2l0aW9uczsKKyAg
ICAgICAgVmVjdG9yPFJ1bGVGZWF0dXJlPiBydWxlRmVhdHVyZXM7CiAgICAgICAgIGJvb2wgcmVx
dWlyZXNGdWxsUmVzZXQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHJlc3VsdCB7IHRydWUgfTsK
ICAgICB9OwpAQCAtNzYsOCArOTQsOSBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IGJvb2wgY29s
bGVjdER5bmFtaWMgeyBmYWxzZSB9OwogCiAgICAgICAgIHN0cnVjdCBEeW5hbWljQ29udGV4dCB7
Ci0gICAgICAgICAgICBSZWY8TWVkaWFRdWVyeVNldD4gc2V0OworICAgICAgICAgICAgUmVmPGNv
bnN0IE1lZGlhUXVlcnlTZXQ+IHNldDsKICAgICAgICAgICAgIFZlY3RvcjxzaXplX3Q+IGFmZmVj
dGVkUnVsZVBvc2l0aW9ucyB7IH07CisgICAgICAgICAgICBWZWN0b3I8UnVsZUZlYXR1cmU+IHJ1
bGVGZWF0dXJlcyB7IH07CiAgICAgICAgIH07CiAgICAgICAgIFZlY3RvcjxEeW5hbWljQ29udGV4
dD4gZHluYW1pY0NvbnRleHRTdGFjayB7IH07CiAKQEAgLTg1LDEwICsxMDQsMTAgQEAgcHVibGlj
OgogICAgICAgICBib29sIGRpZE11dGF0ZVJlc29sdmVyV2l0aGluRHluYW1pY01lZGlhUXVlcnkg
eyBmYWxzZSB9OwogICAgICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVz
IHsgZmFsc2UgfTsKIAotICAgICAgICBib29sIHB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0
Kik7Ci0gICAgICAgIHZvaWQgcG9wKE1lZGlhUXVlcnlTZXQqKTsKKyAgICAgICAgYm9vbCBwdXNo
QW5kRXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeVNldCopOworICAgICAgICB2b2lkIHBvcChjb25z
dCBNZWRpYVF1ZXJ5U2V0Kik7CiAgICAgICAgIHZvaWQgZGlkTXV0YXRlUmVzb2x2ZXIoKTsKLSAg
ICAgICAgdm9pZCBhZGRSdWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3QpOworICAgICAgICB2b2lk
IGFkZFJ1bGVJZk5lZWRlZChjb25zdCBSdWxlRGF0YSYpOwogICAgIH07CiAKICAgICB2b2lkIGFk
ZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyYsIGNvbnN0IE1lZGlhUXVlcnlFdmFs
dWF0b3ImKTsKQEAgLTEwMyw4ICsxMjIsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc1ZpZXdw
b3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaWV3cG9ydERl
cGVuZGVudE1lZGlhUXVlcmllczsgfQogCi0gICAgZW51bSBjbGFzcyBNZWRpYVF1ZXJ5U3R5bGVV
cGRhdGVUeXBlIHsgTm9uZSwgUmVzb2x2ZSwgUmVzZXQgfTsKLSAgICBNZWRpYVF1ZXJ5U3R5bGVV
cGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlF
dmFsdWF0b3ImKTsKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFu
Z2VzPiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVh
dG9yJik7CiAKICAgICBjb25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMoKSBjb25zdCB7IHJl
dHVybiBtX2ZlYXR1cmVzOyB9CiAKQEAgLTE1Nyw2ICsxNzUsNyBAQCBwcml2YXRlOgogICAgIFJ1
bGVGZWF0dXJlU2V0IG1fZmVhdHVyZXM7CiAgICAgYm9vbCBtX2hhc1ZpZXdwb3J0RGVwZW5kZW50
TWVkaWFRdWVyaWVzIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8RHluYW1pY01lZGlhUXVlcnlSdWxl
cz4gbV9keW5hbWljTWVkaWFRdWVyeVJ1bGVzOworICAgIEhhc2hNYXA8VmVjdG9yPHNpemVfdD4s
IHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBSdWxlU2V0Pj4gbV9tZWRpYVF1ZXJ5SW52YWxpZGF0aW9u
UnVsZVNldENhY2hlOwogfTsKIAogaW5saW5lIGNvbnN0IFJ1bGVTZXQ6OlJ1bGVEYXRhVmVjdG9y
KiBSdWxlU2V0Ojp0YWdSdWxlcyhjb25zdCBBdG9tU3RyaW5nJiBrZXksIGJvb2wgaXNIVE1MTmFt
ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMzU5NDRk
MTg2ODQuLjY1NTcyNGJmOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cApAQCAtNjA3LDcgKzYwNyw3IEBAIGJvb2wgUmVzb2x2ZXI6Omhhc1ZpZXdwb3J0RGVwZW5kZW50
TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ydWxlU2V0cy5oYXNWaWV3cG9ydERl
cGVuZGVudE1lZGlhUXVlcmllcygpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRh
dGVUeXBlIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQorT3B0aW9uYWw8
RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gUmVzb2x2ZXI6OmV2YWx1YXRlRHlu
YW1pY01lZGlhUXVlcmllcygpCiB7CiAgICAgcmV0dXJuIG1fcnVsZVNldHMuZXZhbHV0ZUR5bmFt
aWNNZWRpYVF1ZXJ5UnVsZXMobV9tZWRpYVF1ZXJ5RXZhbHVhdG9yKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAyZWQ1ZmU4NWM5Mi4uNjYwMzUzM2FhNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBj
b25zdDsKLSAgICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1YXRlRHlu
YW1pY01lZGlhUXVlcmllcygpOworICAgIE9wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVh
dGlvbkNoYW5nZXM+IGV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygpOwogCiAgICAgdm9pZCBh
ZGRLZXlmcmFtZVN0eWxlKFJlZjxTdHlsZVJ1bGVLZXlmcmFtZXM+JiYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGUuY3BwCmluZGV4IDkwYjYzZDJkZTQ4Li40YWViNGRkMDU0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKQEAgLTY1MSwxNyArNjUxLDIwIEBAIHZvaWQgU2Nv
cGU6OmV2YWx1YXRlTWVkaWFRdWVyaWVzKFRlc3RGdW5jdGlvbiYmIHRlc3RGdW5jdGlvbikKICAg
ICBpZiAoIXJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHVwZGF0ZVR5cGUg
PSB0ZXN0RnVuY3Rpb24oKnJlc29sdmVyKTsKLQotICAgIHN3aXRjaCAodXBkYXRlVHlwZSkgewot
ICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6Tm9uZToKKyAgICBh
dXRvIGV2YWx1YXRpb25DaGFuZ2VzID0gdGVzdEZ1bmN0aW9uKCpyZXNvbHZlcik7CisgICAgaWYg
KCFldmFsdWF0aW9uQ2hhbmdlcykKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgUnVsZVNldDo6
TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZToKLSAgICAgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGhhdmUgYW4gaW52YWxpZGF0aW9uIHJ1bGVzZXQgZm9yIHJ1bGVzIGluc2lkZSBkeW5h
bWljIG1lZGlhIHF1ZXJpZXMuCi0gICAgICAgIGlmIChhdXRvKiBkb2N1bWVudEVsZW1lbnQgPSBt
X2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50
LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CisKKyAgICBzd2l0Y2ggKGV2YWx1YXRpb25D
aGFuZ2VzLT50eXBlKSB7CisgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFu
Z2VzOjpUeXBlOjpJbnZhbGlkYXRlU3R5bGU6IHsKKyAgICAgICAgSW52YWxpZGF0b3IgaW52YWxp
ZGF0b3IoZXZhbHVhdGlvbkNoYW5nZXMtPmludmFsaWRhdGlvblJ1bGVTZXRzKTsKKyAgICAgICAg
aWYgKG1fc2hhZG93Um9vdCkKKyAgICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHls
ZSgqbV9zaGFkb3dSb290KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW52YWxpZGF0b3Iu
aW52YWxpZGF0ZVN0eWxlKG1fZG9jdW1lbnQpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFJ1
bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OgorICAgIH0KKyAgICBjYXNl
IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OlJlc2V0U3R5bGU6CiAg
ICAgICAgIHNjaGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGU6OkNvbnRlbnRzT3JJbnRlcnByZXRhdGlv
bik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlUnVsZVNldHMuY3BwCmluZGV4IDAxMWM3OTYxYTQ4Li43ZTMyZGY4NDZmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCkBAIC0xNDEsMjcgKzE0MSwy
NiBAQCBib29sIFNjb3BlUnVsZVNldHM6Omhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVz
KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHls
ZVVwZGF0ZVR5cGUgU2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMo
Y29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQorT3B0aW9uYWw8RHluYW1pY01l
ZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gU2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewot
ICAgIGF1dG8gdXBkYXRlVHlwZSA9IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6
Ok5vbmU7CisgICAgT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4g
ZXZhbHVhdGlvbkNoYW5nZXM7CiAKLSAgICBhdXRvIGV2YWx1YXRlID0gWyZdKGF1dG8mIHJ1bGVT
ZXQpIHsKKyAgICBhdXRvIGV2YWx1YXRlID0gWyZdKGF1dG8qIHJ1bGVTZXQpIHsKICAgICAgICAg
aWYgKCFydWxlU2V0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBhdXRvIG5l
d1VwZGF0ZVR5cGUgPSBydWxlU2V0LT5ldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhldmFs
dWF0b3IpOwotICAgICAgICBpZiAobmV3VXBkYXRlVHlwZSA+IHVwZGF0ZVR5cGUpCi0gICAgICAg
ICAgICB1cGRhdGVUeXBlID0gbmV3VXBkYXRlVHlwZTsKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5
cGUgPT0gUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRvIGNoYW5nZXMgPSBydWxlU2V0LT5ldmFsdXRl
RHluYW1pY01lZGlhUXVlcnlSdWxlcyhldmFsdWF0b3IpKSB7CisgICAgICAgICAgICBpZiAoZXZh
bHVhdGlvbkNoYW5nZXMpCisgICAgICAgICAgICAgICAgZXZhbHVhdGlvbkNoYW5nZXMtPmFwcGVu
ZChXVEZNb3ZlKCpjaGFuZ2VzKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ZXZhbHVhdGlvbkNoYW5nZXMgPSBjaGFuZ2VzOworICAgICAgICB9CiAgICAgfTsKIAotICAgIGlm
IChldmFsdWF0ZShtX2F1dGhvclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7Ci0K
LSAgICBpZiAoZXZhbHVhdGUobV91c2VyU3R5bGUpKQotICAgICAgICByZXR1cm4gdXBkYXRlVHlw
ZTsKKyAgICBldmFsdWF0ZSgmYXV0aG9yU3R5bGUoKSk7CisgICAgZXZhbHVhdGUodXNlclN0eWxl
KCkpOworICAgIGV2YWx1YXRlKHVzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSgpKTsKIAotICAgIGV2
YWx1YXRlKG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKTsKLSAgICByZXR1cm4gdXBkYXRlVHlw
ZTsKKyAgICByZXR1cm4gZXZhbHVhdGlvbkNoYW5nZXM7CiB9CiAKIHZvaWQgU2NvcGVSdWxlU2V0
czo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNo
ZWV0Pj4mIHN0eWxlU2hlZXRzLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBtZWRpdW0sIEluc3BlY3Rv
ckNTU09NV3JhcHBlcnMmIGluc3BlY3RvckNTU09NV3JhcHBlcnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCmluZGV4IDlkYTc4YTMzODc3Li44Nzk1ZTQ4MjIxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKQEAgLTc5LDcgKzc5
LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRVc2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKTsK
IAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdDsKLSAg
ICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFR
dWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKKworICAgIE9wdGlvbmFsPER5
bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1dGVEeW5hbWljTWVkaWFRdWVy
eVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKIAogICAgIFJ1bGVGZWF0dXJlU2V0
JiBtdXRhYmxlRmVhdHVyZXMoKTsKIAo=
</data>
<flag name="review"
          id="402014"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386198</attachid>
            <date>2019-12-20 03:50:15 -0800</date>
            <delta_ts>2019-12-20 03:58:04 -0800</delta_ts>
            <desc>gcc build test</desc>
            <filename>media-query-invalidation-consolidated-4-vector.patch</filename>
            <type>text/plain</type>
            <size>17490</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaCBiL1NvdXJjZS9XVEYvd3Rm
L1ZlY3Rvckhhc2guaAppbmRleCAyYjU0MzQ0ZjJhMC4uN2EzMDJlZWFhZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JI
YXNoLmgKQEAgLTMxLDMzICszMSwzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgordGVtcGxhdGU8dHlwZW5hbWUgVCwg
c2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBt
aW5DYXBhY2l0eT4KIHN0cnVjdCBWZWN0b3JIYXNoIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpCisgICAgc3RhdGljIHVu
c2lnbmVkIGhhc2goY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgSW50ZWdlckhhc2hlciBo
YXNoZXI7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgdmFsdWUgOiB2ZWN0b3IpCiAgICAgICAg
ICAgICBoYXNoZXIuYWRkKERlZmF1bHRIYXNoPFQ+OjpIYXNoOjpoYXNoKHZhbHVlKSk7CiAgICAg
ICAgIHJldHVybiBoYXNoZXIuaGFzaCgpOwogICAgIH0KLSAgICBzdGF0aWMgYm9vbCBlcXVhbChj
b25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiBhLCBjb25zdCBWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHk+JiBiKQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFZlY3RvcjxULCBpbmxp
bmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIGEsIGNvbnN0IFZlY3Rv
cjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIGIpCiAg
ICAgewogICAgICAgICByZXR1cm4gYSA9PSBiOwogICAgIH0KICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAotdGVtcGxh
dGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5Pgotc3RydWN0IEhhc2hUcmFpdHM8
VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5Pj4gOiBHZW5lcmljSGFzaFRyYWl0czxWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHk+PiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2Fw
YWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbkNhcGFjaXR5Pgorc3Ry
dWN0IEhhc2hUcmFpdHM8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5Pj4gOiBHZW5lcmljSGFzaFRyYWl0czxWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiB7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSAhaW5saW5lQ2FwYWNpdHk7CiAKLSAgICBzdGF0aWMg
dm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiYgc2xv
dCkgeyBuZXcgKE5vdE51bGwsIHN0ZDo6YWRkcmVzc29mKHNsb3QpKSBWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHk+KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQotICAgIHN0YXRpYyBib29s
IGlzRGVsZXRlZFZhbHVlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHZhbHVlKSB7
IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisgICAgc3RhdGljIHZv
aWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZs
b3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHNsb3QpIHsgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJl
c3NvZihzbG90KSkgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1p
bkNhcGFjaXR5PihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk7IH0KKyAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93
SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuaXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUoKTsgfQogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5Pgotc3RydWN0IERlZmF1bHRIYXNoPFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4+
IHsKLSAgICB1c2luZyBIYXNoID0gVmVjdG9ySGFzaDxULCBpbmxpbmVDYXBhY2l0eT47Cit0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93
SGFuZGxlciwgc2l6ZV90IG1pbkNhcGFjaXR5Pgorc3RydWN0IERlZmF1bHRIYXNoPFZlY3RvcjxU
LCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4+IHsKKyAgICB1
c2luZyBIYXNoID0gVmVjdG9ySGFzaDxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVy
LCBtaW5DYXBhY2l0eT47CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM4NGViMzFmYjguLjE5ZDdi
MTA0YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTktMTItMjAgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIEludmFsaWRhdGUgb25seSBhZmZl
Y3RlZCBlbGVtZW50cyBhZnRlciBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGNoYW5nZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTM5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGN1cnJlbnRseSBp
bnZhbGlkYXRlIHN0eWxlIG9mIHRoZSB3aG9sZSB0cmVlIHdoZW4gYSBtZWRpYSBxdWVyeSBldmFs
dWF0aW9uIGNoYW5nZXMuCisgICAgICAgIFdlIGNhbiBkbyBiZXR0ZXIgYnkgY29uc3RydWN0aW5n
IGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFuZCBpbnZhbGlkYXRpbmcgb25seSB0aG9zZQorICAg
ICAgICBlbGVtZW50cyB0aGF0IGFyZSBwb3RlbnRpYWxseSBhZmZlY3RlZC4KKworICAgICAgICAq
IHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6OmFk
ZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzKToKKworICAgICAgICBDb25zdHJ1Y3QgYW5kIGNhY2hlIGFuIGludmFs
aWRhdGlvbiBSdWxlU2V0IGFuZCBhc3NvY2lhdGUgd2l0aCBhIHNldCBvZiBtZWRpYSBxdWVyeSBj
aGFuZ2VzLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNv
bGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxl
U2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3ApOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRlZCk6CisKKyAgICAg
ICAgQ29sbGVjdCBSdWxlRmVhdHVyZXMgd2hpY2ggd2UgbGF0ZXIgdXNlIHRvIGJ1aWxkIGludmFs
aWRhdGlvbiBSdWxlU2V0LgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVk
aWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpEeW5hbWlj
TWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjphcHBlbmQpOgorICAgICAgICAqIHN0eWxlL1N0
eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpldmFs
dWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIu
aDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMpOgorCisgICAgICAgIFVzZSB0aGUgaW52
YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3VyYXRlIHN0eWxlIGludmFsaWRhdGlvbi4KKworICAg
ICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorCisg
ICAgICAgIENvbGxlY3QgaW52YWxpZGF0aW9uIFJ1bGVTZXRzIGZvciBhdXRob3IvdXNlci91c2Vy
IGFnZW50IHN0eWxlLgorCisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisK
IDIwMTktMTItMTkgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTM3MTEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCmlu
ZGV4IDE0ODdjMWE2MjZhLi5lY2QzNzRlMzQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAK
QEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxlUnVsZSYgcnVsZSwg
dW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5zaWduZWQgc2VsZWN0b3IKICAgICBtX2ZlYXR1cmVz
LmNvbGxlY3RGZWF0dXJlcyhydWxlRGF0YSk7CiAKICAgICBpZiAobWVkaWFRdWVyeUNvbGxlY3Rv
cikKLSAgICAgICAgbWVkaWFRdWVyeUNvbGxlY3Rvci0+YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQo
cnVsZURhdGEucG9zaXRpb24oKSk7CisgICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1
bGVJZk5lZWRlZChydWxlRGF0YSk7CiAKICAgICB1bnNpZ25lZCBjbGFzc0J1Y2tldFNpemUgPSAw
OwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBpZFNlbGVjdG9yID0gbnVsbHB0cjsKQEAgLTQwNSw5
ICs0MDUsMTIgQEAgdm9pZCBSdWxlU2V0Ojp0cmF2ZXJzZVJ1bGVEYXRhcyhGdW5jdGlvbiYmIGZ1
bmN0aW9uKQogICAgIHRyYXZlcnNlVmVjdG9yKG1fdW5pdmVyc2FsUnVsZXMpOwogfQogCi1SdWxl
U2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVk
aWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK09wdGlv
bmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IFJ1bGVTZXQ6OmV2YWx1dGVE
eW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRv
cikKIHsKLSAgICBib29sIGNoYW5nZXMgPSBmYWxzZTsKKyAgICBWZWN0b3I8c2l6ZV90PiBjaGFu
Z2VkUXVlcnlJbmRleGVzOworICAgIFZlY3Rvcjxjb25zdCBWZWN0b3I8UnVsZUZlYXR1cmU+Kj4g
cnVsZUZlYXR1cmVzOworCisgICAgc2l6ZV90IG1lZGlhUXVlcnlJbmRleCA9IDA7CiAgICAgZm9y
IChhdXRvJiBkeW5hbWljUnVsZXMgOiBtX2R5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpIHsKICAgICAg
ICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAgICAgICBmb3IgKGF1dG8mIHNldCA6IGR5bmFtaWNS
dWxlcy5tZWRpYVF1ZXJ5U2V0cykgewpAQCAtNDIwLDE4ICs0MjMsMzQgQEAgUnVsZVNldDo6TWVk
aWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlS
dWxlcyhjb25zdAogICAgICAgICBpZiAocmVzdWx0ICE9IGR5bmFtaWNSdWxlcy5yZXN1bHQpIHsK
ICAgICAgICAgICAgIGR5bmFtaWNSdWxlcy5yZXN1bHQgPSByZXN1bHQ7CiAgICAgICAgICAgICBp
ZiAoZHluYW1pY1J1bGVzLnJlcXVpcmVzRnVsbFJlc2V0KQotICAgICAgICAgICAgICAgIHJldHVy
biBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDsKKyAgICAgICAgICAgICAgICByZXR1
cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OlJlc2V0U3R5
bGUgfSB9OwogCiAgICAgICAgICAgICB0cmF2ZXJzZVJ1bGVEYXRhcyhbJl0oUnVsZURhdGEmIHJ1
bGVEYXRhKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFkeW5hbWljUnVsZXMuYWZmZWN0ZWRSdWxl
UG9zaXRpb25zLmNvbnRhaW5zKHJ1bGVEYXRhLnBvc2l0aW9uKCkpKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgcnVsZURhdGEuc2V0RW5hYmxlZChyZXN1bHQp
OwotICAgICAgICAgICAgICAgIGNoYW5nZXMgPSB0cnVlOwogICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIGNoYW5nZWRRdWVyeUluZGV4ZXMuYXBwZW5kKG1lZGlhUXVlcnlJbmRleCk7Cisg
ICAgICAgICAgICBydWxlRmVhdHVyZXMuYXBwZW5kKCZkeW5hbWljUnVsZXMucnVsZUZlYXR1cmVz
KTsKICAgICAgICAgfQorCisgICAgICAgICsrbWVkaWFRdWVyeUluZGV4OwogICAgIH0KIAotICAg
IHJldHVybiBjaGFuZ2VzID8gTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZSA6IE1l
ZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU7CisgICAgaWYgKGNoYW5nZWRRdWVyeUluZGV4
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byYgcnVsZVNldCA9
IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1bGVTZXRDYWNoZS5lbnN1cmUoY2hhbmdlZFF1ZXJ5
SW5kZXhlcywgWyZdIHsKKyAgICAgICAgYXV0byBydWxlU2V0ID0gbWFrZVVuaXF1ZTxSdWxlU2V0
PigpOworICAgICAgICBmb3IgKGF1dG8qIGZlYXR1cmVWZWN0b3IgOiBydWxlRmVhdHVyZXMpIHsK
KyAgICAgICAgICAgIGZvciAoYXV0byYgZmVhdHVyZSA6ICpmZWF0dXJlVmVjdG9yKQorICAgICAg
ICAgICAgICAgIHJ1bGVTZXQtPmFkZFJ1bGUoKmZlYXR1cmUucnVsZSwgZmVhdHVyZS5zZWxlY3Rv
ckluZGV4LCBmZWF0dXJlLnNlbGVjdG9yTGlzdEluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gcnVsZVNldDsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICByZXR1cm4geyB7
IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OkludmFsaWRhdGVTdHls
ZSwgeyBydWxlU2V0LmdldCgpIH0gfSB9OwogfQogCiBib29sIFJ1bGVTZXQ6Omhhc1NoYWRvd1Bz
ZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC00NzIsNyArNDkxLDcgQEAgdm9pZCBSdWxlU2V0
OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6On5NZWRpYVF1
ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0OwogCi1ib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xs
ZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBzZXQpCitib29sIFJ1bGVTZXQ6
Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0
KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDk1LDcg
KzUxNCw3IEBAIGJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1
YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSdWxl
U2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQordm9pZCBS
dWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoY29uc3QgTWVkaWFRdWVyeVNldCogc2V0
KQogewogICAgIGlmICghc2V0IHx8IGR5bmFtaWNDb250ZXh0U3RhY2suaXNFbXB0eSgpIHx8IHNl
dCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuc2V0LmdldCgpKQogICAgICAgICByZXR1
cm47CkBAIC01MDgsNiArNTI3LDkgQEAgdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9y
Ojpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQogICAgICAgICBpZiAoY29sbGVjdER5bmFtaWMpIHsK
ICAgICAgICAgICAgIGF1dG8mIHRvQWRkID0gZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuYWZm
ZWN0ZWRSdWxlUG9zaXRpb25zOwogICAgICAgICAgICAgcnVsZXMuYWZmZWN0ZWRSdWxlUG9zaXRp
b25zLmFkZCh0b0FkZC5iZWdpbigpLCB0b0FkZC5lbmQoKSk7CisKKyAgICAgICAgICAgIHJ1bGVz
LnJ1bGVGZWF0dXJlcyA9IFdURk1vdmUoZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkucnVsZUZl
YXR1cmVzKTsKKyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJlcy5zaHJpbmtUb0ZpdCgpOwog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJ1bGVzLnJlcXVpcmVzRnVsbFJlc2V0ID0gdHJ1
ZTsKIApAQCAtNTI0LDExICs1NDYsMTQgQEAgdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVj
dG9yOjpkaWRNdXRhdGVSZXNvbHZlcigpCiAgICAgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5h
bWljTWVkaWFRdWVyeSA9IHRydWU7CiB9CiAKLXZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxl
Y3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90IGluZGV4KQordm9pZCBSdWxlU2V0
OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQoY29uc3QgUnVsZURhdGEmIHJ1
bGVEYXRhKQogewogICAgIGlmIChkeW5hbWljQ29udGV4dFN0YWNrLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLmFmZmVjdGVkUnVsZVBv
c2l0aW9ucy5hcHBlbmQoaW5kZXgpOworCisgICAgYXV0byYgY29udGV4dCA9IGR5bmFtaWNDb250
ZXh0U3RhY2subGFzdCgpOworICAgIGNvbnRleHQuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVu
ZChydWxlRGF0YS5wb3NpdGlvbigpKTsKKyAgICBjb250ZXh0LnJ1bGVGZWF0dXJlcy5hcHBlbmQo
eyBydWxlRGF0YS5ydWxlKCksIHJ1bGVEYXRhLnNlbGVjdG9ySW5kZXgoKSwgcnVsZURhdGEuc2Vs
ZWN0b3JMaXN0SW5kZXgoKSB9KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKaW5kZXggODRk
ZGZhNmMxN2MuLjg2NDc0OWY3YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
dWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3JIYXNoLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21T
dHJpbmdIYXNoLmg+CiAKQEAgLTQwLDYgKzQxLDIyIEBAIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50
czsKIG5hbWVzcGFjZSBTdHlsZSB7CiAKIGNsYXNzIFJlc29sdmVyOworY2xhc3MgUnVsZVNldDsK
Kworc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXMgeworICAgIGVudW0g
Y2xhc3MgVHlwZSB7IEludmFsaWRhdGVTdHlsZSwgUmVzZXRTdHlsZSB9OworICAgIFR5cGUgdHlw
ZTsKKyAgICBWZWN0b3I8Y29uc3QgUnVsZVNldCosIDE+IGludmFsaWRhdGlvblJ1bGVTZXRzIHsg
fTsKKworICAgIHZvaWQgYXBwZW5kKER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXMm
JiBvdGhlcikKKyAgICB7CisgICAgICAgIHR5cGUgPSBzdGQ6Om1heCh0eXBlLCBvdGhlci50eXBl
KTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVHlwZTo6UmVzZXRTdHlsZSkKKyAgICAgICAgICAgIGlu
dmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlu
dmFsaWRhdGlvblJ1bGVTZXRzLmFwcGVuZFZlY3RvcihXVEZNb3ZlKG90aGVyLmludmFsaWRhdGlv
blJ1bGVTZXRzKSk7CisgICAgfTsKK307CiAKIGNsYXNzIFJ1bGVTZXQgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFJ1bGVTZXQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTYzLDgg
KzgwLDkgQEAgcHVibGljOgogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVu
aXF1ZV9wdHI8UnVsZURhdGFWZWN0b3I+PiBBdG9tUnVsZU1hcDsKIAogICAgIHN0cnVjdCBEeW5h
bWljTWVkaWFRdWVyeVJ1bGVzIHsKLSAgICAgICAgVmVjdG9yPFJlZjxNZWRpYVF1ZXJ5U2V0Pj4g
bWVkaWFRdWVyeVNldHM7CisgICAgICAgIFZlY3RvcjxSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4+
IG1lZGlhUXVlcnlTZXRzOwogICAgICAgICBIYXNoU2V0PHNpemVfdCwgRGVmYXVsdEhhc2g8c2l6
ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxzaXplX3Q+PiBh
ZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CisgICAgICAgIFZlY3RvcjxSdWxlRmVhdHVyZT4gcnVsZUZl
YXR1cmVzOwogICAgICAgICBib29sIHJlcXVpcmVzRnVsbFJlc2V0IHsgZmFsc2UgfTsKICAgICAg
ICAgYm9vbCByZXN1bHQgeyB0cnVlIH07CiAgICAgfTsKQEAgLTc2LDggKzk0LDkgQEAgcHVibGlj
OgogICAgICAgICBjb25zdCBib29sIGNvbGxlY3REeW5hbWljIHsgZmFsc2UgfTsKIAogICAgICAg
ICBzdHJ1Y3QgRHluYW1pY0NvbnRleHQgewotICAgICAgICAgICAgUmVmPE1lZGlhUXVlcnlTZXQ+
IHNldDsKKyAgICAgICAgICAgIFJlZjxjb25zdCBNZWRpYVF1ZXJ5U2V0PiBzZXQ7CiAgICAgICAg
ICAgICBWZWN0b3I8c2l6ZV90PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnMgeyB9OworICAgICAgICAg
ICAgVmVjdG9yPFJ1bGVGZWF0dXJlPiBydWxlRmVhdHVyZXMgeyB9OwogICAgICAgICB9OwogICAg
ICAgICBWZWN0b3I8RHluYW1pY0NvbnRleHQ+IGR5bmFtaWNDb250ZXh0U3RhY2sgeyB9OwogCkBA
IC04NSwxMCArMTA0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBkaWRNdXRhdGVSZXNvbHZl
cldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBoYXNWaWV3
cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcyB7IGZhbHNlIH07CiAKLSAgICAgICAgYm9vbCBwdXNo
QW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCopOwotICAgICAgICB2b2lkIHBvcChNZWRpYVF1ZXJ5
U2V0Kik7CisgICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlTZXQq
KTsKKyAgICAgICAgdm9pZCBwb3AoY29uc3QgTWVkaWFRdWVyeVNldCopOwogICAgICAgICB2b2lk
IGRpZE11dGF0ZVJlc29sdmVyKCk7Ci0gICAgICAgIHZvaWQgYWRkUnVsZVBvc2l0aW9uSWZOZWVk
ZWQoc2l6ZV90KTsKKyAgICAgICAgdm9pZCBhZGRSdWxlSWZOZWVkZWQoY29uc3QgUnVsZURhdGEm
KTsKICAgICB9OwogCiAgICAgdm9pZCBhZGRSdWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVu
dHMmLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CkBAIC0xMDMsOCArMTIyLDcgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0
IHsgcmV0dXJuIG1faGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXM7IH0KIAotICAgIGVu
dW0gY2xhc3MgTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSB7IE5vbmUsIFJlc29sdmUsIFJlc2V0
IH07Ci0gICAgTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVl
cnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisgICAgT3B0aW9uYWw8RHluYW1p
Y01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVs
ZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwogCiAgICAgY29uc3QgUnVsZUZlYXR1cmVT
ZXQmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQogCkBAIC0xNTcsNiAr
MTc1LDcgQEAgcHJpdmF0ZToKICAgICBSdWxlRmVhdHVyZVNldCBtX2ZlYXR1cmVzOwogICAgIGJv
b2wgbV9oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcyB7IGZhbHNlIH07CiAgICAgVmVj
dG9yPER5bmFtaWNNZWRpYVF1ZXJ5UnVsZXM+IG1fZHluYW1pY01lZGlhUXVlcnlSdWxlczsKKyAg
ICBIYXNoTWFwPFZlY3RvcjxzaXplX3Q+LCBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUnVsZVNldD4+
IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1bGVTZXRDYWNoZTsKIH07CiAKIGlubGluZSBjb25z
dCBSdWxlU2V0OjpSdWxlRGF0YVZlY3RvciogUnVsZVNldDo6dGFnUnVsZXMoY29uc3QgQXRvbVN0
cmluZyYga2V5LCBib29sIGlzSFRNTE5hbWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZXIuY3BwCmluZGV4IDM1OTQ0ZDE4Njg0Li42NTU3MjRiZjlkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTYwNyw3ICs2MDcsNyBAQCBib29sIFJlc29s
dmVyOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJu
IG1fcnVsZVNldHMuaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKTsKIH0KIAotUnVs
ZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSZXNvbHZlcjo6ZXZhbHVhdGVEeW5hbWlj
TWVkaWFRdWVyaWVzKCkKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5n
ZXM+IFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQogewogICAgIHJldHVy
biBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKG1fbWVkaWFRdWVyeUV2
YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKaW5kZXggMmVkNWZl
ODVjOTIuLjY2MDM1MzNhYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBA
IC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBib29sIGhhc1ZpZXdwb3J0
RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVyeVN0
eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsKKyAgICBPcHRpb25h
bDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBldmFsdWF0ZUR5bmFtaWNNZWRp
YVF1ZXJpZXMoKTsKIAogICAgIHZvaWQgYWRkS2V5ZnJhbWVTdHlsZShSZWY8U3R5bGVSdWxlS2V5
ZnJhbWVzPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAppbmRleCA5MGI2M2Qy
ZGU0OC4uNGFlYjRkZDA1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCkBAIC02
NTEsMTcgKzY1MSwyMCBAQCB2b2lkIFNjb3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyhUZXN0RnVu
Y3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAgaWYgKCFyZXNvbHZlcikKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byB1cGRhdGVUeXBlID0gdGVzdEZ1bmN0aW9uKCpyZXNvbHZlcik7Ci0KLSAg
ICBzd2l0Y2ggKHVwZGF0ZVR5cGUpIHsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHls
ZVVwZGF0ZVR5cGU6Ok5vbmU6CisgICAgYXV0byBldmFsdWF0aW9uQ2hhbmdlcyA9IHRlc3RGdW5j
dGlvbigqcmVzb2x2ZXIpOworICAgIGlmICghZXZhbHVhdGlvbkNoYW5nZXMpCiAgICAgICAgIHJl
dHVybjsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29s
dmU6Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBoYXZlIGFuIGludmFsaWRhdGlvbiBydWxl
c2V0IGZvciBydWxlcyBpbnNpZGUgZHluYW1pYyBtZWRpYSBxdWVyaWVzLgotICAgICAgICBpZiAo
YXV0byogZG9jdW1lbnRFbGVtZW50ID0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkKLSAg
ICAgICAgICAgIGRvY3VtZW50RWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwor
CisgICAgc3dpdGNoIChldmFsdWF0aW9uQ2hhbmdlcy0+dHlwZSkgeworICAgIGNhc2UgRHluYW1p
Y01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOiB7Cisg
ICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGV2YWx1YXRpb25DaGFuZ2VzLT5pbnZhbGlk
YXRpb25SdWxlU2V0cyk7CisgICAgICAgIGlmIChtX3NoYWRvd1Jvb3QpCisgICAgICAgICAgICBp
bnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUoKm1fc2hhZG93Um9vdCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZShtX2RvY3VtZW50KTsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBl
OjpSZXNldDoKKyAgICB9CisgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFu
Z2VzOjpUeXBlOjpSZXNldFN0eWxlOgogICAgICAgICBzY2hlZHVsZVVwZGF0ZShVcGRhdGVUeXBl
OjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24pOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCAwMTFjNzk2MWE0
OC4uN2UzMmRmODQ2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGVSdWxlU2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVT
ZXRzLmNwcApAQCAtMTQxLDI3ICsxNDEsMjYgQEAgYm9vbCBTY29wZVJ1bGVTZXRzOjpoYXNWaWV3
cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFNjb3BlUnVsZVNldHM6OmV2YWx1
dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1
YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IFNjb3Bl
UnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlF
dmFsdWF0b3ImIGV2YWx1YXRvcikKIHsKLSAgICBhdXRvIHVwZGF0ZVR5cGUgPSBSdWxlU2V0OjpN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOworICAgIE9wdGlvbmFsPER5bmFtaWNNZWRp
YVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1YXRpb25DaGFuZ2VzOwogCi0gICAgYXV0byBl
dmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0KSB7CisgICAgYXV0byBldmFsdWF0ZSA9IFsmXShh
dXRvKiBydWxlU2V0KSB7CiAgICAgICAgIGlmICghcnVsZVNldCkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgYXV0byBuZXdVcGRhdGVUeXBlID0gcnVsZVNldC0+ZXZhbHV0ZUR5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9yKTsKLSAgICAgICAgaWYgKG5ld1VwZGF0ZVR5
cGUgPiB1cGRhdGVUeXBlKQotICAgICAgICAgICAgdXBkYXRlVHlwZSA9IG5ld1VwZGF0ZVR5cGU7
Ci0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlID09IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVw
ZGF0ZVR5cGU6OlJlc2V0OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBj
aGFuZ2VzID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9y
KSkgeworICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25DaGFuZ2VzKQorICAgICAgICAgICAgICAg
IGV2YWx1YXRpb25DaGFuZ2VzLT5hcHBlbmQoV1RGTW92ZSgqY2hhbmdlcykpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFuZ2VzID0gY2hhbmdlczsKKyAg
ICAgICAgfQogICAgIH07CiAKLSAgICBpZiAoZXZhbHVhdGUobV9hdXRob3JTdHlsZSkpCi0gICAg
ICAgIHJldHVybiB1cGRhdGVUeXBlOwotCi0gICAgaWYgKGV2YWx1YXRlKG1fdXNlclN0eWxlKSkK
LSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgZXZhbHVhdGUoJmF1dGhvclN0eWxlKCkp
OworICAgIGV2YWx1YXRlKHVzZXJTdHlsZSgpKTsKKyAgICBldmFsdWF0ZSh1c2VyQWdlbnRNZWRp
YVF1ZXJ5U3R5bGUoKSk7CiAKLSAgICBldmFsdWF0ZShtX3VzZXJBZ2VudE1lZGlhUXVlcnlTdHls
ZSk7Ci0gICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgcmV0dXJuIGV2YWx1YXRpb25DaGFuZ2Vz
OwogfQogCiB2b2lkIFNjb3BlUnVsZVNldHM6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKGNvbnN0
IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiBzdHlsZVNoZWV0cywgTWVkaWFRdWVyeUV2
YWx1YXRvciogbWVkaXVtLCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzJiBpbnNwZWN0b3JDU1NPTVdy
YXBwZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVT
ZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA5
ZGE3OGEzMzg3Ny4uODc5NWU0ODIyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGVSdWxlU2V0cy5oCkBAIC03OSw3ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VXNl
ckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50
TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRl
VHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVh
dG9yJik7CisKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2Vz
PiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9y
Jik7CiAKICAgICBSdWxlRmVhdHVyZVNldCYgbXV0YWJsZUZlYXR1cmVzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386199</attachid>
            <date>2019-12-20 03:58:04 -0800</date>
            <delta_ts>2019-12-20 04:45:54 -0800</delta_ts>
            <desc>gcc build test</desc>
            <filename>media-query-invalidation-consolidated-4-vector-2.patch</filename>
            <type>text/plain</type>
            <size>15770</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaCBiL1NvdXJjZS9XVEYvd3Rm
L1ZlY3Rvckhhc2guaAppbmRleCAyYjU0MzQ0ZjJhMC4uMjg5OTc4OGYzNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JI
YXNoLmgKQEAgLTQ3LDYgKzQ3LDE0IEBAIHN0cnVjdCBWZWN0b3JIYXNoIHsKICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsK
IAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBIYXNoVHJhaXRzPFZlY3RvcjxUPj4gOiBH
ZW5lcmljSGFzaFRyYWl0czxWZWN0b3I8VD4+IHsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
ZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxl
dGVkVmFsdWUoVmVjdG9yPFQ+JiBzbG90KSB7IG5ldyAoTm90TnVsbCwgc3RkOjphZGRyZXNzb2Yo
c2xvdCkpIFZlY3RvcjxUPihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk7IH0KKyAgICBzdGF0
aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBWZWN0b3I8VD4mIHZhbHVlKSB7IHJldHVybiB2
YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+CiBzdHJ1Y3QgSGFzaFRyYWl0czxWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHk+PiA6IEdlbmVyaWNIYXNoVHJhaXRzPFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eT4+IHsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9ICFp
bmxpbmVDYXBhY2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uMTlkN2IxMDRjOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxOS0xMi0yMCAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1l
bnRzIGFmdGVyIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGludmFsaWRhdGUg
c3R5bGUgb2YgdGhlIHdob2xlIHRyZWUgd2hlbiBhIG1lZGlhIHF1ZXJ5IGV2YWx1YXRpb24gY2hh
bmdlcy4KKyAgICAgICAgV2UgY2FuIGRvIGJldHRlciBieSBjb25zdHJ1Y3RpbmcgYW4gaW52YWxp
ZGF0aW9uIFJ1bGVTZXQgYW5kIGludmFsaWRhdGluZyBvbmx5IHRob3NlCisgICAgICAgIGVsZW1l
bnRzIHRoYXQgYXJlIHBvdGVudGlhbGx5IGFmZmVjdGVkLgorCisgICAgICAgICogc3R5bGUvUnVs
ZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6YWRkUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMpOgorCisgICAgICAgIENvbnN0cnVjdCBhbmQgY2FjaGUgYW4gaW52YWxpZGF0aW9uIFJ1
bGVTZXQgYW5kIGFzc29jaWF0ZSB3aXRoIGEgc2V0IG9mIG1lZGlhIHF1ZXJ5IGNoYW5nZXMuCisK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpw
dXNoQW5kRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlh
UXVlcnlDb2xsZWN0b3I6OnBvcCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6
TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZUlmTmVlZGVkKToKKworICAgICAgICBDb2xsZWN0
IFJ1bGVGZWF0dXJlcyB3aGljaCB3ZSBsYXRlciB1c2UgdG8gYnVpbGQgaW52YWxpZGF0aW9uIFJ1
bGVTZXQuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29s
bGVjdG9yOjphZGRSdWxlUG9zaXRpb25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5
bGUvUnVsZVNldC5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkR5bmFtaWNNZWRpYVF1ZXJ5
RXZhbHVhdGlvbkNoYW5nZXM6OmFwcGVuZCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1p
Y01lZGlhUXVlcmllcyk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3Bl
OjpldmFsdWF0ZU1lZGlhUXVlcmllcyk6CisKKyAgICAgICAgVXNlIHRoZSBpbnZhbGlkYXRpb24g
UnVsZVNldCBmb3IgYWNjdXJhdGUgc3R5bGUgaW52YWxpZGF0aW9uLgorCisgICAgICAgICogc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29w
ZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyk6CisKKyAgICAgICAgQ29s
bGVjdCBpbnZhbGlkYXRpb24gUnVsZVNldHMgZm9yIGF1dGhvci91c2VyL3VzZXIgYWdlbnQgc3R5
bGUuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaDoKKwogMjAxOS0xMi0x
OSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI1MzcxMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1
bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKaW5kZXggMTQ4N2Mx
YTYyNmEuLmVjZDM3NGUzNDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcApAQCAtOTUsNyAr
OTUsNyBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxlJiBydWxlLCB1bnNpZ25lZCBz
ZWxlY3RvckluZGV4LCB1bnNpZ25lZCBzZWxlY3RvcgogICAgIG1fZmVhdHVyZXMuY29sbGVjdEZl
YXR1cmVzKHJ1bGVEYXRhKTsKIAogICAgIGlmIChtZWRpYVF1ZXJ5Q29sbGVjdG9yKQotICAgICAg
ICBtZWRpYVF1ZXJ5Q29sbGVjdG9yLT5hZGRSdWxlUG9zaXRpb25JZk5lZWRlZChydWxlRGF0YS5w
b3NpdGlvbigpKTsKKyAgICAgICAgbWVkaWFRdWVyeUNvbGxlY3Rvci0+YWRkUnVsZUlmTmVlZGVk
KHJ1bGVEYXRhKTsKIAogICAgIHVuc2lnbmVkIGNsYXNzQnVja2V0U2l6ZSA9IDA7CiAgICAgY29u
c3QgQ1NTU2VsZWN0b3IqIGlkU2VsZWN0b3IgPSBudWxscHRyOwpAQCAtNDA1LDkgKzQwNSwxMiBA
QCB2b2lkIFJ1bGVTZXQ6OnRyYXZlcnNlUnVsZURhdGFzKEZ1bmN0aW9uJiYgZnVuY3Rpb24pCiAg
ICAgdHJhdmVyc2VWZWN0b3IobV91bml2ZXJzYWxSdWxlcyk7CiB9CiAKLVJ1bGVTZXQ6Ok1lZGlh
UXVlcnlTdHlsZVVwZGF0ZVR5cGUgUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVs
ZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQorT3B0aW9uYWw8RHluYW1p
Y01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRp
YVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAg
IGJvb2wgY2hhbmdlcyA9IGZhbHNlOworICAgIFZlY3RvcjxzaXplX3Q+IGNoYW5nZWRRdWVyeUlu
ZGV4ZXM7CisgICAgVmVjdG9yPGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4qPiBydWxlRmVhdHVy
ZXM7CisKKyAgICBzaXplX3QgbWVkaWFRdWVyeUluZGV4ID0gMDsKICAgICBmb3IgKGF1dG8mIGR5
bmFtaWNSdWxlcyA6IG1fZHluYW1pY01lZGlhUXVlcnlSdWxlcykgewogICAgICAgICBib29sIHJl
c3VsdCA9IHRydWU7CiAgICAgICAgIGZvciAoYXV0byYgc2V0IDogZHluYW1pY1J1bGVzLm1lZGlh
UXVlcnlTZXRzKSB7CkBAIC00MjAsMTggKzQyMywzNCBAQCBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5
bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0
CiAgICAgICAgIGlmIChyZXN1bHQgIT0gZHluYW1pY1J1bGVzLnJlc3VsdCkgewogICAgICAgICAg
ICAgZHluYW1pY1J1bGVzLnJlc3VsdCA9IHJlc3VsdDsKICAgICAgICAgICAgIGlmIChkeW5hbWlj
UnVsZXMucmVxdWlyZXNGdWxsUmVzZXQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUXVl
cnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OworICAgICAgICAgICAgICAgIHJldHVybiB7IHsgRHlu
YW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6UmVzZXRTdHlsZSB9IH07CiAK
ICAgICAgICAgICAgIHRyYXZlcnNlUnVsZURhdGFzKFsmXShSdWxlRGF0YSYgcnVsZURhdGEpIHsK
ICAgICAgICAgICAgICAgICBpZiAoIWR5bmFtaWNSdWxlcy5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMu
Y29udGFpbnMocnVsZURhdGEucG9zaXRpb24oKSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgICAgICBydWxlRGF0YS5zZXRFbmFibGVkKHJlc3VsdCk7Ci0gICAgICAg
ICAgICAgICAgY2hhbmdlcyA9IHRydWU7CiAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
Y2hhbmdlZFF1ZXJ5SW5kZXhlcy5hcHBlbmQobWVkaWFRdWVyeUluZGV4KTsKKyAgICAgICAgICAg
IHJ1bGVGZWF0dXJlcy5hcHBlbmQoJmR5bmFtaWNSdWxlcy5ydWxlRmVhdHVyZXMpOwogICAgICAg
ICB9CisKKyAgICAgICAgKyttZWRpYVF1ZXJ5SW5kZXg7CiAgICAgfQogCi0gICAgcmV0dXJuIGNo
YW5nZXMgPyBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlIDogTWVkaWFRdWVyeVN0
eWxlVXBkYXRlVHlwZTo6Tm9uZTsKKyAgICBpZiAoY2hhbmdlZFF1ZXJ5SW5kZXhlcy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvJiBydWxlU2V0ID0gbV9tZWRpYVF1
ZXJ5SW52YWxpZGF0aW9uUnVsZVNldENhY2hlLmVuc3VyZShjaGFuZ2VkUXVlcnlJbmRleGVzLCBb
Jl0geworICAgICAgICBhdXRvIHJ1bGVTZXQgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CisgICAg
ICAgIGZvciAoYXV0byogZmVhdHVyZVZlY3RvciA6IHJ1bGVGZWF0dXJlcykgeworICAgICAgICAg
ICAgZm9yIChhdXRvJiBmZWF0dXJlIDogKmZlYXR1cmVWZWN0b3IpCisgICAgICAgICAgICAgICAg
cnVsZVNldC0+YWRkUnVsZSgqZmVhdHVyZS5ydWxlLCBmZWF0dXJlLnNlbGVjdG9ySW5kZXgsIGZl
YXR1cmUuc2VsZWN0b3JMaXN0SW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBydWxl
U2V0OworICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAgIHJldHVybiB7IHsgRHluYW1pY01l
ZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlLCB7IHJ1bGVT
ZXQuZ2V0KCkgfSB9IH07CiB9CiAKIGJvb2wgUnVsZVNldDo6aGFzU2hhZG93UHNldWRvRWxlbWVu
dFJ1bGVzKCkgY29uc3QKQEAgLTQ3Miw3ICs0OTEsNyBAQCB2b2lkIFJ1bGVTZXQ6OnNocmlua1Rv
Rml0KCkKIAogUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6fk1lZGlhUXVlcnlDb2xsZWN0
b3IoKSA9IGRlZmF1bHQ7CiAKLWJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVz
aEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKK2Jvb2wgUnVsZVNldDo6TWVkaWFRdWVy
eUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlTZXQqIHNldCkKIHsK
ICAgICBpZiAoIXNldCkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00OTUsNyArNTE0LDcgQEAg
Ym9vbCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUoTWVkaWFR
dWVyeVNldCogc2V0KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJ1bGVTZXQ6Ok1lZGlh
UXVlcnlDb2xsZWN0b3I6OnBvcChNZWRpYVF1ZXJ5U2V0KiBzZXQpCit2b2lkIFJ1bGVTZXQ6Ok1l
ZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChjb25zdCBNZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAg
aWYgKCFzZXQgfHwgZHluYW1pY0NvbnRleHRTdGFjay5pc0VtcHR5KCkgfHwgc2V0ICE9ICZkeW5h
bWljQ29udGV4dFN0YWNrLmxhc3QoKS5zZXQuZ2V0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTUw
OCw2ICs1MjcsOSBAQCB2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnBvcChNZWRp
YVF1ZXJ5U2V0KiBzZXQpCiAgICAgICAgIGlmIChjb2xsZWN0RHluYW1pYykgewogICAgICAgICAg
ICAgYXV0byYgdG9BZGQgPSBkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5hZmZlY3RlZFJ1bGVQ
b3NpdGlvbnM7CiAgICAgICAgICAgICBydWxlcy5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYWRkKHRv
QWRkLmJlZ2luKCksIHRvQWRkLmVuZCgpKTsKKworICAgICAgICAgICAgcnVsZXMucnVsZUZlYXR1
cmVzID0gV1RGTW92ZShkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5ydWxlRmVhdHVyZXMpOwor
ICAgICAgICAgICAgcnVsZXMucnVsZUZlYXR1cmVzLnNocmlua1RvRml0KCk7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgcnVsZXMucmVxdWlyZXNGdWxsUmVzZXQgPSB0cnVlOwogCkBAIC01
MjQsMTEgKzU0NiwxNCBAQCB2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmRpZE11
dGF0ZVJlc29sdmVyKCkKICAgICBkaWRNdXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRpYVF1
ZXJ5ID0gdHJ1ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRS
dWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3QgaW5kZXgpCit2b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVl
cnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRlZChjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCiB7
CiAgICAgaWYgKGR5bmFtaWNDb250ZXh0U3RhY2suaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFw
cGVuZChpbmRleCk7CisKKyAgICBhdXRvJiBjb250ZXh0ID0gZHluYW1pY0NvbnRleHRTdGFjay5s
YXN0KCk7CisgICAgY29udGV4dC5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYXBwZW5kKHJ1bGVEYXRh
LnBvc2l0aW9uKCkpOworICAgIGNvbnRleHQucnVsZUZlYXR1cmVzLmFwcGVuZCh7IHJ1bGVEYXRh
LnJ1bGUoKSwgcnVsZURhdGEuc2VsZWN0b3JJbmRleCgpLCBydWxlRGF0YS5zZWxlY3Rvckxpc3RJ
bmRleCgpIH0pOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVT
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAppbmRleCA4NGRkZmE2YzE3Yy4u
ODY0NzQ5ZjdjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvckhhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2gu
aD4KIApAQCAtNDAsNiArNDEsMjIgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogbmFtZXNw
YWNlIFN0eWxlIHsKIAogY2xhc3MgUmVzb2x2ZXI7CitjbGFzcyBSdWxlU2V0OworCitzdHJ1Y3Qg
RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcyB7CisgICAgZW51bSBjbGFzcyBUeXBl
IHsgSW52YWxpZGF0ZVN0eWxlLCBSZXNldFN0eWxlIH07CisgICAgVHlwZSB0eXBlOworICAgIFZl
Y3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4gaW52YWxpZGF0aW9uUnVsZVNldHMgeyB9OworCisgICAg
dm9pZCBhcHBlbmQoRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcyYmIG90aGVyKQor
ICAgIHsKKyAgICAgICAgdHlwZSA9IHN0ZDo6bWF4KHR5cGUsIG90aGVyLnR5cGUpOworICAgICAg
ICBpZiAodHlwZSA9PSBUeXBlOjpSZXNldFN0eWxlKQorICAgICAgICAgICAgaW52YWxpZGF0aW9u
UnVsZVNldHMuY2xlYXIoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW52YWxpZGF0aW9u
UnVsZVNldHMuYXBwZW5kVmVjdG9yKFdURk1vdmUob3RoZXIuaW52YWxpZGF0aW9uUnVsZVNldHMp
KTsKKyAgICB9OworfTsKIAogY2xhc3MgUnVsZVNldCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUnVsZVNldCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNjMsOCArODAsOSBAQCBw
dWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxS
dWxlRGF0YVZlY3Rvcj4+IEF0b21SdWxlTWFwOwogCiAgICAgc3RydWN0IER5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMgewotICAgICAgICBWZWN0b3I8UmVmPE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5
U2V0czsKKyAgICAgICAgVmVjdG9yPFJlZjxjb25zdCBNZWRpYVF1ZXJ5U2V0Pj4gbWVkaWFRdWVy
eVNldHM7CiAgICAgICAgIEhhc2hTZXQ8c2l6ZV90LCBEZWZhdWx0SGFzaDxzaXplX3Q+OjpIYXNo
LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHNpemVfdD4+IGFmZmVjdGVkUnVs
ZVBvc2l0aW9uczsKKyAgICAgICAgVmVjdG9yPFJ1bGVGZWF0dXJlPiBydWxlRmVhdHVyZXM7CiAg
ICAgICAgIGJvb2wgcmVxdWlyZXNGdWxsUmVzZXQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHJl
c3VsdCB7IHRydWUgfTsKICAgICB9OwpAQCAtNzYsOCArOTQsOSBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IGJvb2wgY29sbGVjdER5bmFtaWMgeyBmYWxzZSB9OwogCiAgICAgICAgIHN0cnVjdCBE
eW5hbWljQ29udGV4dCB7Ci0gICAgICAgICAgICBSZWY8TWVkaWFRdWVyeVNldD4gc2V0OworICAg
ICAgICAgICAgUmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+IHNldDsKICAgICAgICAgICAgIFZlY3Rv
cjxzaXplX3Q+IGFmZmVjdGVkUnVsZVBvc2l0aW9ucyB7IH07CisgICAgICAgICAgICBWZWN0b3I8
UnVsZUZlYXR1cmU+IHJ1bGVGZWF0dXJlcyB7IH07CiAgICAgICAgIH07CiAgICAgICAgIFZlY3Rv
cjxEeW5hbWljQ29udGV4dD4gZHluYW1pY0NvbnRleHRTdGFjayB7IH07CiAKQEAgLTg1LDEwICsx
MDQsMTAgQEAgcHVibGljOgogICAgICAgICBib29sIGRpZE11dGF0ZVJlc29sdmVyV2l0aGluRHlu
YW1pY01lZGlhUXVlcnkgeyBmYWxzZSB9OwogICAgICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzIHsgZmFsc2UgfTsKIAotICAgICAgICBib29sIHB1c2hBbmRFdmFsdWF0
ZShNZWRpYVF1ZXJ5U2V0Kik7Ci0gICAgICAgIHZvaWQgcG9wKE1lZGlhUXVlcnlTZXQqKTsKKyAg
ICAgICAgYm9vbCBwdXNoQW5kRXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeVNldCopOworICAgICAg
ICB2b2lkIHBvcChjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CiAgICAgICAgIHZvaWQgZGlkTXV0YXRl
UmVzb2x2ZXIoKTsKLSAgICAgICAgdm9pZCBhZGRSdWxlUG9zaXRpb25JZk5lZWRlZChzaXplX3Qp
OworICAgICAgICB2b2lkIGFkZFJ1bGVJZk5lZWRlZChjb25zdCBSdWxlRGF0YSYpOwogICAgIH07
CiAKICAgICB2b2lkIGFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyYsIGNvbnN0
IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKQEAgLTEwMyw4ICsxMjIsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllczsgfQogCi0gICAgZW51bSBjbGFzcyBN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIHsgTm9uZSwgUmVzb2x2ZSwgUmVzZXQgfTsKLSAgICBN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNv
bnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVy
eUV2YWx1YXRpb25DaGFuZ2VzPiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBjb25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVy
ZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzOyB9CiAKQEAgLTE1Nyw2ICsxNzUsNyBAQCBw
cml2YXRlOgogICAgIFJ1bGVGZWF0dXJlU2V0IG1fZmVhdHVyZXM7CiAgICAgYm9vbCBtX2hhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8RHluYW1p
Y01lZGlhUXVlcnlSdWxlcz4gbV9keW5hbWljTWVkaWFRdWVyeVJ1bGVzOworICAgIEhhc2hNYXA8
VmVjdG9yPHNpemVfdD4sIHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBSdWxlU2V0Pj4gbV9tZWRpYVF1
ZXJ5SW52YWxpZGF0aW9uUnVsZVNldENhY2hlOwogfTsKIAogaW5saW5lIGNvbnN0IFJ1bGVTZXQ6
OlJ1bGVEYXRhVmVjdG9yKiBSdWxlU2V0Ojp0YWdSdWxlcyhjb25zdCBBdG9tU3RyaW5nJiBrZXks
IGJvb2wgaXNIVE1MTmFtZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggMzU5NDRkMTg2ODQuLjY1NTcyNGJmOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcApAQCAtNjA3LDcgKzYwNyw3IEBAIGJvb2wgUmVzb2x2ZXI6Omhhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ydWxlU2V0
cy5oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpOwogfQogCi1SdWxlU2V0OjpNZWRp
YVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJp
ZXMoKQorT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gUmVzb2x2
ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygpCiB7CiAgICAgcmV0dXJuIG1fcnVsZVNl
dHMuZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMobV9tZWRpYVF1ZXJ5RXZhbHVhdG9yKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAyZWQ1ZmU4NWM5Mi4uNjYw
MzUzM2FhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKQEAgLTEzMiw3ICsx
MzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRN
ZWRpYVF1ZXJpZXMoKSBjb25zdDsKLSAgICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVU
eXBlIGV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygpOworICAgIE9wdGlvbmFsPER5bmFtaWNN
ZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygp
OwogCiAgICAgdm9pZCBhZGRLZXlmcmFtZVN0eWxlKFJlZjxTdHlsZVJ1bGVLZXlmcmFtZXM+JiYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCmluZGV4IDkwYjYzZDJkZTQ4Li40YWVi
NGRkMDU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKQEAgLTY1MSwxNyArNjUx
LDIwIEBAIHZvaWQgU2NvcGU6OmV2YWx1YXRlTWVkaWFRdWVyaWVzKFRlc3RGdW5jdGlvbiYmIHRl
c3RGdW5jdGlvbikKICAgICBpZiAoIXJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBh
dXRvIHVwZGF0ZVR5cGUgPSB0ZXN0RnVuY3Rpb24oKnJlc29sdmVyKTsKLQotICAgIHN3aXRjaCAo
dXBkYXRlVHlwZSkgewotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlw
ZTo6Tm9uZToKKyAgICBhdXRvIGV2YWx1YXRpb25DaGFuZ2VzID0gdGVzdEZ1bmN0aW9uKCpyZXNv
bHZlcik7CisgICAgaWYgKCFldmFsdWF0aW9uQ2hhbmdlcykKICAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZToKLSAgICAg
ICAgLy8gRklYTUU6IFdlIGNvdWxkIGhhdmUgYW4gaW52YWxpZGF0aW9uIHJ1bGVzZXQgZm9yIHJ1
bGVzIGluc2lkZSBkeW5hbWljIG1lZGlhIHF1ZXJpZXMuCi0gICAgICAgIGlmIChhdXRvKiBkb2N1
bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICAgICAg
ZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CisKKyAgICBzd2l0
Y2ggKGV2YWx1YXRpb25DaGFuZ2VzLT50eXBlKSB7CisgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVy
eUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpJbnZhbGlkYXRlU3R5bGU6IHsKKyAgICAgICAgSW52
YWxpZGF0b3IgaW52YWxpZGF0b3IoZXZhbHVhdGlvbkNoYW5nZXMtPmludmFsaWRhdGlvblJ1bGVT
ZXRzKTsKKyAgICAgICAgaWYgKG1fc2hhZG93Um9vdCkKKyAgICAgICAgICAgIGludmFsaWRhdG9y
LmludmFsaWRhdGVTdHlsZSgqbV9zaGFkb3dSb290KTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxlKG1fZG9jdW1lbnQpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0Ogor
ICAgIH0KKyAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6
OlJlc2V0U3R5bGU6CiAgICAgICAgIHNjaGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGU6OkNvbnRlbnRz
T3JJbnRlcnByZXRhdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCmluZGV4IDAxMWM3OTYxYTQ4Li43ZTMyZGY4
NDZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCkBA
IC0xNDEsMjcgKzE0MSwyNiBAQCBib29sIFNjb3BlUnVsZVNldHM6Omhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJ1bGVTZXQ6
Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgU2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQorT3B0
aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gU2NvcGVSdWxlU2V0czo6
ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYg
ZXZhbHVhdG9yKQogewotICAgIGF1dG8gdXBkYXRlVHlwZSA9IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlT
dHlsZVVwZGF0ZVR5cGU6Ok5vbmU7CisgICAgT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFs
dWF0aW9uQ2hhbmdlcz4gZXZhbHVhdGlvbkNoYW5nZXM7CiAKLSAgICBhdXRvIGV2YWx1YXRlID0g
WyZdKGF1dG8mIHJ1bGVTZXQpIHsKKyAgICBhdXRvIGV2YWx1YXRlID0gWyZdKGF1dG8qIHJ1bGVT
ZXQpIHsKICAgICAgICAgaWYgKCFydWxlU2V0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBhdXRvIG5ld1VwZGF0ZVR5cGUgPSBydWxlU2V0LT5ldmFsdXRlRHluYW1pY01lZGlh
UXVlcnlSdWxlcyhldmFsdWF0b3IpOwotICAgICAgICBpZiAobmV3VXBkYXRlVHlwZSA+IHVwZGF0
ZVR5cGUpCi0gICAgICAgICAgICB1cGRhdGVUeXBlID0gbmV3VXBkYXRlVHlwZTsKLSAgICAgICAg
cmV0dXJuIHVwZGF0ZVR5cGUgPT0gUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6
UmVzZXQ7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRvIGNoYW5nZXMgPSBy
dWxlU2V0LT5ldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhldmFsdWF0b3IpKSB7CisgICAg
ICAgICAgICBpZiAoZXZhbHVhdGlvbkNoYW5nZXMpCisgICAgICAgICAgICAgICAgZXZhbHVhdGlv
bkNoYW5nZXMtPmFwcGVuZChXVEZNb3ZlKCpjaGFuZ2VzKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgZXZhbHVhdGlvbkNoYW5nZXMgPSBjaGFuZ2VzOworICAgICAgICB9CiAg
ICAgfTsKIAotICAgIGlmIChldmFsdWF0ZShtX2F1dGhvclN0eWxlKSkKLSAgICAgICAgcmV0dXJu
IHVwZGF0ZVR5cGU7Ci0KLSAgICBpZiAoZXZhbHVhdGUobV91c2VyU3R5bGUpKQotICAgICAgICBy
ZXR1cm4gdXBkYXRlVHlwZTsKKyAgICBldmFsdWF0ZSgmYXV0aG9yU3R5bGUoKSk7CisgICAgZXZh
bHVhdGUodXNlclN0eWxlKCkpOworICAgIGV2YWx1YXRlKHVzZXJBZ2VudE1lZGlhUXVlcnlTdHls
ZSgpKTsKIAotICAgIGV2YWx1YXRlKG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKTsKLSAgICBy
ZXR1cm4gdXBkYXRlVHlwZTsKKyAgICByZXR1cm4gZXZhbHVhdGlvbkNoYW5nZXM7CiB9CiAKIHZv
aWQgU2NvcGVSdWxlU2V0czo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFJl
ZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIHN0eWxlU2hlZXRzLCBNZWRpYVF1ZXJ5RXZhbHVhdG9yKiBt
ZWRpdW0sIEluc3BlY3RvckNTU09NV3JhcHBlcnMmIGluc3BlY3RvckNTU09NV3JhcHBlcnMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCmluZGV4IDlkYTc4YTMzODc3
Li44Nzk1ZTQ4MjIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZVJ1bGVTZXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRz
LmgKQEAgLTc5LDcgKzc5LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRVc2VyQWdlbnRNZWRp
YVF1ZXJ5U3R5bGUoKTsKIAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJp
ZXMoKSBjb25zdDsKLSAgICBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1
dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKKwor
ICAgIE9wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1dGVE
eW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKIAogICAg
IFJ1bGVGZWF0dXJlU2V0JiBtdXRhYmxlRmVhdHVyZXMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386203</attachid>
            <date>2019-12-20 04:45:54 -0800</date>
            <delta_ts>2019-12-20 04:59:51 -0800</delta_ts>
            <desc>gcc build test</desc>
            <filename>media-query-invalidation-consolidated-4-vector-3.patch</filename>
            <type>text/plain</type>
            <size>18781</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaCBiL1NvdXJjZS9XVEYvd3Rm
L1ZlY3Rvckhhc2guaAppbmRleCAyYjU0MzQ0ZjJhMC4uYzAyMGZjN2ZlYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JI
YXNoLmgKQEAgLTMxLDMzICszMSwzMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgordGVtcGxhdGU8dHlwZW5hbWUgVD4K
IHN0cnVjdCBWZWN0b3JIYXNoIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpCisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2go
Y29uc3QgVmVjdG9yPFQ+JiB2ZWN0b3IpCiAgICAgewogICAgICAgICBJbnRlZ2VySGFzaGVyIGhh
c2hlcjsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6IHZlY3RvcikKICAgICAgICAg
ICAgIGhhc2hlci5hZGQoRGVmYXVsdEhhc2g8VD46Okhhc2g6Omhhc2godmFsdWUpKTsKICAgICAg
ICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7CiAgICAgfQotICAgIHN0YXRpYyBib29sIGVxdWFsKGNv
bnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIGEsIGNvbnN0IFZlY3RvcjxULCBpbmxpbmVD
YXBhY2l0eT4mIGIpCisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVmVjdG9yPFQ+JiBhLCBj
b25zdCBWZWN0b3I8VD4mIGIpCiAgICAgewogICAgICAgICByZXR1cm4gYSA9PSBiOwogICAgIH0K
ICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
Pgotc3RydWN0IEhhc2hUcmFpdHM8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5Pj4gOiBHZW5lcmlj
SGFzaFRyYWl0czxWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+PiB7Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSAhaW5saW5lQ2FwYWNpdHk7Cit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgorc3RydWN0IEhhc2hUcmFpdHM8VmVjdG9yPFQ+PiA6IEdlbmVyaWNIYXNoVHJh
aXRzPFZlY3RvcjxUPj4geworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNa
ZXJvID0gdHJ1ZTsKIAotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiBzbG90KSB7IG5ldyAoTm90TnVsbCwgc3RkOjphZGRyZXNz
b2Yoc2xvdCkpIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4oV1RGOjpIYXNoVGFibGVEZWxldGVk
VmFsdWUpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5PiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCk7IH0KKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoVmVjdG9y
PFQ+JiBzbG90KSB7IG5ldyAoTm90TnVsbCwgc3RkOjphZGRyZXNzb2Yoc2xvdCkpIFZlY3RvcjxU
PihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0
ZWRWYWx1ZShjb25zdCBWZWN0b3I8VD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpOyB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5s
aW5lQ2FwYWNpdHk+Ci1zdHJ1Y3QgRGVmYXVsdEhhc2g8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
Pj4gewotICAgIHVzaW5nIEhhc2ggPSBWZWN0b3JIYXNoPFQsIGlubGluZUNhcGFjaXR5PjsKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgRGVmYXVsdEhhc2g8VmVjdG9yPFQ+PiB7CisgICAg
dXNpbmcgSGFzaCA9IFZlY3Rvckhhc2g8VD47CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM4NGVi
MzFmYjguLjE5ZDdiMTA0YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTktMTIt
MjAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIEludmFsaWRh
dGUgb25seSBhZmZlY3RlZCBlbGVtZW50cyBhZnRlciBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGNo
YW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTM5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGN1cnJlbnRseSBpbnZhbGlkYXRlIHN0eWxlIG9mIHRoZSB3aG9sZSB0cmVlIHdoZW4gYSBtZWRp
YSBxdWVyeSBldmFsdWF0aW9uIGNoYW5nZXMuCisgICAgICAgIFdlIGNhbiBkbyBiZXR0ZXIgYnkg
Y29uc3RydWN0aW5nIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFuZCBpbnZhbGlkYXRpbmcgb25s
eSB0aG9zZQorICAgICAgICBlbGVtZW50cyB0aGF0IGFyZSBwb3RlbnRpYWxseSBhZmZlY3RlZC4K
KworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6OmV2
YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKworICAgICAgICBDb25zdHJ1Y3QgYW5kIGNh
Y2hlIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFuZCBhc3NvY2lhdGUgd2l0aCBhIHNldCBvZiBt
ZWRpYSBxdWVyeSBjaGFuZ2VzLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6
TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJZk5lZWRl
ZCk6CisKKyAgICAgICAgQ29sbGVjdCBSdWxlRmVhdHVyZXMgd2hpY2ggd2UgbGF0ZXIgdXNlIHRv
IGJ1aWxkIGludmFsaWRhdGlvbiBSdWxlU2V0LgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjphcHBlbmQpOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJl
c29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgorICAgICAgICAqIHN0eWxlL1N0
eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMpOgorCisgICAgICAg
IFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3VyYXRlIHN0eWxlIGludmFsaWRh
dGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMpOgorCisgICAgICAgIENvbGxlY3QgaW52YWxpZGF0aW9uIFJ1bGVTZXRzIGZvciBhdXRo
b3IvdXNlci91c2VyIGFnZW50IHN0eWxlLgorCisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1
bGVTZXRzLmg6CisKIDIwMTktMTItMTkgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTM3MTEuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1
bGVTZXQuY3BwCmluZGV4IDE0ODdjMWE2MjZhLi5lY2QzNzRlMzQ1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
UnVsZVNldC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxl
UnVsZSYgcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5zaWduZWQgc2VsZWN0b3IKICAg
ICBtX2ZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlcyhydWxlRGF0YSk7CiAKICAgICBpZiAobWVkaWFR
dWVyeUNvbGxlY3RvcikKLSAgICAgICAgbWVkaWFRdWVyeUNvbGxlY3Rvci0+YWRkUnVsZVBvc2l0
aW9uSWZOZWVkZWQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAgICAgIG1lZGlhUXVlcnlDb2xs
ZWN0b3ItPmFkZFJ1bGVJZk5lZWRlZChydWxlRGF0YSk7CiAKICAgICB1bnNpZ25lZCBjbGFzc0J1
Y2tldFNpemUgPSAwOwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBpZFNlbGVjdG9yID0gbnVsbHB0
cjsKQEAgLTQwNSw5ICs0MDUsMTIgQEAgdm9pZCBSdWxlU2V0Ojp0cmF2ZXJzZVJ1bGVEYXRhcyhG
dW5jdGlvbiYmIGZ1bmN0aW9uKQogICAgIHRyYXZlcnNlVmVjdG9yKG1fdW5pdmVyc2FsUnVsZXMp
OwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6OmV2YWx1
dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1
YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IFJ1bGVT
ZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0
b3ImIGV2YWx1YXRvcikKIHsKLSAgICBib29sIGNoYW5nZXMgPSBmYWxzZTsKKyAgICBWZWN0b3I8
c2l6ZV90PiBjaGFuZ2VkUXVlcnlJbmRleGVzOworICAgIFZlY3Rvcjxjb25zdCBWZWN0b3I8UnVs
ZUZlYXR1cmU+Kj4gcnVsZUZlYXR1cmVzOworCisgICAgc2l6ZV90IG1lZGlhUXVlcnlJbmRleCA9
IDA7CiAgICAgZm9yIChhdXRvJiBkeW5hbWljUnVsZXMgOiBtX2R5bmFtaWNNZWRpYVF1ZXJ5UnVs
ZXMpIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAgICAgICBmb3IgKGF1dG8mIHNl
dCA6IGR5bmFtaWNSdWxlcy5tZWRpYVF1ZXJ5U2V0cykgewpAQCAtNDIwLDE4ICs0MjMsMzQgQEAg
UnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHluYW1p
Y01lZGlhUXVlcnlSdWxlcyhjb25zdAogICAgICAgICBpZiAocmVzdWx0ICE9IGR5bmFtaWNSdWxl
cy5yZXN1bHQpIHsKICAgICAgICAgICAgIGR5bmFtaWNSdWxlcy5yZXN1bHQgPSByZXN1bHQ7CiAg
ICAgICAgICAgICBpZiAoZHluYW1pY1J1bGVzLnJlcXVpcmVzRnVsbFJlc2V0KQotICAgICAgICAg
ICAgICAgIHJldHVybiBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDsKKyAgICAgICAg
ICAgICAgICByZXR1cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5
cGU6OlJlc2V0U3R5bGUgfSB9OwogCiAgICAgICAgICAgICB0cmF2ZXJzZVJ1bGVEYXRhcyhbJl0o
UnVsZURhdGEmIHJ1bGVEYXRhKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFkeW5hbWljUnVsZXMu
YWZmZWN0ZWRSdWxlUG9zaXRpb25zLmNvbnRhaW5zKHJ1bGVEYXRhLnBvc2l0aW9uKCkpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgcnVsZURhdGEuc2V0RW5h
YmxlZChyZXN1bHQpOwotICAgICAgICAgICAgICAgIGNoYW5nZXMgPSB0cnVlOwogICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgIGNoYW5nZWRRdWVyeUluZGV4ZXMuYXBwZW5kKG1lZGlhUXVl
cnlJbmRleCk7CisgICAgICAgICAgICBydWxlRmVhdHVyZXMuYXBwZW5kKCZkeW5hbWljUnVsZXMu
cnVsZUZlYXR1cmVzKTsKICAgICAgICAgfQorCisgICAgICAgICsrbWVkaWFRdWVyeUluZGV4Owog
ICAgIH0KIAotICAgIHJldHVybiBjaGFuZ2VzID8gTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6
UmVzb2x2ZSA6IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU7CisgICAgaWYgKGNoYW5n
ZWRRdWVyeUluZGV4ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0
byYgcnVsZVNldCA9IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1bGVTZXRDYWNoZS5lbnN1cmUo
Y2hhbmdlZFF1ZXJ5SW5kZXhlcywgWyZdIHsKKyAgICAgICAgYXV0byBydWxlU2V0ID0gbWFrZVVu
aXF1ZTxSdWxlU2V0PigpOworICAgICAgICBmb3IgKGF1dG8qIGZlYXR1cmVWZWN0b3IgOiBydWxl
RmVhdHVyZXMpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZmVhdHVyZSA6ICpmZWF0dXJlVmVj
dG9yKQorICAgICAgICAgICAgICAgIHJ1bGVTZXQtPmFkZFJ1bGUoKmZlYXR1cmUucnVsZSwgZmVh
dHVyZS5zZWxlY3RvckluZGV4LCBmZWF0dXJlLnNlbGVjdG9yTGlzdEluZGV4KTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gcnVsZVNldDsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAg
ICByZXR1cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6Oklu
dmFsaWRhdGVTdHlsZSwgeyBydWxlU2V0LmdldCgpIH0gfSB9OwogfQogCiBib29sIFJ1bGVTZXQ6
Omhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC00NzIsNyArNDkxLDcgQEAg
dm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0
b3I6On5NZWRpYVF1ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0OwogCi1ib29sIFJ1bGVTZXQ6Ok1l
ZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBzZXQpCiti
b29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShjb25zdCBN
ZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVybiB0cnVl
OwpAQCAtNDk1LDcgKzUxNCw3IEBAIGJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6
cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCog
c2V0KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoY29uc3QgTWVkaWFR
dWVyeVNldCogc2V0KQogewogICAgIGlmICghc2V0IHx8IGR5bmFtaWNDb250ZXh0U3RhY2suaXNF
bXB0eSgpIHx8IHNldCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuc2V0LmdldCgpKQog
ICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTI3LDkgQEAgdm9pZCBSdWxlU2V0OjpNZWRpYVF1
ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQogICAgICAgICBpZiAoY29sbGVj
dER5bmFtaWMpIHsKICAgICAgICAgICAgIGF1dG8mIHRvQWRkID0gZHluYW1pY0NvbnRleHRTdGFj
ay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zOwogICAgICAgICAgICAgcnVsZXMuYWZmZWN0
ZWRSdWxlUG9zaXRpb25zLmFkZCh0b0FkZC5iZWdpbigpLCB0b0FkZC5lbmQoKSk7CisKKyAgICAg
ICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJlcyA9IFdURk1vdmUoZHluYW1pY0NvbnRleHRTdGFjay5s
YXN0KCkucnVsZUZlYXR1cmVzKTsKKyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJlcy5zaHJp
bmtUb0ZpdCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJ1bGVzLnJlcXVpcmVzRnVs
bFJlc2V0ID0gdHJ1ZTsKIApAQCAtNTI0LDExICs1NDYsMTQgQEAgdm9pZCBSdWxlU2V0OjpNZWRp
YVF1ZXJ5Q29sbGVjdG9yOjpkaWRNdXRhdGVSZXNvbHZlcigpCiAgICAgZGlkTXV0YXRlUmVzb2x2
ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVyeSA9IHRydWU7CiB9CiAKLXZvaWQgUnVsZVNldDo6TWVk
aWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90IGluZGV4KQor
dm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQoY29uc3Qg
UnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAgIGlmIChkeW5hbWljQ29udGV4dFN0YWNrLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLmFm
ZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBlbmQoaW5kZXgpOworCisgICAgYXV0byYgY29udGV4dCA9
IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpOworICAgIGNvbnRleHQuYWZmZWN0ZWRSdWxlUG9z
aXRpb25zLmFwcGVuZChydWxlRGF0YS5wb3NpdGlvbigpKTsKKyAgICBjb250ZXh0LnJ1bGVGZWF0
dXJlcy5hcHBlbmQoeyBydWxlRGF0YS5ydWxlKCksIHJ1bGVEYXRhLnNlbGVjdG9ySW5kZXgoKSwg
cnVsZURhdGEuc2VsZWN0b3JMaXN0SW5kZXgoKSB9KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0
LmgKaW5kZXggODRkZGZhNmMxN2MuLjg2NDc0OWY3YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3JIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTQwLDYgKzQxLDIyIEBAIGNsYXNzIFN0eWxl
U2hlZXRDb250ZW50czsKIG5hbWVzcGFjZSBTdHlsZSB7CiAKIGNsYXNzIFJlc29sdmVyOworY2xh
c3MgUnVsZVNldDsKKworc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXMg
eworICAgIGVudW0gY2xhc3MgVHlwZSB7IEludmFsaWRhdGVTdHlsZSwgUmVzZXRTdHlsZSB9Owor
ICAgIFR5cGUgdHlwZTsKKyAgICBWZWN0b3I8Y29uc3QgUnVsZVNldCosIDE+IGludmFsaWRhdGlv
blJ1bGVTZXRzIHsgfTsKKworICAgIHZvaWQgYXBwZW5kKER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVh
dGlvbkNoYW5nZXMmJiBvdGhlcikKKyAgICB7CisgICAgICAgIHR5cGUgPSBzdGQ6Om1heCh0eXBl
LCBvdGhlci50eXBlKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVHlwZTo6UmVzZXRTdHlsZSkKKyAg
ICAgICAgICAgIGludmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGludmFsaWRhdGlvblJ1bGVTZXRzLmFwcGVuZFZlY3RvcihXVEZNb3ZlKG90aGVy
LmludmFsaWRhdGlvblJ1bGVTZXRzKSk7CisgICAgfTsKK307CiAKIGNsYXNzIFJ1bGVTZXQgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1bGVTZXQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKQEAgLTYzLDggKzgwLDkgQEAgcHVibGljOgogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9tU3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZURhdGFWZWN0b3I+PiBBdG9tUnVsZU1hcDsKIAogICAg
IHN0cnVjdCBEeW5hbWljTWVkaWFRdWVyeVJ1bGVzIHsKLSAgICAgICAgVmVjdG9yPFJlZjxNZWRp
YVF1ZXJ5U2V0Pj4gbWVkaWFRdWVyeVNldHM7CisgICAgICAgIFZlY3RvcjxSZWY8Y29uc3QgTWVk
aWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOwogICAgICAgICBIYXNoU2V0PHNpemVfdCwgRGVm
YXVsdEhhc2g8c2l6ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0
czxzaXplX3Q+PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CisgICAgICAgIFZlY3RvcjxSdWxlRmVh
dHVyZT4gcnVsZUZlYXR1cmVzOwogICAgICAgICBib29sIHJlcXVpcmVzRnVsbFJlc2V0IHsgZmFs
c2UgfTsKICAgICAgICAgYm9vbCByZXN1bHQgeyB0cnVlIH07CiAgICAgfTsKQEAgLTc2LDggKzk0
LDkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBib29sIGNvbGxlY3REeW5hbWljIHsgZmFsc2Ug
fTsKIAogICAgICAgICBzdHJ1Y3QgRHluYW1pY0NvbnRleHQgewotICAgICAgICAgICAgUmVmPE1l
ZGlhUXVlcnlTZXQ+IHNldDsKKyAgICAgICAgICAgIFJlZjxjb25zdCBNZWRpYVF1ZXJ5U2V0PiBz
ZXQ7CiAgICAgICAgICAgICBWZWN0b3I8c2l6ZV90PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnMgeyB9
OworICAgICAgICAgICAgVmVjdG9yPFJ1bGVGZWF0dXJlPiBydWxlRmVhdHVyZXMgeyB9OwogICAg
ICAgICB9OwogICAgICAgICBWZWN0b3I8RHluYW1pY0NvbnRleHQ+IGR5bmFtaWNDb250ZXh0U3Rh
Y2sgeyB9OwogCkBAIC04NSwxMCArMTA0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBkaWRN
dXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5IHsgZmFsc2UgfTsKICAgICAgICAg
Ym9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcyB7IGZhbHNlIH07CiAKLSAgICAg
ICAgYm9vbCBwdXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCopOwotICAgICAgICB2b2lkIHBv
cChNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRlKGNvbnN0IE1l
ZGlhUXVlcnlTZXQqKTsKKyAgICAgICAgdm9pZCBwb3AoY29uc3QgTWVkaWFRdWVyeVNldCopOwog
ICAgICAgICB2b2lkIGRpZE11dGF0ZVJlc29sdmVyKCk7Ci0gICAgICAgIHZvaWQgYWRkUnVsZVBv
c2l0aW9uSWZOZWVkZWQoc2l6ZV90KTsKKyAgICAgICAgdm9pZCBhZGRSdWxlSWZOZWVkZWQoY29u
c3QgUnVsZURhdGEmKTsKICAgICB9OwogCiAgICAgdm9pZCBhZGRSdWxlc0Zyb21TaGVldChTdHls
ZVNoZWV0Q29udGVudHMmLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CkBAIC0xMDMsOCAr
MTIyLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVl
cmllcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXM7
IH0KIAotICAgIGVudW0gY2xhc3MgTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSB7IE5vbmUsIFJl
c29sdmUsIFJlc2V0IH07Ci0gICAgTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisgICAgT3B0
aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwogCiAgICAgY29uc3Qg
UnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQog
CkBAIC0xNTcsNiArMTc1LDcgQEAgcHJpdmF0ZToKICAgICBSdWxlRmVhdHVyZVNldCBtX2ZlYXR1
cmVzOwogICAgIGJvb2wgbV9oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcyB7IGZhbHNl
IH07CiAgICAgVmVjdG9yPER5bmFtaWNNZWRpYVF1ZXJ5UnVsZXM+IG1fZHluYW1pY01lZGlhUXVl
cnlSdWxlczsKKyAgICBIYXNoTWFwPFZlY3RvcjxzaXplX3Q+LCBzdGQ6OnVuaXF1ZV9wdHI8Y29u
c3QgUnVsZVNldD4+IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1bGVTZXRDYWNoZTsKIH07CiAK
IGlubGluZSBjb25zdCBSdWxlU2V0OjpSdWxlRGF0YVZlY3RvciogUnVsZVNldDo6dGFnUnVsZXMo
Y29uc3QgQXRvbVN0cmluZyYga2V5LCBib29sIGlzSFRNTE5hbWUpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM1OTQ0ZDE4Njg0Li42NTU3MjRiZjlkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTYwNyw3ICs2MDcsNyBA
QCBib29sIFJlc29sdmVyOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcnVsZVNldHMuaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMo
KTsKIH0KIAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSZXNvbHZlcjo6ZXZh
bHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCkKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZh
bHVhdGlvbkNoYW5nZXM+IFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQog
ewogICAgIHJldHVybiBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKG1f
bWVkaWFRdWVyeUV2YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgK
aW5kZXggMmVkNWZlODVjOTIuLjY2MDM1MzNhYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlci5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBib29s
IGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6
TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsK
KyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBldmFsdWF0
ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsKIAogICAgIHZvaWQgYWRkS2V5ZnJhbWVTdHlsZShSZWY8
U3R5bGVSdWxlS2V5ZnJhbWVzPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApp
bmRleCA5MGI2M2QyZGU0OC4uNGFlYjRkZDA1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGUuY3BwCkBAIC02NTEsMTcgKzY1MSwyMCBAQCB2b2lkIFNjb3BlOjpldmFsdWF0ZU1lZGlhUXVl
cmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAgaWYgKCFyZXNvbHZlcikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB1cGRhdGVUeXBlID0gdGVzdEZ1bmN0aW9uKCpyZXNv
bHZlcik7Ci0KLSAgICBzd2l0Y2ggKHVwZGF0ZVR5cGUpIHsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1l
ZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU6CisgICAgYXV0byBldmFsdWF0aW9uQ2hhbmdl
cyA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOworICAgIGlmICghZXZhbHVhdGlvbkNoYW5nZXMp
CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0
ZVR5cGU6OlJlc29sdmU6Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBoYXZlIGFuIGludmFs
aWRhdGlvbiBydWxlc2V0IGZvciBydWxlcyBpbnNpZGUgZHluYW1pYyBtZWRpYSBxdWVyaWVzLgot
ICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0gbV9kb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50RWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlRm9y
U3VidHJlZSgpOworCisgICAgc3dpdGNoIChldmFsdWF0aW9uQ2hhbmdlcy0+dHlwZSkgeworICAg
IGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6SW52YWxpZGF0
ZVN0eWxlOiB7CisgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGV2YWx1YXRpb25DaGFu
Z2VzLT5pbnZhbGlkYXRpb25SdWxlU2V0cyk7CisgICAgICAgIGlmIChtX3NoYWRvd1Jvb3QpCisg
ICAgICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUoKm1fc2hhZG93Um9vdCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZShtX2Rv
Y3VtZW50KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5
bGVVcGRhdGVUeXBlOjpSZXNldDoKKyAgICB9CisgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2
YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpSZXNldFN0eWxlOgogICAgICAgICBzY2hlZHVsZVVwZGF0
ZShVcGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24pOwogICAgICAgICBicmVhazsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNl
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRl
eCAwMTFjNzk2MWE0OC4uN2UzMmRmODQ2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAtMTQxLDI3ICsxNDEsMjYgQEAgYm9vbCBTY29wZVJ1bGVT
ZXRzOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFNjb3BlUnVs
ZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFs
dWF0b3ImIGV2YWx1YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNo
YW5nZXM+IFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0
IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKIHsKLSAgICBhdXRvIHVwZGF0ZVR5cGUg
PSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOworICAgIE9wdGlvbmFs
PER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1YXRpb25DaGFuZ2VzOwog
Ci0gICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0KSB7CisgICAgYXV0byBldmFs
dWF0ZSA9IFsmXShhdXRvKiBydWxlU2V0KSB7CiAgICAgICAgIGlmICghcnVsZVNldCkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgYXV0byBuZXdVcGRhdGVUeXBlID0gcnVsZVNl
dC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9yKTsKLSAgICAgICAgaWYg
KG5ld1VwZGF0ZVR5cGUgPiB1cGRhdGVUeXBlKQotICAgICAgICAgICAgdXBkYXRlVHlwZSA9IG5l
d1VwZGF0ZVR5cGU7Ci0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlID09IFJ1bGVTZXQ6Ok1lZGlh
UXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBpZiAoYXV0byBjaGFuZ2VzID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVs
ZXMoZXZhbHVhdG9yKSkgeworICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25DaGFuZ2VzKQorICAg
ICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFuZ2VzLT5hcHBlbmQoV1RGTW92ZSgqY2hhbmdlcykp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFuZ2VzID0g
Y2hhbmdlczsKKyAgICAgICAgfQogICAgIH07CiAKLSAgICBpZiAoZXZhbHVhdGUobV9hdXRob3JT
dHlsZSkpCi0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOwotCi0gICAgaWYgKGV2YWx1YXRlKG1f
dXNlclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgZXZhbHVhdGUoJmF1
dGhvclN0eWxlKCkpOworICAgIGV2YWx1YXRlKHVzZXJTdHlsZSgpKTsKKyAgICBldmFsdWF0ZSh1
c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKSk7CiAKLSAgICBldmFsdWF0ZShtX3VzZXJBZ2VudE1l
ZGlhUXVlcnlTdHlsZSk7Ci0gICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgcmV0dXJuIGV2YWx1
YXRpb25DaGFuZ2VzOwogfQogCiB2b2lkIFNjb3BlUnVsZVNldHM6OmFwcGVuZEF1dGhvclN0eWxl
U2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiBzdHlsZVNoZWV0cywg
TWVkaWFRdWVyeUV2YWx1YXRvciogbWVkaXVtLCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzJiBpbnNw
ZWN0b3JDU1NPTVdyYXBwZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNl
dHMuaAppbmRleCA5ZGE3OGEzMzg3Ny4uODc5NWU0ODIyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC03OSw3ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKICAgICBib29sIGhhc1ZpZXdw
b3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVy
eVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yJik7CisKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1
YXRpb25DaGFuZ2VzPiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1
ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBSdWxlRmVhdHVyZVNldCYgbXV0YWJsZUZlYXR1cmVzKCk7
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCmluZGV4IDBjZTc2ZGY4
ODcxLi45NmE3Mzk2NjE5MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3Iu
Y3BwCkBAIC05OTAsNDIgKzk5MCw0MiBAQCBURVNUKFdURl9WZWN0b3IsIEhhc2hLZXkpCiAgICAg
RVhQRUNUX1RSVUUoaGFzaC5pc0VtcHR5KCkpOwogfQogCi1URVNUKFdURl9WZWN0b3IsIEhhc2hL
ZXlJbmxpbmVDYXBhY2l0eSkKLXsKLSAgICBWZWN0b3I8aW50LCAxPiBhID0geyAxIH07Ci0gICAg
VmVjdG9yPGludCwgMT4gYiA9IHsgMSwgMiB9OwotCi0gICAgSGFzaFNldDxWZWN0b3I8aW50LCAx
Pj4gaGFzaDsKLQotICAgIEVYUEVDVF9GQUxTRShoYXNoLmNvbnRhaW5zKGEpKTsKLSAgICBFWFBF
Q1RfRkFMU0UoaGFzaC5jb250YWlucyhiKSk7Ci0KLSAgICBoYXNoLmFkZChhKTsKLQotICAgIEVY
UEVDVF9UUlVFKGhhc2guY29udGFpbnMoYSkpOwotICAgIEVYUEVDVF9GQUxTRShoYXNoLmNvbnRh
aW5zKGIpKTsKLQotICAgIGhhc2guYWRkKGEpOwotCi0gICAgRVhQRUNUX1RSVUUoaGFzaC5jb250
YWlucyhhKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGhhc2guY29udGFpbnMoYikpOwotCi0gICAgaGFz
aC5hZGQoYik7Ci0KLSAgICBFWFBFQ1RfVFJVRShoYXNoLmNvbnRhaW5zKGEpKTsKLSAgICBFWFBF
Q1RfVFJVRShoYXNoLmNvbnRhaW5zKGIpKTsKLQotICAgIGhhc2gucmVtb3ZlKGEpOwotCi0gICAg
RVhQRUNUX0ZBTFNFKGhhc2guY29udGFpbnMoYSkpOwotICAgIEVYUEVDVF9UUlVFKGhhc2guY29u
dGFpbnMoYikpOwotCi0gICAgaGFzaC5yZW1vdmUoYik7Ci0KLSAgICBFWFBFQ1RfRkFMU0UoaGFz
aC5jb250YWlucyhhKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGhhc2guY29udGFpbnMoYikpOwotICAg
IEVYUEVDVF9UUlVFKGhhc2guaXNFbXB0eSgpKTsKLX0KKy8vVEVTVChXVEZfVmVjdG9yLCBIYXNo
S2V5SW5saW5lQ2FwYWNpdHkpCisvL3sKKy8vICAgIFZlY3RvcjxpbnQsIDE+IGEgPSB7IDEgfTsK
Ky8vICAgIFZlY3RvcjxpbnQsIDE+IGIgPSB7IDEsIDIgfTsKKy8vCisvLyAgICBIYXNoU2V0PFZl
Y3RvcjxpbnQsIDE+PiBoYXNoOworLy8KKy8vICAgIEVYUEVDVF9GQUxTRShoYXNoLmNvbnRhaW5z
KGEpKTsKKy8vICAgIEVYUEVDVF9GQUxTRShoYXNoLmNvbnRhaW5zKGIpKTsKKy8vCisvLyAgICBo
YXNoLmFkZChhKTsKKy8vCisvLyAgICBFWFBFQ1RfVFJVRShoYXNoLmNvbnRhaW5zKGEpKTsKKy8v
ICAgIEVYUEVDVF9GQUxTRShoYXNoLmNvbnRhaW5zKGIpKTsKKy8vCisvLyAgICBoYXNoLmFkZChh
KTsKKy8vCisvLyAgICBFWFBFQ1RfVFJVRShoYXNoLmNvbnRhaW5zKGEpKTsKKy8vICAgIEVYUEVD
VF9GQUxTRShoYXNoLmNvbnRhaW5zKGIpKTsKKy8vCisvLyAgICBoYXNoLmFkZChiKTsKKy8vCisv
LyAgICBFWFBFQ1RfVFJVRShoYXNoLmNvbnRhaW5zKGEpKTsKKy8vICAgIEVYUEVDVF9UUlVFKGhh
c2guY29udGFpbnMoYikpOworLy8KKy8vICAgIGhhc2gucmVtb3ZlKGEpOworLy8KKy8vICAgIEVY
UEVDVF9GQUxTRShoYXNoLmNvbnRhaW5zKGEpKTsKKy8vICAgIEVYUEVDVF9UUlVFKGhhc2guY29u
dGFpbnMoYikpOworLy8KKy8vICAgIGhhc2gucmVtb3ZlKGIpOworLy8KKy8vICAgIEVYUEVDVF9G
QUxTRShoYXNoLmNvbnRhaW5zKGEpKTsKKy8vICAgIEVYUEVDVF9GQUxTRShoYXNoLmNvbnRhaW5z
KGIpKTsKKy8vICAgIEVYUEVDVF9UUlVFKGhhc2guaXNFbXB0eSgpKTsKKy8vfQogCiBURVNUKFdU
Rl9WZWN0b3IsIEhhc2hLZXlTdHJpbmcpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386204</attachid>
            <date>2019-12-20 04:59:51 -0800</date>
            <delta_ts>2019-12-20 06:30:08 -0800</delta_ts>
            <desc>gcc build test</desc>
            <filename>media-query-invalidation-consolidated-4-vector-4.patch</filename>
            <type>text/plain</type>
            <size>15211</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaCBiL1NvdXJjZS9XVEYvd3Rm
L1ZlY3Rvckhhc2guaAppbmRleCAyYjU0MzQ0ZjJhMC4uMWY2MDNkMzY3MzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JI
YXNoLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJIYXNoRnVuY3Rpb25zLmgiCiAjaW5j
bHVkZSAiSGFzaFRyYWl0cy5oIgogI2luY2x1ZGUgIkhhc2hlci5oIgorI2luY2x1ZGUgIlZlY3Rv
ci5oIgogCiBuYW1lc3BhY2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMzODRlYjMxZmI4Li4xOWQ3
YjEwNGM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEyLTIwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnZhbGlkYXRlIG9ubHkgYWZm
ZWN0ZWQgZWxlbWVudHMgYWZ0ZXIgbWVkaWEgcXVlcnkgZXZhbHVhdGlvbiBjaGFuZ2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUzOTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBjdXJyZW50bHkg
aW52YWxpZGF0ZSBzdHlsZSBvZiB0aGUgd2hvbGUgdHJlZSB3aGVuIGEgbWVkaWEgcXVlcnkgZXZh
bHVhdGlvbiBjaGFuZ2VzLgorICAgICAgICBXZSBjYW4gZG8gYmV0dGVyIGJ5IGNvbnN0cnVjdGlu
ZyBhbiBpbnZhbGlkYXRpb24gUnVsZVNldCBhbmQgaW52YWxpZGF0aW5nIG9ubHkgdGhvc2UKKyAg
ICAgICAgZWxlbWVudHMgdGhhdCBhcmUgcG90ZW50aWFsbHkgYWZmZWN0ZWQuCisKKyAgICAgICAg
KiBzdHlsZS9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0Ojph
ZGRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpldmFsdXRlRHluYW1p
Y01lZGlhUXVlcnlSdWxlcyk6CisKKyAgICAgICAgQ29uc3RydWN0IGFuZCBjYWNoZSBhbiBpbnZh
bGlkYXRpb24gUnVsZVNldCBhbmQgYXNzb2NpYXRlIHdpdGggYSBzZXQgb2YgbWVkaWEgcXVlcnkg
Y2hhbmdlcy4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlD
b2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVs
ZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQpOgorCisgICAg
ICAgIENvbGxlY3QgUnVsZUZlYXR1cmVzIHdoaWNoIHdlIGxhdGVyIHVzZSB0byBidWlsZCBpbnZh
bGlkYXRpb24gUnVsZVNldC4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1l
ZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdHlsZS9SdWxlU2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RHluYW1p
Y01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlczo6YXBwZW5kKToKKyAgICAgICAgKiBzdHlsZS9T
dHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6ZXZh
bHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVy
Lmg6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6U2NvcGU6OmV2YWx1YXRlTWVkaWFRdWVyaWVzKToKKworICAgICAgICBVc2UgdGhlIGlu
dmFsaWRhdGlvbiBSdWxlU2V0IGZvciBhY2N1cmF0ZSBzdHlsZSBpbnZhbGlkYXRpb24uCisKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKwor
ICAgICAgICBDb2xsZWN0IGludmFsaWRhdGlvbiBSdWxlU2V0cyBmb3IgYXV0aG9yL3VzZXIvdXNl
ciBhZ2VudCBzdHlsZS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oOgor
CiAyMDE5LTEyLTE5ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjUzNzExLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcApp
bmRleCAxNDg3YzFhNjI2YS4uZWNkMzc0ZTM0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3Bw
CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUmIHJ1bGUs
IHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9yCiAgICAgbV9mZWF0dXJl
cy5jb2xsZWN0RmVhdHVyZXMocnVsZURhdGEpOwogCiAgICAgaWYgKG1lZGlhUXVlcnlDb2xsZWN0
b3IpCi0gICAgICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVQb3NpdGlvbklmTmVlZGVk
KHJ1bGVEYXRhLnBvc2l0aW9uKCkpOworICAgICAgICBtZWRpYVF1ZXJ5Q29sbGVjdG9yLT5hZGRS
dWxlSWZOZWVkZWQocnVsZURhdGEpOwogCiAgICAgdW5zaWduZWQgY2xhc3NCdWNrZXRTaXplID0g
MDsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3RvciA9IG51bGxwdHI7CkBAIC00MDUs
OSArNDA1LDEyIEBAIHZvaWQgUnVsZVNldDo6dHJhdmVyc2VSdWxlRGF0YXMoRnVuY3Rpb24mJiBm
dW5jdGlvbikKICAgICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKIH0KIAotUnVs
ZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHluYW1pY01l
ZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCitPcHRp
b25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBSdWxlU2V0OjpldmFsdXRl
RHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0
b3IpCiB7Ci0gICAgYm9vbCBjaGFuZ2VzID0gZmFsc2U7CisgICAgVmVjdG9yPHNpemVfdD4gY2hh
bmdlZFF1ZXJ5SW5kZXhlczsKKyAgICBWZWN0b3I8Y29uc3QgVmVjdG9yPFJ1bGVGZWF0dXJlPio+
IHJ1bGVGZWF0dXJlczsKKworICAgIHNpemVfdCBtZWRpYVF1ZXJ5SW5kZXggPSAwOwogICAgIGZv
ciAoYXV0byYgZHluYW1pY1J1bGVzIDogbV9keW5hbWljTWVkaWFRdWVyeVJ1bGVzKSB7CiAgICAg
ICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgZm9yIChhdXRvJiBzZXQgOiBkeW5hbWlj
UnVsZXMubWVkaWFRdWVyeVNldHMpIHsKQEAgLTQyMCwxOCArNDIzLDM0IEBAIFJ1bGVTZXQ6Ok1l
ZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMoY29uc3QKICAgICAgICAgaWYgKHJlc3VsdCAhPSBkeW5hbWljUnVsZXMucmVzdWx0KSB7
CiAgICAgICAgICAgICBkeW5hbWljUnVsZXMucmVzdWx0ID0gcmVzdWx0OwogICAgICAgICAgICAg
aWYgKGR5bmFtaWNSdWxlcy5yZXF1aXJlc0Z1bGxSZXNldCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHsgeyBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpSZXNldFN0
eWxlIH0gfTsKIAogICAgICAgICAgICAgdHJhdmVyc2VSdWxlRGF0YXMoWyZdKFJ1bGVEYXRhJiBy
dWxlRGF0YSkgewogICAgICAgICAgICAgICAgIGlmICghZHluYW1pY1J1bGVzLmFmZmVjdGVkUnVs
ZVBvc2l0aW9ucy5jb250YWlucyhydWxlRGF0YS5wb3NpdGlvbigpKSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIHJ1bGVEYXRhLnNldEVuYWJsZWQocmVzdWx0
KTsKLSAgICAgICAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICBjaGFuZ2VkUXVlcnlJbmRleGVzLmFwcGVuZChtZWRpYVF1ZXJ5SW5kZXgpOwor
ICAgICAgICAgICAgcnVsZUZlYXR1cmVzLmFwcGVuZCgmZHluYW1pY1J1bGVzLnJ1bGVGZWF0dXJl
cyk7CiAgICAgICAgIH0KKworICAgICAgICArK21lZGlhUXVlcnlJbmRleDsKICAgICB9CiAKLSAg
ICByZXR1cm4gY2hhbmdlcyA/IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29sdmUgOiBN
ZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOworICAgIGlmIChjaGFuZ2VkUXVlcnlJbmRl
eGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8mIHJ1bGVTZXQg
PSBtX21lZGlhUXVlcnlJbnZhbGlkYXRpb25SdWxlU2V0Q2FjaGUuZW5zdXJlKGNoYW5nZWRRdWVy
eUluZGV4ZXMsIFsmXSB7CisgICAgICAgIGF1dG8gcnVsZVNldCA9IG1ha2VVbmlxdWU8UnVsZVNl
dD4oKTsKKyAgICAgICAgZm9yIChhdXRvKiBmZWF0dXJlVmVjdG9yIDogcnVsZUZlYXR1cmVzKSB7
CisgICAgICAgICAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiAqZmVhdHVyZVZlY3RvcikKKyAgICAg
ICAgICAgICAgICBydWxlU2V0LT5hZGRSdWxlKCpmZWF0dXJlLnJ1bGUsIGZlYXR1cmUuc2VsZWN0
b3JJbmRleCwgZmVhdHVyZS5zZWxlY3Rvckxpc3RJbmRleCk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIHJ1bGVTZXQ7CisgICAgfSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgcmV0dXJuIHsg
eyBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpJbnZhbGlkYXRlU3R5
bGUsIHsgcnVsZVNldC5nZXQoKSB9IH0gfTsKIH0KIAogYm9vbCBSdWxlU2V0OjpoYXNTaGFkb3dQ
c2V1ZG9FbGVtZW50UnVsZXMoKSBjb25zdApAQCAtNDcyLDcgKzQ5MSw3IEBAIHZvaWQgUnVsZVNl
dDo6c2hyaW5rVG9GaXQoKQogCiBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjp+TWVkaWFR
dWVyeUNvbGxlY3RvcigpID0gZGVmYXVsdDsKIAotYm9vbCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29s
bGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCogc2V0KQorYm9vbCBSdWxlU2V0
OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeVNl
dCogc2V0KQogewogICAgIGlmICghc2V0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ5NSw3
ICs1MTQsNyBAQCBib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFs
dWF0ZShNZWRpYVF1ZXJ5U2V0KiBzZXQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUnVs
ZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cG9wKE1lZGlhUXVlcnlTZXQqIHNldCkKK3ZvaWQg
UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqIHNl
dCkKIHsKICAgICBpZiAoIXNldCB8fCBkeW5hbWljQ29udGV4dFN0YWNrLmlzRW1wdHkoKSB8fCBz
ZXQgIT0gJmR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLnNldC5nZXQoKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtNTA4LDYgKzUyNyw5IEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rv
cjo6cG9wKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICAgICAgaWYgKGNvbGxlY3REeW5hbWljKSB7
CiAgICAgICAgICAgICBhdXRvJiB0b0FkZCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLmFm
ZmVjdGVkUnVsZVBvc2l0aW9uczsKICAgICAgICAgICAgIHJ1bGVzLmFmZmVjdGVkUnVsZVBvc2l0
aW9ucy5hZGQodG9BZGQuYmVnaW4oKSwgdG9BZGQuZW5kKCkpOworCisgICAgICAgICAgICBydWxl
cy5ydWxlRmVhdHVyZXMgPSBXVEZNb3ZlKGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLnJ1bGVG
ZWF0dXJlcyk7CisgICAgICAgICAgICBydWxlcy5ydWxlRmVhdHVyZXMuc2hyaW5rVG9GaXQoKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBydWxlcy5yZXF1aXJlc0Z1bGxSZXNldCA9IHRy
dWU7CiAKQEAgLTUyNCwxMSArNTQ2LDE0IEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxl
Y3Rvcjo6ZGlkTXV0YXRlUmVzb2x2ZXIoKQogICAgIGRpZE11dGF0ZVJlc29sdmVyV2l0aGluRHlu
YW1pY01lZGlhUXVlcnkgPSB0cnVlOwogfQogCi12b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xs
ZWN0b3I6OmFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCBpbmRleCkKK3ZvaWQgUnVsZVNl
dDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRhJiBy
dWxlRGF0YSkKIHsKICAgICBpZiAoZHluYW1pY0NvbnRleHRTdGFjay5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5hZmZlY3RlZFJ1bGVQ
b3NpdGlvbnMuYXBwZW5kKGluZGV4KTsKKworICAgIGF1dG8mIGNvbnRleHQgPSBkeW5hbWljQ29u
dGV4dFN0YWNrLmxhc3QoKTsKKyAgICBjb250ZXh0LmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBl
bmQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAgY29udGV4dC5ydWxlRmVhdHVyZXMuYXBwZW5k
KHsgcnVsZURhdGEucnVsZSgpLCBydWxlRGF0YS5zZWxlY3RvckluZGV4KCksIHJ1bGVEYXRhLnNl
bGVjdG9yTGlzdEluZGV4KCkgfSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZVNldC5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCmluZGV4IDg0
ZGRmYTZjMTdjLi44NjQ3NDlmN2MxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
UnVsZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaApAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9ySGFzaC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
U3RyaW5nSGFzaC5oPgogCkBAIC00MCw2ICs0MSwyMiBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVu
dHM7CiBuYW1lc3BhY2UgU3R5bGUgewogCiBjbGFzcyBSZXNvbHZlcjsKK2NsYXNzIFJ1bGVTZXQ7
CisKK3N0cnVjdCBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzIHsKKyAgICBlbnVt
IGNsYXNzIFR5cGUgeyBJbnZhbGlkYXRlU3R5bGUsIFJlc2V0U3R5bGUgfTsKKyAgICBUeXBlIHR5
cGU7CisgICAgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiBpbnZhbGlkYXRpb25SdWxlU2V0cyB7
IH07CisKKyAgICB2b2lkIGFwcGVuZChEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2Vz
JiYgb3RoZXIpCisgICAgeworICAgICAgICB0eXBlID0gc3RkOjptYXgodHlwZSwgb3RoZXIudHlw
ZSk7CisgICAgICAgIGlmICh0eXBlID09IFR5cGU6OlJlc2V0U3R5bGUpCisgICAgICAgICAgICBp
bnZhbGlkYXRpb25SdWxlU2V0cy5jbGVhcigpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBp
bnZhbGlkYXRpb25SdWxlU2V0cy5hcHBlbmRWZWN0b3IoV1RGTW92ZShvdGhlci5pbnZhbGlkYXRp
b25SdWxlU2V0cykpOworICAgIH07Cit9OwogCiBjbGFzcyBSdWxlU2V0IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShSdWxlU2V0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02Myw4
ICs4MCw5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1
bmlxdWVfcHRyPFJ1bGVEYXRhVmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKICAgICBzdHJ1Y3QgRHlu
YW1pY01lZGlhUXVlcnlSdWxlcyB7Ci0gICAgICAgIFZlY3RvcjxSZWY8TWVkaWFRdWVyeVNldD4+
IG1lZGlhUXVlcnlTZXRzOworICAgICAgICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+
PiBtZWRpYVF1ZXJ5U2V0czsKICAgICAgICAgSGFzaFNldDxzaXplX3QsIERlZmF1bHRIYXNoPHNp
emVfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8c2l6ZV90Pj4g
YWZmZWN0ZWRSdWxlUG9zaXRpb25zOworICAgICAgICBWZWN0b3I8UnVsZUZlYXR1cmU+IHJ1bGVG
ZWF0dXJlczsKICAgICAgICAgYm9vbCByZXF1aXJlc0Z1bGxSZXNldCB7IGZhbHNlIH07CiAgICAg
ICAgIGJvb2wgcmVzdWx0IHsgdHJ1ZSB9OwogICAgIH07CkBAIC03Niw4ICs5NCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgY29uc3QgYm9vbCBjb2xsZWN0RHluYW1pYyB7IGZhbHNlIH07CiAKICAgICAg
ICAgc3RydWN0IER5bmFtaWNDb250ZXh0IHsKLSAgICAgICAgICAgIFJlZjxNZWRpYVF1ZXJ5U2V0
PiBzZXQ7CisgICAgICAgICAgICBSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4gc2V0OwogICAgICAg
ICAgICAgVmVjdG9yPHNpemVfdD4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zIHsgfTsKKyAgICAgICAg
ICAgIFZlY3RvcjxSdWxlRmVhdHVyZT4gcnVsZUZlYXR1cmVzIHsgfTsKICAgICAgICAgfTsKICAg
ICAgICAgVmVjdG9yPER5bmFtaWNDb250ZXh0PiBkeW5hbWljQ29udGV4dFN0YWNrIHsgfTsKIApA
QCAtODUsMTAgKzEwNCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGlkTXV0YXRlUmVzb2x2
ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVyeSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaGFzVmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMgeyBmYWxzZSB9OwogCi0gICAgICAgIGJvb2wgcHVz
aEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqKTsKLSAgICAgICAgdm9pZCBwb3AoTWVkaWFRdWVy
eVNldCopOworICAgICAgICBib29sIHB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0
Kik7CisgICAgICAgIHZvaWQgcG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKICAgICAgICAgdm9p
ZCBkaWRNdXRhdGVSZXNvbHZlcigpOwotICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlvbklmTmVl
ZGVkKHNpemVfdCk7CisgICAgICAgIHZvaWQgYWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRh
Jik7CiAgICAgfTsKIAogICAgIHZvaWQgYWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRl
bnRzJiwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwpAQCAtMTAzLDggKzEyMiw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25z
dCB7IHJldHVybiBtX2hhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzOyB9CiAKLSAgICBl
bnVtIGNsYXNzIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgeyBOb25lLCBSZXNvbHZlLCBSZXNl
dCB9OwotICAgIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOworICAgIE9wdGlvbmFsPER5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1
bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKIAogICAgIGNvbnN0IFJ1bGVGZWF0dXJl
U2V0JiBmZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXM7IH0KIApAQCAtMTU3LDYg
KzE3NSw3IEBAIHByaXZhdGU6CiAgICAgUnVsZUZlYXR1cmVTZXQgbV9mZWF0dXJlczsKICAgICBi
b29sIG1faGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMgeyBmYWxzZSB9OwogICAgIFZl
Y3RvcjxEeW5hbWljTWVkaWFRdWVyeVJ1bGVzPiBtX2R5bmFtaWNNZWRpYVF1ZXJ5UnVsZXM7Cisg
ICAgSGFzaE1hcDxWZWN0b3I8c2l6ZV90Piwgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFJ1bGVTZXQ+
PiBtX21lZGlhUXVlcnlJbnZhbGlkYXRpb25SdWxlU2V0Q2FjaGU7CiB9OwogCiBpbmxpbmUgY29u
c3QgUnVsZVNldDo6UnVsZURhdGFWZWN0b3IqIFJ1bGVTZXQ6OnRhZ1J1bGVzKGNvbnN0IEF0b21T
dHJpbmcmIGtleSwgYm9vbCBpc0hUTUxOYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVJlc29sdmVyLmNwcAppbmRleCAzNTk0NGQxODY4NC4uNjU1NzI0YmY5ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC02MDcsNyArNjA3LDcgQEAgYm9vbCBSZXNv
bHZlcjo6aGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdAogICAgIHJldHVy
biBtX3J1bGVTZXRzLmhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCk7CiB9CiAKLVJ1
bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgUmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1p
Y01lZGlhUXVlcmllcygpCitPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFu
Z2VzPiBSZXNvbHZlcjo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCkKIHsKICAgICByZXR1
cm4gbV9ydWxlU2V0cy5ldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhtX21lZGlhUXVlcnlF
dmFsdWF0b3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNv
bHZlci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCmluZGV4IDJlZDVm
ZTg1YzkyLi42NjAzNTMzYWE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaApA
QCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgYm9vbCBoYXNWaWV3cG9y
dERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0OwotICAgIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlT
dHlsZVVwZGF0ZVR5cGUgZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCk7CisgICAgT3B0aW9u
YWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gZXZhbHVhdGVEeW5hbWljTWVk
aWFRdWVyaWVzKCk7CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5bGUoUmVmPFN0eWxlUnVsZUtl
eWZyYW1lcz4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggOTBiNjNk
MmRlNDguLjRhZWI0ZGQwNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApAQCAt
NjUxLDE3ICs2NTEsMjAgQEAgdm9pZCBTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1
bmN0aW9uJiYgdGVzdEZ1bmN0aW9uKQogICAgIGlmICghcmVzb2x2ZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gdXBkYXRlVHlwZSA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOwotCi0g
ICAgc3dpdGNoICh1cGRhdGVUeXBlKSB7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5
bGVVcGRhdGVUeXBlOjpOb25lOgorICAgIGF1dG8gZXZhbHVhdGlvbkNoYW5nZXMgPSB0ZXN0RnVu
Y3Rpb24oKnJlc29sdmVyKTsKKyAgICBpZiAoIWV2YWx1YXRpb25DaGFuZ2VzKQogICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNv
bHZlOgotICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgaGF2ZSBhbiBpbnZhbGlkYXRpb24gcnVs
ZXNldCBmb3IgcnVsZXMgaW5zaWRlIGR5bmFtaWMgbWVkaWEgcXVlcmllcy4KLSAgICAgICAgaWYg
KGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCi0g
ICAgICAgICAgICBkb2N1bWVudEVsZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsK
KworICAgIHN3aXRjaCAoZXZhbHVhdGlvbkNoYW5nZXMtPnR5cGUpIHsKKyAgICBjYXNlIER5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OkludmFsaWRhdGVTdHlsZTogewor
ICAgICAgICBJbnZhbGlkYXRvciBpbnZhbGlkYXRvcihldmFsdWF0aW9uQ2hhbmdlcy0+aW52YWxp
ZGF0aW9uUnVsZVNldHMpOworICAgICAgICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAg
aW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxlKCptX3NoYWRvd1Jvb3QpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlw
ZTo6UmVzZXQ6CisgICAgfQorICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hh
bmdlczo6VHlwZTo6UmVzZXRTdHlsZToKICAgICAgICAgc2NoZWR1bGVVcGRhdGUoVXBkYXRlVHlw
ZTo6Q29udGVudHNPckludGVycHJldGF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggMDExYzc5NjFh
NDguLjdlMzJkZjg0NmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5jcHAKQEAgLTE0MSwyNyArMTQxLDI2IEBAIGJvb2wgU2NvcGVSdWxlU2V0czo6aGFzVmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBTY29wZVJ1bGVTZXRzOjpldmFs
dXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFs
dWF0b3IpCitPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBTY29w
ZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5
RXZhbHVhdG9yJiBldmFsdWF0b3IpCiB7Ci0gICAgYXV0byB1cGRhdGVUeXBlID0gUnVsZVNldDo6
TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6Tm9uZTsKKyAgICBPcHRpb25hbDxEeW5hbWljTWVk
aWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBldmFsdWF0aW9uQ2hhbmdlczsKIAotICAgIGF1dG8g
ZXZhbHVhdGUgPSBbJl0oYXV0byYgcnVsZVNldCkgeworICAgIGF1dG8gZXZhbHVhdGUgPSBbJl0o
YXV0byogcnVsZVNldCkgewogICAgICAgICBpZiAoIXJ1bGVTZXQpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGF1dG8gbmV3VXBkYXRlVHlwZSA9IHJ1bGVTZXQtPmV2YWx1dGVE
eW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcik7Ci0gICAgICAgIGlmIChuZXdVcGRhdGVU
eXBlID4gdXBkYXRlVHlwZSkKLSAgICAgICAgICAgIHVwZGF0ZVR5cGUgPSBuZXdVcGRhdGVUeXBl
OwotICAgICAgICByZXR1cm4gdXBkYXRlVHlwZSA9PSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVV
cGRhdGVUeXBlOjpSZXNldDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8g
Y2hhbmdlcyA9IHJ1bGVTZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRv
cikpIHsKKyAgICAgICAgICAgIGlmIChldmFsdWF0aW9uQ2hhbmdlcykKKyAgICAgICAgICAgICAg
ICBldmFsdWF0aW9uQ2hhbmdlcy0+YXBwZW5kKFdURk1vdmUoKmNoYW5nZXMpKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBldmFsdWF0aW9uQ2hhbmdlcyA9IGNoYW5nZXM7Cisg
ICAgICAgIH0KICAgICB9OwogCi0gICAgaWYgKGV2YWx1YXRlKG1fYXV0aG9yU3R5bGUpKQotICAg
ICAgICByZXR1cm4gdXBkYXRlVHlwZTsKLQotICAgIGlmIChldmFsdWF0ZShtX3VzZXJTdHlsZSkp
Ci0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOworICAgIGV2YWx1YXRlKCZhdXRob3JTdHlsZSgp
KTsKKyAgICBldmFsdWF0ZSh1c2VyU3R5bGUoKSk7CisgICAgZXZhbHVhdGUodXNlckFnZW50TWVk
aWFRdWVyeVN0eWxlKCkpOwogCi0gICAgZXZhbHVhdGUobV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5
bGUpOwotICAgIHJldHVybiB1cGRhdGVUeXBlOworICAgIHJldHVybiBldmFsdWF0aW9uQ2hhbmdl
czsKIH0KIAogdm9pZCBTY29wZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25z
dCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgc3R5bGVTaGVldHMsIE1lZGlhUXVlcnlF
dmFsdWF0b3IqIG1lZGl1bSwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYgaW5zcGVjdG9yQ1NTT01X
cmFwcGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKaW5kZXgg
OWRhNzhhMzM4NzcuLjg3OTVlNDgyMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlUnVsZVNldHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlUnVsZVNldHMuaApAQCAtNzksNyArNzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFVz
ZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSgpOwogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVu
dE1lZGlhUXVlcmllcygpIGNvbnN0OwotICAgIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0
ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1
YXRvciYpOworCisgICAgT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdl
cz4gZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRv
ciYpOwogCiAgICAgUnVsZUZlYXR1cmVTZXQmIG11dGFibGVGZWF0dXJlcygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386212</attachid>
            <date>2019-12-20 06:30:08 -0800</date>
            <delta_ts>2019-12-20 07:06:59 -0800</delta_ts>
            <desc>gcc build test</desc>
            <filename>media-query-invalidation-consolidated-4-vector-5.patch</filename>
            <type>text/plain</type>
            <size>17223</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaCBiL1NvdXJjZS9XVEYvd3Rm
L0hhc2hUcmFpdHMuaAppbmRleCBjYzhlNzk4YTZlNy4uODU0NWI0YTYzMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVHJh
aXRzLmgKQEAgLTM4OSw2ICszODksMTQgQEAgc3RydWN0IEN1c3RvbUhhc2hUcmFpdHMgOiBwdWJs
aWMgR2VuZXJpY0hhc2hUcmFpdHM8VD4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1l
IFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KK3N0cnVjdCBIYXNoVHJhaXRzPFZlY3RvcjxULCBp
bmxpbmVDYXBhY2l0eT4+IDogR2VuZXJpY0hhc2hUcmFpdHM8VmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5Pj4geworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gIWlu
bGluZUNhcGFjaXR5OworCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHNsb3QpIHsgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJl
c3NvZihzbG90KSkgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PihXVEY6Okhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBWZWN0b3I8
VCwgaW5saW5lQ2FwYWNpdHk+JiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuaXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUoKTsgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6SGFz
aFRyYWl0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaCBiL1NvdXJj
ZS9XVEYvd3RmL1ZlY3Rvckhhc2guaAppbmRleCAyYjU0MzQ0ZjJhMC4uMWM4NWNhZWU4M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9WZWN0b3JIYXNoLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJIYXNoRnVuY3Rpb25z
LmgiCiAjaW5jbHVkZSAiSGFzaFRyYWl0cy5oIgogI2luY2x1ZGUgIkhhc2hlci5oIgorI2luY2x1
ZGUgIlZlY3Rvci5oIgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNDcsMTMgKzQ4LDEzIEBAIHN0
cnVjdCBWZWN0b3JIYXNoIHsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFy
ZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6
ZV90IGlubGluZUNhcGFjaXR5Pgotc3RydWN0IEhhc2hUcmFpdHM8VmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5Pj4gOiBHZW5lcmljSGFzaFRyYWl0czxWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+PiB7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSAhaW5saW5lQ2Fw
YWNpdHk7Ci0KLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5PiYgc2xvdCkgeyBuZXcgKE5vdE51bGwsIHN0ZDo6YWRkcmVzc29mKHNs
b3QpKSBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVl
KTsgfQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFZlY3RvcjxULCBpbmxp
bmVDYXBhY2l0eT4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpOyB9Ci19OworLy90ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+
CisvL3N0cnVjdCBIYXNoVHJhaXRzPFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4+IDogR2VuZXJp
Y0hhc2hUcmFpdHM8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5Pj4geworLy8gICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSAhaW5saW5lQ2FwYWNpdHk7CisvLworLy8g
ICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eT4mIHNsb3QpIHsgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihzbG90KSkgVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5PihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk7IH0KKy8vICAg
IHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0
eT4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cisv
L307CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KIHN0cnVj
dCBEZWZhdWx0SGFzaDxWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+PiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzM4NGViMzFmYjguLjE5ZDdiMTA0YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIw
MTktMTItMjAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIElu
dmFsaWRhdGUgb25seSBhZmZlY3RlZCBlbGVtZW50cyBhZnRlciBtZWRpYSBxdWVyeSBldmFsdWF0
aW9uIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTM5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdlIGN1cnJlbnRseSBpbnZhbGlkYXRlIHN0eWxlIG9mIHRoZSB3aG9sZSB0cmVlIHdoZW4g
YSBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGNoYW5nZXMuCisgICAgICAgIFdlIGNhbiBkbyBiZXR0
ZXIgYnkgY29uc3RydWN0aW5nIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFuZCBpbnZhbGlkYXRp
bmcgb25seSB0aG9zZQorICAgICAgICBlbGVtZW50cyB0aGF0IGFyZSBwb3RlbnRpYWxseSBhZmZl
Y3RlZC4KKworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVT
ZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKworICAgICAgICBDb25zdHJ1Y3Qg
YW5kIGNhY2hlIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFuZCBhc3NvY2lhdGUgd2l0aCBhIHNl
dCBvZiBtZWRpYSBxdWVyeSBjaGFuZ2VzLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVs
ZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1bGVJ
Zk5lZWRlZCk6CisKKyAgICAgICAgQ29sbGVjdCBSdWxlRmVhdHVyZXMgd2hpY2ggd2UgbGF0ZXIg
dXNlIHRvIGJ1aWxkIGludmFsaWRhdGlvbiBSdWxlU2V0LgorCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVk
ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjphcHBlbmQpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OlJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMpOgorCisg
ICAgICAgIFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3VyYXRlIHN0eWxlIGlu
dmFsaWRhdGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0ZUR5bmFtaWNNZWRp
YVF1ZXJ5UnVsZXMpOgorCisgICAgICAgIENvbGxlY3QgaW52YWxpZGF0aW9uIFJ1bGVTZXRzIGZv
ciBhdXRob3IvdXNlci91c2VyIGFnZW50IHN0eWxlLgorCisgICAgICAgICogc3R5bGUvU3R5bGVT
Y29wZVJ1bGVTZXRzLmg6CisKIDIwMTktMTItMTkgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTM3MTEuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1J1bGVTZXQuY3BwCmluZGV4IDE0ODdjMWE2MjZhLi5lY2QzNzRlMzQ1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZVNldC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxl
KFN0eWxlUnVsZSYgcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5zaWduZWQgc2VsZWN0
b3IKICAgICBtX2ZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlcyhydWxlRGF0YSk7CiAKICAgICBpZiAo
bWVkaWFRdWVyeUNvbGxlY3RvcikKLSAgICAgICAgbWVkaWFRdWVyeUNvbGxlY3Rvci0+YWRkUnVs
ZVBvc2l0aW9uSWZOZWVkZWQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAgICAgIG1lZGlhUXVl
cnlDb2xsZWN0b3ItPmFkZFJ1bGVJZk5lZWRlZChydWxlRGF0YSk7CiAKICAgICB1bnNpZ25lZCBj
bGFzc0J1Y2tldFNpemUgPSAwOwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBpZFNlbGVjdG9yID0g
bnVsbHB0cjsKQEAgLTQwNSw5ICs0MDUsMTIgQEAgdm9pZCBSdWxlU2V0Ojp0cmF2ZXJzZVJ1bGVE
YXRhcyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQogICAgIHRyYXZlcnNlVmVjdG9yKG1fdW5pdmVyc2Fs
UnVsZXMpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJ1bGVTZXQ6
OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3Im
IGV2YWx1YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+
IFJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlF
dmFsdWF0b3ImIGV2YWx1YXRvcikKIHsKLSAgICBib29sIGNoYW5nZXMgPSBmYWxzZTsKKyAgICBW
ZWN0b3I8c2l6ZV90PiBjaGFuZ2VkUXVlcnlJbmRleGVzOworICAgIFZlY3Rvcjxjb25zdCBWZWN0
b3I8UnVsZUZlYXR1cmU+Kj4gcnVsZUZlYXR1cmVzOworCisgICAgc2l6ZV90IG1lZGlhUXVlcnlJ
bmRleCA9IDA7CiAgICAgZm9yIChhdXRvJiBkeW5hbWljUnVsZXMgOiBtX2R5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMpIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAgICAgICBmb3IgKGF1
dG8mIHNldCA6IGR5bmFtaWNSdWxlcy5tZWRpYVF1ZXJ5U2V0cykgewpAQCAtNDIwLDE4ICs0MjMs
MzQgQEAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRl
RHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdAogICAgICAgICBpZiAocmVzdWx0ICE9IGR5bmFt
aWNSdWxlcy5yZXN1bHQpIHsKICAgICAgICAgICAgIGR5bmFtaWNSdWxlcy5yZXN1bHQgPSByZXN1
bHQ7CiAgICAgICAgICAgICBpZiAoZHluYW1pY1J1bGVzLnJlcXVpcmVzRnVsbFJlc2V0KQotICAg
ICAgICAgICAgICAgIHJldHVybiBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDsKKyAg
ICAgICAgICAgICAgICByZXR1cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5n
ZXM6OlR5cGU6OlJlc2V0U3R5bGUgfSB9OwogCiAgICAgICAgICAgICB0cmF2ZXJzZVJ1bGVEYXRh
cyhbJl0oUnVsZURhdGEmIHJ1bGVEYXRhKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFkeW5hbWlj
UnVsZXMuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmNvbnRhaW5zKHJ1bGVEYXRhLnBvc2l0aW9uKCkp
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgcnVsZURhdGEu
c2V0RW5hYmxlZChyZXN1bHQpOwotICAgICAgICAgICAgICAgIGNoYW5nZXMgPSB0cnVlOwogICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGNoYW5nZWRRdWVyeUluZGV4ZXMuYXBwZW5kKG1l
ZGlhUXVlcnlJbmRleCk7CisgICAgICAgICAgICBydWxlRmVhdHVyZXMuYXBwZW5kKCZkeW5hbWlj
UnVsZXMucnVsZUZlYXR1cmVzKTsKICAgICAgICAgfQorCisgICAgICAgICsrbWVkaWFRdWVyeUlu
ZGV4OwogICAgIH0KIAotICAgIHJldHVybiBjaGFuZ2VzID8gTWVkaWFRdWVyeVN0eWxlVXBkYXRl
VHlwZTo6UmVzb2x2ZSA6IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU7CisgICAgaWYg
KGNoYW5nZWRRdWVyeUluZGV4ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgYXV0byYgcnVsZVNldCA9IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1bGVTZXRDYWNoZS5l
bnN1cmUoY2hhbmdlZFF1ZXJ5SW5kZXhlcywgWyZdIHsKKyAgICAgICAgYXV0byBydWxlU2V0ID0g
bWFrZVVuaXF1ZTxSdWxlU2V0PigpOworICAgICAgICBmb3IgKGF1dG8qIGZlYXR1cmVWZWN0b3Ig
OiBydWxlRmVhdHVyZXMpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZmVhdHVyZSA6ICpmZWF0
dXJlVmVjdG9yKQorICAgICAgICAgICAgICAgIHJ1bGVTZXQtPmFkZFJ1bGUoKmZlYXR1cmUucnVs
ZSwgZmVhdHVyZS5zZWxlY3RvckluZGV4LCBmZWF0dXJlLnNlbGVjdG9yTGlzdEluZGV4KTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gcnVsZVNldDsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7
CisKKyAgICByZXR1cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5
cGU6OkludmFsaWRhdGVTdHlsZSwgeyBydWxlU2V0LmdldCgpIH0gfSB9OwogfQogCiBib29sIFJ1
bGVTZXQ6Omhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBAIC00NzIsNyArNDkx
LDcgQEAgdm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlD
b2xsZWN0b3I6On5NZWRpYVF1ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0OwogCi1ib29sIFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBz
ZXQpCitib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShj
b25zdCBNZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtNDk1LDcgKzUxNCw3IEBAIGJvb2wgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxl
Y3Rvcjo6cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVy
eVNldCogc2V0KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoY29uc3Qg
TWVkaWFRdWVyeVNldCogc2V0KQogewogICAgIGlmICghc2V0IHx8IGR5bmFtaWNDb250ZXh0U3Rh
Y2suaXNFbXB0eSgpIHx8IHNldCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuc2V0Lmdl
dCgpKQogICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTI3LDkgQEAgdm9pZCBSdWxlU2V0OjpN
ZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQogICAgICAgICBpZiAo
Y29sbGVjdER5bmFtaWMpIHsKICAgICAgICAgICAgIGF1dG8mIHRvQWRkID0gZHluYW1pY0NvbnRl
eHRTdGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zOwogICAgICAgICAgICAgcnVsZXMu
YWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFkZCh0b0FkZC5iZWdpbigpLCB0b0FkZC5lbmQoKSk7CisK
KyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJlcyA9IFdURk1vdmUoZHluYW1pY0NvbnRleHRT
dGFjay5sYXN0KCkucnVsZUZlYXR1cmVzKTsKKyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJl
cy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJ1bGVzLnJlcXVp
cmVzRnVsbFJlc2V0ID0gdHJ1ZTsKIApAQCAtNTI0LDExICs1NDYsMTQgQEAgdm9pZCBSdWxlU2V0
OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpkaWRNdXRhdGVSZXNvbHZlcigpCiAgICAgZGlkTXV0YXRl
UmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVyeSA9IHRydWU7CiB9CiAKLXZvaWQgUnVsZVNl
dDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90IGlu
ZGV4KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQo
Y29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAgIGlmIChkeW5hbWljQ29udGV4dFN0YWNr
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGR5bmFtaWNDb250ZXh0U3RhY2subGFz
dCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBlbmQoaW5kZXgpOworCisgICAgYXV0byYgY29u
dGV4dCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpOworICAgIGNvbnRleHQuYWZmZWN0ZWRS
dWxlUG9zaXRpb25zLmFwcGVuZChydWxlRGF0YS5wb3NpdGlvbigpKTsKKyAgICBjb250ZXh0LnJ1
bGVGZWF0dXJlcy5hcHBlbmQoeyBydWxlRGF0YS5ydWxlKCksIHJ1bGVEYXRhLnNlbGVjdG9ySW5k
ZXgoKSwgcnVsZURhdGEuc2VsZWN0b3JMaXN0SW5kZXgoKSB9KTsKIH0KIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
dWxlU2V0LmgKaW5kZXggODRkZGZhNmMxN2MuLjg2NDc0OWY3YzE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVs
ZVNldC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3JIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTQwLDYgKzQxLDIyIEBAIGNsYXNz
IFN0eWxlU2hlZXRDb250ZW50czsKIG5hbWVzcGFjZSBTdHlsZSB7CiAKIGNsYXNzIFJlc29sdmVy
OworY2xhc3MgUnVsZVNldDsKKworc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNo
YW5nZXMgeworICAgIGVudW0gY2xhc3MgVHlwZSB7IEludmFsaWRhdGVTdHlsZSwgUmVzZXRTdHls
ZSB9OworICAgIFR5cGUgdHlwZTsKKyAgICBWZWN0b3I8Y29uc3QgUnVsZVNldCosIDE+IGludmFs
aWRhdGlvblJ1bGVTZXRzIHsgfTsKKworICAgIHZvaWQgYXBwZW5kKER5bmFtaWNNZWRpYVF1ZXJ5
RXZhbHVhdGlvbkNoYW5nZXMmJiBvdGhlcikKKyAgICB7CisgICAgICAgIHR5cGUgPSBzdGQ6Om1h
eCh0eXBlLCBvdGhlci50eXBlKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVHlwZTo6UmVzZXRTdHls
ZSkKKyAgICAgICAgICAgIGludmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGludmFsaWRhdGlvblJ1bGVTZXRzLmFwcGVuZFZlY3RvcihXVEZNb3Zl
KG90aGVyLmludmFsaWRhdGlvblJ1bGVTZXRzKSk7CisgICAgfTsKK307CiAKIGNsYXNzIFJ1bGVT
ZXQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1bGVTZXQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKQEAgLTYzLDggKzgwLDkgQEAgcHVibGljOgogICAgIHR5cGVkZWYgSGFzaE1hcDxB
dG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZURhdGFWZWN0b3I+PiBBdG9tUnVsZU1hcDsK
IAogICAgIHN0cnVjdCBEeW5hbWljTWVkaWFRdWVyeVJ1bGVzIHsKLSAgICAgICAgVmVjdG9yPFJl
ZjxNZWRpYVF1ZXJ5U2V0Pj4gbWVkaWFRdWVyeVNldHM7CisgICAgICAgIFZlY3RvcjxSZWY8Y29u
c3QgTWVkaWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOwogICAgICAgICBIYXNoU2V0PHNpemVf
dCwgRGVmYXVsdEhhc2g8c2l6ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFz
aFRyYWl0czxzaXplX3Q+PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CisgICAgICAgIFZlY3RvcjxS
dWxlRmVhdHVyZT4gcnVsZUZlYXR1cmVzOwogICAgICAgICBib29sIHJlcXVpcmVzRnVsbFJlc2V0
IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCByZXN1bHQgeyB0cnVlIH07CiAgICAgfTsKQEAgLTc2
LDggKzk0LDkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBib29sIGNvbGxlY3REeW5hbWljIHsg
ZmFsc2UgfTsKIAogICAgICAgICBzdHJ1Y3QgRHluYW1pY0NvbnRleHQgewotICAgICAgICAgICAg
UmVmPE1lZGlhUXVlcnlTZXQ+IHNldDsKKyAgICAgICAgICAgIFJlZjxjb25zdCBNZWRpYVF1ZXJ5
U2V0PiBzZXQ7CiAgICAgICAgICAgICBWZWN0b3I8c2l6ZV90PiBhZmZlY3RlZFJ1bGVQb3NpdGlv
bnMgeyB9OworICAgICAgICAgICAgVmVjdG9yPFJ1bGVGZWF0dXJlPiBydWxlRmVhdHVyZXMgeyB9
OwogICAgICAgICB9OwogICAgICAgICBWZWN0b3I8RHluYW1pY0NvbnRleHQ+IGR5bmFtaWNDb250
ZXh0U3RhY2sgeyB9OwogCkBAIC04NSwxMCArMTA0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgYm9v
bCBkaWRNdXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5IHsgZmFsc2UgfTsKICAg
ICAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcyB7IGZhbHNlIH07CiAK
LSAgICAgICAgYm9vbCBwdXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCopOwotICAgICAgICB2
b2lkIHBvcChNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRlKGNv
bnN0IE1lZGlhUXVlcnlTZXQqKTsKKyAgICAgICAgdm9pZCBwb3AoY29uc3QgTWVkaWFRdWVyeVNl
dCopOwogICAgICAgICB2b2lkIGRpZE11dGF0ZVJlc29sdmVyKCk7Ci0gICAgICAgIHZvaWQgYWRk
UnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90KTsKKyAgICAgICAgdm9pZCBhZGRSdWxlSWZOZWVk
ZWQoY29uc3QgUnVsZURhdGEmKTsKICAgICB9OwogCiAgICAgdm9pZCBhZGRSdWxlc0Zyb21TaGVl
dChTdHlsZVNoZWV0Q29udGVudHMmLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CkBAIC0x
MDMsOCArMTIyLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1l
ZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1
ZXJpZXM7IH0KIAotICAgIGVudW0gY2xhc3MgTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSB7IE5v
bmUsIFJlc29sdmUsIFJlc2V0IH07Ci0gICAgTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFs
dXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7Cisg
ICAgT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gZXZhbHV0ZUR5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwogCiAgICAg
Y29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJl
czsgfQogCkBAIC0xNTcsNiArMTc1LDcgQEAgcHJpdmF0ZToKICAgICBSdWxlRmVhdHVyZVNldCBt
X2ZlYXR1cmVzOwogICAgIGJvb2wgbV9oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcyB7
IGZhbHNlIH07CiAgICAgVmVjdG9yPER5bmFtaWNNZWRpYVF1ZXJ5UnVsZXM+IG1fZHluYW1pY01l
ZGlhUXVlcnlSdWxlczsKKyAgICBIYXNoTWFwPFZlY3RvcjxzaXplX3Q+LCBzdGQ6OnVuaXF1ZV9w
dHI8Y29uc3QgUnVsZVNldD4+IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1bGVTZXRDYWNoZTsK
IH07CiAKIGlubGluZSBjb25zdCBSdWxlU2V0OjpSdWxlRGF0YVZlY3RvciogUnVsZVNldDo6dGFn
UnVsZXMoY29uc3QgQXRvbVN0cmluZyYga2V5LCBib29sIGlzSFRNTE5hbWUpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM1OTQ0ZDE4Njg0Li42NTU3MjRi
ZjlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTYwNyw3ICs2
MDcsNyBAQCBib29sIFJlc29sdmVyOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcnVsZVNldHMuaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1
ZXJpZXMoKTsKIH0KIAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSZXNvbHZl
cjo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCkKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1
ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IFJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJp
ZXMoKQogewogICAgIHJldHVybiBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1
bGVzKG1fbWVkaWFRdWVyeUV2YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVyLmgKaW5kZXggMmVkNWZlODVjOTIuLjY2MDM1MzNhYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAg
ICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVs
ZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJp
ZXMoKTsKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBl
dmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsKIAogICAgIHZvaWQgYWRkS2V5ZnJhbWVTdHls
ZShSZWY8U3R5bGVSdWxlS2V5ZnJhbWVzPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
LmNwcAppbmRleCA5MGI2M2QyZGU0OC4uNGFlYjRkZDA1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGUuY3BwCkBAIC02NTEsMTcgKzY1MSwyMCBAQCB2b2lkIFNjb3BlOjpldmFsdWF0ZU1l
ZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAgaWYgKCFyZXNvbHZl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB1cGRhdGVUeXBlID0gdGVzdEZ1bmN0aW9u
KCpyZXNvbHZlcik7Ci0KLSAgICBzd2l0Y2ggKHVwZGF0ZVR5cGUpIHsKLSAgICBjYXNlIFJ1bGVT
ZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU6CisgICAgYXV0byBldmFsdWF0aW9u
Q2hhbmdlcyA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOworICAgIGlmICghZXZhbHVhdGlvbkNo
YW5nZXMpCiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHls
ZVVwZGF0ZVR5cGU6OlJlc29sdmU6Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBoYXZlIGFu
IGludmFsaWRhdGlvbiBydWxlc2V0IGZvciBydWxlcyBpbnNpZGUgZHluYW1pYyBtZWRpYSBxdWVy
aWVzLgotICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0gbV9kb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50RWxlbWVudC0+aW52YWxpZGF0ZVN0
eWxlRm9yU3VidHJlZSgpOworCisgICAgc3dpdGNoIChldmFsdWF0aW9uQ2hhbmdlcy0+dHlwZSkg
eworICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6SW52
YWxpZGF0ZVN0eWxlOiB7CisgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGV2YWx1YXRp
b25DaGFuZ2VzLT5pbnZhbGlkYXRpb25SdWxlU2V0cyk7CisgICAgICAgIGlmIChtX3NoYWRvd1Jv
b3QpCisgICAgICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUoKm1fc2hhZG93Um9v
dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHls
ZShtX2RvY3VtZW50KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1
ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDoKKyAgICB9CisgICAgY2FzZSBEeW5hbWljTWVkaWFR
dWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpSZXNldFN0eWxlOgogICAgICAgICBzY2hlZHVs
ZVVwZGF0ZShVcGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24pOwogICAgICAgICBi
cmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNw
cAppbmRleCAwMTFjNzk2MWE0OC4uN2UzMmRmODQ2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAtMTQxLDI3ICsxNDEsMjYgQEAgYm9vbCBTY29w
ZVJ1bGVTZXRzOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFNj
b3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVl
cnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVh
dGlvbkNoYW5nZXM+IFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVz
KGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKIHsKLSAgICBhdXRvIHVwZGF0
ZVR5cGUgPSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOworICAgIE9w
dGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1YXRpb25DaGFu
Z2VzOwogCi0gICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0KSB7CisgICAgYXV0
byBldmFsdWF0ZSA9IFsmXShhdXRvKiBydWxlU2V0KSB7CiAgICAgICAgIGlmICghcnVsZVNldCkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgYXV0byBuZXdVcGRhdGVUeXBlID0g
cnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9yKTsKLSAgICAg
ICAgaWYgKG5ld1VwZGF0ZVR5cGUgPiB1cGRhdGVUeXBlKQotICAgICAgICAgICAgdXBkYXRlVHlw
ZSA9IG5ld1VwZGF0ZVR5cGU7Ci0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlID09IFJ1bGVTZXQ6
Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBpZiAoYXV0byBjaGFuZ2VzID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMoZXZhbHVhdG9yKSkgeworICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25DaGFuZ2Vz
KQorICAgICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFuZ2VzLT5hcHBlbmQoV1RGTW92ZSgqY2hh
bmdlcykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFu
Z2VzID0gY2hhbmdlczsKKyAgICAgICAgfQogICAgIH07CiAKLSAgICBpZiAoZXZhbHVhdGUobV9h
dXRob3JTdHlsZSkpCi0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOwotCi0gICAgaWYgKGV2YWx1
YXRlKG1fdXNlclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgZXZhbHVh
dGUoJmF1dGhvclN0eWxlKCkpOworICAgIGV2YWx1YXRlKHVzZXJTdHlsZSgpKTsKKyAgICBldmFs
dWF0ZSh1c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKSk7CiAKLSAgICBldmFsdWF0ZShtX3VzZXJB
Z2VudE1lZGlhUXVlcnlTdHlsZSk7Ci0gICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgcmV0dXJu
IGV2YWx1YXRpb25DaGFuZ2VzOwogfQogCiB2b2lkIFNjb3BlUnVsZVNldHM6OmFwcGVuZEF1dGhv
clN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiBzdHlsZVNo
ZWV0cywgTWVkaWFRdWVyeUV2YWx1YXRvciogbWVkaXVtLCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJz
JiBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuaAppbmRleCA5ZGE3OGEzMzg3Ny4uODc5NWU0ODIyMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC03OSw3ICs3OSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKICAgICBib29sIGhh
c1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6TWVk
aWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25z
dCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVy
eUV2YWx1YXRpb25DaGFuZ2VzPiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBSdWxlRmVhdHVyZVNldCYgbXV0YWJsZUZlYXR1
cmVzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386216</attachid>
            <date>2019-12-20 07:06:59 -0800</date>
            <delta_ts>2019-12-21 09:24:44 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated-5.patch</filename>
            <type>text/plain</type>
            <size>17650</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOWMwMDU5YTcyODcuLjdlNjdkNmRhOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5
LTEyLTIwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnZh
bGlkYXRlIG9ubHkgYWZmZWN0ZWQgZWxlbWVudHMgYWZ0ZXIgbWVkaWEgcXVlcnkgZXZhbHVhdGlv
biBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDUzOTIKKworICAgICAgICBSZXZpZXdlZCBieSBaYWxhbiBCdWp0YXMuCisKKyAgICAgICAg
Rml4IEdDQyBidWlsZCBlcnJvcgorCisgICAgICAgIEVycm9yOiBwYXJ0aWFsIHNwZWNpYWxpemF0
aW9uIG9mIOKAmHN0cnVjdCBXVEY6Okhhc2hUcmFpdHM8V1RGOjpWZWN0b3I8VSwgb3RoZXJDYXBh
Y2l0eSwgV1RGOjpDcmFzaE9uT3ZlcmZsb3csIDE2PiA+4oCZCisgICAgICAgICAgICAgICBhZnRl
ciBpbnN0YW50aWF0aW9uIG9mIOKAmHN0cnVjdCBXVEY6Okhhc2hUcmFpdHM8V1RGOjpWZWN0b3I8
V1RGOjpTdHJpbmc+ID7igJkKKworICAgICAgICAqIHd0Zi9IYXNoVHJhaXRzLmg6CisgICAgICAg
ICogd3RmL1ZlY3Rvckhhc2guaDoKKworICAgICAgICBNb3ZlIHRvIEhhc2hUcmFpdHMgdG8gSGFz
aFRyYWl0cy5oIHNvIGl0IGdldHMgc3BlY2lhbGl6ZWQgYmVmb3JlIGFueSBpbnN0YW50aWF0aW9u
LgorCiAyMDE5LTEyLTE5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbGxvdyBWZWN0b3JzIGFzIGhhc2gga2V5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSGFzaFRyYWl0cy5oIGIvU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCmluZGV4IGNjOGU3
OThhNmU3Li44NTQ1YjRhNjMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRyYWl0
cy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaApAQCAtMzg5LDYgKzM4OSwxNCBA
QCBzdHJ1Y3QgQ3VzdG9tSGFzaFRyYWl0cyA6IHB1YmxpYyBHZW5lcmljSGFzaFRyYWl0czxUPiB7
CiAgICAgfQogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
Pgorc3RydWN0IEhhc2hUcmFpdHM8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5Pj4gOiBHZW5lcmlj
SGFzaFRyYWl0czxWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+PiB7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSAhaW5saW5lQ2FwYWNpdHk7CisKKyAgICBzdGF0
aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiYg
c2xvdCkgeyBuZXcgKE5vdE51bGwsIHN0ZDo6YWRkcmVzc29mKHNsb3QpKSBWZWN0b3I8VCwgaW5s
aW5lQ2FwYWNpdHk+KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQorICAgIHN0YXRpYyBi
b29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHZhbHVl
KSB7IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Cit9OworCiB9IC8v
IG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpIYXNoVHJhaXRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVmVjdG9ySGFzaC5oIGIvU291cmNlL1dURi93dGYvVmVjdG9ySGFzaC5oCmlu
ZGV4IDJiNTQzNDRmMmEwLi5kZjgyM2QwZjAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VmVjdG9ySGFzaC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvckhhc2guaApAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIkhhc2hGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJIYXNoVHJhaXRz
LmgiCiAjaW5jbHVkZSAiSGFzaGVyLmgiCisjaW5jbHVkZSAiVmVjdG9yLmgiCiAKIG5hbWVzcGFj
ZSBXVEYgewogCkBAIC00NywxNCArNDgsNiBAQCBzdHJ1Y3QgVmVjdG9ySGFzaCB7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
IH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KLXN0cnVj
dCBIYXNoVHJhaXRzPFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4+IDogR2VuZXJpY0hhc2hUcmFp
dHM8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5Pj4gewotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gIWlubGluZUNhcGFjaXR5OwotCi0gICAgc3RhdGljIHZvaWQg
Y29uc3RydWN0RGVsZXRlZFZhbHVlKFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHNsb3QpIHsg
bmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihzbG90KSkgVmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5PihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRWYWx1ZShjb25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiB2YWx1ZSkgeyByZXR1
cm4gdmFsdWUuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQotfTsKLQogdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5Pgogc3RydWN0IERlZmF1bHRIYXNoPFZlY3Rv
cjxULCBpbmxpbmVDYXBhY2l0eT4+IHsKICAgICB1c2luZyBIYXNoID0gVmVjdG9ySGFzaDxULCBp
bmxpbmVDYXBhY2l0eT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM4NGViMzFmYjguLjEwZTgyZDMxOTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTktMTItMjAgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIEludmFsaWRhdGUgb25seSBhZmZlY3RlZCBlbGVt
ZW50cyBhZnRlciBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTM5MgorCisgICAgICAgIFJldmll
d2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICBXZSBjdXJyZW50bHkgaW52YWxpZGF0ZSBz
dHlsZSBvZiB0aGUgd2hvbGUgdHJlZSB3aGVuIGEgbWVkaWEgcXVlcnkgZXZhbHVhdGlvbiBjaGFu
Z2VzLgorICAgICAgICBXZSBjYW4gZG8gYmV0dGVyIGJ5IGNvbnN0cnVjdGluZyBhbiBpbnZhbGlk
YXRpb24gUnVsZVNldCBhbmQgaW52YWxpZGF0aW5nIG9ubHkgdGhvc2UKKyAgICAgICAgZWxlbWVu
dHMgdGhhdCBhcmUgcG90ZW50aWFsbHkgYWZmZWN0ZWQuCisKKyAgICAgICAgKiBzdHlsZS9SdWxl
U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjphZGRSdWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlS
dWxlcyk6CisKKyAgICAgICAgQ29uc3RydWN0IGFuZCBjYWNoZSBhbiBpbnZhbGlkYXRpb24gUnVs
ZVNldCBhbmQgYXNzb2NpYXRlIHdpdGggYSBzZXQgb2YgbWVkaWEgcXVlcnkgY2hhbmdlcy4KKwor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1
c2hBbmRFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFR
dWVyeUNvbGxlY3Rvcjo6cG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpN
ZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRSdWxlSWZOZWVkZWQpOgorCisgICAgICAgIENvbGxlY3Qg
UnVsZUZlYXR1cmVzIHdoaWNoIHdlIGxhdGVyIHVzZSB0byBidWlsZCBpbnZhbGlkYXRpb24gUnVs
ZVNldC4KKworICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xs
ZWN0b3I6OmFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdHls
ZS9SdWxlU2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RHluYW1pY01lZGlhUXVlcnlF
dmFsdWF0aW9uQ2hhbmdlczo6YXBwZW5kKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6ZXZhbHVhdGVEeW5hbWlj
TWVkaWFRdWVyaWVzKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVyLmg6CisgICAgICAg
ICogc3R5bGUvU3R5bGVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGU6
OmV2YWx1YXRlTWVkaWFRdWVyaWVzKToKKworICAgICAgICBVc2UgdGhlIGludmFsaWRhdGlvbiBS
dWxlU2V0IGZvciBhY2N1cmF0ZSBzdHlsZSBpbnZhbGlkYXRpb24uCisKKyAgICAgICAgKiBzdHls
ZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3Bl
UnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKworICAgICAgICBDb2xs
ZWN0IGludmFsaWRhdGlvbiBSdWxlU2V0cyBmb3IgYXV0aG9yL3VzZXIvdXNlciBhZ2VudCBzdHls
ZS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oOgorCiAyMDE5LTEyLTE5
ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjUzNzExLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVs
ZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcAppbmRleCAxNDg3YzFh
NjI2YS4uZWNkMzc0ZTM0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVT
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCkBAIC05NSw3ICs5
NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUmIHJ1bGUsIHVuc2lnbmVkIHNl
bGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9yCiAgICAgbV9mZWF0dXJlcy5jb2xsZWN0RmVh
dHVyZXMocnVsZURhdGEpOwogCiAgICAgaWYgKG1lZGlhUXVlcnlDb2xsZWN0b3IpCi0gICAgICAg
IG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHJ1bGVEYXRhLnBv
c2l0aW9uKCkpOworICAgICAgICBtZWRpYVF1ZXJ5Q29sbGVjdG9yLT5hZGRSdWxlSWZOZWVkZWQo
cnVsZURhdGEpOwogCiAgICAgdW5zaWduZWQgY2xhc3NCdWNrZXRTaXplID0gMDsKICAgICBjb25z
dCBDU1NTZWxlY3RvciogaWRTZWxlY3RvciA9IG51bGxwdHI7CkBAIC00MDUsOSArNDA1LDEyIEBA
IHZvaWQgUnVsZVNldDo6dHJhdmVyc2VSdWxlRGF0YXMoRnVuY3Rpb24mJiBmdW5jdGlvbikKICAg
ICB0cmF2ZXJzZVZlY3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKIH0KIAotUnVsZVNldDo6TWVkaWFR
dWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxlU2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxl
cyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCitPcHRpb25hbDxEeW5hbWlj
TWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBSdWxlU2V0OjpldmFsdXRlRHluYW1pY01lZGlh
UXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCiB7Ci0gICAg
Ym9vbCBjaGFuZ2VzID0gZmFsc2U7CisgICAgVmVjdG9yPHNpemVfdD4gY2hhbmdlZFF1ZXJ5SW5k
ZXhlczsKKyAgICBWZWN0b3I8Y29uc3QgVmVjdG9yPFJ1bGVGZWF0dXJlPio+IHJ1bGVGZWF0dXJl
czsKKworICAgIHNpemVfdCBtZWRpYVF1ZXJ5SW5kZXggPSAwOwogICAgIGZvciAoYXV0byYgZHlu
YW1pY1J1bGVzIDogbV9keW5hbWljTWVkaWFRdWVyeVJ1bGVzKSB7CiAgICAgICAgIGJvb2wgcmVz
dWx0ID0gdHJ1ZTsKICAgICAgICAgZm9yIChhdXRvJiBzZXQgOiBkeW5hbWljUnVsZXMubWVkaWFR
dWVyeVNldHMpIHsKQEAgLTQyMCwxOCArNDIzLDM0IEBAIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHls
ZVVwZGF0ZVR5cGUgUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QK
ICAgICAgICAgaWYgKHJlc3VsdCAhPSBkeW5hbWljUnVsZXMucmVzdWx0KSB7CiAgICAgICAgICAg
ICBkeW5hbWljUnVsZXMucmVzdWx0ID0gcmVzdWx0OwogICAgICAgICAgICAgaWYgKGR5bmFtaWNS
dWxlcy5yZXF1aXJlc0Z1bGxSZXNldCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFRdWVy
eVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyBEeW5h
bWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpSZXNldFN0eWxlIH0gfTsKIAog
ICAgICAgICAgICAgdHJhdmVyc2VSdWxlRGF0YXMoWyZdKFJ1bGVEYXRhJiBydWxlRGF0YSkgewog
ICAgICAgICAgICAgICAgIGlmICghZHluYW1pY1J1bGVzLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5j
b250YWlucyhydWxlRGF0YS5wb3NpdGlvbigpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICAgIHJ1bGVEYXRhLnNldEVuYWJsZWQocmVzdWx0KTsKLSAgICAgICAg
ICAgICAgICBjaGFuZ2VzID0gdHJ1ZTsKICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBj
aGFuZ2VkUXVlcnlJbmRleGVzLmFwcGVuZChtZWRpYVF1ZXJ5SW5kZXgpOworICAgICAgICAgICAg
cnVsZUZlYXR1cmVzLmFwcGVuZCgmZHluYW1pY1J1bGVzLnJ1bGVGZWF0dXJlcyk7CiAgICAgICAg
IH0KKworICAgICAgICArK21lZGlhUXVlcnlJbmRleDsKICAgICB9CiAKLSAgICByZXR1cm4gY2hh
bmdlcyA/IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29sdmUgOiBNZWRpYVF1ZXJ5U3R5
bGVVcGRhdGVUeXBlOjpOb25lOworICAgIGlmIChjaGFuZ2VkUXVlcnlJbmRleGVzLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8mIHJ1bGVTZXQgPSBtX21lZGlhUXVl
cnlJbnZhbGlkYXRpb25SdWxlU2V0Q2FjaGUuZW5zdXJlKGNoYW5nZWRRdWVyeUluZGV4ZXMsIFsm
XSB7CisgICAgICAgIGF1dG8gcnVsZVNldCA9IG1ha2VVbmlxdWU8UnVsZVNldD4oKTsKKyAgICAg
ICAgZm9yIChhdXRvKiBmZWF0dXJlVmVjdG9yIDogcnVsZUZlYXR1cmVzKSB7CisgICAgICAgICAg
ICBmb3IgKGF1dG8mIGZlYXR1cmUgOiAqZmVhdHVyZVZlY3RvcikKKyAgICAgICAgICAgICAgICBy
dWxlU2V0LT5hZGRSdWxlKCpmZWF0dXJlLnJ1bGUsIGZlYXR1cmUuc2VsZWN0b3JJbmRleCwgZmVh
dHVyZS5zZWxlY3Rvckxpc3RJbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVT
ZXQ7CisgICAgfSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgcmV0dXJuIHsgeyBEeW5hbWljTWVk
aWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpJbnZhbGlkYXRlU3R5bGUsIHsgcnVsZVNl
dC5nZXQoKSB9IH0gfTsKIH0KIAogYm9vbCBSdWxlU2V0OjpoYXNTaGFkb3dQc2V1ZG9FbGVtZW50
UnVsZXMoKSBjb25zdApAQCAtNDcyLDcgKzQ5MSw3IEBAIHZvaWQgUnVsZVNldDo6c2hyaW5rVG9G
aXQoKQogCiBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjp+TWVkaWFRdWVyeUNvbGxlY3Rv
cigpID0gZGVmYXVsdDsKIAotYm9vbCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwdXNo
QW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCogc2V0KQorYm9vbCBSdWxlU2V0OjpNZWRpYVF1ZXJ5
Q29sbGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeVNldCogc2V0KQogewog
ICAgIGlmICghc2V0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ5NSw3ICs1MTQsNyBAQCBi
b29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRpYVF1
ZXJ5U2V0KiBzZXQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUnVsZVNldDo6TWVkaWFR
dWVyeUNvbGxlY3Rvcjo6cG9wKE1lZGlhUXVlcnlTZXQqIHNldCkKK3ZvaWQgUnVsZVNldDo6TWVk
aWFRdWVyeUNvbGxlY3Rvcjo6cG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqIHNldCkKIHsKICAgICBp
ZiAoIXNldCB8fCBkeW5hbWljQ29udGV4dFN0YWNrLmlzRW1wdHkoKSB8fCBzZXQgIT0gJmR5bmFt
aWNDb250ZXh0U3RhY2subGFzdCgpLnNldC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTA4
LDYgKzUyNyw5IEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cG9wKE1lZGlh
UXVlcnlTZXQqIHNldCkKICAgICAgICAgaWYgKGNvbGxlY3REeW5hbWljKSB7CiAgICAgICAgICAg
ICBhdXRvJiB0b0FkZCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLmFmZmVjdGVkUnVsZVBv
c2l0aW9uczsKICAgICAgICAgICAgIHJ1bGVzLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hZGQodG9B
ZGQuYmVnaW4oKSwgdG9BZGQuZW5kKCkpOworCisgICAgICAgICAgICBydWxlcy5ydWxlRmVhdHVy
ZXMgPSBXVEZNb3ZlKGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLnJ1bGVGZWF0dXJlcyk7Cisg
ICAgICAgICAgICBydWxlcy5ydWxlRmVhdHVyZXMuc2hyaW5rVG9GaXQoKTsKICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICBydWxlcy5yZXF1aXJlc0Z1bGxSZXNldCA9IHRydWU7CiAKQEAgLTUy
NCwxMSArNTQ2LDE0IEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6ZGlkTXV0
YXRlUmVzb2x2ZXIoKQogICAgIGRpZE11dGF0ZVJlc29sdmVyV2l0aGluRHluYW1pY01lZGlhUXVl
cnkgPSB0cnVlOwogfQogCi12b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OmFkZFJ1
bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCBpbmRleCkKK3ZvaWQgUnVsZVNldDo6TWVkaWFRdWVy
eUNvbGxlY3Rvcjo6YWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSkKIHsK
ICAgICBpZiAoZHluYW1pY0NvbnRleHRTdGFjay5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5hZmZlY3RlZFJ1bGVQb3NpdGlvbnMuYXBw
ZW5kKGluZGV4KTsKKworICAgIGF1dG8mIGNvbnRleHQgPSBkeW5hbWljQ29udGV4dFN0YWNrLmxh
c3QoKTsKKyAgICBjb250ZXh0LmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBlbmQocnVsZURhdGEu
cG9zaXRpb24oKSk7CisgICAgY29udGV4dC5ydWxlRmVhdHVyZXMuYXBwZW5kKHsgcnVsZURhdGEu
cnVsZSgpLCBydWxlRGF0YS5zZWxlY3RvckluZGV4KCksIHJ1bGVEYXRhLnNlbGVjdG9yTGlzdElu
ZGV4KCkgfSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNl
dC5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCmluZGV4IDg0ZGRmYTZjMTdjLi44
NjQ3NDlmN2MxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9ySGFzaC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5o
PgogCkBAIC00MCw2ICs0MSwyMiBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBuYW1lc3Bh
Y2UgU3R5bGUgewogCiBjbGFzcyBSZXNvbHZlcjsKK2NsYXNzIFJ1bGVTZXQ7CisKK3N0cnVjdCBE
eW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzIHsKKyAgICBlbnVtIGNsYXNzIFR5cGUg
eyBJbnZhbGlkYXRlU3R5bGUsIFJlc2V0U3R5bGUgfTsKKyAgICBUeXBlIHR5cGU7CisgICAgVmVj
dG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiBpbnZhbGlkYXRpb25SdWxlU2V0cyB7IH07CisKKyAgICB2
b2lkIGFwcGVuZChEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzJiYgb3RoZXIpCisg
ICAgeworICAgICAgICB0eXBlID0gc3RkOjptYXgodHlwZSwgb3RoZXIudHlwZSk7CisgICAgICAg
IGlmICh0eXBlID09IFR5cGU6OlJlc2V0U3R5bGUpCisgICAgICAgICAgICBpbnZhbGlkYXRpb25S
dWxlU2V0cy5jbGVhcigpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnZhbGlkYXRpb25S
dWxlU2V0cy5hcHBlbmRWZWN0b3IoV1RGTW92ZShvdGhlci5pbnZhbGlkYXRpb25SdWxlU2V0cykp
OworICAgIH07Cit9OwogCiBjbGFzcyBSdWxlU2V0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShSdWxlU2V0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02Myw4ICs4MCw5IEBAIHB1
YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJ1
bGVEYXRhVmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKICAgICBzdHJ1Y3QgRHluYW1pY01lZGlhUXVl
cnlSdWxlcyB7Ci0gICAgICAgIFZlY3RvcjxSZWY8TWVkaWFRdWVyeVNldD4+IG1lZGlhUXVlcnlT
ZXRzOworICAgICAgICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5
U2V0czsKICAgICAgICAgSGFzaFNldDxzaXplX3QsIERlZmF1bHRIYXNoPHNpemVfdD46Okhhc2gs
IFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8c2l6ZV90Pj4gYWZmZWN0ZWRSdWxl
UG9zaXRpb25zOworICAgICAgICBWZWN0b3I8UnVsZUZlYXR1cmU+IHJ1bGVGZWF0dXJlczsKICAg
ICAgICAgYm9vbCByZXF1aXJlc0Z1bGxSZXNldCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgcmVz
dWx0IHsgdHJ1ZSB9OwogICAgIH07CkBAIC03Niw4ICs5NCw5IEBAIHB1YmxpYzoKICAgICAgICAg
Y29uc3QgYm9vbCBjb2xsZWN0RHluYW1pYyB7IGZhbHNlIH07CiAKICAgICAgICAgc3RydWN0IER5
bmFtaWNDb250ZXh0IHsKLSAgICAgICAgICAgIFJlZjxNZWRpYVF1ZXJ5U2V0PiBzZXQ7CisgICAg
ICAgICAgICBSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4gc2V0OwogICAgICAgICAgICAgVmVjdG9y
PHNpemVfdD4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zIHsgfTsKKyAgICAgICAgICAgIFZlY3RvcjxS
dWxlRmVhdHVyZT4gcnVsZUZlYXR1cmVzIHsgfTsKICAgICAgICAgfTsKICAgICAgICAgVmVjdG9y
PER5bmFtaWNDb250ZXh0PiBkeW5hbWljQ29udGV4dFN0YWNrIHsgfTsKIApAQCAtODUsMTAgKzEw
NCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5h
bWljTWVkaWFRdWVyeSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRl
bnRNZWRpYVF1ZXJpZXMgeyBmYWxzZSB9OwogCi0gICAgICAgIGJvb2wgcHVzaEFuZEV2YWx1YXRl
KE1lZGlhUXVlcnlTZXQqKTsKLSAgICAgICAgdm9pZCBwb3AoTWVkaWFRdWVyeVNldCopOworICAg
ICAgICBib29sIHB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAg
IHZvaWQgcG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKICAgICAgICAgdm9pZCBkaWRNdXRhdGVS
ZXNvbHZlcigpOwotICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCk7
CisgICAgICAgIHZvaWQgYWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVEYXRhJik7CiAgICAgfTsK
IAogICAgIHZvaWQgYWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzJiwgY29uc3Qg
TWVkaWFRdWVyeUV2YWx1YXRvciYpOwpAQCAtMTAzLDggKzEyMiw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiBt
X2hhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzOyB9CiAKLSAgICBlbnVtIGNsYXNzIE1l
ZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgeyBOb25lLCBSZXNvbHZlLCBSZXNldCB9OwotICAgIE1l
ZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29u
c3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOworICAgIE9wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5
RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1l
ZGlhUXVlcnlFdmFsdWF0b3ImKTsKIAogICAgIGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJl
cygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXM7IH0KIApAQCAtMTU3LDYgKzE3NSw3IEBAIHBy
aXZhdGU6CiAgICAgUnVsZUZlYXR1cmVTZXQgbV9mZWF0dXJlczsKICAgICBib29sIG1faGFzVmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzPiBtX2R5bmFtaWNNZWRpYVF1ZXJ5UnVsZXM7CisgICAgSGFzaE1hcDxW
ZWN0b3I8c2l6ZV90Piwgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFJ1bGVTZXQ+PiBtX21lZGlhUXVl
cnlJbnZhbGlkYXRpb25SdWxlU2V0Q2FjaGU7CiB9OwogCiBpbmxpbmUgY29uc3QgUnVsZVNldDo6
UnVsZURhdGFWZWN0b3IqIFJ1bGVTZXQ6OnRhZ1J1bGVzKGNvbnN0IEF0b21TdHJpbmcmIGtleSwg
Ym9vbCBpc0hUTUxOYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cAppbmRleCAzNTk0NGQxODY4NC4uNjU1NzI0YmY5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlUmVzb2x2ZXIuY3BwCkBAIC02MDcsNyArNjA3LDcgQEAgYm9vbCBSZXNvbHZlcjo6aGFzVmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdAogICAgIHJldHVybiBtX3J1bGVTZXRz
Lmhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCk7CiB9CiAKLVJ1bGVTZXQ6Ok1lZGlh
UXVlcnlTdHlsZVVwZGF0ZVR5cGUgUmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmll
cygpCitPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBSZXNvbHZl
cjo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCkKIHsKICAgICByZXR1cm4gbV9ydWxlU2V0
cy5ldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhtX21lZGlhUXVlcnlFdmFsdWF0b3IpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCmluZGV4IDJlZDVmZTg1YzkyLi42NjAz
NTMzYWE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTMyLDcgKzEz
Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1l
ZGlhUXVlcmllcygpIGNvbnN0OwotICAgIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5
cGUgZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCk7CisgICAgT3B0aW9uYWw8RHluYW1pY01l
ZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCk7
CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5bGUoUmVmPFN0eWxlUnVsZUtleWZyYW1lcz4mJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggOTBiNjNkMmRlNDguLjRhZWI0
ZGQwNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApAQCAtNjUxLDE3ICs2NTEs
MjAgQEAgdm9pZCBTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1bmN0aW9uJiYgdGVz
dEZ1bmN0aW9uKQogICAgIGlmICghcmVzb2x2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gdXBkYXRlVHlwZSA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOwotCi0gICAgc3dpdGNoICh1
cGRhdGVUeXBlKSB7Ci0gICAgY2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBl
OjpOb25lOgorICAgIGF1dG8gZXZhbHVhdGlvbkNoYW5nZXMgPSB0ZXN0RnVuY3Rpb24oKnJlc29s
dmVyKTsKKyAgICBpZiAoIWV2YWx1YXRpb25DaGFuZ2VzKQogICAgICAgICByZXR1cm47Ci0gICAg
Y2FzZSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlOgotICAgICAg
ICAvLyBGSVhNRTogV2UgY291bGQgaGF2ZSBhbiBpbnZhbGlkYXRpb24gcnVsZXNldCBmb3IgcnVs
ZXMgaW5zaWRlIGR5bmFtaWMgbWVkaWEgcXVlcmllcy4KLSAgICAgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgICAgICBk
b2N1bWVudEVsZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKworICAgIHN3aXRj
aCAoZXZhbHVhdGlvbkNoYW5nZXMtPnR5cGUpIHsKKyAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5
RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OkludmFsaWRhdGVTdHlsZTogeworICAgICAgICBJbnZh
bGlkYXRvciBpbnZhbGlkYXRvcihldmFsdWF0aW9uQ2hhbmdlcy0+aW52YWxpZGF0aW9uUnVsZVNl
dHMpOworICAgICAgICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAgaW52YWxpZGF0b3Iu
aW52YWxpZGF0ZVN0eWxlKCptX3NoYWRvd1Jvb3QpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ6Cisg
ICAgfQorICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6
UmVzZXRTdHlsZToKICAgICAgICAgc2NoZWR1bGVVcGRhdGUoVXBkYXRlVHlwZTo6Q29udGVudHNP
ckludGVycHJldGF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggMDExYzc5NjFhNDguLjdlMzJkZjg0
NmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAg
LTE0MSwyNyArMTQxLDI2IEBAIGJvb2wgU2NvcGVSdWxlU2V0czo6aGFzVmlld3BvcnREZXBlbmRl
bnRNZWRpYVF1ZXJpZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUnVsZVNldDo6
TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBTY29wZVJ1bGVTZXRzOjpldmFsdXRlRHluYW1pY01l
ZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IpCitPcHRp
b25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBTY29wZVJ1bGVTZXRzOjpl
dmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBl
dmFsdWF0b3IpCiB7Ci0gICAgYXV0byB1cGRhdGVUeXBlID0gUnVsZVNldDo6TWVkaWFRdWVyeVN0
eWxlVXBkYXRlVHlwZTo6Tm9uZTsKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1
YXRpb25DaGFuZ2VzPiBldmFsdWF0aW9uQ2hhbmdlczsKIAotICAgIGF1dG8gZXZhbHVhdGUgPSBb
Jl0oYXV0byYgcnVsZVNldCkgeworICAgIGF1dG8gZXZhbHVhdGUgPSBbJl0oYXV0byogcnVsZVNl
dCkgewogICAgICAgICBpZiAoIXJ1bGVTZXQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIGF1dG8gbmV3VXBkYXRlVHlwZSA9IHJ1bGVTZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFR
dWVyeVJ1bGVzKGV2YWx1YXRvcik7Ci0gICAgICAgIGlmIChuZXdVcGRhdGVUeXBlID4gdXBkYXRl
VHlwZSkKLSAgICAgICAgICAgIHVwZGF0ZVR5cGUgPSBuZXdVcGRhdGVUeXBlOwotICAgICAgICBy
ZXR1cm4gdXBkYXRlVHlwZSA9PSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpS
ZXNldDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8gY2hhbmdlcyA9IHJ1
bGVTZXQtPmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRvcikpIHsKKyAgICAg
ICAgICAgIGlmIChldmFsdWF0aW9uQ2hhbmdlcykKKyAgICAgICAgICAgICAgICBldmFsdWF0aW9u
Q2hhbmdlcy0+YXBwZW5kKFdURk1vdmUoKmNoYW5nZXMpKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBldmFsdWF0aW9uQ2hhbmdlcyA9IGNoYW5nZXM7CisgICAgICAgIH0KICAg
ICB9OwogCi0gICAgaWYgKGV2YWx1YXRlKG1fYXV0aG9yU3R5bGUpKQotICAgICAgICByZXR1cm4g
dXBkYXRlVHlwZTsKLQotICAgIGlmIChldmFsdWF0ZShtX3VzZXJTdHlsZSkpCi0gICAgICAgIHJl
dHVybiB1cGRhdGVUeXBlOworICAgIGV2YWx1YXRlKCZhdXRob3JTdHlsZSgpKTsKKyAgICBldmFs
dWF0ZSh1c2VyU3R5bGUoKSk7CisgICAgZXZhbHVhdGUodXNlckFnZW50TWVkaWFRdWVyeVN0eWxl
KCkpOwogCi0gICAgZXZhbHVhdGUobV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUpOwotICAgIHJl
dHVybiB1cGRhdGVUeXBlOworICAgIHJldHVybiBldmFsdWF0aW9uQ2hhbmdlczsKIH0KIAogdm9p
ZCBTY29wZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVm
UHRyPENTU1N0eWxlU2hlZXQ+PiYgc3R5bGVTaGVldHMsIE1lZGlhUXVlcnlFdmFsdWF0b3IqIG1l
ZGl1bSwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYgaW5zcGVjdG9yQ1NTT01XcmFwcGVycykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKaW5kZXggOWRhNzhhMzM4Nzcu
Ljg3OTVlNDgyMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
aApAQCAtNzksNyArNzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFVzZXJBZ2VudE1lZGlh
UXVlcnlTdHlsZSgpOwogCiAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmll
cygpIGNvbnN0OwotICAgIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0
ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOworCisg
ICAgT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gZXZhbHV0ZUR5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwogCiAgICAg
UnVsZUZlYXR1cmVTZXQmIG11dGFibGVGZWF0dXJlcygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386297</attachid>
            <date>2019-12-21 09:24:44 -0800</date>
            <delta_ts>2019-12-22 07:35:57 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated-6.patch</filename>
            <type>text/plain</type>
            <size>14898</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uMTBlODJkMzE5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMi0yMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWmFsYW4gQnVq
dGFzLgorCisgICAgICAgIFdlIGN1cnJlbnRseSBpbnZhbGlkYXRlIHN0eWxlIG9mIHRoZSB3aG9s
ZSB0cmVlIHdoZW4gYSBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGNoYW5nZXMuCisgICAgICAgIFdl
IGNhbiBkbyBiZXR0ZXIgYnkgY29uc3RydWN0aW5nIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFu
ZCBpbnZhbGlkYXRpbmcgb25seSB0aG9zZQorICAgICAgICBlbGVtZW50cyB0aGF0IGFyZSBwb3Rl
bnRpYWxseSBhZmZlY3RlZC4KKworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKworICAgICAg
ICBDb25zdHJ1Y3QgYW5kIGNhY2hlIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFuZCBhc3NvY2lh
dGUgd2l0aCBhIHNldCBvZiBtZWRpYSBxdWVyeSBjaGFuZ2VzLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpw
b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0
b3I6OmFkZFJ1bGVJZk5lZWRlZCk6CisKKyAgICAgICAgQ29sbGVjdCBSdWxlRmVhdHVyZXMgd2hp
Y2ggd2UgbGF0ZXIgdXNlIHRvIGJ1aWxkIGludmFsaWRhdGlvbiBSdWxlU2V0LgorCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBv
c2l0aW9uSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2Vz
OjphcHBlbmQpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1
ZXJpZXMpOgorCisgICAgICAgIFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3Vy
YXRlIHN0eWxlIGludmFsaWRhdGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0
ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorCisgICAgICAgIENvbGxlY3QgaW52YWxpZGF0aW9u
IFJ1bGVTZXRzIGZvciBhdXRob3IvdXNlci91c2VyIGFnZW50IHN0eWxlLgorCisgICAgICAgICog
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisKIDIwMTktMTItMTkgIEFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTM3
MTEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCmluZGV4IDE0ODdjMWE2MjZhLi5lY2QzNzRlMzQ1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSdWxl
U2V0OjphZGRSdWxlKFN0eWxlUnVsZSYgcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5z
aWduZWQgc2VsZWN0b3IKICAgICBtX2ZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlcyhydWxlRGF0YSk7
CiAKICAgICBpZiAobWVkaWFRdWVyeUNvbGxlY3RvcikKLSAgICAgICAgbWVkaWFRdWVyeUNvbGxl
Y3Rvci0+YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAg
ICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVJZk5lZWRlZChydWxlRGF0YSk7CiAKICAg
ICB1bnNpZ25lZCBjbGFzc0J1Y2tldFNpemUgPSAwOwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBp
ZFNlbGVjdG9yID0gbnVsbHB0cjsKQEAgLTQwNSw5ICs0MDUsMTIgQEAgdm9pZCBSdWxlU2V0Ojp0
cmF2ZXJzZVJ1bGVEYXRhcyhGdW5jdGlvbiYmIGZ1bmN0aW9uKQogICAgIHRyYXZlcnNlVmVjdG9y
KG1fdW5pdmVyc2FsUnVsZXMpOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVU
eXBlIFJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVl
cnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVh
dGlvbkNoYW5nZXM+IFJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0
IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKIHsKLSAgICBib29sIGNoYW5nZXMgPSBm
YWxzZTsKKyAgICBWZWN0b3I8c2l6ZV90PiBjaGFuZ2VkUXVlcnlJbmRleGVzOworICAgIFZlY3Rv
cjxjb25zdCBWZWN0b3I8UnVsZUZlYXR1cmU+Kj4gcnVsZUZlYXR1cmVzOworCisgICAgc2l6ZV90
IG1lZGlhUXVlcnlJbmRleCA9IDA7CiAgICAgZm9yIChhdXRvJiBkeW5hbWljUnVsZXMgOiBtX2R5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAg
ICAgICBmb3IgKGF1dG8mIHNldCA6IGR5bmFtaWNSdWxlcy5tZWRpYVF1ZXJ5U2V0cykgewpAQCAt
NDIwLDE4ICs0MjMsMzQgQEAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBSdWxl
U2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdAogICAgICAgICBpZiAocmVz
dWx0ICE9IGR5bmFtaWNSdWxlcy5yZXN1bHQpIHsKICAgICAgICAgICAgIGR5bmFtaWNSdWxlcy5y
ZXN1bHQgPSByZXN1bHQ7CiAgICAgICAgICAgICBpZiAoZHluYW1pY1J1bGVzLnJlcXVpcmVzRnVs
bFJlc2V0KQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBl
OjpSZXNldDsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZh
bHVhdGlvbkNoYW5nZXM6OlR5cGU6OlJlc2V0U3R5bGUgfSB9OwogCiAgICAgICAgICAgICB0cmF2
ZXJzZVJ1bGVEYXRhcyhbJl0oUnVsZURhdGEmIHJ1bGVEYXRhKSB7CiAgICAgICAgICAgICAgICAg
aWYgKCFkeW5hbWljUnVsZXMuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmNvbnRhaW5zKHJ1bGVEYXRh
LnBvc2l0aW9uKCkpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAg
ICAgcnVsZURhdGEuc2V0RW5hYmxlZChyZXN1bHQpOwotICAgICAgICAgICAgICAgIGNoYW5nZXMg
PSB0cnVlOwogICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGNoYW5nZWRRdWVyeUluZGV4
ZXMuYXBwZW5kKG1lZGlhUXVlcnlJbmRleCk7CisgICAgICAgICAgICBydWxlRmVhdHVyZXMuYXBw
ZW5kKCZkeW5hbWljUnVsZXMucnVsZUZlYXR1cmVzKTsKICAgICAgICAgfQorCisgICAgICAgICsr
bWVkaWFRdWVyeUluZGV4OwogICAgIH0KIAotICAgIHJldHVybiBjaGFuZ2VzID8gTWVkaWFRdWVy
eVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZSA6IE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5v
bmU7CisgICAgaWYgKGNoYW5nZWRRdWVyeUluZGV4ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgYXV0byYgcnVsZVNldCA9IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1
bGVTZXRDYWNoZS5lbnN1cmUoY2hhbmdlZFF1ZXJ5SW5kZXhlcywgWyZdIHsKKyAgICAgICAgYXV0
byBydWxlU2V0ID0gbWFrZVVuaXF1ZTxSdWxlU2V0PigpOworICAgICAgICBmb3IgKGF1dG8qIGZl
YXR1cmVWZWN0b3IgOiBydWxlRmVhdHVyZXMpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZmVh
dHVyZSA6ICpmZWF0dXJlVmVjdG9yKQorICAgICAgICAgICAgICAgIHJ1bGVTZXQtPmFkZFJ1bGUo
KmZlYXR1cmUucnVsZSwgZmVhdHVyZS5zZWxlY3RvckluZGV4LCBmZWF0dXJlLnNlbGVjdG9yTGlz
dEluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcnVsZVNldDsKKyAgICB9KS5pdGVy
YXRvci0+dmFsdWU7CisKKyAgICByZXR1cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlv
bkNoYW5nZXM6OlR5cGU6OkludmFsaWRhdGVTdHlsZSwgeyBydWxlU2V0LmdldCgpIH0gfSB9Owog
fQogCiBib29sIFJ1bGVTZXQ6Omhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNvbnN0CkBA
IC00NzIsNyArNDkxLDcgQEAgdm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAKIFJ1bGVTZXQ6
Ok1lZGlhUXVlcnlDb2xsZWN0b3I6On5NZWRpYVF1ZXJ5Q29sbGVjdG9yKCkgPSBkZWZhdWx0Owog
Ci1ib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hBbmRFdmFsdWF0ZShNZWRp
YVF1ZXJ5U2V0KiBzZXQpCitib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hB
bmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0KiBzZXQpCiB7CiAgICAgaWYgKCFzZXQpCiAg
ICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDk1LDcgKzUxNCw3IEBAIGJvb2wgUnVsZVNldDo6TWVk
aWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqIHNldCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpw
b3AoTWVkaWFRdWVyeVNldCogc2V0KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9y
Ojpwb3AoY29uc3QgTWVkaWFRdWVyeVNldCogc2V0KQogewogICAgIGlmICghc2V0IHx8IGR5bmFt
aWNDb250ZXh0U3RhY2suaXNFbXB0eSgpIHx8IHNldCAhPSAmZHluYW1pY0NvbnRleHRTdGFjay5s
YXN0KCkuc2V0LmdldCgpKQogICAgICAgICByZXR1cm47CkBAIC01MDgsNiArNTI3LDkgQEAgdm9p
ZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwb3AoTWVkaWFRdWVyeVNldCogc2V0KQog
ICAgICAgICBpZiAoY29sbGVjdER5bmFtaWMpIHsKICAgICAgICAgICAgIGF1dG8mIHRvQWRkID0g
ZHluYW1pY0NvbnRleHRTdGFjay5sYXN0KCkuYWZmZWN0ZWRSdWxlUG9zaXRpb25zOwogICAgICAg
ICAgICAgcnVsZXMuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFkZCh0b0FkZC5iZWdpbigpLCB0b0Fk
ZC5lbmQoKSk7CisKKyAgICAgICAgICAgIHJ1bGVzLnJ1bGVGZWF0dXJlcyA9IFdURk1vdmUoZHlu
YW1pY0NvbnRleHRTdGFjay5sYXN0KCkucnVsZUZlYXR1cmVzKTsKKyAgICAgICAgICAgIHJ1bGVz
LnJ1bGVGZWF0dXJlcy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IHJ1bGVzLnJlcXVpcmVzRnVsbFJlc2V0ID0gdHJ1ZTsKIApAQCAtNTI0LDExICs1NDYsMTQgQEAg
dm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpkaWRNdXRhdGVSZXNvbHZlcigpCiAg
ICAgZGlkTXV0YXRlUmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVyeSA9IHRydWU7CiB9CiAK
LXZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBvc2l0aW9uSWZOZWVk
ZWQoc2l6ZV90IGluZGV4KQordm9pZCBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjphZGRS
dWxlSWZOZWVkZWQoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAgIGlmIChkeW5hbWlj
Q29udGV4dFN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGR5bmFtaWNDb250
ZXh0U3RhY2subGFzdCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9ucy5hcHBlbmQoaW5kZXgpOworCisg
ICAgYXV0byYgY29udGV4dCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpOworICAgIGNvbnRl
eHQuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmFwcGVuZChydWxlRGF0YS5wb3NpdGlvbigpKTsKKyAg
ICBjb250ZXh0LnJ1bGVGZWF0dXJlcy5hcHBlbmQoeyBydWxlRGF0YS5ydWxlKCksIHJ1bGVEYXRh
LnNlbGVjdG9ySW5kZXgoKSwgcnVsZURhdGEuc2VsZWN0b3JMaXN0SW5kZXgoKSB9KTsKIH0KIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlU2V0LmgKaW5kZXggODRkZGZhNmMxN2MuLjg2NDc0OWY3YzE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvUnVsZVNldC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxl
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3JIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTQwLDYgKzQx
LDIyIEBAIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIG5hbWVzcGFjZSBTdHlsZSB7CiAKIGNs
YXNzIFJlc29sdmVyOworY2xhc3MgUnVsZVNldDsKKworc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5
RXZhbHVhdGlvbkNoYW5nZXMgeworICAgIGVudW0gY2xhc3MgVHlwZSB7IEludmFsaWRhdGVTdHls
ZSwgUmVzZXRTdHlsZSB9OworICAgIFR5cGUgdHlwZTsKKyAgICBWZWN0b3I8Y29uc3QgUnVsZVNl
dCosIDE+IGludmFsaWRhdGlvblJ1bGVTZXRzIHsgfTsKKworICAgIHZvaWQgYXBwZW5kKER5bmFt
aWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXMmJiBvdGhlcikKKyAgICB7CisgICAgICAgIHR5
cGUgPSBzdGQ6Om1heCh0eXBlLCBvdGhlci50eXBlKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVHlw
ZTo6UmVzZXRTdHlsZSkKKyAgICAgICAgICAgIGludmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludmFsaWRhdGlvblJ1bGVTZXRzLmFwcGVuZFZl
Y3RvcihXVEZNb3ZlKG90aGVyLmludmFsaWRhdGlvblJ1bGVTZXRzKSk7CisgICAgfTsKK307CiAK
IGNsYXNzIFJ1bGVTZXQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1bGVTZXQpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTYzLDggKzgwLDkgQEAgcHVibGljOgogICAgIHR5cGVk
ZWYgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZURhdGFWZWN0b3I+PiBB
dG9tUnVsZU1hcDsKIAogICAgIHN0cnVjdCBEeW5hbWljTWVkaWFRdWVyeVJ1bGVzIHsKLSAgICAg
ICAgVmVjdG9yPFJlZjxNZWRpYVF1ZXJ5U2V0Pj4gbWVkaWFRdWVyeVNldHM7CisgICAgICAgIFZl
Y3RvcjxSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4+IG1lZGlhUXVlcnlTZXRzOwogICAgICAgICBI
YXNoU2V0PHNpemVfdCwgRGVmYXVsdEhhc2g8c2l6ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdp
dGhaZXJvS2V5SGFzaFRyYWl0czxzaXplX3Q+PiBhZmZlY3RlZFJ1bGVQb3NpdGlvbnM7CisgICAg
ICAgIFZlY3RvcjxSdWxlRmVhdHVyZT4gcnVsZUZlYXR1cmVzOwogICAgICAgICBib29sIHJlcXVp
cmVzRnVsbFJlc2V0IHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCByZXN1bHQgeyB0cnVlIH07CiAg
ICAgfTsKQEAgLTc2LDggKzk0LDkgQEAgcHVibGljOgogICAgICAgICBjb25zdCBib29sIGNvbGxl
Y3REeW5hbWljIHsgZmFsc2UgfTsKIAogICAgICAgICBzdHJ1Y3QgRHluYW1pY0NvbnRleHQgewot
ICAgICAgICAgICAgUmVmPE1lZGlhUXVlcnlTZXQ+IHNldDsKKyAgICAgICAgICAgIFJlZjxjb25z
dCBNZWRpYVF1ZXJ5U2V0PiBzZXQ7CiAgICAgICAgICAgICBWZWN0b3I8c2l6ZV90PiBhZmZlY3Rl
ZFJ1bGVQb3NpdGlvbnMgeyB9OworICAgICAgICAgICAgVmVjdG9yPFJ1bGVGZWF0dXJlPiBydWxl
RmVhdHVyZXMgeyB9OwogICAgICAgICB9OwogICAgICAgICBWZWN0b3I8RHluYW1pY0NvbnRleHQ+
IGR5bmFtaWNDb250ZXh0U3RhY2sgeyB9OwogCkBAIC04NSwxMCArMTA0LDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgYm9vbCBkaWRNdXRhdGVSZXNvbHZlcldpdGhpbkR5bmFtaWNNZWRpYVF1ZXJ5IHsg
ZmFsc2UgfTsKICAgICAgICAgYm9vbCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcyB7
IGZhbHNlIH07CiAKLSAgICAgICAgYm9vbCBwdXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCop
OwotICAgICAgICB2b2lkIHBvcChNZWRpYVF1ZXJ5U2V0Kik7CisgICAgICAgIGJvb2wgcHVzaEFu
ZEV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKKyAgICAgICAgdm9pZCBwb3AoY29uc3Qg
TWVkaWFRdWVyeVNldCopOwogICAgICAgICB2b2lkIGRpZE11dGF0ZVJlc29sdmVyKCk7Ci0gICAg
ICAgIHZvaWQgYWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQoc2l6ZV90KTsKKyAgICAgICAgdm9pZCBh
ZGRSdWxlSWZOZWVkZWQoY29uc3QgUnVsZURhdGEmKTsKICAgICB9OwogCiAgICAgdm9pZCBhZGRS
dWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVudHMmLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVh
dG9yJik7CkBAIC0xMDMsOCArMTIyLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNWaWV3cG9y
dERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlld3BvcnREZXBl
bmRlbnRNZWRpYVF1ZXJpZXM7IH0KIAotICAgIGVudW0gY2xhc3MgTWVkaWFRdWVyeVN0eWxlVXBk
YXRlVHlwZSB7IE5vbmUsIFJlc29sdmUsIFJlc2V0IH07Ci0gICAgTWVkaWFRdWVyeVN0eWxlVXBk
YXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZh
bHVhdG9yJik7CisgICAgT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdl
cz4gZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRv
ciYpOwogCiAgICAgY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1
cm4gbV9mZWF0dXJlczsgfQogCkBAIC0xNTcsNiArMTc1LDcgQEAgcHJpdmF0ZToKICAgICBSdWxl
RmVhdHVyZVNldCBtX2ZlYXR1cmVzOwogICAgIGJvb2wgbV9oYXNWaWV3cG9ydERlcGVuZGVudE1l
ZGlhUXVlcmllcyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPER5bmFtaWNNZWRpYVF1ZXJ5UnVsZXM+
IG1fZHluYW1pY01lZGlhUXVlcnlSdWxlczsKKyAgICBIYXNoTWFwPFZlY3RvcjxzaXplX3Q+LCBz
dGQ6OnVuaXF1ZV9wdHI8Y29uc3QgUnVsZVNldD4+IG1fbWVkaWFRdWVyeUludmFsaWRhdGlvblJ1
bGVTZXRDYWNoZTsKIH07CiAKIGlubGluZSBjb25zdCBSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvciog
UnVsZVNldDo6dGFnUnVsZXMoY29uc3QgQXRvbVN0cmluZyYga2V5LCBib29sIGlzSFRNTE5hbWUp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM1OTQ0ZDE4
Njg0Li42NTU3MjRiZjlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAK
QEAgLTYwNyw3ICs2MDcsNyBAQCBib29sIFJlc29sdmVyOjpoYXNWaWV3cG9ydERlcGVuZGVudE1l
ZGlhUXVlcmllcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcnVsZVNldHMuaGFzVmlld3BvcnREZXBl
bmRlbnRNZWRpYVF1ZXJpZXMoKTsKIH0KIAotUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRl
VHlwZSBSZXNvbHZlcjo6ZXZhbHVhdGVEeW5hbWljTWVkaWFRdWVyaWVzKCkKK09wdGlvbmFsPER5
bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IFJlc29sdmVyOjpldmFsdWF0ZUR5bmFt
aWNNZWRpYVF1ZXJpZXMoKQogewogICAgIHJldHVybiBtX3J1bGVTZXRzLmV2YWx1dGVEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzKG1fbWVkaWFRdWVyeUV2YWx1YXRvcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVyLmgKaW5kZXggMmVkNWZlODVjOTIuLjY2MDM1MzNhYTRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29u
c3Q7Ci0gICAgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdWF0ZUR5bmFt
aWNNZWRpYVF1ZXJpZXMoKTsKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRp
b25DaGFuZ2VzPiBldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKTsKIAogICAgIHZvaWQgYWRk
S2V5ZnJhbWVTdHlsZShSZWY8U3R5bGVSdWxlS2V5ZnJhbWVzPiYmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlLmNwcAppbmRleCA5MGI2M2QyZGU0OC4uNGFlYjRkZDA1NGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCkBAIC02NTEsMTcgKzY1MSwyMCBAQCB2b2lkIFNjb3Bl
OjpldmFsdWF0ZU1lZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAg
aWYgKCFyZXNvbHZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB1cGRhdGVUeXBlID0g
dGVzdEZ1bmN0aW9uKCpyZXNvbHZlcik7Ci0KLSAgICBzd2l0Y2ggKHVwZGF0ZVR5cGUpIHsKLSAg
ICBjYXNlIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6Ok5vbmU6CisgICAgYXV0
byBldmFsdWF0aW9uQ2hhbmdlcyA9IHRlc3RGdW5jdGlvbigqcmVzb2x2ZXIpOworICAgIGlmICgh
ZXZhbHVhdGlvbkNoYW5nZXMpCiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFJ1bGVTZXQ6Ok1l
ZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc29sdmU6Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBj
b3VsZCBoYXZlIGFuIGludmFsaWRhdGlvbiBydWxlc2V0IGZvciBydWxlcyBpbnNpZGUgZHluYW1p
YyBtZWRpYSBxdWVyaWVzLgotICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0gbV9k
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50RWxlbWVudC0+
aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOworCisgICAgc3dpdGNoIChldmFsdWF0aW9uQ2hh
bmdlcy0+dHlwZSkgeworICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdl
czo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOiB7CisgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRh
dG9yKGV2YWx1YXRpb25DaGFuZ2VzLT5pbnZhbGlkYXRpb25SdWxlU2V0cyk7CisgICAgICAgIGlm
IChtX3NoYWRvd1Jvb3QpCisgICAgICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUo
Km1fc2hhZG93Um9vdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludmFsaWRhdG9yLmlu
dmFsaWRhdGVTdHlsZShtX2RvY3VtZW50KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSdWxl
U2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDoKKyAgICB9CisgICAgY2FzZSBE
eW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpSZXNldFN0eWxlOgogICAg
ICAgICBzY2hlZHVsZVVwZGF0ZShVcGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24p
OwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZVJ1bGVTZXRzLmNwcAppbmRleCAwMTFjNzk2MWE0OC4uN2UzMmRmODQ2ZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAtMTQxLDI3ICsxNDEsMjYg
QEAgYm9vbCBTY29wZVJ1bGVTZXRzOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVV
cGRhdGVUeXBlIFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNv
bnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRp
YVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVk
aWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKIHsKLSAg
ICBhdXRvIHVwZGF0ZVR5cGUgPSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpO
b25lOworICAgIE9wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2
YWx1YXRpb25DaGFuZ2VzOwogCi0gICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0
KSB7CisgICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvKiBydWxlU2V0KSB7CiAgICAgICAgIGlm
ICghcnVsZVNldCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgYXV0byBuZXdV
cGRhdGVUeXBlID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVh
dG9yKTsKLSAgICAgICAgaWYgKG5ld1VwZGF0ZVR5cGUgPiB1cGRhdGVUeXBlKQotICAgICAgICAg
ICAgdXBkYXRlVHlwZSA9IG5ld1VwZGF0ZVR5cGU7Ci0gICAgICAgIHJldHVybiB1cGRhdGVUeXBl
ID09IFJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBpZiAoYXV0byBjaGFuZ2VzID0gcnVsZVNldC0+ZXZhbHV0ZUR5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9yKSkgeworICAgICAgICAgICAgaWYgKGV2YWx1
YXRpb25DaGFuZ2VzKQorICAgICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFuZ2VzLT5hcHBlbmQo
V1RGTW92ZSgqY2hhbmdlcykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2
YWx1YXRpb25DaGFuZ2VzID0gY2hhbmdlczsKKyAgICAgICAgfQogICAgIH07CiAKLSAgICBpZiAo
ZXZhbHVhdGUobV9hdXRob3JTdHlsZSkpCi0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOwotCi0g
ICAgaWYgKGV2YWx1YXRlKG1fdXNlclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7
CisgICAgZXZhbHVhdGUoJmF1dGhvclN0eWxlKCkpOworICAgIGV2YWx1YXRlKHVzZXJTdHlsZSgp
KTsKKyAgICBldmFsdWF0ZSh1c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKSk7CiAKLSAgICBldmFs
dWF0ZShtX3VzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSk7Ci0gICAgcmV0dXJuIHVwZGF0ZVR5cGU7
CisgICAgcmV0dXJuIGV2YWx1YXRpb25DaGFuZ2VzOwogfQogCiB2b2lkIFNjb3BlUnVsZVNldHM6
OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVl
dD4+JiBzdHlsZVNoZWV0cywgTWVkaWFRdWVyeUV2YWx1YXRvciogbWVkaXVtLCBJbnNwZWN0b3JD
U1NPTVdyYXBwZXJzJiBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA5ZGE3OGEzMzg3Ny4uODc5NWU0ODIyMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC03OSw3ICs3OSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAK
ICAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAg
UnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVl
cnlSdWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisKKyAgICBPcHRpb25hbDxEeW5h
bWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzPiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlS
dWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBSdWxlRmVhdHVyZVNldCYg
bXV0YWJsZUZlYXR1cmVzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386315</attachid>
            <date>2019-12-22 07:35:57 -0800</date>
            <delta_ts>2019-12-22 10:07:03 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-consolidated-7.patch</filename>
            <type>text/plain</type>
            <size>18363</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzg0ZWIzMWZiOC4uMTBlODJkMzE5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0xMi0yMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW52YWxpZGF0ZSBvbmx5IGFmZmVjdGVkIGVsZW1lbnRzIGFmdGVyIG1lZGlh
IHF1ZXJ5IGV2YWx1YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWmFsYW4gQnVq
dGFzLgorCisgICAgICAgIFdlIGN1cnJlbnRseSBpbnZhbGlkYXRlIHN0eWxlIG9mIHRoZSB3aG9s
ZSB0cmVlIHdoZW4gYSBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGNoYW5nZXMuCisgICAgICAgIFdl
IGNhbiBkbyBiZXR0ZXIgYnkgY29uc3RydWN0aW5nIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFu
ZCBpbnZhbGlkYXRpbmcgb25seSB0aG9zZQorICAgICAgICBlbGVtZW50cyB0aGF0IGFyZSBwb3Rl
bnRpYWxseSBhZmZlY3RlZC4KKworICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKToKKworICAgICAg
ICBDb25zdHJ1Y3QgYW5kIGNhY2hlIGFuIGludmFsaWRhdGlvbiBSdWxlU2V0IGFuZCBhc3NvY2lh
dGUgd2l0aCBhIHNldCBvZiBtZWRpYSBxdWVyeSBjaGFuZ2VzLgorCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cHVzaEFuZEV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpw
b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0
b3I6OmFkZFJ1bGVJZk5lZWRlZCk6CisKKyAgICAgICAgQ29sbGVjdCBSdWxlRmVhdHVyZXMgd2hp
Y2ggd2UgbGF0ZXIgdXNlIHRvIGJ1aWxkIGludmFsaWRhdGlvbiBSdWxlU2V0LgorCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZVBv
c2l0aW9uSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2Vz
OjphcHBlbmQpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpldmFsdWF0ZUR5bmFtaWNNZWRpYVF1ZXJpZXMpOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1
ZXJpZXMpOgorCisgICAgICAgIFVzZSB0aGUgaW52YWxpZGF0aW9uIFJ1bGVTZXQgZm9yIGFjY3Vy
YXRlIHN0eWxlIGludmFsaWRhdGlvbi4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6ZXZhbHV0
ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMpOgorCisgICAgICAgIENvbGxlY3QgaW52YWxpZGF0aW9u
IFJ1bGVTZXRzIGZvciBhdXRob3IvdXNlci91c2VyIGFnZW50IHN0eWxlLgorCisgICAgICAgICog
c3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisKIDIwMTktMTItMTkgIEFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTM3
MTEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCmluZGV4IDE0ODdjMWE2MjZhLi40ZTMzMWZlYWE4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSdWxl
U2V0OjphZGRSdWxlKFN0eWxlUnVsZSYgcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgdW5z
aWduZWQgc2VsZWN0b3IKICAgICBtX2ZlYXR1cmVzLmNvbGxlY3RGZWF0dXJlcyhydWxlRGF0YSk7
CiAKICAgICBpZiAobWVkaWFRdWVyeUNvbGxlY3RvcikKLSAgICAgICAgbWVkaWFRdWVyeUNvbGxl
Y3Rvci0+YWRkUnVsZVBvc2l0aW9uSWZOZWVkZWQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAg
ICAgIG1lZGlhUXVlcnlDb2xsZWN0b3ItPmFkZFJ1bGVJZk5lZWRlZChydWxlRGF0YSk7CiAKICAg
ICB1bnNpZ25lZCBjbGFzc0J1Y2tldFNpemUgPSAwOwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBp
ZFNlbGVjdG9yID0gbnVsbHB0cjsKQEAgLTM0Niw5ICszNDYsMTUgQEAgdm9pZCBSdWxlU2V0Ojph
ZGRSdWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVudHMmIHNoZWV0LCBNZWRpYVF1ZXJ5U2V0
KiBzaGVldFEKICAgICB9CiAKICAgICBtX2hhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVz
ID0gbWVkaWFRdWVyeUNvbGxlY3Rvci5oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllczsK
KworICAgIGlmIChtZWRpYVF1ZXJ5Q29sbGVjdG9yLmR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGZpcnN0TmV3SW5kZXggPSBtX2R5
bmFtaWNNZWRpYVF1ZXJ5UnVsZXMuc2l6ZSgpOwogICAgIG1fZHluYW1pY01lZGlhUXVlcnlSdWxl
cy5hcHBlbmRWZWN0b3IoV1RGTW92ZShtZWRpYVF1ZXJ5Q29sbGVjdG9yLmR5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMpKTsKIAotICAgIGV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGV2YWx1YXRv
cik7CisgICAgLy8gU2V0IHRoZSBpbml0aWFsIHZhbHVlcy4KKyAgICBldmFsdXRlRHluYW1pY01l
ZGlhUXVlcnlSdWxlcyhldmFsdWF0b3IsIGZpcnN0TmV3SW5kZXgpOwogfQogCiB2b2lkIFJ1bGVT
ZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyYgc2hlZXQsIE1lZGlhUXVl
cnlDb2xsZWN0b3ImIG1lZGlhUXVlcnlDb2xsZWN0b3IsIFJlc29sdmVyKiByZXNvbHZlciwgQWRk
UnVsZXNNb2RlIG1vZGUpCkBAIC00MDUsMTAgKzQxMSwzNCBAQCB2b2lkIFJ1bGVTZXQ6OnRyYXZl
cnNlUnVsZURhdGFzKEZ1bmN0aW9uJiYgZnVuY3Rpb24pCiAgICAgdHJhdmVyc2VWZWN0b3IobV91
bml2ZXJzYWxSdWxlcyk7CiB9CiAKLVJ1bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUg
UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2
YWx1YXRvciYgZXZhbHVhdG9yKQorT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0aW9u
Q2hhbmdlcz4gUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVk
aWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yKQogewotICAgIGJvb2wgY2hhbmdlcyA9IGZhbHNl
OwotICAgIGZvciAoYXV0byYgZHluYW1pY1J1bGVzIDogbV9keW5hbWljTWVkaWFRdWVyeVJ1bGVz
KSB7CisgICAgYXV0byBjb2xsZWN0ZWRDaGFuZ2VzID0gZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXMoZXZhbHVhdG9yLCAwKTsKKworICAgIGlmIChjb2xsZWN0ZWRDaGFuZ2VzLnJlcXVpcmVk
RnVsbFJlc2V0KQorICAgICAgICByZXR1cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlv
bkNoYW5nZXM6OlR5cGU6OlJlc2V0U3R5bGUgfSB9OworCisgICAgaWYgKGNvbGxlY3RlZENoYW5n
ZXMuY2hhbmdlZFF1ZXJ5SW5kZXhlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBhdXRvJiBydWxlU2V0ID0gbV9tZWRpYVF1ZXJ5SW52YWxpZGF0aW9uUnVsZVNldENhY2hl
LmVuc3VyZShjb2xsZWN0ZWRDaGFuZ2VzLmNoYW5nZWRRdWVyeUluZGV4ZXMsIFsmXSB7CisgICAg
ICAgIGF1dG8gcnVsZVNldCA9IG1ha2VVbmlxdWU8UnVsZVNldD4oKTsKKyAgICAgICAgZm9yIChh
dXRvKiBmZWF0dXJlVmVjdG9yIDogY29sbGVjdGVkQ2hhbmdlcy5ydWxlRmVhdHVyZXMpIHsKKyAg
ICAgICAgICAgIGZvciAoYXV0byYgZmVhdHVyZSA6ICpmZWF0dXJlVmVjdG9yKQorICAgICAgICAg
ICAgICAgIHJ1bGVTZXQtPmFkZFJ1bGUoKmZlYXR1cmUucnVsZSwgZmVhdHVyZS5zZWxlY3Rvcklu
ZGV4LCBmZWF0dXJlLnNlbGVjdG9yTGlzdEluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gcnVsZVNldDsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICByZXR1cm4geyB7IER5
bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OkludmFsaWRhdGVTdHlsZSwg
eyBydWxlU2V0LmdldCgpIH0gfSB9OworfQorCitSdWxlU2V0OjpDb2xsZWN0ZWRNZWRpYVF1ZXJ5
Q2hhbmdlcyBSdWxlU2V0OjpldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yJiBldmFsdWF0b3IsIHNpemVfdCBzdGFydEluZGV4KQoreworICAgIENv
bGxlY3RlZE1lZGlhUXVlcnlDaGFuZ2VzIGNvbGxlY3RlZENoYW5nZXM7CisKKyAgICBmb3IgKHNp
emVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1fZHluYW1pY01lZGlhUXVlcnlSdWxlcy5zaXplKCk7
ICsraSkgeworICAgICAgICBhdXRvJiBkeW5hbWljUnVsZXMgPSBtX2R5bmFtaWNNZWRpYVF1ZXJ5
UnVsZXNbaV07CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgZm9yIChhdXRv
JiBzZXQgOiBkeW5hbWljUnVsZXMubWVkaWFRdWVyeVNldHMpIHsKICAgICAgICAgICAgIGlmICgh
ZXZhbHVhdG9yLmV2YWx1YXRlKHNldC5nZXQoKSkpIHsKQEAgLTQxOSwxOSArNDQ5LDI0IEBAIFJ1
bGVTZXQ6Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnVsZXMoY29uc3QKIAogICAgICAgICBpZiAocmVzdWx0ICE9IGR5bmFtaWNSdWxl
cy5yZXN1bHQpIHsKICAgICAgICAgICAgIGR5bmFtaWNSdWxlcy5yZXN1bHQgPSByZXN1bHQ7Ci0g
ICAgICAgICAgICBpZiAoZHluYW1pY1J1bGVzLnJlcXVpcmVzRnVsbFJlc2V0KQotICAgICAgICAg
ICAgICAgIHJldHVybiBNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpSZXNldDsKKworICAgICAg
ICAgICAgaWYgKGR5bmFtaWNSdWxlcy5yZXF1aXJlc0Z1bGxSZXNldCkgeworICAgICAgICAgICAg
ICAgIGNvbGxlY3RlZENoYW5nZXMucmVxdWlyZWRGdWxsUmVzZXQgPSB0cnVlOworICAgICAgICAg
ICAgICAgIHJldHVybiBjb2xsZWN0ZWRDaGFuZ2VzOworICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICB0cmF2ZXJzZVJ1bGVEYXRhcyhbJl0oUnVsZURhdGEmIHJ1bGVEYXRhKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFkeW5hbWljUnVsZXMuYWZmZWN0ZWRSdWxlUG9zaXRpb25zLmNvbnRhaW5z
KHJ1bGVEYXRhLnBvc2l0aW9uKCkpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgcnVsZURhdGEuc2V0RW5hYmxlZChyZXN1bHQpOwotICAgICAgICAgICAgICAg
IGNoYW5nZXMgPSB0cnVlOwogICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGNvbGxlY3Rl
ZENoYW5nZXMuY2hhbmdlZFF1ZXJ5SW5kZXhlcy5hcHBlbmQoaSk7CisgICAgICAgICAgICBjb2xs
ZWN0ZWRDaGFuZ2VzLnJ1bGVGZWF0dXJlcy5hcHBlbmQoJmR5bmFtaWNSdWxlcy5ydWxlRmVhdHVy
ZXMpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGNoYW5nZXMgPyBNZWRpYVF1ZXJ5
U3R5bGVVcGRhdGVUeXBlOjpSZXNvbHZlIDogTWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6Tm9u
ZTsKKyAgICByZXR1cm4gY29sbGVjdGVkQ2hhbmdlczsKIH0KIAogYm9vbCBSdWxlU2V0OjpoYXNT
aGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoKSBjb25zdApAQCAtNDcyLDcgKzUwNyw3IEBAIHZvaWQg
UnVsZVNldDo6c2hyaW5rVG9GaXQoKQogCiBSdWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjp+
TWVkaWFRdWVyeUNvbGxlY3RvcigpID0gZGVmYXVsdDsKIAotYm9vbCBSdWxlU2V0OjpNZWRpYVF1
ZXJ5Q29sbGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUoTWVkaWFRdWVyeVNldCogc2V0KQorYm9vbCBS
dWxlU2V0OjpNZWRpYVF1ZXJ5Q29sbGVjdG9yOjpwdXNoQW5kRXZhbHVhdGUoY29uc3QgTWVkaWFR
dWVyeVNldCogc2V0KQogewogICAgIGlmICghc2V0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTQ5NSw3ICs1MzAsNyBAQCBib29sIFJ1bGVTZXQ6Ok1lZGlhUXVlcnlDb2xsZWN0b3I6OnB1c2hB
bmRFdmFsdWF0ZShNZWRpYVF1ZXJ5U2V0KiBzZXQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cG9wKE1lZGlhUXVlcnlTZXQqIHNldCkK
K3ZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6cG9wKGNvbnN0IE1lZGlhUXVlcnlT
ZXQqIHNldCkKIHsKICAgICBpZiAoIXNldCB8fCBkeW5hbWljQ29udGV4dFN0YWNrLmlzRW1wdHko
KSB8fCBzZXQgIT0gJmR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgpLnNldC5nZXQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTA4LDYgKzU0Myw5IEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVyeUNv
bGxlY3Rvcjo6cG9wKE1lZGlhUXVlcnlTZXQqIHNldCkKICAgICAgICAgaWYgKGNvbGxlY3REeW5h
bWljKSB7CiAgICAgICAgICAgICBhdXRvJiB0b0FkZCA9IGR5bmFtaWNDb250ZXh0U3RhY2subGFz
dCgpLmFmZmVjdGVkUnVsZVBvc2l0aW9uczsKICAgICAgICAgICAgIHJ1bGVzLmFmZmVjdGVkUnVs
ZVBvc2l0aW9ucy5hZGQodG9BZGQuYmVnaW4oKSwgdG9BZGQuZW5kKCkpOworCisgICAgICAgICAg
ICBydWxlcy5ydWxlRmVhdHVyZXMgPSBXVEZNb3ZlKGR5bmFtaWNDb250ZXh0U3RhY2subGFzdCgp
LnJ1bGVGZWF0dXJlcyk7CisgICAgICAgICAgICBydWxlcy5ydWxlRmVhdHVyZXMuc2hyaW5rVG9G
aXQoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBydWxlcy5yZXF1aXJlc0Z1bGxSZXNl
dCA9IHRydWU7CiAKQEAgLTUyNCwxMSArNTYyLDE0IEBAIHZvaWQgUnVsZVNldDo6TWVkaWFRdWVy
eUNvbGxlY3Rvcjo6ZGlkTXV0YXRlUmVzb2x2ZXIoKQogICAgIGRpZE11dGF0ZVJlc29sdmVyV2l0
aGluRHluYW1pY01lZGlhUXVlcnkgPSB0cnVlOwogfQogCi12b2lkIFJ1bGVTZXQ6Ok1lZGlhUXVl
cnlDb2xsZWN0b3I6OmFkZFJ1bGVQb3NpdGlvbklmTmVlZGVkKHNpemVfdCBpbmRleCkKK3ZvaWQg
UnVsZVNldDo6TWVkaWFRdWVyeUNvbGxlY3Rvcjo6YWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1bGVE
YXRhJiBydWxlRGF0YSkKIHsKICAgICBpZiAoZHluYW1pY0NvbnRleHRTdGFjay5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBkeW5hbWljQ29udGV4dFN0YWNrLmxhc3QoKS5hZmZlY3Rl
ZFJ1bGVQb3NpdGlvbnMuYXBwZW5kKGluZGV4KTsKKworICAgIGF1dG8mIGNvbnRleHQgPSBkeW5h
bWljQ29udGV4dFN0YWNrLmxhc3QoKTsKKyAgICBjb250ZXh0LmFmZmVjdGVkUnVsZVBvc2l0aW9u
cy5hcHBlbmQocnVsZURhdGEucG9zaXRpb24oKSk7CisgICAgY29udGV4dC5ydWxlRmVhdHVyZXMu
YXBwZW5kKHsgcnVsZURhdGEucnVsZSgpLCBydWxlRGF0YS5zZWxlY3RvckluZGV4KCksIHJ1bGVE
YXRhLnNlbGVjdG9yTGlzdEluZGV4KCkgfSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvUnVsZVNldC5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCmlu
ZGV4IDg0ZGRmYTZjMTdjLi40ZGMzNzYyZTIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvUnVsZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9ySGFz
aC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9tU3RyaW5nSGFzaC5oPgogCkBAIC00MCw2ICs0MSwyMiBAQCBjbGFzcyBTdHlsZVNoZWV0
Q29udGVudHM7CiBuYW1lc3BhY2UgU3R5bGUgewogCiBjbGFzcyBSZXNvbHZlcjsKK2NsYXNzIFJ1
bGVTZXQ7CisKK3N0cnVjdCBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzIHsKKyAg
ICBlbnVtIGNsYXNzIFR5cGUgeyBJbnZhbGlkYXRlU3R5bGUsIFJlc2V0U3R5bGUgfTsKKyAgICBU
eXBlIHR5cGU7CisgICAgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiBpbnZhbGlkYXRpb25SdWxl
U2V0cyB7IH07CisKKyAgICB2b2lkIGFwcGVuZChEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25D
aGFuZ2VzJiYgb3RoZXIpCisgICAgeworICAgICAgICB0eXBlID0gc3RkOjptYXgodHlwZSwgb3Ro
ZXIudHlwZSk7CisgICAgICAgIGlmICh0eXBlID09IFR5cGU6OlJlc2V0U3R5bGUpCisgICAgICAg
ICAgICBpbnZhbGlkYXRpb25SdWxlU2V0cy5jbGVhcigpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBpbnZhbGlkYXRpb25SdWxlU2V0cy5hcHBlbmRWZWN0b3IoV1RGTW92ZShvdGhlci5pbnZh
bGlkYXRpb25SdWxlU2V0cykpOworICAgIH07Cit9OwogCiBjbGFzcyBSdWxlU2V0IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShSdWxlU2V0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBA
IC02Myw4ICs4MCw5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPFJ1bGVEYXRhVmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKICAgICBzdHJ1
Y3QgRHluYW1pY01lZGlhUXVlcnlSdWxlcyB7Ci0gICAgICAgIFZlY3RvcjxSZWY8TWVkaWFRdWVy
eVNldD4+IG1lZGlhUXVlcnlTZXRzOworICAgICAgICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlhUXVl
cnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsKICAgICAgICAgSGFzaFNldDxzaXplX3QsIERlZmF1bHRI
YXNoPHNpemVfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8c2l6
ZV90Pj4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zOworICAgICAgICBWZWN0b3I8UnVsZUZlYXR1cmU+
IHJ1bGVGZWF0dXJlczsKICAgICAgICAgYm9vbCByZXF1aXJlc0Z1bGxSZXNldCB7IGZhbHNlIH07
CiAgICAgICAgIGJvb2wgcmVzdWx0IHsgdHJ1ZSB9OwogICAgIH07CkBAIC03Niw4ICs5NCw5IEBA
IHB1YmxpYzoKICAgICAgICAgY29uc3QgYm9vbCBjb2xsZWN0RHluYW1pYyB7IGZhbHNlIH07CiAK
ICAgICAgICAgc3RydWN0IER5bmFtaWNDb250ZXh0IHsKLSAgICAgICAgICAgIFJlZjxNZWRpYVF1
ZXJ5U2V0PiBzZXQ7CisgICAgICAgICAgICBSZWY8Y29uc3QgTWVkaWFRdWVyeVNldD4gc2V0Owog
ICAgICAgICAgICAgVmVjdG9yPHNpemVfdD4gYWZmZWN0ZWRSdWxlUG9zaXRpb25zIHsgfTsKKyAg
ICAgICAgICAgIFZlY3RvcjxSdWxlRmVhdHVyZT4gcnVsZUZlYXR1cmVzIHsgfTsKICAgICAgICAg
fTsKICAgICAgICAgVmVjdG9yPER5bmFtaWNDb250ZXh0PiBkeW5hbWljQ29udGV4dFN0YWNrIHsg
fTsKIApAQCAtODUsMTAgKzEwNCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGlkTXV0YXRl
UmVzb2x2ZXJXaXRoaW5EeW5hbWljTWVkaWFRdWVyeSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wg
aGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMgeyBmYWxzZSB9OwogCi0gICAgICAgIGJv
b2wgcHVzaEFuZEV2YWx1YXRlKE1lZGlhUXVlcnlTZXQqKTsKLSAgICAgICAgdm9pZCBwb3AoTWVk
aWFRdWVyeVNldCopOworICAgICAgICBib29sIHB1c2hBbmRFdmFsdWF0ZShjb25zdCBNZWRpYVF1
ZXJ5U2V0Kik7CisgICAgICAgIHZvaWQgcG9wKGNvbnN0IE1lZGlhUXVlcnlTZXQqKTsKICAgICAg
ICAgdm9pZCBkaWRNdXRhdGVSZXNvbHZlcigpOwotICAgICAgICB2b2lkIGFkZFJ1bGVQb3NpdGlv
bklmTmVlZGVkKHNpemVfdCk7CisgICAgICAgIHZvaWQgYWRkUnVsZUlmTmVlZGVkKGNvbnN0IFJ1
bGVEYXRhJik7CiAgICAgfTsKIAogICAgIHZvaWQgYWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVl
dENvbnRlbnRzJiwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOwpAQCAtMTAzLDggKzEyMiw3
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMo
KSBjb25zdCB7IHJldHVybiBtX2hhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzOyB9CiAK
LSAgICBlbnVtIGNsYXNzIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgeyBOb25lLCBSZXNvbHZl
LCBSZXNldCB9OwotICAgIE1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGUgZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnVsZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYpOworICAgIE9wdGlvbmFs
PER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1dGVEeW5hbWljTWVkaWFR
dWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKIAogICAgIGNvbnN0IFJ1bGVG
ZWF0dXJlU2V0JiBmZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXM7IH0KIApAQCAt
MTMzLDkgKzE1MSwxNiBAQCBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgQWRkUnVsZXNNb2RlIHsg
Tm9ybWFsLCBSZXNvbHZlck11dGF0aW9uU2NhbiB9OwogICAgIHZvaWQgYWRkUnVsZXNGcm9tU2hl
ZXQoU3R5bGVTaGVldENvbnRlbnRzJiwgTWVkaWFRdWVyeUNvbGxlY3RvciYsIFN0eWxlOjpSZXNv
bHZlciosIEFkZFJ1bGVzTW9kZSk7CiAgICAgdm9pZCBhZGRDaGlsZFJ1bGVzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiwgTWVkaWFRdWVyeUNvbGxlY3RvciYsIFN0eWxlOjpS
ZXNvbHZlciosIEFkZFJ1bGVzTW9kZSk7CisgICAgc3RydWN0IENvbGxlY3RlZE1lZGlhUXVlcnlD
aGFuZ2VzIHsKKyAgICAgICAgYm9vbCByZXF1aXJlZEZ1bGxSZXNldCB7IGZhbHNlIH07CisgICAg
ICAgIFZlY3RvcjxzaXplX3Q+IGNoYW5nZWRRdWVyeUluZGV4ZXMgeyB9OworICAgICAgICBWZWN0
b3I8Y29uc3QgVmVjdG9yPFJ1bGVGZWF0dXJlPio+IHJ1bGVGZWF0dXJlcyB7IH07CisgICAgfTsK
KyAgICBDb2xsZWN0ZWRNZWRpYVF1ZXJ5Q2hhbmdlcyBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlS
dWxlcyhjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiwgc2l6ZV90IHN0YXJ0SW5kZXgpOwogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24+IHZvaWQgdHJhdmVyc2VSdWxlRGF0YXMoRnVu
Y3Rpb24mJik7CiAKKwogICAgIEF0b21SdWxlTWFwIG1faWRSdWxlczsKICAgICBBdG9tUnVsZU1h
cCBtX2NsYXNzUnVsZXM7CiAgICAgQXRvbVJ1bGVNYXAgbV90YWdMb2NhbE5hbWVSdWxlczsKQEAg
LTE1Nyw2ICsxODIsNyBAQCBwcml2YXRlOgogICAgIFJ1bGVGZWF0dXJlU2V0IG1fZmVhdHVyZXM7
CiAgICAgYm9vbCBtX2hhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzIHsgZmFsc2UgfTsK
ICAgICBWZWN0b3I8RHluYW1pY01lZGlhUXVlcnlSdWxlcz4gbV9keW5hbWljTWVkaWFRdWVyeVJ1
bGVzOworICAgIEhhc2hNYXA8VmVjdG9yPHNpemVfdD4sIHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBS
dWxlU2V0Pj4gbV9tZWRpYVF1ZXJ5SW52YWxpZGF0aW9uUnVsZVNldENhY2hlOwogfTsKIAogaW5s
aW5lIGNvbnN0IFJ1bGVTZXQ6OlJ1bGVEYXRhVmVjdG9yKiBSdWxlU2V0Ojp0YWdSdWxlcyhjb25z
dCBBdG9tU3RyaW5nJiBrZXksIGJvb2wgaXNIVE1MTmFtZSkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMzU5NDRkMTg2ODQuLjY1NTcyNGJmOWQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApAQCAtNjA3LDcgKzYwNyw3IEBAIGJv
b2wgUmVzb2x2ZXI6Omhhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QKICAg
ICByZXR1cm4gbV9ydWxlU2V0cy5oYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpOwog
fQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFJlc29sdmVyOjpldmFsdWF0
ZUR5bmFtaWNNZWRpYVF1ZXJpZXMoKQorT3B0aW9uYWw8RHluYW1pY01lZGlhUXVlcnlFdmFsdWF0
aW9uQ2hhbmdlcz4gUmVzb2x2ZXI6OmV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygpCiB7CiAg
ICAgcmV0dXJuIG1fcnVsZVNldHMuZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMobV9tZWRp
YVF1ZXJ5RXZhbHVhdG9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaAppbmRl
eCAyZWQ1ZmU4NWM5Mi4uNjYwMzUzM2FhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVyLmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIGJvb2wgaGFz
Vmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdDsKLSAgICBSdWxlU2V0OjpNZWRp
YVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIGV2YWx1YXRlRHluYW1pY01lZGlhUXVlcmllcygpOworICAg
IE9wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1YXRlRHlu
YW1pY01lZGlhUXVlcmllcygpOwogCiAgICAgdm9pZCBhZGRLZXlmcmFtZVN0eWxlKFJlZjxTdHls
ZVJ1bGVLZXlmcmFtZXM+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCmluZGV4
IDkwYjYzZDJkZTQ4Li45YWIyZGIwZjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5j
cHAKQEAgLTY0MywzMCArNjQzLDMzIEBAIHZvaWQgU2NvcGU6OmV2YWx1YXRlTWVkaWFRdWVyaWVz
Rm9yQXBwZWFyYW5jZUNoYW5nZSgpCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGVzdEZ1bmN0aW9uPgog
dm9pZCBTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1bmN0aW9uJiYgdGVzdEZ1bmN0
aW9uKQogewotICAgIGlmICghbV9zaGFkb3dSb290KSB7Ci0gICAgICAgIGZvciAoYXV0byogZGVz
Y2VuZGFudFNoYWRvd1Jvb3QgOiBtX2RvY3VtZW50LmluRG9jdW1lbnRTaGFkb3dSb290cygpKQot
ICAgICAgICAgICAgZGVzY2VuZGFudFNoYWRvd1Jvb3QtPnN0eWxlU2NvcGUoKS5ldmFsdWF0ZU1l
ZGlhUXVlcmllcyh0ZXN0RnVuY3Rpb24pOwotICAgIH0KICAgICBhdXRvKiByZXNvbHZlciA9IHJl
c29sdmVySWZFeGlzdHMoKTsKICAgICBpZiAoIXJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIHVwZGF0ZVR5cGUgPSB0ZXN0RnVuY3Rpb24oKnJlc29sdmVyKTsKKyAgICBhdXRv
IGV2YWx1YXRpb25DaGFuZ2VzID0gdGVzdEZ1bmN0aW9uKCpyZXNvbHZlcik7CisgICAgaWYgKGV2
YWx1YXRpb25DaGFuZ2VzKSB7CisgICAgICAgIHN3aXRjaCAoZXZhbHVhdGlvbkNoYW5nZXMtPnR5
cGUpIHsKKyAgICAgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpU
eXBlOjpJbnZhbGlkYXRlU3R5bGU6IHsKKyAgICAgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRh
dG9yKGV2YWx1YXRpb25DaGFuZ2VzLT5pbnZhbGlkYXRpb25SdWxlU2V0cyk7CisgICAgICAgICAg
ICBpZiAobV9zaGFkb3dSb290KQorICAgICAgICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRh
dGVTdHlsZSgqbV9zaGFkb3dSb290KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlv
bkNoYW5nZXM6OlR5cGU6OlJlc2V0U3R5bGU6CisgICAgICAgICAgICBzY2hlZHVsZVVwZGF0ZShV
cGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24pOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KIAotICAgIHN3aXRjaCAodXBkYXRlVHlwZSkgewotICAgIGNhc2UgUnVsZVNl
dDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6Tm9uZToKLSAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzb2x2ZToKLSAgICAg
ICAgLy8gRklYTUU6IFdlIGNvdWxkIGhhdmUgYW4gaW52YWxpZGF0aW9uIHJ1bGVzZXQgZm9yIHJ1
bGVzIGluc2lkZSBkeW5hbWljIG1lZGlhIHF1ZXJpZXMuCi0gICAgICAgIGlmIChhdXRvKiBkb2N1
bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICAgICAg
ZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgUnVsZVNldDo6TWVkaWFRdWVyeVN0eWxlVXBkYXRlVHlwZTo6UmVzZXQ6
Ci0gICAgICAgIHNjaGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGU6OkNvbnRlbnRzT3JJbnRlcnByZXRh
dGlvbik7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
Om1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKG1fZG9jdW1lbnQpOwogICAgIH0KIAotICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6bWVkaWFRdWVyeVJlc3VsdENoYW5nZWQobV9kb2N1bWVudCk7
CisgICAgaWYgKCFtX3NoYWRvd1Jvb3QpIHsKKyAgICAgICAgZm9yIChhdXRvKiBkZXNjZW5kYW50
U2hhZG93Um9vdCA6IG1fZG9jdW1lbnQuaW5Eb2N1bWVudFNoYWRvd1Jvb3RzKCkpCisgICAgICAg
ICAgICBkZXNjZW5kYW50U2hhZG93Um9vdC0+c3R5bGVTY29wZSgpLmV2YWx1YXRlTWVkaWFRdWVy
aWVzKHRlc3RGdW5jdGlvbik7CisgICAgfQogfQogCiB2b2lkIFNjb3BlOjpkaWRDaGFuZ2VBY3Rp
dmVTdHlsZVNoZWV0Q2FuZGlkYXRlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZVJ1bGVTZXRzLmNwcAppbmRleCAwMTFjNzk2MWE0OC4uYWQwY2I5OTdiMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcApAQCAtNTIsMTAgKzUyLDYgQEAg
U2NvcGVSdWxlU2V0czo6flNjb3BlUnVsZVNldHMoKQogCiBSdWxlU2V0KiBTY29wZVJ1bGVTZXRz
Ojp1c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgaGF2ZSBhIHNlcGFyYXRlIHR5cGVzIGZvciBkb2N1bWVudCBydWxlIHNldHMgYW5kIHNo
YWRvdyB0cmVlIHJ1bGUgc2V0cy4KLSAgICBpZiAobV9pc0ZvclNoYWRvd1Njb3BlKQotICAgICAg
ICByZXR1cm4gbV9zdHlsZVJlc29sdmVyLmRvY3VtZW50KCkuc3R5bGVTY29wZSgpLnJlc29sdmVy
KCkucnVsZVNldHMoKS51c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKTsKLQogICAgIHVwZGF0ZVVz
ZXJBZ2VudE1lZGlhUXVlcnlTdHlsZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIG1fdXNlckFnZW50
TWVkaWFRdWVyeVN0eWxlLmdldCgpOwogfQpAQCAtMTQxLDI3ICsxMzcsMjYgQEAgYm9vbCBTY29w
ZVJ1bGVTZXRzOjpoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1SdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlIFNj
b3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVzKGNvbnN0IE1lZGlhUXVl
cnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKK09wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVh
dGlvbkNoYW5nZXM+IFNjb3BlUnVsZVNldHM6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1bGVz
KGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIGV2YWx1YXRvcikKIHsKLSAgICBhdXRvIHVwZGF0
ZVR5cGUgPSBSdWxlU2V0OjpNZWRpYVF1ZXJ5U3R5bGVVcGRhdGVUeXBlOjpOb25lOworICAgIE9w
dGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM+IGV2YWx1YXRpb25DaGFu
Z2VzOwogCi0gICAgYXV0byBldmFsdWF0ZSA9IFsmXShhdXRvJiBydWxlU2V0KSB7CisgICAgYXV0
byBldmFsdWF0ZSA9IFsmXShhdXRvKiBydWxlU2V0KSB7CiAgICAgICAgIGlmICghcnVsZVNldCkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgYXV0byBuZXdVcGRhdGVUeXBlID0g
cnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMoZXZhbHVhdG9yKTsKLSAgICAg
ICAgaWYgKG5ld1VwZGF0ZVR5cGUgPiB1cGRhdGVUeXBlKQotICAgICAgICAgICAgdXBkYXRlVHlw
ZSA9IG5ld1VwZGF0ZVR5cGU7Ci0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlID09IFJ1bGVTZXQ6
Ok1lZGlhUXVlcnlTdHlsZVVwZGF0ZVR5cGU6OlJlc2V0OworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBpZiAoYXV0byBjaGFuZ2VzID0gcnVsZVNldC0+ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1
ZXJ5UnVsZXMoZXZhbHVhdG9yKSkgeworICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25DaGFuZ2Vz
KQorICAgICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFuZ2VzLT5hcHBlbmQoV1RGTW92ZSgqY2hh
bmdlcykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGV2YWx1YXRpb25DaGFu
Z2VzID0gY2hhbmdlczsKKyAgICAgICAgfQogICAgIH07CiAKLSAgICBpZiAoZXZhbHVhdGUobV9h
dXRob3JTdHlsZSkpCi0gICAgICAgIHJldHVybiB1cGRhdGVUeXBlOwotCi0gICAgaWYgKGV2YWx1
YXRlKG1fdXNlclN0eWxlKSkKLSAgICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgZXZhbHVh
dGUoJmF1dGhvclN0eWxlKCkpOworICAgIGV2YWx1YXRlKHVzZXJTdHlsZSgpKTsKKyAgICBldmFs
dWF0ZSh1c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUoKSk7CiAKLSAgICBldmFsdWF0ZShtX3VzZXJB
Z2VudE1lZGlhUXVlcnlTdHlsZSk7Ci0gICAgcmV0dXJuIHVwZGF0ZVR5cGU7CisgICAgcmV0dXJu
IGV2YWx1YXRpb25DaGFuZ2VzOwogfQogCiB2b2lkIFNjb3BlUnVsZVNldHM6OmFwcGVuZEF1dGhv
clN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiBzdHlsZVNo
ZWV0cywgTWVkaWFRdWVyeUV2YWx1YXRvciogbWVkaXVtLCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJz
JiBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuaAppbmRleCA5ZGE3OGEzMzg3Ny4uODc5NWU0ODIyMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC03OSw3ICs3OSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKICAgICBib29sIGhh
c1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3Q7Ci0gICAgUnVsZVNldDo6TWVk
aWFRdWVyeVN0eWxlVXBkYXRlVHlwZSBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25z
dCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CisKKyAgICBPcHRpb25hbDxEeW5hbWljTWVkaWFRdWVy
eUV2YWx1YXRpb25DaGFuZ2VzPiBldmFsdXRlRHluYW1pY01lZGlhUXVlcnlSdWxlcyhjb25zdCBN
ZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAKICAgICBSdWxlRmVhdHVyZVNldCYgbXV0YWJsZUZlYXR1
cmVzKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>