<?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>198453</bug_id>
          
          <creation_ts>2019-06-01 10:43:38 -0700</creation_ts>
          <short_desc>Reenable Gigacage on ARM64.</short_desc>
          <delta_ts>2019-06-16 20:46:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>198486</dependson>
    
    <dependson>198698</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pvollan</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1540968</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-01 10:43:38 -0700</bug_when>
    <thetext>Reenable Gigacage on ARM64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540969</commentid>
    <comment_count>1</comment_count>
      <attachid>371113</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-01 10:47:57 -0700</bug_when>
    <thetext>Created attachment 371113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540970</commentid>
    <comment_count>2</comment_count>
      <attachid>371113</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-01 10:49:58 -0700</bug_when>
    <thetext>Comment on attachment 371113
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        Gigacaging would otherwise strip a PAC failed authenticate bit we
&gt; +        force a load of the pointer into some garbage register.

I was thinking this would be free because we would load the length from the base of the pointer anyway. Unfortunately, that is only true for butterflies and not for TypedArray storage. I&apos;m not sure what the right fix is... perhaps this is still fine but it&apos;s probably better to not pollute the caching hierarchy...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541117</commentid>
    <comment_count>3</comment_count>
      <attachid>371113</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-02 13:02:06 -0700</bug_when>
    <thetext>Comment on attachment 371113
Patch

Clearing flags on attachment: 371113

Committed r246022: &lt;https://trac.webkit.org/changeset/246022&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541118</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-02 13:02:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541119</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-02 13:03:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/51340879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541248</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-03 09:45:03 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 198486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541350</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2019-06-03 14:44:35 -0700</bug_when>
    <thetext>Note: Internal tests also show a 3-5x magnitude performance regression on arm64e, compared to arm64. Probably a bug there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542136</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-05 13:24:55 -0700</bug_when>
    <thetext>Gonna take this over since Keith is busy at the moment with standards meetings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542357</commentid>
    <comment_count>9</comment_count>
      <attachid>371487</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-06 05:19:54 -0700</bug_when>
    <thetext>Created attachment 371487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542359</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-06 05:22:32 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #8)
&gt; Gonna take this over since Keith is busy at the moment with standards
&gt; meetings.

But I have a patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542360</commentid>
    <comment_count>11</comment_count>
      <attachid>371488</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-06 05:27:00 -0700</bug_when>
    <thetext>Created attachment 371488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542363</commentid>
    <comment_count>12</comment_count>
      <attachid>371488</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-06-06 05:38:11 -0700</bug_when>
    <thetext>Comment on attachment 371488
Patch

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

r=me with one comment.

&gt; Source/JavaScriptCore/offlineasm/instructions.rb:276
&gt; +     &quot;bfiq&quot;, # Bit field insert &lt;source reg&gt; &lt;width immediate&gt; &lt;last bit written&gt; &lt;dest reg&gt;

The order of width and last bit written seem to be backwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542364</commentid>
    <comment_count>13</comment_count>
      <attachid>371490</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-06 05:39:16 -0700</bug_when>
    <thetext>Created attachment 371490
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542367</commentid>
    <comment_count>14</comment_count>
      <attachid>371490</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-06 06:21:03 -0700</bug_when>
    <thetext>Comment on attachment 371490
Patch for landing

Clearing flags on attachment: 371490

Committed r246150: &lt;https://trac.webkit.org/changeset/246150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542368</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-06 06:21:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542417</commentid>
    <comment_count>16</comment_count>
      <attachid>371490</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-06 08:41:54 -0700</bug_when>
    <thetext>Comment on attachment 371490
Patch for landing

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6846
&gt; +    m_jit.cageWithoutUntaging(Gigacage::JSValue, dataGPR);

“Untaging” =&gt; “Untagging”</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542418</commentid>
    <comment_count>17</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-06 08:42:15 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #10)
&gt; (In reply to Saam Barati from comment #8)
&gt; &gt; Gonna take this over since Keith is busy at the moment with standards
&gt; &gt; meetings.
&gt; 
&gt; But I have a patch!

👍🏼</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542419</commentid>
    <comment_count>18</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-06 08:42:41 -0700</bug_when>
    <thetext>What was the perf regression from the prior patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542501</commentid>
    <comment_count>19</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-06 11:48:43 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #18)
&gt; What was the perf regression from the prior patch?

I was forcing a load of the untagged PC before passing it off to the gigacage stripping code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542504</commentid>
    <comment_count>20</comment_count>
      <attachid>371490</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-06 11:51:04 -0700</bug_when>
    <thetext>Comment on attachment 371490
Patch for landing

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6846
&gt;&gt; +    m_jit.cageWithoutUntaging(Gigacage::JSValue, dataGPR);
&gt; 
&gt; “Untaging” =&gt; “Untagging”

I uploaded a patch to fix the typo:  https://bugs.webkit.org/show_bug.cgi?id=198617</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543213</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-09 13:24:40 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 198698</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371113</attachid>
            <date>2019-06-01 10:47:57 -0700</date>
            <delta_ts>2019-06-06 05:19:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198453-20190601194754.patch</filename>
            <type>text/plain</type>
            <size>11302</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MzhlNmQwYTI5NTcyMWVkYThkOWM4YTkwNjI3ZjA3ZDFlNTg0MWUwLi41MzM4YmFiNGNjZDYxNzFi
ZmFmNzRkNWQ3MDdkNTVhNjc0ZjNkNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxOS0wNi0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBvbiBBUk02NC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ1MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBiYWNr
IEdpZ2FjYWdpbmcgb24gQXBwbGUncyBBUk02NCBwb3J0cy4gVW5saWtlIHRoZQorICAgICAgICBv
bGQgR2lnYWNhZ2UgaG93ZXZlciwgYXJtNjRlIHVzZXMgYm90aCBHaWdhY2FnaW5nIGFuZCBQQUMu
IFNpbmNlCisgICAgICAgIEdpZ2FjYWdpbmcgd291bGQgb3RoZXJ3aXNlIHN0cmlwIGEgUEFDIGZh
aWxlZCBhdXRoZW50aWNhdGUgYml0IHdlCisgICAgICAgIGZvcmNlIGEgbG9hZCBvZiB0aGUgcG9p
bnRlciBpbnRvIHNvbWUgZ2FyYmFnZSByZWdpc3Rlci4KKworICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6Omp1bXBG
b3JUeXBlZEFycmF5SXNOZXV0ZXJlZElmT3V0T2ZCb3VuZHMpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjYWdlVHlwZWRBcnJheVN0b3JhZ2UpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlTmV3VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OnVudGFnQXJyYXlQdHIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjYWdlZCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmNhZ2VDb25kaXRpb25hbGx5KToKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorCiAyMDE5LTA1LTMxICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHNldEVudHJ5
QWRkcmVzc0NvbW1vbiByZWdpc3RlciB1c2FnZSBpbiBMTEludCBBU00gV2luZG93cyA2NApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRl
eCAxMjg5YzhiOTE0OWMxYzc2YjViN2RhYTMyYWExY2JmZmI1OTJmNGEyLi4yYmExNzZiNTBjMmEy
M2ZjZWEyYjM2MjdhNGZiOGFmZDBjMTMzNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA2
LTAxICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJl
ZW5hYmxlIEdpZ2FjYWdlIG9uIEFSTTY0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB3dGYvQ2FnZWRQdHIuaDoKKyAgICAgICAgKFdURjo6Q2FnZWRQ
dHI6OmF1dGhlbnRpY2F0aW5nTG9hZCk6CisgICAgICAgIChXVEY6OkNhZ2VkUHRyOjpnZXQgY29u
c3QpOgorICAgICAgICAoV1RGOjpDYWdlZFB0cjo6Z2V0TWF5QmVOdWxsIGNvbnN0KToKKwogMjAx
OS0wNS0zMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVSTFBhcnNlcjo6cGFyc2VJUHY2SG9zdCBzaG91bGQgcHJvcGVybHkgcGFyc2UgMCdz
IGFyb3VuZCBjb21wcmVzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9n
IGIvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCmluZGV4IGY1Y2UwNWJlMzQ4ZDE4Yzg4ODRjZWI0
ZWNlZDI1NzlkNDU5MmVjNjUuLmY3MmI0ZTIxMGQ0MTJmMzE5ZWQ2YTk4NTQ4MmY3ZWE5NTU2ZjBj
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0wNi0wMSAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBv
biBBUk02NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5ODQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogYm1hbGxvYy9HaWdhY2FnZS5oOgorCiAyMDE5LTA1LTMwICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBBZGQgV0VCS0lUX0ZSQU1FV09S
S19UQVJHRVQgbWFjcm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKaW5kZXggZDA0MTBiMzVkMzkwMTdmODBkYjU5MDVlZDQ5MmQzZTMzODY4YmM1
Yy4uNTIyMjE0YTcwNGM2MWI0NzA4ZDdkZjQ1ZDE0MTMyMWRhOTVjMzczYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTI4NzMsNyAr
Mjg3Myw3IEBAIEpJVENvbXBpbGVyOjpKdW1wIFNwZWN1bGF0aXZlSklUOjpqdW1wRm9yVHlwZWRB
cnJheUlzTmV1dGVyZWRJZk91dE9mQm91bmRzKE5vZGUqCiAgICAgICAgICAgICAgICAgVHJ1c3Rl
ZEltbTMyKFdhc3RlZnVsVHlwZWRBcnJheSkpOwogCiAgICAgICAgICAgICBKSVRDb21waWxlcjo6
SnVtcCBoYXNOdWxsVmVjdG9yOwotI2lmICFHSUdBQ0FHRV9FTkFCTEVEICYmIENQVShBUk02NEUp
CisjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBHUFJSZWcg
c2NyYXRjaCA9IG1faml0LnNjcmF0Y2hSZWdpc3RlcigpOwogICAgICAgICAgICAgICAgIERpc2Fs
bG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBkaXNhbGxvd1NjcmF0Y2gobV9qaXQpOwpAQCAt
Mjg4Miw3ICsyODgyLDcgQEAgSklUQ29tcGlsZXI6Okp1bXAgU3BlY3VsYXRpdmVKSVQ6Omp1bXBG
b3JUeXBlZEFycmF5SXNOZXV0ZXJlZElmT3V0T2ZCb3VuZHMoTm9kZSoKICAgICAgICAgICAgICAg
ICBtX2ppdC5yZW1vdmVBcnJheVB0clRhZyhzY3JhdGNoKTsKICAgICAgICAgICAgICAgICBoYXNO
dWxsVmVjdG9yID0gbV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgc2Ny
YXRjaCk7CiAgICAgICAgICAgICB9Ci0jZWxzZSAvLyAhR0lHQUNBR0VfRU5BQkxFRCAmJiBDUFUo
QVJNNjRFKQorI2Vsc2UgLy8gQ1BVKEFSTTY0RSkKICAgICAgICAgICAgIGhhc051bGxWZWN0b3Ig
PSBtX2ppdC5icmFuY2hUZXN0UHRyKAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpa
ZXJvLAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UsIEpTQXJy
YXlCdWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSk7CkBAIC02NzE5LDYgKzY3MTksMTQgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnN0YW50U3RvcmFnZVBvaW50ZXIoTm9kZSog
bm9kZSkKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FnZVR5cGVkQXJyYXlTdG9yYWdlKEdQUlJl
ZyBiYXNlUmVnLCBHUFJSZWcgc3RvcmFnZVJlZykKIHsKKyNpZiBDUFUoQVJNNjRFKQorICAgIG1f
aml0LnVudGFnQXJyYXlQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNBcnJh
eUJ1ZmZlclZpZXc6Om9mZnNldE9mTGVuZ3RoKCkpLCBzdG9yYWdlUmVnKTsKKyAgICBtX2ppdC5s
b2FkUHRyKHN0b3JhZ2VSZWcsIG1faml0LnNjcmF0Y2hSZWdpc3RlcigpKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGJhc2VSZWcpOworICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlUmVnKTsKKyNl
bmRpZgorCiAjaWYgR0lHQUNBR0VfRU5BQkxFRAogICAgIFVOVVNFRF9QQVJBTShiYXNlUmVnKTsK
ICAgICBpZiAoIUdpZ2FjYWdlOjpzaG91bGRCZUVuYWJsZWQoKSkKQEAgLTY3MzIsMTEgKzY3NDAs
NiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWdlVHlwZWRBcnJheVN0b3JhZ2UoR1BSUmVnIGJh
c2VSZWcsIEdQUlJlZyBzdG9yYWdlUmVnKQogICAgIH0KICAgICAKICAgICBtX2ppdC5jYWdlKEdp
Z2FjYWdlOjpQcmltaXRpdmUsIHN0b3JhZ2VSZWcpOwotI2VsaWYgQ1BVKEFSTTY0RSkKLSAgICBt
X2ppdC51bnRhZ0FycmF5UHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTQXJy
YXlCdWZmZXJWaWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgc3RvcmFnZVJlZyk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShiYXNlUmVnKTsKLSAgICBVTlVTRURfUEFSQU0oc3RvcmFnZVJlZyk7CiAj
ZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCmluZGV4IDVlMjhhMWEyMzJiMTc3MWI1YTgyOTEyMzRmNDc2Y2ZiMzFiMjhmOTUuLjE0NTEz
MmYwMjNkMjE1MzZhNzA3NjI5MzY4YmYzNTZkZWRmYWFlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTY0NjMsNyArNjQ2Myw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgbV9vdXQuaW50NjRaZXJvLAogICAgICAgICAgICAgICAg
IG1faGVhcHMudHlwZWRBcnJheVByb3BlcnRpZXMpOwogCi0jaWYgIUdJR0FDQUdFX0VOQUJMRUQg
JiYgQ1BVKEFSTTY0RSkKKyNpZiBDUFUoQVJNNjRFKQogICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgIExWYWx1ZSBzaXplUHRyID0gbV9vdXQuemVyb0V4dFB0cihzaXplKTsKICAgICAgICAg
ICAgICAgICBQYXRjaHBvaW50VmFsdWUqIGF1dGhlbnRpY2F0ZSA9IG1fb3V0LnBhdGNocG9pbnQo
cG9pbnRlclR5cGUoKSk7CkBAIC0xNDEwOCw5ICsxNDEwOCwxMiBAQCBwcml2YXRlOgogICAgICAg
ICBQYXRjaHBvaW50VmFsdWUqIGF1dGhlbnRpY2F0ZSA9IG1fb3V0LnBhdGNocG9pbnQocG9pbnRl
clR5cGUoKSk7CiAgICAgICAgIGF1dGhlbnRpY2F0ZS0+YXBwZW5kU29tZVJlZ2lzdGVyKHB0cik7
CiAgICAgICAgIGF1dGhlbnRpY2F0ZS0+YXBwZW5kKHNpemUsIEIzOjpWYWx1ZVJlcChCMzo6VmFs
dWVSZXA6OlNvbWVMYXRlUmVnaXN0ZXIpKTsKKyAgICAgICAgYXV0aGVudGljYXRlLT5udW1HUFNj
cmF0Y2hSZWdpc3RlcnMgPSAxOwogICAgICAgICBhdXRoZW50aWNhdGUtPnNldEdlbmVyYXRvcihb
PV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgewogICAgICAgICAgICAgaml0Lm1vdmUocGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMF0u
Z3ByKCkpOwogICAgICAgICAgICAgaml0LnVudGFnQXJyYXlQdHIocGFyYW1zWzJdLmdwcigpLCBw
YXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgLy8gRm9yY2UgYSBsb2FkIHRvIGNoZWNrIGF1
dGhlbnRpY2F0aW9uLiBiZWZvcmUgaXQgaXMgY2xlYXJlZCBieSBHaWdhY2FnaW5nIGxhdGVyLgor
ICAgICAgICAgICAgaml0LmxvYWRQdHIocGFyYW1zWzBdLmdwcigpLCBwYXJhbXMuZ3BTY3JhdGNo
KDApKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiBhdXRoZW50aWNhdGU7CiAjZWxzZQpA
QCAtMTQxMzUsNiArMTQxMzgsMTYgQEAgcHJpdmF0ZToKIAogICAgIExWYWx1ZSBjYWdlZChHaWdh
Y2FnZTo6S2luZCBraW5kLCBMVmFsdWUgcHRyLCBMVmFsdWUgYmFzZSkKICAgICB7CisjaWYgQ1BV
KEFSTTY0RSkKKyAgICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkgeworICAg
ICAgICAgICAgTFZhbHVlIHNpemUgPSBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU0FycmF5
QnVmZmVyVmlld19sZW5ndGgpOworICAgICAgICAgICAgcHRyID0gdW50YWdBcnJheVB0cihwdHIs
IHNpemUpOworICAgICAgICB9CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oa2luZCk7Cisg
ICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKKyNlbmRpZgorCiAjaWYgR0lHQUNBR0VfRU5BQkxF
RAogICAgICAgICBVTlVTRURfUEFSQU0oYmFzZSk7CiAgICAgICAgIGlmICghR2lnYWNhZ2U6Omlz
RW5hYmxlZChraW5kKSkKQEAgLTE0MTY1LDE3ICsxNDE3OCw2IEBAIHByaXZhdGU6CiAgICAgICAg
IC8vIGFuZCBwb3NzaWJseSBvdGhlciBzbWFydCB0aGluZ3MgaWYgd2Ugd2FudCB0byBiZSBhYmxl
IHRvIHJlbW92ZSB0aGlzIG9wYXF1ZS4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NTQ5MwogICAgICAgICByZXR1cm4gbV9vdXQub3BhcXVlKHJl
c3VsdCk7Ci0jZWxpZiBDUFUoQVJNNjRFKQotICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6
UHJpbWl0aXZlKSB7Ci0gICAgICAgICAgICBMVmFsdWUgc2l6ZSA9IG1fb3V0LmxvYWQzMihiYXNl
LCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCk7Ci0gICAgICAgICAgICByZXR1cm4g
dW50YWdBcnJheVB0cihwdHIsIHNpemUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHB0
cjsKLSNlbHNlCi0gICAgICAgIFVOVVNFRF9QQVJBTShraW5kKTsKLSAgICAgICAgVU5VU0VEX1BB
UkFNKGJhc2UpOwotICAgICAgICByZXR1cm4gcHRyOwogI2VuZGlmCiAgICAgfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggZDkyNjhlODM2
OTE0MjFmZmVkYzE1NDEyMTdjODY3ZjM1MWVkYjhkNC4uNjA3NTA3MWRkZjA4ZGEzZDBlNWIzMTJk
MWY0ODgxNWI4M2JmYjI0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oCkBAIC0xNTcxLDYgKzE1NzEsMTggQEAgcHVibGljOgogICAgIAogICAgIHZvaWQg
Y2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OktpbmQga2luZCwgR1BSUmVnIHN0b3JhZ2UsIEdQ
UlJlZyBzY3JhdGNoT3JMZW5ndGgpCiAgICAgeworI2lmIENQVShBUk02NEUpCisgICAgICAgIGlm
IChraW5kID09IEdpZ2FjYWdlOjpQcmltaXRpdmUpIHsKKyAgICAgICAgICAgIHVudGFnQXJyYXlQ
dHIoc2NyYXRjaE9yTGVuZ3RoLCBzdG9yYWdlKTsKKyAgICAgICAgICAgIC8vIEZvcmNlIGEgbG9h
ZCB0byB0cmFwIG9uIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUuIHN0b3JhZ2Ugc2hvdWxkbid0IGJl
IG51bGwgaGVyZS4KKyAgICAgICAgICAgIGxvYWRQdHIoc3RvcmFnZSwgc2NyYXRjaE9yTGVuZ3Ro
KTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOworICAgICAg
ICBVTlVTRURfUEFSQU0oc3RvcmFnZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoT3JM
ZW5ndGgpOworI2VuZGlmCisKICNpZiBHSUdBQ0FHRV9FTkFCTEVECiAgICAgICAgIGlmICghR2ln
YWNhZ2U6OmlzRW5hYmxlZChraW5kKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE1ODMsMTMg
KzE1OTUsNiBAQCBwdWJsaWM6CiAgICAgICAgIGFuZFB0cihUcnVzdGVkSW1tUHRyKEdpZ2FjYWdl
OjptYXNrKGtpbmQpKSwgc3RvcmFnZSk7CiAgICAgICAgIGFkZFB0cihzY3JhdGNoT3JMZW5ndGgs
IHN0b3JhZ2UpOwogICAgICAgICBkb25lLmxpbmsodGhpcyk7Ci0jZWxpZiBDUFUoQVJNNjRFKQot
ICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKQotICAgICAgICAgICAgdW50
YWdBcnJheVB0cihzY3JhdGNoT3JMZW5ndGgsIHN0b3JhZ2UpOwotI2Vsc2UKLSAgICAgICAgVU5V
U0VEX1BBUkFNKGtpbmQpOwotICAgICAgICBVTlVTRURfUEFSQU0oc3RvcmFnZSk7Ci0gICAgICAg
IFVOVVNFRF9QQVJBTShzY3JhdGNoT3JMZW5ndGgpOwogI2VuZGlmCiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
CmluZGV4IDZhYWYwZGQxMGMzZWI4YWY2YjI3NzcxMzQxOWFjNDBlM2Q4NzgzOTcuLjRjZTgyZDhl
NjE5YWUyMTQ2YmVkMTVlMTc1ZTAwMzZiNjk0NWEyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC00MzQsMTAg
KzQzNCwxMyBAQCBlbmQKIAogbWFjcm8gbG9hZENhZ2VkUHJpbWl0aXZlKHNvdXJjZSwgZGVzdCwg
c2NyYXRjaE9yTGVuZ3RoKQogICAgIGxvYWRwIHNvdXJjZSwgZGVzdAorICAgIGlmIEFSTTY0RQor
ICAgICAgICB1bnRhZ0FycmF5UHRyIHNjcmF0Y2hPckxlbmd0aCwgZGVzdAorICAgICAgICAjIEZv
cmNlIGEgbG9hZCB0byBjaGVjayBQQUMgYmVmb3JlIHdlIGNsZWFyIGl0IGJlbG93LgorICAgICAg
ICBsb2FkcCBbZGVzdF0sIHNjcmF0Y2hPckxlbmd0aAorICAgIGVuZAogICAgIGlmIEdJR0FDQUdF
X0VOQUJMRUQKICAgICAgICAgdW5jYWdlKF9nX2dpZ2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6
QmFzZVB0cnM6OnByaW1pdGl2ZSwgY29uc3RleHByIEdpZ2FjYWdlOjpwcmltaXRpdmVHaWdhY2Fn
ZU1hc2ssIGRlc3QsIHNjcmF0Y2hPckxlbmd0aCkKLSAgICBlbHNpZiBBUk02NEUKLSAgICAgICAg
dW50YWdBcnJheVB0ciBzY3JhdGNoT3JMZW5ndGgsIGRlc3QKICAgICBlbmQKIGVuZAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DYWdlZFB0ci5oIGIvU291cmNlL1dURi93dGYvQ2FnZWRQ
dHIuaAppbmRleCA3MWVjNTFlMjk0N2I1YjJjYTA2ZWEyYzQwNTZkYWRjZWI5MzhkZjZlLi5lY2M5
ZTAwNDA3YTkyMjcxNTMyNDA1MjNlZWM1ZDdhNmZiOTIzMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9DYWdlZFB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NhZ2VkUHRyLmgKQEAgLTM1
LDYgKzM1LDE4IEBAIGNvbnN0ZXhwciBib29sIHRhZ0NhZ2VkUHRyID0gdHJ1ZTsKIAogdGVtcGxh
dGU8R2lnYWNhZ2U6OktpbmQgcGFzc2VkS2luZCwgdHlwZW5hbWUgVCwgYm9vbCBzaG91bGRUYWcg
PSBmYWxzZSwgdHlwZW5hbWUgUHRyVHJhaXRzID0gRHVtYlB0clRyYWl0czxUPj4KIGNsYXNzIENh
Z2VkUHRyIHsKKyNpZiBDUFUoQVJNNjRFKQorICAgIHN0YXRpYyB2b2lkIGF1dGhlbnRpY2F0aW5n
TG9hZChUKiBwdHIpCisgICAgeworICAgICAgICBkb3VibGUgcmVzdWx0OworICAgICAgICBhc20g
dm9sYXRpbGUoImxkciAlW291dF0sIFslW2luXV0iCisgICAgICAgICAgICA6IFtvdXRdICI9JnIi
KHJlc3VsdCkKKyAgICAgICAgICAgIDogW2luXSAiciIocHRyKSA6KTsKKyAgICB9CisjZWxzZQor
ICAgIHN0YXRpYyB2b2lkIGF1dGhlbnRpY2F0aW5nTG9hZChUKikgeyB9CisjZW5kaWYKKwogcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR2lnYWNhZ2U6OktpbmQga2luZCA9IHBhc3NlZEtp
bmQ7CiAKQEAgLTUyLDE2ICs2NCwyMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQo
bV9wdHIpOwogICAgICAgICBUKiBwdHIgPSBQdHJUcmFpdHM6OnVud3JhcChtX3B0cik7Ci0gICAg
ICAgIGlmIChzaG91bGRUYWcpCisgICAgICAgIGlmIChzaG91bGRUYWcpIHsKICAgICAgICAgICAg
IHB0ciA9IHVudGFnQXJyYXlQdHIocHRyLCBzaXplKTsKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0
aW5nTG9hZChwdHIpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBHaWdhY2FnZTo6Y2FnZWQo
a2luZCwgcHRyKTsKICAgICB9CiAKICAgICBUKiBnZXRNYXlCZU51bGwodW5zaWduZWQgc2l6ZSkg
Y29uc3QKICAgICB7CiAgICAgICAgIFQqIHB0ciA9IFB0clRyYWl0czo6dW53cmFwKG1fcHRyKTsK
LSAgICAgICAgaWYgKHNob3VsZFRhZykKKyAgICAgICAgaWYgKHNob3VsZFRhZykgewogICAgICAg
ICAgICAgcHRyID0gdW50YWdBcnJheVB0cihwdHIsIHNpemUpOworICAgICAgICAgICAgaWYgKHB0
cikKKyAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGluZ0xvYWQocHRyKTsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm4gR2lnYWNhZ2U6OmNhZ2VkTWF5QmVOdWxsKGtpbmQsIHB0cik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmggYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmgKaW5kZXggNzZkNzJkZjc0YTEzNmYwMjE5MTU1
Y2YyMDhmN2M3Nzk1OGM0ZTk5Ni4uYTM3ZDBiYWY5OTc5ZGVlY2MyZTllMjU0MmE4YzI5NThkZGY4
NmI1NyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oCisrKyBi
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuaApAQCAtMzQsNyArMzQsOCBAQAogI2lu
Y2x1ZGUgPGNzdGRkZWY+CiAjaW5jbHVkZSA8aW50dHlwZXMuaD4KIAotI2lmICgoQk9TKERBUldJ
TikgfHwgQk9TKExJTlVYKSkgJiYgQkNQVShYODZfNjQpKQorI2lmICgoQk9TKERBUldJTikgfHwg
Qk9TKExJTlVYKSkgJiYgXAorICAgIChCQ1BVKFg4Nl82NCkgfHwgKEJDUFUoQVJNNjQpICYmICFk
ZWZpbmVkKF9fSUxQMzJfXykgJiYgKCFCUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgQlBMQVRGT1JN
KElPUykpKSkpCiAjZGVmaW5lIEdJR0FDQUdFX0VOQUJMRUQgMQogI2Vsc2UKICNkZWZpbmUgR0lH
QUNBR0VfRU5BQkxFRCAwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371487</attachid>
            <date>2019-06-06 05:19:54 -0700</date>
            <delta_ts>2019-06-06 05:26:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198453-20190606141953.patch</filename>
            <type>text/plain</type>
            <size>32482</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTNmYjIxMTgyZWQ4YmY4MjI5YWZlYWU5MjQzNTUxZGNiNGMwOGRlLi4xOGEwMWIxZWEyMjBjYzc2
NDNiMjYyNjg4ZDFhMTk3ZmE1ZWJiYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxOS0wNi0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBvbiBBUk02NC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ1MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBiYWNr
IEdpZ2FjYWdpbmcgb24gQXBwbGUncyBBUk02NCBwb3J0cy4gVW5saWtlIHRoZQorICAgICAgICBv
bGQgR2lnYWNhZ2UgaG93ZXZlciwgYXJtNjRlIHVzZXMgYm90aCBHaWdhY2FnaW5nIGFuZCBQQUMu
IEluCisgICAgICAgIG9yZGVyIHRvIGVuc3VyZSB0aGUgUEFDIGJpdHMgYXJlIG5vdCBzdHJpcHBl
ZCBpbiB0aGUgY2FnaW5nCisgICAgICAgIHByb2Nlc3Mgd2UgdXNlIHRoZSBiaXQgZmllbGQgaW5z
ZXJ0IGluc3RydWN0aW9uIHRvIHRha2UgdGhlIGxvdworICAgICAgICBiaXRzIGZyb20gY2FnaW5n
IGFuZCB0aGUgaGlnaCBiaXRzIGZyb20gdGhlIFBBQyBhdXRoZW50aWNhdGlvbi4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmJpdEZpZWxkSW5zZXJ0NjQpOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0RS5oOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6
CisgICAgICAgIChKU0M6OnRlc3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJpdCk6CisgICAgICAg
IChKU0M6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJyYXlJc05ldXRlcmVk
SWZPdXRPZkJvdW5kcyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhZ2VU
eXBlZEFycmF5U3RvcmFnZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5V2l0aFNpemUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlTmV3VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNhZ2VkKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkFzc2VtYmx5SGVscGVyczo6Y2FnZVdpdGhvdXRVbnRhZ2luZyk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6Y2FnZUNvbmRpdGlvbmFsbHkpOgorICAgICAgICAoSlNDOjpB
c3NlbWJseUhlbHBlcnM6OmNhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEludFR5cGVkQXJyYXlHZXRCeVZh
bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEZsb2F0VHlwZWRBcnJheUdldEJ5VmFsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0SW50VHlwZWRBcnJheVB1dEJ5VmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0RmxvYXRUeXBlZEFycmF5UHV0QnlWYWwpOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc206CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2luc3RydWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3JlZ2lzdGVycy5y
YjoKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZSk6Cisg
ICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QpOgorICAg
ICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpC
M0lSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZSk6CisgICAgICAgIChK
U0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZENhbGxJbmRpcmVjdCk6CisgICAgICAgICogd2Fz
bS9XYXNtQmluZGluZy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub1dhc20pOgorICAg
ICAgICAqIHdhc20vanMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpjcmVhdGVK
U1RvV2FzbVdyYXBwZXIpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KToKKwogMjAxOS0wNi0wMyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAK
ICAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioqIgpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdl
TG9nCmluZGV4IGE3ZTgwMDA4NDViYWJjYTZkMWY0ZWRiNDE3MTIzZGU3NTgwMTRlYzguLjZhMmQ2
MWQ0YmUyNWNmZjAzMzM3N2E1MzUwZTEyZDg5ZGMwZjIzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxOS0wNi0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBvbiBBUk02NC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ1MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYm1hbGxvYy9HaWdhY2FnZS5oOgor
CiAyMDE5LTA2LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ2MDIyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBl
ZmY4YjcxZjM5MjMyMjc3ZmJlM2E2MzQ0ODY5NjU5Mzc0YmY4NjIxLi45MTU3MjU3NzI4YWI3YzY2
Y2QxZTJlMjZkMDE0NTE0ODc1NjJlMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMjUyNiw2ICsyNTI2LDE1
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuZmNzZWw8NjQ+KGRlc3QsIHRoZW5DYXNl
LCBlbHNlQ2FzZSwgQVJNNjRDb25kaXRpb24oY29uZCkpOwogICAgIH0KIAorICAgIC8vIEJpdCBm
aWVsZCBvcGVyYXRpb25zOgorCisgICAgLy8gZGVzdEJpdE9mZnNldCBpcyB0aGUgdG9wIGJpdCBv
ZiB0aGUgZGVzdGluYXRpb24gd2hlcmUgdGhlIGJpdHMgc2hvdWxkIGJlIGNvcGllZCB0by4gWmVy
byBpcyB0aGUgbG93ZXN0IG9yZGVyIGJpdC4KKyAgICB2b2lkIGJpdEZpZWxkSW5zZXJ0NjQoUmVn
aXN0ZXJJRCBzb3VyY2UsIHVuc2lnbmVkIGRlc3RCaXRPZmZzZXQsIHVuc2lnbmVkIHdpZHRoLCBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQod2lkdGggPD0gNjQgLSBkZXN0
Qml0T2Zmc2V0ICYmIGRlc3RCaXRPZmZzZXQgPCA2NCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJm
aTw2ND4oZGVzdCwgc291cmNlLCBkZXN0Qml0T2Zmc2V0LCB3aWR0aCk7CisgICAgfQorCiAgICAg
Ly8gRm9yd2FyZHMgLyBleHRlcm5hbCBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwog
ICAgIC8vIFRoaXMgc2V0IG9mIGp1bXAgYW5kIGNvbmRpdGlvbmFsIGJyYW5jaCBvcGVyYXRpb25z
IHJldHVybiBhIEp1bXAKQEAgLTQ1NTgsNiArNDU2Nyw3IEBAIHByb3RlY3RlZDoKICAgICB9CiAK
ICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsKKyAgICBmcmllbmQgY2xhc3MgREZHOjpTcGVj
dWxhdGl2ZUpJVDsKIAogICAgIHRlbXBsYXRlPFB0clRhZyB0YWc+CiAgICAgc3RhdGljIHZvaWQg
bGlua0NhbGwodm9pZCogY29kZSwgQ2FsbCBjYWxsLCBGdW5jdGlvblB0cjx0YWc+IGZ1bmN0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0RS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0RS5oCmluZGV4IDBiOTY4ZjZhZmVkZmVhNjk1YTRhM2EzMDhkMzQwZjA3NmM5Y2Zh
NDAuLmY5NWVlNTI1Y2NkYmU1NmQzODMxNjk1NmZhNWY5OWEzNDQ5ZDk1MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRF
LmgKQEAgLTM5LDYgKzM5LDkgQEAgdXNpbmcgQXNzZW1ibGVyID0gVEFSR0VUX0FTU0VNQkxFUjsK
IAogY2xhc3MgTWFjcm9Bc3NlbWJsZXJBUk02NEUgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJBUk02
NCB7CiBwdWJsaWM6CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUEFD
Qml0cyA9IDI1OyAvLyBUT0RPOiBGaWd1cmUgb3V0IHdoYXQgdGhpcyBudW1iZXIgYWN0dWFsbHkg
aXMuLi4KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCB0YWdSZXR1cm5BZGRyZXNzKCkKICAgICB7
CiAgICAgICAgIHRhZ1B0cihBUk02NFJlZ2lzdGVyczo6c3AsIEFSTTY0UmVnaXN0ZXJzOjpscik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IGFj
NWM2MzI5MWIzZDg5MzViNTliOWZjZTQwNjEzNzU0ZDlkZGMxZjEuLjgxNWMzZDFiYjU1ZWNlOWQx
NGZkODZiYzcwMGM4MDM3Nzg4ZTdjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvdGVzdG1hc20uY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jl
cy5oPgorI2luY2x1ZGUgPHd0Zi9QdHJUYWcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CiAKQEAgLTEwOSw2ICsxMTAsMTUg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBuZXh0SUQoVCBpZCkgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8VD4oaWQgKyAxKTsgfQogICAgICAgICBDUkFTSCgpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQog
CisjZGVmaW5lIENIRUNLX05PVF9FUShfYWN0dWFsLCBfZXhwZWN0ZWQpIGRvIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoKF9hY3R1YWwpICE9IChfZXhwZWN0
ZWQpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgYnJl
YWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICBjcmFzaExvY2subG9jaygpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkYXRhTG9nKCJGQUlMRUQgd2hpbGUgdGVzdGlu
ZyAiICNfYWN0dWFsICI6IGV4cGVjdGVkIG5vdDogIiwgX2V4cGVjdGVkLCAiLCBhY3R1YWw6ICIs
IF9hY3R1YWwsICJcbiIpOyBcCisgICAgICAgIFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUoX19G
SUxFX18sIF9fTElORV9fLCBXVEZfUFJFVFRZX0ZVTkNUSU9OLCAiQ0hFQ0tfTk9UX0VRKCIjX2Fj
dHVhbCAiLCAiICNfZXhwZWN0ZWQgIikiKTsgXAorICAgICAgICBDUkFTSCgpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hp
bGUgKGZhbHNlKQorCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBib29sIGlzUEMoTWFjcm9Bc3Nl
bWJsZXI6OlJlZ2lzdGVySUQgaWQpCiB7CkBAIC05MzUsNiArOTQ1LDQ3IEBAIHZvaWQgdGVzdEJ5
dGVTd2FwKCkKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCB0ZXN0Q2FnZVByZXNlcnZlc1BBQ0Zh
aWx1cmVCaXQoKQoreworICAgIGF1dG8gY2FnZSA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYg
aml0KSB7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICBqaXQu
Y2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAg
ICAgIGppdC5tb3ZlKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgaml0LnJl
dCgpOworICAgIH0pOworCisgICAgdm9pZCogcHRyID0gR2lnYWNhZ2U6OnRyeU1hbGxvYyhHaWdh
Y2FnZTo6UHJpbWl0aXZlLCAxKTsKKyAgICB2b2lkKiB0YWdnZWRQdHIgPSB0YWdBcnJheVB0cihw
dHIsIDEpOworICAgIGRhdGFMb2dMbigic3RhcnRpbmcgdGVzdCIpOworICAgIGlmIChpc0FSTTY0
RSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdvbid0IHdvcmsgaWYgYXV0aGVudGljYXRp
b24gZmFpbHVyZXMgdHJhcCBidXQgSSBkb24ndCBrbm93IGhvdyB0byB0ZXN0IGZvciB0aGF0IHJp
Z2h0IG5vdy4KKyAgICAgICAgQ0hFQ0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2FnZSwgdGFnZ2Vk
UHRyLCAyKSwgcHRyKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQq
PihjYWdlLCB0YWdnZWRQdHIsIDIpLCBwdHIpOworCisgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQq
PihjYWdlLCB0YWdnZWRQdHIsIDEpLCBwdHIpOworCisgICAgYXV0byBjYWdlV2l0aG91dEF1dGhl
bnRpY2F0aW9uID0gY29tcGlsZShbXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgaml0
LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CisgICAgICAgIGppdC5jYWdlV2l0aG91dFVudGFnaW5n
KEdpZ2FjYWdlOjpQcmltaXRpdmUsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGpp
dC5tb3ZlKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwor
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgaml0LnJldCgpOwor
ICAgIH0pOworCisgICAgaWYgKGlzQVJNNjRFKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMg
d29uJ3Qgd29yayBpZiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlcyB0cmFwIGJ1dCBJIGRvbid0IGtu
b3cgaG93IHRvIHRlc3QgZm9yIHRoYXQgcmlnaHQgbm93LgorICAgICAgICBDSEVDS19OT1RfRVEo
aW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1dGhlbnRpY2F0aW9uLCB1bnRhZ0FycmF5UHRyKHRh
Z2dlZFB0ciwgMikpLCBwdHIpOworICAgIH0gZWxzZQorICAgICAgICBDSEVDS19FUShpbnZva2U8
dm9pZCo+KGNhZ2VXaXRob3V0QXV0aGVudGljYXRpb24sIHVudGFnQXJyYXlQdHIodGFnZ2VkUHRy
LCAyKSksIHB0cik7CisKKyAgICBDSEVDS19FUSh1bnRhZ0FycmF5UHRyKHRhZ2dlZFB0ciwgMSks
IHB0cik7CisgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1dGhlbnRpY2F0
aW9uLCB1bnRhZ0FycmF5UHRyKHRhZ2dlZFB0ciwgMSkpLCBwdHIpOworCisgICAgR2lnYWNhZ2U6
OmZyZWUoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgcHRyKTsKK30KKwogI2RlZmluZSBSVU4odGVzdCkg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBpZiAoIXNob3VsZFJ1bigj
dGVzdCkpICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXApAQCAtMTAxOCw2ICsxMDY5LDggQEAgdm9pZCBydW4oY29uc3Qg
Y2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRlc3RCeXRlU3dhcCgpKTsKIAorICAgIFJVTih0ZXN0
Q2FnZVByZXNlcnZlc1BBQ0ZhaWx1cmVCaXQoKSk7CisKICAgICBpZiAodGFza3MuaXNFbXB0eSgp
KQogICAgICAgICB1c2FnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGU1NTM4ZjE5MzYwNjM2ZmM1YTQzYTNhMjlmZTE4ZjU0
MzcwMTVjNzcuLmIxZTNlZjI2NzU0YTUxMjdiYjNjMWVhM2RhYjc2YjczZGE0NGU0MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0y
ODczLDcgKzI4NzMsNyBAQCBKSVRDb21waWxlcjo6SnVtcCBTcGVjdWxhdGl2ZUpJVDo6anVtcEZv
clR5cGVkQXJyYXlJc05ldXRlcmVkSWZPdXRPZkJvdW5kcyhOb2RlKgogICAgICAgICAgICAgICAg
IFRydXN0ZWRJbW0zMihXYXN0ZWZ1bFR5cGVkQXJyYXkpKTsKIAogICAgICAgICAgICAgSklUQ29t
cGlsZXI6Okp1bXAgaGFzTnVsbFZlY3RvcjsKLSNpZiAhR0lHQUNBR0VfRU5BQkxFRCAmJiBDUFUo
QVJNNjRFKQorI2lmIENQVShBUk02NEUpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
R1BSUmVnIHNjcmF0Y2ggPSBtX2ppdC5zY3JhdGNoUmVnaXN0ZXIoKTsKICAgICAgICAgICAgICAg
ICBEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgZGlzYWxsb3dTY3JhdGNoKG1faml0
KTsKQEAgLTI4ODIsNyArMjg4Miw3IEBAIEpJVENvbXBpbGVyOjpKdW1wIFNwZWN1bGF0aXZlSklU
OjpqdW1wRm9yVHlwZWRBcnJheUlzTmV1dGVyZWRJZk91dE9mQm91bmRzKE5vZGUqCiAgICAgICAg
ICAgICAgICAgbV9qaXQucmVtb3ZlQXJyYXlQdHJUYWcoc2NyYXRjaCk7CiAgICAgICAgICAgICAg
ICAgaGFzTnVsbFZlY3RvciA9IG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olpl
cm8sIHNjcmF0Y2gpOwogICAgICAgICAgICAgfQotI2Vsc2UgLy8gIUdJR0FDQUdFX0VOQUJMRUQg
JiYgQ1BVKEFSTTY0RSkKKyNlbHNlIC8vIENQVShBUk02NEUpCiAgICAgICAgICAgICBoYXNOdWxs
VmVjdG9yID0gbV9qaXQuYnJhbmNoVGVzdFB0cigKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6WmVybywKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNl
LCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZWZWN0b3IoKSkpOwpAQCAtNjc2MCw2ICs2NzYw
LDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb25zdGFudFN0b3JhZ2VQb2ludGVy
KE5vZGUqIG5vZGUpCiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhZ2VUeXBlZEFycmF5U3RvcmFn
ZShHUFJSZWcgYmFzZVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcpCiB7CisjaWYgQ1BVKEFSTTY0RSkK
KyAgICBtX2ppdC51bnRhZ0FycmF5UHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcs
IEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgc3RvcmFnZVJlZyk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShiYXNlUmVnKTsKKyAgICBVTlVTRURfUEFSQU0oc3RvcmFnZVJl
Zyk7CisjZW5kaWYKKwogI2lmIEdJR0FDQUdFX0VOQUJMRUQKICAgICBVTlVTRURfUEFSQU0oYmFz
ZVJlZyk7CiAgICAgaWYgKCFHaWdhY2FnZTo6c2hvdWxkQmVFbmFibGVkKCkpCkBAIC02NzcyLDEy
ICs2Nzc5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FnZVR5cGVkQXJyYXlTdG9yYWdlKEdQ
UlJlZyBiYXNlUmVnLCBHUFJSZWcgc3RvcmFnZVJlZykKICAgICAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCi0gICAgbV9qaXQuY2FnZShHaWdhY2FnZTo6UHJpbWl0aXZlLCBzdG9yYWdlUmVn
KTsKLSNlbGlmIENQVShBUk02NEUpCi0gICAgbV9qaXQudW50YWdBcnJheVB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhiYXNlUmVnLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZMZW5ndGgo
KSksIHN0b3JhZ2VSZWcpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oYmFzZVJlZyk7Ci0gICAg
VU5VU0VEX1BBUkFNKHN0b3JhZ2VSZWcpOworICAgIG1faml0LmNhZ2VXaXRob3V0VW50YWdpbmco
R2lnYWNhZ2U6OlByaW1pdGl2ZSwgc3RvcmFnZVJlZyk7CiAjZW5kaWYKIH0KIApAQCAtNjg0MSw3
ICs2ODQzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFR5cGVkQXJyYXlCeXRl
T2Zmc2V0KE5vZGUqIG5vZGUpCiAgICAgSklUQ29tcGlsZXI6Okp1bXAgbnVsbFZlY3RvciA9IG1f
aml0LmJyYW5jaFRlc3RQdHIoSklUQ29tcGlsZXI6Olplcm8sIHZlY3RvckdQUik7CiAKICAgICBt
X2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTT2JqZWN0Ojpi
dXR0ZXJmbHlPZmZzZXQoKSksIGRhdGFHUFIpOwotICAgIG1faml0LmNhZ2UoR2lnYWNhZ2U6OkpT
VmFsdWUsIGRhdGFHUFIpOworICAgIG1faml0LmNhZ2VXaXRob3V0VW50YWdpbmcoR2lnYWNhZ2U6
OkpTVmFsdWUsIGRhdGFHUFIpOwogCiAgICAgY2FnZVR5cGVkQXJyYXlTdG9yYWdlKGJhc2VHUFIs
IHZlY3RvckdQUik7CiAKQEAgLTk4NDUsNyArOTg0Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdUeXBlZEFycmF5V2l0aFNpemUoTm9kZSogbm9kZSkKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzY3JhdGNoR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VGltZXNGb3VyKSk7CiAgICAgbV9qaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpO
b25aZXJvLCBzY3JhdGNoR1BSKS5saW5rVG8obG9vcCwgJm1faml0KTsKICAgICBkb25lLmxpbmso
Jm1faml0KTsKLSNpZiAhR0lHQUNBR0VfRU5BQkxFRCAmJiBDUFUoQVJNNjRFKQorI2lmIENQVShB
Uk02NEUpCiAgICAgLy8gc2l6ZUdQUiBpcyBzdGlsbCBib3hlZCBhcyBhIG51bWJlciBhbmQgdGhl
cmUgaXMgbm8gMzItYml0IHZhcmlhbnQgb2YgdGhlIFBBQyBpbnN0cnVjdGlvbnMuCiAgICAgbV9q
aXQuemVyb0V4dGVuZDMyVG9QdHIoc2l6ZUdQUiwgc2NyYXRjaEdQUik7CiAgICAgbV9qaXQudGFn
QXJyYXlQdHIoc2NyYXRjaEdQUiwgc3RvcmFnZUdQUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggOTRjOTY1ODIyNWE3MTBkYWI4MDMxNTJk
YTAyNDlmNjNkMzkwZmZhYy4uNTliY2VkNDU3NjUxMjkzMGE5YzU1MGIxODk1YjE4YmVhYTMzN2Iz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApA
QCAtNjQ4Myw3ICs2NDgzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX291dC5pbnQ2
NFplcm8sCiAgICAgICAgICAgICAgICAgbV9oZWFwcy50eXBlZEFycmF5UHJvcGVydGllcyk7CiAK
LSNpZiAhR0lHQUNBR0VfRU5BQkxFRCAmJiBDUFUoQVJNNjRFKQorI2lmIENQVShBUk02NEUpCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgTFZhbHVlIHNpemVQdHIgPSBtX291dC56ZXJv
RXh0UHRyKHNpemUpOwogICAgICAgICAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogYXV0aGVudGlj
YXRlID0gbV9vdXQucGF0Y2hwb2ludChwb2ludGVyVHlwZSgpKTsKQEAgLTE0MTU1LDYgKzE0MTU1
LDE2IEBAIHByaXZhdGU6CiAKICAgICBMVmFsdWUgY2FnZWQoR2lnYWNhZ2U6OktpbmQga2luZCwg
TFZhbHVlIHB0ciwgTFZhbHVlIGJhc2UpCiAgICAgeworI2lmIENQVShBUk02NEUpCisgICAgICAg
IGlmIChraW5kID09IEdpZ2FjYWdlOjpQcmltaXRpdmUpIHsKKyAgICAgICAgICAgIExWYWx1ZSBz
aXplID0gbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3Ro
KTsKKyAgICAgICAgICAgIHB0ciA9IHVudGFnQXJyYXlQdHIocHRyLCBzaXplKTsKKyAgICAgICAg
fQorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOworICAgICAgICBVTlVTRURfUEFS
QU0oYmFzZSk7CisjZW5kaWYKKwogI2lmIEdJR0FDQUdFX0VOQUJMRUQKICAgICAgICAgVU5VU0VE
X1BBUkFNKGJhc2UpOwogICAgICAgICBpZiAoIUdpZ2FjYWdlOjppc0VuYWJsZWQoa2luZCkpCkBA
IC0xNDE3Myw2ICsxNDE4MywxOCBAQCBwcml2YXRlOgogICAgICAgICBMVmFsdWUgbWFza2VkID0g
bV9vdXQuYml0QW5kKHB0ciwgbWFzayk7CiAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5h
ZGQobWFza2VkLCBiYXNlUHRyKTsKIAorI2lmIENQVShBUk02NEUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIFBhdGNocG9pbnRWYWx1ZSogbWVyZ2UgPSBtX291dC5wYXRjaHBvaW50KHBvaW50ZXJU
eXBlKCkpOworICAgICAgICAgICAgbWVyZ2UtPmFwcGVuZChyZXN1bHQsIEIzOjpWYWx1ZVJlcChC
Mzo6VmFsdWVSZXA6OlNvbWVMYXRlUmVnaXN0ZXIpKTsKKyAgICAgICAgICAgIG1lcmdlLT5hcHBl
bmRTb21lUmVnaXN0ZXIocHRyKTsKKyAgICAgICAgICAgIG1lcmdlLT5zZXRHZW5lcmF0b3IoWz1d
IChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJh
bXMpIHsKKyAgICAgICAgICAgICAgICBqaXQubW92ZShwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1sw
XS5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0LmJpdEZpZWxkSW5zZXJ0NjQocGFyYW1zWzFd
LmdwcigpLCAwLCA2NCAtIE1hY3JvQXNzZW1ibGVyOjpudW1iZXJPZlBBQ0JpdHMsIHBhcmFtc1sw
XS5ncHIoKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1lcmdlOwor
ICAgICAgICB9CisjZW5kaWYKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgQjMgZG9lc24ndCB0
cnkgdG8gZG8gc21hcnQgcmVhc3NvY2lhdGlvbiBvZiB0aGVzZSBwb2ludGVyIGJpdHMuCiAgICAg
ICAgIC8vIEZJWE1FOiBJbiBhbiBpZGVhbCB3b3JsZCwgQjMgd291bGQgbm90IGRvIGhhcm1mdWwg
cmVhc3NvY2lhdGlvbnMsIGFuZCBpZiBpdCBkaWQsIGl0IHdvdWxkIGJlIGFibGUKICAgICAgICAg
Ly8gdG8gdW5kbyB0aGVtIGR1cmluZyBjb25zdGFudCBob2lzdGluZyBhbmQgcmVnYWxsb2MuIEFz
IGl0IHN0YW5kcywgaWYgeW91IHJlbW92ZSB0aGlzIHRoZW4gT2N0YW5lCkBAIC0xNDE4NSwxNyAr
MTQyMDcsNiBAQCBwcml2YXRlOgogICAgICAgICAvLyBhbmQgcG9zc2libHkgb3RoZXIgc21hcnQg
dGhpbmdzIGlmIHdlIHdhbnQgdG8gYmUgYWJsZSB0byByZW1vdmUgdGhpcyBvcGFxdWUuCiAgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0OTMKICAg
ICAgICAgcmV0dXJuIG1fb3V0Lm9wYXF1ZShyZXN1bHQpOwotI2VsaWYgQ1BVKEFSTTY0RSkKLSAg
ICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkgewotICAgICAgICAgICAgTFZh
bHVlIHNpemUgPSBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19s
ZW5ndGgpOwotICAgICAgICAgICAgcmV0dXJuIHVudGFnQXJyYXlQdHIocHRyLCBzaXplKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHJldHVybiBwdHI7Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFS
QU0oa2luZCk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKLSAgICAgICAgcmV0dXJuIHB0
cjsKICNlbmRpZgogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5oCmluZGV4IGQ5MjY4ZTgzNjkxNDIxZmZlZGMxNTQxMjE3Yzg2N2YzNTFlZGI4
ZDQuLjcyZDU1NjU4Nzk5ZDQ0N2Y5OTU4ZThjMTBiYmRhOTFhMWUzZGU1NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTU1NCw0MyArMTU1NCw3
NSBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlRmVuY2UoKTsKICAgICAgICAgb2subGluayh0aGlz
KTsKICAgICB9Ci0gICAgCi0gICAgdm9pZCBjYWdlKEdpZ2FjYWdlOjpLaW5kIGtpbmQsIEdQUlJl
ZyBzdG9yYWdlKQorCisgICAgdm9pZCBjYWdlV2l0aG91dFVudGFnaW5nKEdpZ2FjYWdlOjpLaW5k
IGtpbmQsIEdQUlJlZyBzdG9yYWdlKQogICAgIHsKICNpZiBHSUdBQ0FHRV9FTkFCTEVECiAgICAg
ICAgIGlmICghR2lnYWNhZ2U6OmlzRW5hYmxlZChraW5kKSkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCisKKyNpZiBDUFUoQVJNNjRFKQorICAgICAgICBSZWdpc3RlcklEIHRlbXBSZWcg
PSBJbnZhbGlkR1BSUmVnOworICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZl
KSB7CisgICAgICAgICAgICB0ZW1wUmVnID0gZ2V0Q2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVySURB
bmRJbnZhbGlkYXRlKCk7CisgICAgICAgICAgICBtb3ZlKHN0b3JhZ2UsIHRlbXBSZWcpOworICAg
ICAgICAgICAgLy8gRmxpcCB0aGUgcmVnaXN0ZXJzIHNpbmNlIGJpdEZpZWxkSW5zZXJ0IG9ubHkg
aW5zZXJ0cyBpbnRvIHRoZSBsb3cgYml0cy4KKyAgICAgICAgICAgIHN0ZDo6c3dhcChzdG9yYWdl
LCB0ZW1wUmVnKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGFuZFB0cihUcnVzdGVkSW1t
UHRyKEdpZ2FjYWdlOjptYXNrKGtpbmQpKSwgc3RvcmFnZSk7CiAgICAgICAgIGFkZFB0cihUcnVz
dGVkSW1tUHRyKEdpZ2FjYWdlOjpiYXNlUHRyKGtpbmQpKSwgc3RvcmFnZSk7CisjaWYgQ1BVKEFS
TTY0RSkKKyAgICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkKKyAgICAgICAg
ICAgIGJpdEZpZWxkSW5zZXJ0NjQoc3RvcmFnZSwgMCwgNjQgLSBudW1iZXJPZlBBQ0JpdHMsIHRl
bXBSZWcpOworI2VuZGlmCisKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShraW5kKTsKICAg
ICAgICAgVU5VU0VEX1BBUkFNKHN0b3JhZ2UpOwogI2VuZGlmCiAgICAgfQotICAgIAotICAgIHZv
aWQgY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OktpbmQga2luZCwgR1BSUmVnIHN0b3JhZ2Us
IEdQUlJlZyBzY3JhdGNoT3JMZW5ndGgpCisKKyAgICAvLyBsZW5ndGggbWF5IGJlIHRoZSBzYW1l
IHJlZ2lzdGVyIGFzIHNjcmF0Y2guCisgICAgdm9pZCBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2Fn
ZTo6S2luZCBraW5kLCBHUFJSZWcgc3RvcmFnZSwgR1BSUmVnIGxlbmd0aCwgR1BSUmVnIHNjcmF0
Y2gpCiAgICAgeworI2lmIENQVShBUk02NEUpCisgICAgICAgIGlmIChraW5kID09IEdpZ2FjYWdl
OjpQcmltaXRpdmUpCisgICAgICAgICAgICB1bnRhZ0FycmF5UHRyKGxlbmd0aCwgc3RvcmFnZSk7
CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oa2luZCk7CisgICAgICAgIFVOVVNFRF9QQVJB
TShzdG9yYWdlKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGxlbmd0aCk7CisjZW5kaWYKKwogI2lm
IEdJR0FDQUdFX0VOQUJMRUQKICAgICAgICAgaWYgKCFHaWdhY2FnZTo6aXNFbmFibGVkKGtpbmQp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAgICAgaWYgKGtpbmQgIT0gR2ln
YWNhZ2U6OlByaW1pdGl2ZSB8fCBHaWdhY2FnZTo6aXNEaXNhYmxpbmdQcmltaXRpdmVHaWdhY2Fn
ZURpc2FibGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gY2FnZShraW5kLCBzdG9yYWdlKTsKLSAg
ICAgICAgCi0gICAgICAgIGxvYWRQdHIoJkdpZ2FjYWdlOjpiYXNlUHRyKGtpbmQpLCBzY3JhdGNo
T3JMZW5ndGgpOwotICAgICAgICBKdW1wIGRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIHNjcmF0
Y2hPckxlbmd0aCk7Ci0gICAgICAgIGFuZFB0cihUcnVzdGVkSW1tUHRyKEdpZ2FjYWdlOjptYXNr
KGtpbmQpKSwgc3RvcmFnZSk7Ci0gICAgICAgIGFkZFB0cihzY3JhdGNoT3JMZW5ndGgsIHN0b3Jh
Z2UpOwotICAgICAgICBkb25lLmxpbmsodGhpcyk7Ci0jZWxpZiBDUFUoQVJNNjRFKQotICAgICAg
ICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKQotICAgICAgICAgICAgdW50YWdBcnJh
eVB0cihzY3JhdGNoT3JMZW5ndGgsIHN0b3JhZ2UpOworICAgICAgICAgICAgY2FnZVdpdGhvdXRV
bnRhZ2luZyhraW5kLCBzdG9yYWdlKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsb2Fk
UHRyKCZHaWdhY2FnZTo6YmFzZVB0cihraW5kKSwgc2NyYXRjaCk7CisgICAgICAgICAgICBKdW1w
IGRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIHNjcmF0Y2gpOworI2lmIENQVShBUk02NEUpCisg
ICAgICAgICAgICBhdXRvIHRlbXBSZWcgPSBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKTsKKyAgICAgICAgICAgIG1vdmUoc3RvcmFnZSwgdGVtcFJlZyk7CisgICAg
ICAgICAgICAvLyBGbGlwIHRoZSByZWdpc3RlcnMgc2luY2UgYml0RmllbGRJbnNlcnQgb25seSBp
bnNlcnRzIGludG8gdGhlIGxvdyBiaXRzLgorICAgICAgICAgICAgc3RkOjpzd2FwKHN0b3JhZ2Us
IHRlbXBSZWcpOworI2VuZGlmCisgICAgICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0cihHaWdh
Y2FnZTo6bWFzayhraW5kKSksIHN0b3JhZ2UpOworICAgICAgICAgICAgYWRkUHRyKHNjcmF0Y2gs
IHN0b3JhZ2UpOworI2lmIENQVShBUk02NEUpCisgICAgICAgICAgICBiaXRGaWVsZEluc2VydDY0
KHN0b3JhZ2UsIDAsIDY0IC0gbnVtYmVyT2ZQQUNCaXRzLCB0ZW1wUmVnKTsKKyNlbmRpZgorICAg
ICAgICAgICAgZG9uZS5saW5rKHRoaXMpOworCisKKyAgICAgICAgfQogI2Vsc2UKLSAgICAgICAg
VU5VU0VEX1BBUkFNKGtpbmQpOwotICAgICAgICBVTlVTRURfUEFSQU0oc3RvcmFnZSk7Ci0gICAg
ICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoT3JMZW5ndGgpOworICAgICAgICBVTlVTRURfUEFSQU0o
c2NyYXRjaCk7CiAjZW5kaWYKKwogICAgIH0KIAogICAgIHZvaWQgZW1pdENvbXB1dGVCdXR0ZXJm
bHlJbmRleGluZ01hc2soR1BSUmVnIHZlY3Rvckxlbmd0aEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIs
IEdQUlJlZyByZXN1bHRHUFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwCmluZGV4IDlkNjIxNDgxZjc3NDc0ZWZiODMxYmQ0ZTVmMWY1ODIyOWUz
MzI1NTYuLmNiYjc4ZDViM2ViYmIyOGU4ODkxMWQ1MjVhNTc5OWY3ZjY4NDkxN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xNjcy
LDcgKzE2NzIsNyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEludFR5cGVkQXJyYXlHZXRCeVZh
bChjb25zdCBJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmCiAgICAgbG9hZDMyKEFkZHJlc3Mo
YmFzZSwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mTGVuZ3RoKCkpLCBzY3JhdGNoMik7CiAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2gzMihBYm92ZU9yRXF1YWwsIHByb3BlcnR5LCBzY3Jh
dGNoMikpOwogICAgIGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zm
c2V0T2ZWZWN0b3IoKSksIHNjcmF0Y2gpOwotICAgIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdl
OjpQcmltaXRpdmUsIHNjcmF0Y2gsIHNjcmF0Y2gyKTsKKyAgICBjYWdlQ29uZGl0aW9uYWxseShH
aWdhY2FnZTo6UHJpbWl0aXZlLCBzY3JhdGNoLCBzY3JhdGNoMiwgc2NyYXRjaDIpOwogCiAgICAg
c3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgMToKQEAgLTE3MzYsNyArMTcz
Niw3IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RmxvYXRUeXBlZEFycmF5R2V0QnlWYWwoY29u
c3QgSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wCiAgICAgbG9hZDMyKEFkZHJlc3MoYmFzZSwg
SlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mTGVuZ3RoKCkpLCBzY3JhdGNoMik7CiAgICAgc2xv
d0Nhc2VzLmFwcGVuZChicmFuY2gzMihBYm92ZU9yRXF1YWwsIHByb3BlcnR5LCBzY3JhdGNoMikp
OwogICAgIGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZW
ZWN0b3IoKSksIHNjcmF0Y2gpOwotICAgIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmlt
aXRpdmUsIHNjcmF0Y2gsIHNjcmF0Y2gyKTsKKyAgICBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2Fn
ZTo6UHJpbWl0aXZlLCBzY3JhdGNoLCBzY3JhdGNoMiwgc2NyYXRjaDIpOwogICAgIAogICAgIHN3
aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDQ6CkBAIC0xODAxLDcgKzE4MDEs
NyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEludFR5cGVkQXJyYXlQdXRCeVZhbChPcCBieXRl
Y29kZSwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZQogICAgIC8vIFdlIHdvdWxkIGJlIGxvYWRpbmcg
dGhpcyBpbnRvIGJhc2UgYXMgaW4gZ2V0X2J5X3ZhbCwgZXhjZXB0IHRoYXQgdGhlIHNsb3cKICAg
ICAvLyBwYXRoIGV4cGVjdHMgdGhlIGJhc2UgdG8gYmUgdW5jbG9iYmVyZWQuCiAgICAgbG9hZFB0
cihBZGRyZXNzKGJhc2UsIEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSwgbGF0
ZVNjcmF0Y2gpOwotICAgIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGxh
dGVTY3JhdGNoLCBsYXRlU2NyYXRjaDIpOworICAgIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdl
OjpQcmltaXRpdmUsIGxhdGVTY3JhdGNoLCBsYXRlU2NyYXRjaDIsIGxhdGVTY3JhdGNoMik7CiAg
ICAgCiAgICAgaWYgKGlzQ2xhbXBlZCh0eXBlKSkgewogICAgICAgICBBU1NFUlQoZWxlbWVudFNp
emUodHlwZSkgPT0gMSk7CkBAIC0xODkwLDcgKzE4OTAsNyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6
ZW1pdEZsb2F0VHlwZWRBcnJheVB1dEJ5VmFsKE9wIGJ5dGVjb2RlLCBQYXRjaGFibGVKdW1wJiBi
YWRUeQogICAgIC8vIFdlIHdvdWxkIGJlIGxvYWRpbmcgdGhpcyBpbnRvIGJhc2UgYXMgaW4gZ2V0
X2J5X3ZhbCwgZXhjZXB0IHRoYXQgdGhlIHNsb3cKICAgICAvLyBwYXRoIGV4cGVjdHMgdGhlIGJh
c2UgdG8gYmUgdW5jbG9iYmVyZWQuCiAgICAgbG9hZFB0cihBZGRyZXNzKGJhc2UsIEpTQXJyYXlC
dWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSwgbGF0ZVNjcmF0Y2gpOwotICAgIGNhZ2VDb25k
aXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGxhdGVTY3JhdGNoLCBsYXRlU2NyYXRjaDIp
OworICAgIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGxhdGVTY3JhdGNo
LCBsYXRlU2NyYXRjaDIsIGxhdGVTY3JhdGNoMik7CiAgICAgCiAgICAgc3dpdGNoIChlbGVtZW50
U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCA0MDMyZTdlOGYzZjg3YmNiZGJl
MWVmOWNkZmQxNzIzM2I2Yzg1NWRhLi5jMGFkODNjNmM0MzYwZjI4MjZlYzk5NjhjMzgzZjZiNzU0
MGQ4YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCkBAIC03Niw3ICs3Niw3IEBACiAjCiAjICAtIHBjIGhvbGRzIHRoZSAo
bmF0aXZlKSBwcm9ncmFtIGNvdW50ZXIgb24gMzItYml0cyBBUk0gYXJjaGl0ZWN0dXJlcyAoQVJN
djcpCiAjCi0jICAtIHQwLCB0MSwgdDIsIHQzLCB0NCBhbmQgb3B0aW9uYWxseSB0NSBhcmUgdGVt
cG9yYXJ5IHJlZ2lzdGVycyB0aGF0IGNhbiBnZXQgdHJhc2hlZCBvbgorIyAgLSB0MCwgdDEsIHQy
LCB0MywgdDQsIGFuZCBvcHRpb25hbGx5IHQ1LCB0NiwgYW5kIHQ3IGFyZSB0ZW1wb3JhcnkgcmVn
aXN0ZXJzIHRoYXQgY2FuIGdldCB0cmFzaGVkIG9uCiAjICBjYWxscywgYW5kIGFyZSBwYWlyd2lz
ZSBkaXN0aW5jdCByZWdpc3RlcnMuIHQ0IGhvbGRzIHRoZSBKUyBwcm9ncmFtIGNvdW50ZXIsIHNv
IHVzZQogIyAgd2l0aCBjYXV0aW9uIGluIG9wY29kZXMgKGFjdHVhbGx5LCBkb24ndCB1c2UgaXQg
aW4gb3Bjb2RlcyBhdCBhbGwsIGV4Y2VwdCBhcyBQQykuCiAjCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDZhYWYw
ZGQxMGMzZWI4YWY2YjI3NzcxMzQxOWFjNDBlM2Q4NzgzOTcuLjkwMzYzNWFmNTI1YThiMWY0NDcw
NjAzMTQzMDdkMTA4M2QzNjM1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC00MzQsMTAgKzQzNCwxOSBAQCBl
bmQKIAogbWFjcm8gbG9hZENhZ2VkUHJpbWl0aXZlKHNvdXJjZSwgZGVzdCwgc2NyYXRjaE9yTGVu
Z3RoKQogICAgIGxvYWRwIHNvdXJjZSwgZGVzdAotICAgIGlmIEdJR0FDQUdFX0VOQUJMRUQKLSAg
ICAgICAgdW5jYWdlKF9nX2dpZ2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6OnBy
aW1pdGl2ZSwgY29uc3RleHByIEdpZ2FjYWdlOjpwcmltaXRpdmVHaWdhY2FnZU1hc2ssIGRlc3Qs
IHNjcmF0Y2hPckxlbmd0aCkKLSAgICBlbHNpZiBBUk02NEUKKyAgICBpZiBBUk02NEUKKyAgICAg
ICAgY29uc3QgcmVzdWx0ID0gdDcKICAgICAgICAgdW50YWdBcnJheVB0ciBzY3JhdGNoT3JMZW5n
dGgsIGRlc3QKKyAgICAgICAgbW92ZSBkZXN0LCByZXN1bHQKKyAgICBlbHNlCisgICAgICAgIGNv
bnN0IHJlc3VsdCA9IGRlc3QKKyAgICBlbmQKKyAgICBpZiBHSUdBQ0FHRV9FTkFCTEVECisgICAg
ICAgIHVuY2FnZShfZ19naWdhY2FnZUJhc2VQdHJzICsgR2lnYWNhZ2U6OkJhc2VQdHJzOjpwcmlt
aXRpdmUsIGNvbnN0ZXhwciBHaWdhY2FnZTo6cHJpbWl0aXZlR2lnYWNhZ2VNYXNrLCByZXN1bHQs
IHNjcmF0Y2hPckxlbmd0aCkKKyAgICAgICAgaWYgQVJNNjRFCisgICAgICAgICAgICBjb25zdCBu
dW1iZXJPZlBBQ0JpdHMgPSBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mUEFDQml0
cworICAgICAgICAgICAgYmZpcSByZXN1bHQsIDAsIDY0IC0gbnVtYmVyT2ZQQUNCaXRzLCBkZXN0
CisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXJtNjQucmIKaW5kZXggNThiYmMyYWFmZDliNDg0ZWRjNjY1ZTZhZDAyNjQ4YzQ0Yzll
MTc3Yy4uMjNkOTQ4ZjBhMzFkNzcxNTliZTQ2ZmFkNjQ2MGYwZDY0NjNlZDUwYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKQEAgLTEyNiw2ICsxMjYsOCBAQCBj
bGFzcyBSZWdpc3RlcklECiAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4NScsIGtpbmQpCiAgICAg
ICAgIHdoZW4gJ3Q2JwogICAgICAgICAgIGFybTY0R1BSTmFtZSgneDYnLCBraW5kKQorICAgICAg
ICB3aGVuICd0NycKKyAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g3Jywga2luZCkKICAgICAgICAg
d2hlbiAnY2ZyJwogICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MjknLCBraW5kKQogICAgICAg
ICB3aGVuICdjc3IwJwpAQCAtMTAxOSw2ICsxMDIxLDggQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAg
ICAgICAgICAgICRhc20ucHV0cyAic21hZGRsICN7b3BlcmFuZHNbMl0uYXJtNjRPcGVyYW5kKDpx
dWFkKX0sICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sICN7b3BlcmFuZHNbMV0u
YXJtNjRPcGVyYW5kKDp3b3JkKX0sIHh6ciIKICAgICAgICAgd2hlbiAibWVtZmVuY2UiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hlbiAiYmZpcSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYmZpICN7b3BlcmFuZHNbM10uYXJtNjRPcGVyYW5kKDpxdWFkKX0sICN7
b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDpxdWFkKX0sICN7b3BlcmFuZHNbMV0udmFsdWV9LCAj
e29wZXJhbmRzWzJdLnZhbHVlfSIKICAgICAgICAgd2hlbiAicGNydG9hZGRyIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJhZHIgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnF1YWQpfSwgI3tv
cGVyYW5kc1swXS52YWx1ZX0iCiAgICAgICAgIHdoZW4gIm5vcENvcnRleEE1M0ZpeDgzNTc2OSIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9u
cy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpp
bmRleCAyYWQ1OTQ0ZTkwNTVhNTU5MTM2YzI4ZTM2Yjg3MmVkYjliZGQ4NGU5Li4yY2MzYWNmMTU4
MmU0NGRmODBkNzQ0YzhhN2RkMDMxOWJjMmQwZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC0yNzMsNiArMjczLDcgQEAgQVJN
X0lOU1RSVUNUSU9OUyA9CiAKIEFSTTY0X0lOU1RSVUNUSU9OUyA9CiAgICAgWworICAgICAiYmZp
cSIsICMgQml0IGZpZWxkIGluc2VydCA8c291cmNlIHJlZz4gPHdpZHRoIGltbWVkaWF0ZT4gPGxh
c3QgYml0IHdyaXR0ZW4+IDxkZXN0IHJlZz4KICAgICAgInBjcnRvYWRkciIsICAgIyBBZGRyZXNz
IGZyb20gUEMgcmVsYXRpdmUgb2Zmc2V0IC0gYWRyIGluc3RydWN0aW9uCiAgICAgICJub3BGaXhD
b3J0ZXhBNTNFcnI4MzU3NjkiLCAjIG5vcCBvbiBDb3J0ZXgtQTUzIChub3RoaW5nIG90aGVyd2lz
ZSkKICAgICAgImdsb2JhbGFkZHIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9yZWdpc3RlcnMucmIKaW5kZXggYWE4YTQwZmQ0ZTg1M2NkNDhkNDVlY2MyNjY2Y2Q5YTE2NDYw
OWQzOS4uMTU4ZDE0MTk0NmY4ZmRiYjljMjRmZTllYmZjMTJlNTdhNGE4ZDhiMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgpAQCAtMzIsNiArMzIs
NyBAQCBHUFJTID0KICAgICAgInQ0IiwKICAgICAgInQ1IiwKICAgICAgInQ2IiwKKyAgICAgInQ3
IiwKICAgICAgImNmciIsCiAgICAgICJhMCIsCiAgICAgICJhMSIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRleCAzZjUxZDBiMGZj
NDI3OTczNDFlODY0ZjgwN2Q1MjdmYzI0NDZjMGMxLi4xNjJlOTkwNzMxZjQ4N2NlY2JiZmQ3MmVl
OGU3NTkzYjJlNTlkZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTg0MywxNSArODQzLDE0IEBAIHZvaWQgQWlySVJHZW5l
cmF0b3I6OnJlc3RvcmVXZWJBc3NlbWJseUdsb2JhbFN0YXRlKFJlc3RvcmVDYWNoZWRTdGFja0xp
bWl0IHJlc3RvCiAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEdp
Z2FjYWdlOjppc0VuYWJsZWQoR2lnYWNhZ2U6OlByaW1pdGl2ZSkgPyAxIDogMDsKIAogICAgICAg
ICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoW3Bpbm5lZFJlZ3NdIChDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVCghR2lnYWNhZ2U6OmlzRW5hYmxlZChHaWdhY2FnZTo6UHJpbWl0
aXZlKSB8fCAhaXNBUk02NCgpKTsKLSAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0
ZXJVc2FnZUlmIGFsbG93U2NyYXRjaChqaXQsICFpc0FSTTY0KCkpOworICAgICAgICAgICAgQWxs
b3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAgICAgICAg
ICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLT5iYXNlTWVtb3J5UG9pbnRlcjsKICAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoT3JTaXplID0gR2lnYWNhZ2U6OmlzRW5hYmxlZChHaWdh
Y2FnZTo6UHJpbWl0aXZlKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkgOiBwaW5uZWRSZWdzLT5zaXpl
UmVnaXN0ZXI7CiAKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhwYXJhbXNbMF0uZ3ByKCksIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeVNpemUoKSks
IHBpbm5lZFJlZ3MtPnNpemVSZWdpc3Rlcik7CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzBdLmdwcigpLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwogCi0gICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlv
bmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7Cisg
ICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFz
ZU1lbW9yeSwgcGlubmVkUmVncy0+c2l6ZVJlZ2lzdGVyLCBzY3JhdGNoT3JTaXplKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgZW1pdFBhdGNocG9pbnQoYmxvY2ssIHBhdGNocG9pbnQsIFRtcCgp
LCBpbnN0YW5jZSk7CkBAIC0xOTQ4LDcgKzE5NDcsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjph
ZGRDYWxsSW5kaXJlY3QoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIFZlY3RvcjxFeHByZXNz
aQogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKG5ld0NvbnRl
eHRJbnN0YW5jZSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5U2l6ZSgpKSwgcGlubmVk
UmVncy5zaXplUmVnaXN0ZXIpOyAvLyBNZW1vcnkgc2l6ZS4KICAgICAgICAgICAgIGppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhuZXdDb250ZXh0SW5zdGFuY2UsIEluc3RhbmNlOjpv
ZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7IC8vIE1lbW9yeTo6dm9pZCouCiAK
LSAgICAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBi
YXNlTWVtb3J5LCBzY3JhdGNoT3JTaXplKTsKKyAgICAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9u
YWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBwaW5uZWRSZWdzLnNpemVSZWdp
c3Rlciwgc2NyYXRjaE9yU2l6ZSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGVtaXRQYXRjaHBv
aW50KGRvQ29udGV4dFN3aXRjaCwgcGF0Y2hwb2ludCwgVG1wKCksIG5ld0NvbnRleHRJbnN0YW5j
ZSwgaW5zdGFuY2VWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCA1ZTg3ZjRiYWZiNGQ3MmIzN2QzZjg5MjU2MWYyNTUx
NTQwM2I5YmU3Li4xMjMyNTE4NWI2MzYwNTViZjZkZDM5OTczOWM5ZjY5NDYzZGJjZjNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBA
IC00ODYsMTUgKzQ4NiwxNCBAQCB2b2lkIEIzSVJHZW5lcmF0b3I6OnJlc3RvcmVXZWJBc3NlbWJs
eUdsb2JhbFN0YXRlKFJlc3RvcmVDYWNoZWRTdGFja0xpbWl0IHJlc3RvcgogCiAgICAgICAgIHBh
dGNocG9pbnQtPmFwcGVuZChpbnN0YW5jZSwgVmFsdWVSZXA6OlNvbWVSZWdpc3Rlcik7CiAgICAg
ICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbcGlubmVkUmVnc10gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFHaWdhY2FnZTo6aXNFbmFibGVkKEdpZ2FjYWdlOjpQcmlt
aXRpdmUpIHx8ICFpc0FSTTY0KCkpOwotICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdp
c3RlclVzYWdlSWYgYWxsb3dTY3JhdGNoKGppdCwgIWlzQVJNNjQoKSk7CisgICAgICAgICAgICBB
bGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAgICAgICAg
ICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MtPmJhc2VNZW1vcnlQb2ludGVyOwog
ICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hPclNpemUgPSBHaWdhY2FnZTo6aXNFbmFibGVkKEdp
Z2FjYWdlOjpQcmltaXRpdmUpID8gcGFyYW1zLmdwU2NyYXRjaCgwKSA6IHBpbm5lZFJlZ3MtPnNp
emVSZWdpc3RlcjsKIAogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHBhcmFtc1swXS5ncHIoKSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5U2l6ZSgp
KSwgcGlubmVkUmVncy0+c2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKEND
YWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMF0uZ3ByKCksIEluc3RhbmNlOjpvZmZzZXRPZkNh
Y2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CiAKLSAgICAgICAgICAgIGppdC5jYWdlQ29uZGl0
aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JTaXplKTsK
KyAgICAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBi
YXNlTWVtb3J5LCBwaW5uZWRSZWdzLT5zaXplUmVnaXN0ZXIsIHNjcmF0Y2hPclNpemUpOwogICAg
ICAgICB9KTsKICAgICB9CiB9CkBAIC0xMzY2LDcgKzEzNjUsNyBAQCBhdXRvIEIzSVJHZW5lcmF0
b3I6OmFkZENhbGxJbmRpcmVjdChjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwgVmVjdG9yPEV4
cHJlc3NpbwogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKG5l
d0NvbnRleHRJbnN0YW5jZSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5U2l6ZSgpKSwg
cGlubmVkUmVncy5zaXplUmVnaXN0ZXIpOyAvLyBNZW1vcnkgc2l6ZS4KICAgICAgICAgICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhuZXdDb250ZXh0SW5zdGFuY2UsIEluc3Rh
bmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7IC8vIE1lbW9yeTo6dm9p
ZCouCiAKLSAgICAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0
aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JTaXplKTsKKyAgICAgICAgICAgIGppdC5jYWdlQ29u
ZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBwaW5uZWRSZWdzLnNp
emVSZWdpc3Rlciwgc2NyYXRjaE9yU2l6ZSk7CiAgICAgICAgIH0pOwogICAgICAgICBkb0NvbnRl
eHRTd2l0Y2gtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEp1bXAsIG9yaWdpbigpLCBj
b250aW51YXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQmluZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5j
cHAKaW5kZXggZmVkNDViMTA2M2M5YTM2YmY2NTFjZjgwM2VlMTBmMWM1YmU3YzY1NC4uMjNjOTY0
NzRmNGI3NTU3ZTE5YWUxODJhNjBjZTkwNzdmNzM2YWJiZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcApAQCAtNjcsMTEgKzY3LDExIEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvV2FzbSh1bnNpCiAgICAgLy8gRklYTUUgdGhlIGZvbGxvd2luZyBjb2RlIGFzc3VtZXMgdGhh
dCBhbGwgV2FzbTo6SW5zdGFuY2UgaGF2ZSB0aGUgc2FtZSBwaW5uZWQgcmVnaXN0ZXJzLiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyOTUyCiAgICAgLy8gU2V0IHVw
IHRoZSBjYWxsZWUncyBiYXNlTWVtb3J5IHJlZ2lzdGVyIGFzIHdlbGwgYXMgdGhlIG1lbW9yeSBz
aXplIHJlZ2lzdGVycy4KICAgICB7Ci0gICAgICAgIEdQUlJlZyBzY3JhdGNoT3JTaXplID0gaXNB
Uk02NEUoKSA/IHBpbm5lZFJlZ3Muc2l6ZVJlZ2lzdGVyIDogd2FzbUNhbGxpbmdDb252ZW50aW9u
QWlyKCkucHJvbG9ndWVTY3JhdGNoKDEpOworICAgICAgICBHUFJSZWcgc2NyYXRjaE9yU2l6ZSA9
ICFHaWdhY2FnZTo6aXNFbmFibGVkKEdpZ2FjYWdlOjpQcmltaXRpdmUpID8gcGlubmVkUmVncy5z
aXplUmVnaXN0ZXIgOiB3YXNtQ2FsbGluZ0NvbnZlbnRpb25BaXIoKS5wcm9sb2d1ZVNjcmF0Y2go
MSk7CiAKICAgICAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKGJhc2VNZW1vcnksIFdhc206
Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeVNpemUoKSksIHBpbm5lZFJlZ3Muc2l6ZVJl
Z2lzdGVyKTsgLy8gTWVtb3J5IHNpemUuCiAgICAgICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVz
cyhiYXNlTWVtb3J5LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJh
c2VNZW1vcnkpOyAvLyBXYXNtOjpNZW1vcnk6OlRhZ2dlZEFycmF5U3RvcmFnZVB0cjx2b2lkPiAo
dm9pZCopLgotICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2
ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7CisgICAgICAgIGppdC5jYWdlQ29uZGl0aW9u
YWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBwaW5uZWRSZWdzLnNpemVSZWdp
c3Rlciwgc2NyYXRjaE9yU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGFpbCBjYWxsIGludG8gdGhl
IGNhbGxlZSBXZWJBc3NlbWJseSBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTVG9XYXNtLmNwcAppbmRleCA2NTdkYTU3YWViN2NlM2RhZWFmM2MyNTc0NzgxOGI2MjBk
Y2UxNDkyLi4yNjMxM2U4NDI2OTY1N2ZlZTliNmNiZDczYjU3MDU4YzQ0NWZiNWI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCkBAIC0yMjgsNyArMjI4LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBl
cihDb21waWxhdGlvbkNvbnRleHQmIGNvbXAKICAgICAgICAgfQogCiAgICAgICAgIGppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3Rh
bmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7Ci0gICAgICAgIGppdC5j
YWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNo
T3JTaXplKTsKKyAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRp
dmUsIGJhc2VNZW1vcnksIHNjcmF0Y2hPclNpemUsIHNjcmF0Y2hPclNpemUpOwogICAgIH0KIAog
ICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsID0gaml0LnRocmVhZFNhZmVQYXRjaGFibGVOZWFy
Q2FsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUZ1bmN0aW9uLmNwcAppbmRleCAyZmYwZTc4ZTU4MmY2NTYxYTI4ZjNjNTk1Mzc4MjFjMDM5
ODBiODkwLi45MWI1YjgzODg1MjBhMTQyYWFlMDljNTJkYzNmYzg1MzhlMTdiY2ZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcApAQCAtNDIzLDcgKzQyMyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRy
VGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAg
IH0KIAogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQ
UiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsK
LSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VN
ZW1vcnksIHNjcmF0Y2hPclNpemUpOworICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2ln
YWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSwgc2NyYXRjaE9yU2l6
ZSk7CiAgICAgfQogCiAgICAgLy8gV2UgdXNlIHRoaXMgY2FsbGVlIHRvIGluZGljYXRlIGhvdyB0
byB1bndpbmQgcGFzdCB0aGVzZSB0eXBlcyBvZiBmcmFtZXM6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2Fj
YWdlLmgKaW5kZXggNzZkNzJkZjc0YTEzNmYwMjE5MTU1Y2YyMDhmN2M3Nzk1OGM0ZTk5Ni4uYTM3
ZDBiYWY5OTc5ZGVlY2MyZTllMjU0MmE4YzI5NThkZGY4NmI1NyAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
R2lnYWNhZ2UuaApAQCAtMzQsNyArMzQsOCBAQAogI2luY2x1ZGUgPGNzdGRkZWY+CiAjaW5jbHVk
ZSA8aW50dHlwZXMuaD4KIAotI2lmICgoQk9TKERBUldJTikgfHwgQk9TKExJTlVYKSkgJiYgQkNQ
VShYODZfNjQpKQorI2lmICgoQk9TKERBUldJTikgfHwgQk9TKExJTlVYKSkgJiYgXAorICAgIChC
Q1BVKFg4Nl82NCkgfHwgKEJDUFUoQVJNNjQpICYmICFkZWZpbmVkKF9fSUxQMzJfXykgJiYgKCFC
UExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgQlBMQVRGT1JNKElPUykpKSkpCiAjZGVmaW5lIEdJR0FD
QUdFX0VOQUJMRUQgMQogI2Vsc2UKICNkZWZpbmUgR0lHQUNBR0VfRU5BQkxFRCAwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371488</attachid>
            <date>2019-06-06 05:27:00 -0700</date>
            <delta_ts>2019-06-06 05:39:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198453-20190606142658.patch</filename>
            <type>text/plain</type>
            <size>32213</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTNmYjIxMTgyZWQ4YmY4MjI5YWZlYWU5MjQzNTUxZGNiNGMwOGRlLi4xOGEwMWIxZWEyMjBjYzc2
NDNiMjYyNjg4ZDFhMTk3ZmE1ZWJiYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxOS0wNi0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBvbiBBUk02NC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ1MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBiYWNr
IEdpZ2FjYWdpbmcgb24gQXBwbGUncyBBUk02NCBwb3J0cy4gVW5saWtlIHRoZQorICAgICAgICBv
bGQgR2lnYWNhZ2UgaG93ZXZlciwgYXJtNjRlIHVzZXMgYm90aCBHaWdhY2FnaW5nIGFuZCBQQUMu
IEluCisgICAgICAgIG9yZGVyIHRvIGVuc3VyZSB0aGUgUEFDIGJpdHMgYXJlIG5vdCBzdHJpcHBl
ZCBpbiB0aGUgY2FnaW5nCisgICAgICAgIHByb2Nlc3Mgd2UgdXNlIHRoZSBiaXQgZmllbGQgaW5z
ZXJ0IGluc3RydWN0aW9uIHRvIHRha2UgdGhlIGxvdworICAgICAgICBiaXRzIGZyb20gY2FnaW5n
IGFuZCB0aGUgaGlnaCBiaXRzIGZyb20gdGhlIFBBQyBhdXRoZW50aWNhdGlvbi4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmJpdEZpZWxkSW5zZXJ0NjQpOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0RS5oOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6
CisgICAgICAgIChKU0M6OnRlc3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJpdCk6CisgICAgICAg
IChKU0M6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJyYXlJc05ldXRlcmVk
SWZPdXRPZkJvdW5kcyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhZ2VU
eXBlZEFycmF5U3RvcmFnZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5V2l0aFNpemUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlTmV3VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNhZ2VkKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkFzc2VtYmx5SGVscGVyczo6Y2FnZVdpdGhvdXRVbnRhZ2luZyk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6Y2FnZUNvbmRpdGlvbmFsbHkpOgorICAgICAgICAoSlNDOjpB
c3NlbWJseUhlbHBlcnM6OmNhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEludFR5cGVkQXJyYXlHZXRCeVZh
bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEZsb2F0VHlwZWRBcnJheUdldEJ5VmFsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0SW50VHlwZWRBcnJheVB1dEJ5VmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0RmxvYXRUeXBlZEFycmF5UHV0QnlWYWwpOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc206CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2luc3RydWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3JlZ2lzdGVycy5y
YjoKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZSk6Cisg
ICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QpOgorICAg
ICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpC
M0lSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZSk6CisgICAgICAgIChK
U0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZENhbGxJbmRpcmVjdCk6CisgICAgICAgICogd2Fz
bS9XYXNtQmluZGluZy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub1dhc20pOgorICAg
ICAgICAqIHdhc20vanMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpjcmVhdGVK
U1RvV2FzbVdyYXBwZXIpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KToKKwogMjAxOS0wNi0wMyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAK
ICAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioqIgpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdl
TG9nCmluZGV4IGE3ZTgwMDA4NDViYWJjYTZkMWY0ZWRiNDE3MTIzZGU3NTgwMTRlYzguLjZhMmQ2
MWQ0YmUyNWNmZjAzMzM3N2E1MzUwZTEyZDg5ZGMwZjIzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxOS0wNi0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBvbiBBUk02NC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ1MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYm1hbGxvYy9HaWdhY2FnZS5oOgor
CiAyMDE5LTA2LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ2MDIyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBl
ZmY4YjcxZjM5MjMyMjc3ZmJlM2E2MzQ0ODY5NjU5Mzc0YmY4NjIxLi40MDAzMTYzNDc2YjM3OWY0
Nzk3NDk4ZjM1OTYzYzA1YTEwMGY4MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMjUyNiw2ICsyNTI2LDE1
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuZmNzZWw8NjQ+KGRlc3QsIHRoZW5DYXNl
LCBlbHNlQ2FzZSwgQVJNNjRDb25kaXRpb24oY29uZCkpOwogICAgIH0KIAorICAgIC8vIEJpdCBm
aWVsZCBvcGVyYXRpb25zOgorCisgICAgLy8gZGVzdEJpdE9mZnNldCBpcyB0aGUgdG9wIGJpdCBv
ZiB0aGUgZGVzdGluYXRpb24gd2hlcmUgdGhlIGJpdHMgc2hvdWxkIGJlIGNvcGllZCB0by4gWmVy
byBpcyB0aGUgbG93ZXN0IG9yZGVyIGJpdC4KKyAgICB2b2lkIGJpdEZpZWxkSW5zZXJ0NjQoUmVn
aXN0ZXJJRCBzb3VyY2UsIHVuc2lnbmVkIGRlc3RCaXRPZmZzZXQsIHVuc2lnbmVkIHdpZHRoLCBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQod2lkdGggPD0gNjQgLSBkZXN0
Qml0T2Zmc2V0ICYmIGRlc3RCaXRPZmZzZXQgPCA2NCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJm
aTw2ND4oZGVzdCwgc291cmNlLCBkZXN0Qml0T2Zmc2V0LCB3aWR0aCk7CisgICAgfQorCiAgICAg
Ly8gRm9yd2FyZHMgLyBleHRlcm5hbCBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwog
ICAgIC8vIFRoaXMgc2V0IG9mIGp1bXAgYW5kIGNvbmRpdGlvbmFsIGJyYW5jaCBvcGVyYXRpb25z
IHJldHVybiBhIEp1bXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaAppbmRleCAwYjk2OGY2YWZlZGZlYTY5NWE0YTNhMzA4
ZDM0MGYwNzZjOWNmYTQwLi5mZDdlZWM4MDg1NTFiZGY3Mjg3YWZjMWIxZWM0NTNmMmY4MjA4MmQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjRFLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0RS5oCkBAIC0zOSw2ICszOSw4IEBAIHVzaW5nIEFzc2VtYmxlciA9IFRBUkdF
VF9BU1NFTUJMRVI7CiAKIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjRFIDogcHVibGljIE1hY3Jv
QXNzZW1ibGVyQVJNNjQgewogcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtYmVyT2ZQQUNCaXRzID0gMjU7CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdGFnUmV0dXJu
QWRkcmVzcygpCiAgICAgewogICAgICAgICB0YWdQdHIoQVJNNjRSZWdpc3RlcnM6OnNwLCBBUk02
NFJlZ2lzdGVyczo6bHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3Rt
YXNtLmNwcAppbmRleCBhYzVjNjMyOTFiM2Q4OTM1YjU5YjlmY2U0MDYxMzc1NGQ5ZGRjMWYxLi44
MTVjM2QxYmI1NWVjZTlkMTRmZDg2YmM3MDBjODAzNzc4OGU3YzgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL051bWJlck9mQ29yZXMuaD4KKyNpbmNsdWRlIDx3dGYvUHRyVGFnLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oPgogCkBA
IC0xMDksNiArMTEwLDE1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgbmV4dElEKFQgaWQpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PFQ+KGlkICsgMSk7IH0KICAgICAgICAgQ1JBU0goKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9
IHdoaWxlIChmYWxzZSkKIAorI2RlZmluZSBDSEVDS19OT1RfRVEoX2FjdHVhbCwgX2V4cGVjdGVk
KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKChfYWN0
dWFsKSAhPSAoX2V4cGVjdGVkKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY3Jhc2hMb2NrLmxvY2soKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZGF0YUxvZygiRkFJ
TEVEIHdoaWxlIHRlc3RpbmcgIiAjX2FjdHVhbCAiOiBleHBlY3RlZCBub3Q6ICIsIF9leHBlY3Rl
ZCwgIiwgYWN0dWFsOiAiLCBfYWN0dWFsLCAiXG4iKTsgXAorICAgICAgICBXVEZSZXBvcnRBc3Nl
cnRpb25GYWlsdXJlKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BSRVRUWV9GVU5DVElPTiwgIkNI
RUNLX05PVF9FUSgiI19hY3R1YWwgIiwgIiAjX2V4cGVjdGVkICIpIik7IFwKKyAgICAgICAgQ1JB
U0goKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogYm9v
bCBpc1BDKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGlkKQogewpAQCAtOTM1LDYgKzk0NSw0
NyBAQCB2b2lkIHRlc3RCeXRlU3dhcCgpCiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgdGVzdENh
Z2VQcmVzZXJ2ZXNQQUNGYWlsdXJlQml0KCkKK3sKKyAgICBhdXRvIGNhZ2UgPSBjb21waWxlKFtd
IChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUo
KTsKKyAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpOworICAgICAgICBqaXQubW92ZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIHZvaWQqIHB0ciA9IEdpZ2FjYWdl
Ojp0cnlNYWxsb2MoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgMSk7CisgICAgdm9pZCogdGFnZ2VkUHRy
ID0gdGFnQXJyYXlQdHIocHRyLCAxKTsKKyAgICBkYXRhTG9nTG4oInN0YXJ0aW5nIHRlc3QiKTsK
KyAgICBpZiAoaXNBUk02NEUoKSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyB3b24ndCB3b3Jr
IGlmIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmVzIHRyYXAgYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8g
dGVzdCBmb3IgdGhhdCByaWdodCBub3cuCisgICAgICAgIENIRUNLX05PVF9FUShpbnZva2U8dm9p
ZCo+KGNhZ2UsIHRhZ2dlZFB0ciwgMiksIHB0cik7CisgICAgfSBlbHNlCisgICAgICAgIENIRUNL
X0VRKGludm9rZTx2b2lkKj4oY2FnZSwgdGFnZ2VkUHRyLCAyKSwgcHRyKTsKKworICAgIENIRUNL
X0VRKGludm9rZTx2b2lkKj4oY2FnZSwgdGFnZ2VkUHRyLCAxKSwgcHRyKTsKKworICAgIGF1dG8g
Y2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0
KSB7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICBqaXQuY2Fn
ZVdpdGhvdXRVbnRhZ2luZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgICAgICBqaXQubW92ZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAg
ICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIGlmIChpc0FSTTY0RSgpKSB7CisgICAgICAg
IC8vIEZJWE1FOiBUaGlzIHdvbid0IHdvcmsgaWYgYXV0aGVudGljYXRpb24gZmFpbHVyZXMgdHJh
cCBidXQgSSBkb24ndCBrbm93IGhvdyB0byB0ZXN0IGZvciB0aGF0IHJpZ2h0IG5vdy4KKyAgICAg
ICAgQ0hFQ0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwg
dW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDIpKSwgcHRyKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1dGhlbnRpY2F0aW9uLCB1bnRhZ0Fy
cmF5UHRyKHRhZ2dlZFB0ciwgMikpLCBwdHIpOworCisgICAgQ0hFQ0tfRVEodW50YWdBcnJheVB0
cih0YWdnZWRQdHIsIDEpLCBwdHIpOworICAgIENIRUNLX0VRKGludm9rZTx2b2lkKj4oY2FnZVdp
dGhvdXRBdXRoZW50aWNhdGlvbiwgdW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDEpKSwgcHRyKTsK
KworICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHB0cik7Cit9CisKICNk
ZWZpbmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg
aWYgKCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGJy
ZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTEwMTgsNiArMTA2OSw4IEBA
IHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKIAogICAgIFJVTih0ZXN0Qnl0ZVN3YXAoKSk7
CiAKKyAgICBSVU4odGVzdENhZ2VQcmVzZXJ2ZXNQQUNGYWlsdXJlQml0KCkpOworCiAgICAgaWYg
KHRhc2tzLmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBlNTUzOGYxOTM2MDYzNmZj
NWE0M2EzYTI5ZmUxOGY1NDM3MDE1Yzc3Li5iMWUzZWYyNjc1NGE1MTI3YmIzYzFlYTNkYWI3NmI3
M2RhNDRlNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcApAQCAtMjg3Myw3ICsyODczLDcgQEAgSklUQ29tcGlsZXI6Okp1bXAgU3BlY3Vs
YXRpdmVKSVQ6Omp1bXBGb3JUeXBlZEFycmF5SXNOZXV0ZXJlZElmT3V0T2ZCb3VuZHMoTm9kZSoK
ICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tMzIoV2FzdGVmdWxUeXBlZEFycmF5KSk7CiAKICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhc051bGxWZWN0b3I7Ci0jaWYgIUdJR0FDQUdF
X0VOQUJMRUQgJiYgQ1BVKEFSTTY0RSkKKyNpZiBDUFUoQVJNNjRFKQogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gbV9qaXQuc2NyYXRjaFJlZ2lzdGVyKCk7
CiAgICAgICAgICAgICAgICAgRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGRpc2Fs
bG93U2NyYXRjaChtX2ppdCk7CkBAIC0yODgyLDcgKzI4ODIsNyBAQCBKSVRDb21waWxlcjo6SnVt
cCBTcGVjdWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJyYXlJc05ldXRlcmVkSWZPdXRPZkJvdW5k
cyhOb2RlKgogICAgICAgICAgICAgICAgIG1faml0LnJlbW92ZUFycmF5UHRyVGFnKHNjcmF0Y2gp
OwogICAgICAgICAgICAgICAgIGhhc051bGxWZWN0b3IgPSBtX2ppdC5icmFuY2hUZXN0UHRyKE1h
Y3JvQXNzZW1ibGVyOjpaZXJvLCBzY3JhdGNoKTsKICAgICAgICAgICAgIH0KLSNlbHNlIC8vICFH
SUdBQ0FHRV9FTkFCTEVEICYmIENQVShBUk02NEUpCisjZWxzZSAvLyBDUFUoQVJNNjRFKQogICAg
ICAgICAgICAgaGFzTnVsbFZlY3RvciA9IG1faml0LmJyYW5jaFRlc3RQdHIoCiAgICAgICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Olplcm8sCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MoYmFzZSwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mVmVjdG9yKCkpKTsK
QEAgLTY3NjAsNiArNjc2MCwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29uc3Rh
bnRTdG9yYWdlUG9pbnRlcihOb2RlKiBub2RlKQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWdl
VHlwZWRBcnJheVN0b3JhZ2UoR1BSUmVnIGJhc2VSZWcsIEdQUlJlZyBzdG9yYWdlUmVnKQogewor
I2lmIENQVShBUk02NEUpCisgICAgbV9qaXQudW50YWdBcnJheVB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhiYXNlUmVnLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZMZW5ndGgoKSksIHN0
b3JhZ2VSZWcpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYmFzZVJlZyk7CisgICAgVU5VU0VE
X1BBUkFNKHN0b3JhZ2VSZWcpOworI2VuZGlmCisKICNpZiBHSUdBQ0FHRV9FTkFCTEVECiAgICAg
VU5VU0VEX1BBUkFNKGJhc2VSZWcpOwogICAgIGlmICghR2lnYWNhZ2U6OnNob3VsZEJlRW5hYmxl
ZCgpKQpAQCAtNjc3MiwxMiArNjc3OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhZ2VUeXBl
ZEFycmF5U3RvcmFnZShHUFJSZWcgYmFzZVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIG1faml0LmNhZ2UoR2lnYWNhZ2U6OlByaW1p
dGl2ZSwgc3RvcmFnZVJlZyk7Ci0jZWxpZiBDUFUoQVJNNjRFKQotICAgIG1faml0LnVudGFnQXJy
YXlQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNBcnJheUJ1ZmZlclZpZXc6
Om9mZnNldE9mTGVuZ3RoKCkpLCBzdG9yYWdlUmVnKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFN
KGJhc2VSZWcpOwotICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlUmVnKTsKKyAgICBtX2ppdC5jYWdl
V2l0aG91dFVudGFnaW5nKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHN0b3JhZ2VSZWcpOwogI2VuZGlm
CiB9CiAKQEAgLTY4NDEsNyArNjg0Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRUeXBlZEFycmF5Qnl0ZU9mZnNldChOb2RlKiBub2RlKQogICAgIEpJVENvbXBpbGVyOjpKdW1w
IG51bGxWZWN0b3IgPSBtX2ppdC5icmFuY2hUZXN0UHRyKEpJVENvbXBpbGVyOjpaZXJvLCB2ZWN0
b3JHUFIpOwogCiAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNl
R1BSLCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpLCBkYXRhR1BSKTsKLSAgICBtX2ppdC5j
YWdlKEdpZ2FjYWdlOjpKU1ZhbHVlLCBkYXRhR1BSKTsKKyAgICBtX2ppdC5jYWdlV2l0aG91dFVu
dGFnaW5nKEdpZ2FjYWdlOjpKU1ZhbHVlLCBkYXRhR1BSKTsKIAogICAgIGNhZ2VUeXBlZEFycmF5
U3RvcmFnZShiYXNlR1BSLCB2ZWN0b3JHUFIpOwogCkBAIC05ODQ1LDcgKzk4NDcsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3VHlwZWRBcnJheVdpdGhTaXplKE5vZGUqIG5vZGUp
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgc2NyYXRjaEdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91cikpOwogICAgIG1faml0LmJyYW5jaFRlc3QzMihN
YWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgc2NyYXRjaEdQUikubGlua1RvKGxvb3AsICZtX2ppdCk7
CiAgICAgZG9uZS5saW5rKCZtX2ppdCk7Ci0jaWYgIUdJR0FDQUdFX0VOQUJMRUQgJiYgQ1BVKEFS
TTY0RSkKKyNpZiBDUFUoQVJNNjRFKQogICAgIC8vIHNpemVHUFIgaXMgc3RpbGwgYm94ZWQgYXMg
YSBudW1iZXIgYW5kIHRoZXJlIGlzIG5vIDMyLWJpdCB2YXJpYW50IG9mIHRoZSBQQUMgaW5zdHJ1
Y3Rpb25zLgogICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKHNpemVHUFIsIHNjcmF0Y2hHUFIp
OwogICAgIG1faml0LnRhZ0FycmF5UHRyKHNjcmF0Y2hHUFIsIHN0b3JhZ2VHUFIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDk0Yzk2NTgy
MjVhNzEwZGFiODAzMTUyZGEwMjQ5ZjYzZDM5MGZmYWMuLjU5YmNlZDQ1NzY1MTI5MzBhOWM1NTBi
MTg5NWIxOGJlYWEzMzdiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKQEAgLTY0ODMsNyArNjQ4Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgbV9vdXQuaW50NjRaZXJvLAogICAgICAgICAgICAgICAgIG1faGVhcHMudHlwZWRBcnJh
eVByb3BlcnRpZXMpOwogCi0jaWYgIUdJR0FDQUdFX0VOQUJMRUQgJiYgQ1BVKEFSTTY0RSkKKyNp
ZiBDUFUoQVJNNjRFKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIExWYWx1ZSBzaXpl
UHRyID0gbV9vdXQuemVyb0V4dFB0cihzaXplKTsKICAgICAgICAgICAgICAgICBQYXRjaHBvaW50
VmFsdWUqIGF1dGhlbnRpY2F0ZSA9IG1fb3V0LnBhdGNocG9pbnQocG9pbnRlclR5cGUoKSk7CkBA
IC0xNDE1NSw2ICsxNDE1NSwxNiBAQCBwcml2YXRlOgogCiAgICAgTFZhbHVlIGNhZ2VkKEdpZ2Fj
YWdlOjpLaW5kIGtpbmQsIExWYWx1ZSBwdHIsIExWYWx1ZSBiYXNlKQogICAgIHsKKyNpZiBDUFUo
QVJNNjRFKQorICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKSB7CisgICAg
ICAgICAgICBMVmFsdWUgc2l6ZSA9IG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTQXJyYXlC
dWZmZXJWaWV3X2xlbmd0aCk7CisgICAgICAgICAgICBwdHIgPSB1bnRhZ0FycmF5UHRyKHB0ciwg
c2l6ZSk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShraW5kKTsKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKGJhc2UpOworI2VuZGlmCisKICNpZiBHSUdBQ0FHRV9FTkFCTEVE
CiAgICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKICAgICAgICAgaWYgKCFHaWdhY2FnZTo6aXNF
bmFibGVkKGtpbmQpKQpAQCAtMTQxNzMsNiArMTQxODMsMTggQEAgcHJpdmF0ZToKICAgICAgICAg
TFZhbHVlIG1hc2tlZCA9IG1fb3V0LmJpdEFuZChwdHIsIG1hc2spOwogICAgICAgICBMVmFsdWUg
cmVzdWx0ID0gbV9vdXQuYWRkKG1hc2tlZCwgYmFzZVB0cik7CiAKKyNpZiBDUFUoQVJNNjRFKQor
ICAgICAgICB7CisgICAgICAgICAgICBQYXRjaHBvaW50VmFsdWUqIG1lcmdlID0gbV9vdXQucGF0
Y2hwb2ludChwb2ludGVyVHlwZSgpKTsKKyAgICAgICAgICAgIG1lcmdlLT5hcHBlbmQocmVzdWx0
LCBCMzo6VmFsdWVSZXAoQjM6OlZhbHVlUmVwOjpTb21lTGF0ZVJlZ2lzdGVyKSk7CisgICAgICAg
ICAgICBtZXJnZS0+YXBwZW5kU29tZVJlZ2lzdGVyKHB0cik7CisgICAgICAgICAgICBtZXJnZS0+
c2V0R2VuZXJhdG9yKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgaml0Lm1vdmUocGFyYW1zWzJd
LmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIGppdC5iaXRGaWVsZElu
c2VydDY0KHBhcmFtc1sxXS5ncHIoKSwgMCwgNjQgLSBNYWNyb0Fzc2VtYmxlcjo6bnVtYmVyT2ZQ
QUNCaXRzLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
ZXN1bHQgPSBtZXJnZTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IEIzIGRvZXNuJ3QgdHJ5IHRvIGRvIHNtYXJ0IHJlYXNzb2NpYXRpb24gb2YgdGhlc2UgcG9p
bnRlciBiaXRzLgogICAgICAgICAvLyBGSVhNRTogSW4gYW4gaWRlYWwgd29ybGQsIEIzIHdvdWxk
IG5vdCBkbyBoYXJtZnVsIHJlYXNzb2NpYXRpb25zLCBhbmQgaWYgaXQgZGlkLCBpdCB3b3VsZCBi
ZSBhYmxlCiAgICAgICAgIC8vIHRvIHVuZG8gdGhlbSBkdXJpbmcgY29uc3RhbnQgaG9pc3Rpbmcg
YW5kIHJlZ2FsbG9jLiBBcyBpdCBzdGFuZHMsIGlmIHlvdSByZW1vdmUgdGhpcyB0aGVuIE9jdGFu
ZQpAQCAtMTQxODUsMTcgKzE0MjA3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gYW5kIHBvc3Np
Ymx5IG90aGVyIHNtYXJ0IHRoaW5ncyBpZiB3ZSB3YW50IHRvIGJlIGFibGUgdG8gcmVtb3ZlIHRo
aXMgb3BhcXVlLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc1NDkzCiAgICAgICAgIHJldHVybiBtX291dC5vcGFxdWUocmVzdWx0KTsKLSNlbGlm
IENQVShBUk02NEUpCi0gICAgICAgIGlmIChraW5kID09IEdpZ2FjYWdlOjpQcmltaXRpdmUpIHsK
LSAgICAgICAgICAgIExWYWx1ZSBzaXplID0gbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNB
cnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKLSAgICAgICAgICAgIHJldHVybiB1bnRhZ0FycmF5UHRy
KHB0ciwgc2l6ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcHRyOwotI2Vsc2UKLSAg
ICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwotICAgICAgICBVTlVTRURfUEFSQU0oYmFzZSk7Ci0g
ICAgICAgIHJldHVybiBwdHI7CiAjZW5kaWYKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBkOTI2OGU4MzY5MTQyMWZmZWRjMTU0
MTIxN2M4NjdmMzUxZWRiOGQ0Li43MmQ1NTY1ODc5OWQ0NDdmOTk1OGU4YzEwYmJkYTkxYTFlM2Rl
NTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAg
LTE1NTQsNDMgKzE1NTQsNzUgQEAgcHVibGljOgogICAgICAgICBzdG9yZUZlbmNlKCk7CiAgICAg
ICAgIG9rLmxpbmsodGhpcyk7CiAgICAgfQotICAgIAotICAgIHZvaWQgY2FnZShHaWdhY2FnZTo6
S2luZCBraW5kLCBHUFJSZWcgc3RvcmFnZSkKKworICAgIHZvaWQgY2FnZVdpdGhvdXRVbnRhZ2lu
ZyhHaWdhY2FnZTo6S2luZCBraW5kLCBHUFJSZWcgc3RvcmFnZSkKICAgICB7CiAjaWYgR0lHQUNB
R0VfRU5BQkxFRAogICAgICAgICBpZiAoIUdpZ2FjYWdlOjppc0VuYWJsZWQoa2luZCkpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCisjaWYgQ1BVKEFSTTY0RSkKKyAgICAgICAgUmVn
aXN0ZXJJRCB0ZW1wUmVnID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgaWYgKGtpbmQgPT0gR2ln
YWNhZ2U6OlByaW1pdGl2ZSkgeworICAgICAgICAgICAgdGVtcFJlZyA9IGdldENhY2hlZE1lbW9y
eVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICAgICAgbW92ZShzdG9yYWdl
LCB0ZW1wUmVnKTsKKyAgICAgICAgICAgIC8vIEZsaXAgdGhlIHJlZ2lzdGVycyBzaW5jZSBiaXRG
aWVsZEluc2VydCBvbmx5IGluc2VydHMgaW50byB0aGUgbG93IGJpdHMuCisgICAgICAgICAgICBz
dGQ6OnN3YXAoc3RvcmFnZSwgdGVtcFJlZyk7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBh
bmRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6bWFzayhraW5kKSksIHN0b3JhZ2UpOwogICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6YmFzZVB0cihraW5kKSksIHN0b3Jh
Z2UpOworI2lmIENQVShBUk02NEUpCisgICAgICAgIGlmIChraW5kID09IEdpZ2FjYWdlOjpQcmlt
aXRpdmUpCisgICAgICAgICAgICBiaXRGaWVsZEluc2VydDY0KHN0b3JhZ2UsIDAsIDY0IC0gbnVt
YmVyT2ZQQUNCaXRzLCB0ZW1wUmVnKTsKKyNlbmRpZgorCiAjZWxzZQogICAgICAgICBVTlVTRURf
UEFSQU0oa2luZCk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlKTsKICNlbmRpZgogICAg
IH0KLSAgICAKLSAgICB2b2lkIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpLaW5kIGtpbmQs
IEdQUlJlZyBzdG9yYWdlLCBHUFJSZWcgc2NyYXRjaE9yTGVuZ3RoKQorCisgICAgLy8gbGVuZ3Ro
IG1heSBiZSB0aGUgc2FtZSByZWdpc3RlciBhcyBzY3JhdGNoLgorICAgIHZvaWQgY2FnZUNvbmRp
dGlvbmFsbHkoR2lnYWNhZ2U6OktpbmQga2luZCwgR1BSUmVnIHN0b3JhZ2UsIEdQUlJlZyBsZW5n
dGgsIEdQUlJlZyBzY3JhdGNoKQogICAgIHsKKyNpZiBDUFUoQVJNNjRFKQorICAgICAgICBpZiAo
a2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKQorICAgICAgICAgICAgdW50YWdBcnJheVB0cihs
ZW5ndGgsIHN0b3JhZ2UpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOworICAg
ICAgICBVTlVTRURfUEFSQU0oc3RvcmFnZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShsZW5ndGgp
OworI2VuZGlmCisKICNpZiBHSUdBQ0FHRV9FTkFCTEVECiAgICAgICAgIGlmICghR2lnYWNhZ2U6
OmlzRW5hYmxlZChraW5kKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgICAg
IGlmIChraW5kICE9IEdpZ2FjYWdlOjpQcmltaXRpdmUgfHwgR2lnYWNhZ2U6OmlzRGlzYWJsaW5n
UHJpbWl0aXZlR2lnYWNhZ2VEaXNhYmxlZCgpKQotICAgICAgICAgICAgcmV0dXJuIGNhZ2Uoa2lu
ZCwgc3RvcmFnZSk7Ci0gICAgICAgIAotICAgICAgICBsb2FkUHRyKCZHaWdhY2FnZTo6YmFzZVB0
cihraW5kKSwgc2NyYXRjaE9yTGVuZ3RoKTsKLSAgICAgICAgSnVtcCBkb25lID0gYnJhbmNoVGVz
dFB0cihaZXJvLCBzY3JhdGNoT3JMZW5ndGgpOwotICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0
cihHaWdhY2FnZTo6bWFzayhraW5kKSksIHN0b3JhZ2UpOwotICAgICAgICBhZGRQdHIoc2NyYXRj
aE9yTGVuZ3RoLCBzdG9yYWdlKTsKLSAgICAgICAgZG9uZS5saW5rKHRoaXMpOwotI2VsaWYgQ1BV
KEFSTTY0RSkKLSAgICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkKLSAgICAg
ICAgICAgIHVudGFnQXJyYXlQdHIoc2NyYXRjaE9yTGVuZ3RoLCBzdG9yYWdlKTsKKyAgICAgICAg
ICAgIGNhZ2VXaXRob3V0VW50YWdpbmcoa2luZCwgc3RvcmFnZSk7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgbG9hZFB0cigmR2lnYWNhZ2U6OmJhc2VQdHIoa2luZCksIHNjcmF0Y2gpOwor
ICAgICAgICAgICAgSnVtcCBkb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCBzY3JhdGNoKTsKKyNp
ZiBDUFUoQVJNNjRFKQorICAgICAgICAgICAgYXV0byB0ZW1wUmVnID0gZ2V0Q2FjaGVkTWVtb3J5
VGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgICAgICBtb3ZlKHN0b3JhZ2Us
IHRlbXBSZWcpOworICAgICAgICAgICAgLy8gRmxpcCB0aGUgcmVnaXN0ZXJzIHNpbmNlIGJpdEZp
ZWxkSW5zZXJ0IG9ubHkgaW5zZXJ0cyBpbnRvIHRoZSBsb3cgYml0cy4KKyAgICAgICAgICAgIHN0
ZDo6c3dhcChzdG9yYWdlLCB0ZW1wUmVnKTsKKyNlbmRpZgorICAgICAgICAgICAgYW5kUHRyKFRy
dXN0ZWRJbW1QdHIoR2lnYWNhZ2U6Om1hc2soa2luZCkpLCBzdG9yYWdlKTsKKyAgICAgICAgICAg
IGFkZFB0cihzY3JhdGNoLCBzdG9yYWdlKTsKKyNpZiBDUFUoQVJNNjRFKQorICAgICAgICAgICAg
Yml0RmllbGRJbnNlcnQ2NChzdG9yYWdlLCAwLCA2NCAtIG51bWJlck9mUEFDQml0cywgdGVtcFJl
Zyk7CisjZW5kaWYKKyAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKKworCisgICAgICAgIH0K
ICNlbHNlCi0gICAgICAgIFVOVVNFRF9QQVJBTShraW5kKTsKLSAgICAgICAgVU5VU0VEX1BBUkFN
KHN0b3JhZ2UpOwotICAgICAgICBVTlVTRURfUEFSQU0oc2NyYXRjaE9yTGVuZ3RoKTsKKyAgICAg
ICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2gpOwogI2VuZGlmCisKICAgICB9CiAKICAgICB2b2lkIGVt
aXRDb21wdXRlQnV0dGVyZmx5SW5kZXhpbmdNYXNrKEdQUlJlZyB2ZWN0b3JMZW5ndGhHUFIsIEdQ
UlJlZyBzY3JhdGNoR1BSLCBHUFJSZWcgcmVzdWx0R1BSKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCA5ZDYyMTQ4MWY3NzQ3NGVmYjgz
MWJkNGU1ZjFmNTgyMjllMzMyNTU2Li5jYmI3OGQ1YjNlYmJiMjhlODg5MTFkNTI1YTU3OTlmN2Y2
ODQ5MTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcApAQCAtMTY3Miw3ICsxNjcyLDcgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRJbnRU
eXBlZEFycmF5R2V0QnlWYWwoY29uc3QgSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJgogICAg
IGxvYWQzMihBZGRyZXNzKGJhc2UsIEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZkxlbmd0aCgp
KSwgc2NyYXRjaDIpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoMzIoQWJvdmVPckVxdWFs
LCBwcm9wZXJ0eSwgc2NyYXRjaDIpKTsKICAgICBsb2FkUHRyKEFkZHJlc3MoYmFzZSwgSlNBcnJh
eUJ1ZmZlclZpZXc6Om9mZnNldE9mVmVjdG9yKCkpLCBzY3JhdGNoKTsKLSAgICBjYWdlQ29uZGl0
aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBzY3JhdGNoLCBzY3JhdGNoMik7CisgICAgY2Fn
ZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgc2NyYXRjaCwgc2NyYXRjaDIsIHNj
cmF0Y2gyKTsKIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDE6
CkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEZsb2F0VHlwZWRB
cnJheUdldEJ5VmFsKGNvbnN0IEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcAogICAgIGxvYWQz
MihBZGRyZXNzKGJhc2UsIEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgc2Ny
YXRjaDIpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoMzIoQWJvdmVPckVxdWFsLCBwcm9w
ZXJ0eSwgc2NyYXRjaDIpKTsKICAgICBsb2FkUHRyKEFkZHJlc3MoYmFzZSwgSlNBcnJheUJ1ZmZl
clZpZXc6Om9mZnNldE9mVmVjdG9yKCkpLCBzY3JhdGNoKTsKLSAgICBjYWdlQ29uZGl0aW9uYWxs
eShHaWdhY2FnZTo6UHJpbWl0aXZlLCBzY3JhdGNoLCBzY3JhdGNoMik7CisgICAgY2FnZUNvbmRp
dGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgc2NyYXRjaCwgc2NyYXRjaDIsIHNjcmF0Y2gy
KTsKICAgICAKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAgY2FzZSA0OgpA
QCAtMTgwMSw3ICsxODAxLDcgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRJbnRUeXBlZEFycmF5
UHV0QnlWYWwoT3AgYnl0ZWNvZGUsIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUKICAgICAvLyBXZSB3
b3VsZCBiZSBsb2FkaW5nIHRoaXMgaW50byBiYXNlIGFzIGluIGdldF9ieV92YWwsIGV4Y2VwdCB0
aGF0IHRoZSBzbG93CiAgICAgLy8gcGF0aCBleHBlY3RzIHRoZSBiYXNlIHRvIGJlIHVuY2xvYmJl
cmVkLgogICAgIGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0
T2ZWZWN0b3IoKSksIGxhdGVTY3JhdGNoKTsKLSAgICBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2Fn
ZTo6UHJpbWl0aXZlLCBsYXRlU2NyYXRjaCwgbGF0ZVNjcmF0Y2gyKTsKKyAgICBjYWdlQ29uZGl0
aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBsYXRlU2NyYXRjaCwgbGF0ZVNjcmF0Y2gyLCBs
YXRlU2NyYXRjaDIpOwogICAgIAogICAgIGlmIChpc0NsYW1wZWQodHlwZSkpIHsKICAgICAgICAg
QVNTRVJUKGVsZW1lbnRTaXplKHR5cGUpID09IDEpOwpAQCAtMTg5MCw3ICsxODkwLDcgQEAgSklU
OjpKdW1wTGlzdCBKSVQ6OmVtaXRGbG9hdFR5cGVkQXJyYXlQdXRCeVZhbChPcCBieXRlY29kZSwg
UGF0Y2hhYmxlSnVtcCYgYmFkVHkKICAgICAvLyBXZSB3b3VsZCBiZSBsb2FkaW5nIHRoaXMgaW50
byBiYXNlIGFzIGluIGdldF9ieV92YWwsIGV4Y2VwdCB0aGF0IHRoZSBzbG93CiAgICAgLy8gcGF0
aCBleHBlY3RzIHRoZSBiYXNlIHRvIGJlIHVuY2xvYmJlcmVkLgogICAgIGxvYWRQdHIoQWRkcmVz
cyhiYXNlLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZWZWN0b3IoKSksIGxhdGVTY3JhdGNo
KTsKLSAgICBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBsYXRlU2NyYXRj
aCwgbGF0ZVNjcmF0Y2gyKTsKKyAgICBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0
aXZlLCBsYXRlU2NyYXRjaCwgbGF0ZVNjcmF0Y2gyLCBsYXRlU2NyYXRjaDIpOwogICAgIAogICAg
IHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggNDAz
MmU3ZThmM2Y4N2JjYmRiZTFlZjljZGZkMTcyMzNiNmM4NTVkYS4uYzBhZDgzYzZjNDM2MGYyODI2
ZWM5OTY4YzM4M2Y2Yjc1NDBkOGE0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtNzYsNyArNzYsNyBAQAogIwogIyAg
LSBwYyBob2xkcyB0aGUgKG5hdGl2ZSkgcHJvZ3JhbSBjb3VudGVyIG9uIDMyLWJpdHMgQVJNIGFy
Y2hpdGVjdHVyZXMgKEFSTXY3KQogIwotIyAgLSB0MCwgdDEsIHQyLCB0MywgdDQgYW5kIG9wdGlv
bmFsbHkgdDUgYXJlIHRlbXBvcmFyeSByZWdpc3RlcnMgdGhhdCBjYW4gZ2V0IHRyYXNoZWQgb24K
KyMgIC0gdDAsIHQxLCB0MiwgdDMsIHQ0LCBhbmQgb3B0aW9uYWxseSB0NSwgdDYsIGFuZCB0NyBh
cmUgdGVtcG9yYXJ5IHJlZ2lzdGVycyB0aGF0IGNhbiBnZXQgdHJhc2hlZCBvbgogIyAgY2FsbHMs
IGFuZCBhcmUgcGFpcndpc2UgZGlzdGluY3QgcmVnaXN0ZXJzLiB0NCBob2xkcyB0aGUgSlMgcHJv
Z3JhbSBjb3VudGVyLCBzbyB1c2UKICMgIHdpdGggY2F1dGlvbiBpbiBvcGNvZGVzIChhY3R1YWxs
eSwgZG9uJ3QgdXNlIGl0IGluIG9wY29kZXMgYXQgYWxsLCBleGNlcHQgYXMgUEMpLgogIwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQppbmRleCA2YWFmMGRkMTBjM2ViOGFmNmIyNzc3MTM0MTlhYzQwZTNkODc4Mzk3Li45MDM2
MzVhZjUyNWE4YjFmNDQ3MDYwMzE0MzA3ZDEwODNkMzYzNWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNDM0
LDEwICs0MzQsMTkgQEAgZW5kCiAKIG1hY3JvIGxvYWRDYWdlZFByaW1pdGl2ZShzb3VyY2UsIGRl
c3QsIHNjcmF0Y2hPckxlbmd0aCkKICAgICBsb2FkcCBzb3VyY2UsIGRlc3QKLSAgICBpZiBHSUdB
Q0FHRV9FTkFCTEVECi0gICAgICAgIHVuY2FnZShfZ19naWdhY2FnZUJhc2VQdHJzICsgR2lnYWNh
Z2U6OkJhc2VQdHJzOjpwcmltaXRpdmUsIGNvbnN0ZXhwciBHaWdhY2FnZTo6cHJpbWl0aXZlR2ln
YWNhZ2VNYXNrLCBkZXN0LCBzY3JhdGNoT3JMZW5ndGgpCi0gICAgZWxzaWYgQVJNNjRFCisgICAg
aWYgQVJNNjRFCisgICAgICAgIGNvbnN0IHJlc3VsdCA9IHQ3CiAgICAgICAgIHVudGFnQXJyYXlQ
dHIgc2NyYXRjaE9yTGVuZ3RoLCBkZXN0CisgICAgICAgIG1vdmUgZGVzdCwgcmVzdWx0CisgICAg
ZWxzZQorICAgICAgICBjb25zdCByZXN1bHQgPSBkZXN0CisgICAgZW5kCisgICAgaWYgR0lHQUNB
R0VfRU5BQkxFRAorICAgICAgICB1bmNhZ2UoX2dfZ2lnYWNhZ2VCYXNlUHRycyArIEdpZ2FjYWdl
OjpCYXNlUHRyczo6cHJpbWl0aXZlLCBjb25zdGV4cHIgR2lnYWNhZ2U6OnByaW1pdGl2ZUdpZ2Fj
YWdlTWFzaywgcmVzdWx0LCBzY3JhdGNoT3JMZW5ndGgpCisgICAgICAgIGlmIEFSTTY0RQorICAg
ICAgICAgICAgY29uc3QgbnVtYmVyT2ZQQUNCaXRzID0gY29uc3RleHByIE1hY3JvQXNzZW1ibGVy
OjpudW1iZXJPZlBBQ0JpdHMKKyAgICAgICAgICAgIGJmaXEgcmVzdWx0LCAwLCA2NCAtIG51bWJl
ck9mUEFDQml0cywgZGVzdAorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDU4YmJjMmFhZmQ5YjQ4NGVkYzY2
NWU2YWQwMjY0OGM0NGM5ZTE3N2MuLjIzZDk0OGYwYTMxZDc3MTU5YmU0NmZhZDY0NjBmMGQ2NDYz
ZWQ1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0
LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCkBAIC0x
MjYsNiArMTI2LDggQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAgIGFybTY0R1BSTmFtZSgn
eDUnLCBraW5kKQogICAgICAgICB3aGVuICd0NicKICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3g2
Jywga2luZCkKKyAgICAgICAgd2hlbiAndDcnCisgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4Nycs
IGtpbmQpCiAgICAgICAgIHdoZW4gJ2NmcicKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDI5
Jywga2luZCkKICAgICAgICAgd2hlbiAnY3NyMCcKQEAgLTEwMTksNiArMTAyMSw4IEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInNtYWRkbCAje29wZXJhbmRzWzJd
LmFybTY0T3BlcmFuZCg6cXVhZCl9LCAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6d29yZCl9
LCAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCB4enIiCiAgICAgICAgIHdoZW4g
Im1lbWZlbmNlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4g
ImJmaXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJmaSAje29wZXJhbmRzWzNdLmFybTY0T3Bl
cmFuZCg6cXVhZCl9LCAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6cXVhZCl9LCAje29wZXJh
bmRzWzFdLnZhbHVlfSwgI3tvcGVyYW5kc1syXS52YWx1ZX0iCiAgICAgICAgIHdoZW4gInBjcnRv
YWRkciIKICAgICAgICAgICAgICRhc20ucHV0cyAiYWRyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVy
YW5kKDpxdWFkKX0sICN7b3BlcmFuZHNbMF0udmFsdWV9IgogICAgICAgICB3aGVuICJub3BDb3J0
ZXhBNTNGaXg4MzU3NjkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIKaW5kZXggMmFkNTk0NGU5MDU1YTU1OTEzNmMyOGUzNmI4NzJlZGI5YmRk
ODRlOS4uMmNjM2FjZjE1ODJlNDRkZjgwZDc0NGM4YTdkZDAzMTliYzJkMGQ0NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtMjcz
LDYgKzI3Myw3IEBAIEFSTV9JTlNUUlVDVElPTlMgPQogCiBBUk02NF9JTlNUUlVDVElPTlMgPQog
ICAgIFsKKyAgICAgImJmaXEiLCAjIEJpdCBmaWVsZCBpbnNlcnQgPHNvdXJjZSByZWc+IDx3aWR0
aCBpbW1lZGlhdGU+IDxsYXN0IGJpdCB3cml0dGVuPiA8ZGVzdCByZWc+CiAgICAgICJwY3J0b2Fk
ZHIiLCAgICMgQWRkcmVzcyBmcm9tIFBDIHJlbGF0aXZlIG9mZnNldCAtIGFkciBpbnN0cnVjdGlv
bgogICAgICAibm9wRml4Q29ydGV4QTUzRXJyODM1NzY5IiwgIyBub3Agb24gQ29ydGV4LUE1MyAo
bm90aGluZyBvdGhlcndpc2UpCiAgICAgICJnbG9iYWxhZGRyIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCmluZGV4IGFhOGE0MGZkNGU4NTNjZDQ4ZDQ1
ZWNjMjY2NmNkOWExNjQ2MDlkMzkuLjE1OGQxNDE5NDZmOGZkYmI5YzI0ZmU5ZWJmYzEyZTU3YTRh
OGQ4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lz
dGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMu
cmIKQEAgLTMyLDYgKzMyLDcgQEAgR1BSUyA9CiAgICAgICJ0NCIsCiAgICAgICJ0NSIsCiAgICAg
ICJ0NiIsCisgICAgICJ0NyIsCiAgICAgICJjZnIiLAogICAgICAiYTAiLAogICAgICAiYTEiLApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAK
aW5kZXggM2Y1MWQwYjBmYzQyNzk3MzQxZTg2NGY4MDdkNTI3ZmMyNDQ2YzBjMS4uMTYyZTk5MDcz
MWY0ODdjZWNiYmZkNzJlZThlNzU5M2IyZTU5ZGUzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC04NDMsMTUgKzg0MywxNCBA
QCB2b2lkIEFpcklSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZShSZXN0
b3JlQ2FjaGVkU3RhY2tMaW1pdCByZXN0bwogICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0
Y2hSZWdpc3RlcnMgPSBHaWdhY2FnZTo6aXNFbmFibGVkKEdpZ2FjYWdlOjpQcmltaXRpdmUpID8g
MSA6IDA7CiAKICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFtwaW5uZWRSZWdzXSAo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgewotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIUdpZ2FjYWdlOjppc0VuYWJsZWQo
R2lnYWNhZ2U6OlByaW1pdGl2ZSkgfHwgIWlzQVJNNjQoKSk7Ci0gICAgICAgICAgICBBbGxvd01h
Y3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2VJZiBhbGxvd1NjcmF0Y2goaml0LCAhaXNBUk02NCgpKTsK
KyAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2go
aml0KTsKICAgICAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy0+YmFzZU1l
bW9yeVBvaW50ZXI7CiAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaE9yU2l6ZSA9IEdpZ2FjYWdl
Ojppc0VuYWJsZWQoR2lnYWNhZ2U6OlByaW1pdGl2ZSkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDog
cGlubmVkUmVncy0+c2l6ZVJlZ2lzdGVyOwogCiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzBdLmdwcigpLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRNZW1vcnlTaXplKCkpLCBwaW5uZWRSZWdzLT5zaXplUmVnaXN0ZXIpOwogICAgICAgICAgICAg
aml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1swXS5ncHIoKSwgSW5zdGFu
Y2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKIAotICAgICAgICAgICAg
aml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNj
cmF0Y2hPclNpemUpOworICAgICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdl
OjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHBpbm5lZFJlZ3MtPnNpemVSZWdpc3Rlciwgc2NyYXRj
aE9yU2l6ZSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGVtaXRQYXRjaHBvaW50KGJsb2NrLCBw
YXRjaHBvaW50LCBUbXAoKSwgaW5zdGFuY2UpOwpAQCAtMTk0OCw3ICsxOTQ3LDcgQEAgYXV0byBB
aXJJUkdlbmVyYXRvcjo6YWRkQ2FsbEluZGlyZWN0KGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJl
LCBWZWN0b3I8RXhwcmVzc2kKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6
QWRkcmVzcyhuZXdDb250ZXh0SW5zdGFuY2UsIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9y
eVNpemUoKSksIHBpbm5lZFJlZ3Muc2l6ZVJlZ2lzdGVyKTsgLy8gTWVtb3J5IHNpemUuCiAgICAg
ICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MobmV3Q29udGV4dEluc3Rh
bmNlLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOyAvLyBN
ZW1vcnk6OnZvaWQqLgogCi0gICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNh
Z2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7CisgICAgICAgICAgICBq
aXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgcGlu
bmVkUmVncy5zaXplUmVnaXN0ZXIsIHNjcmF0Y2hPclNpemUpOwogICAgICAgICB9KTsKIAogICAg
ICAgICBlbWl0UGF0Y2hwb2ludChkb0NvbnRleHRTd2l0Y2gsIHBhdGNocG9pbnQsIFRtcCgpLCBu
ZXdDb250ZXh0SW5zdGFuY2UsIGluc3RhbmNlVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXggNWU4N2Y0YmFmYjRkNzJi
MzdkM2Y4OTI1NjFmMjU1MTU0MDNiOWJlNy4uMTIzMjUxODViNjM2MDU1YmY2ZGQzOTk3MzljOWY2
OTQ2M2RiY2YzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lS
R2VuZXJhdG9yLmNwcApAQCAtNDg2LDE1ICs0ODYsMTQgQEAgdm9pZCBCM0lSR2VuZXJhdG9yOjpy
ZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZShSZXN0b3JlQ2FjaGVkU3RhY2tMaW1pdCByZXN0
b3IKIAogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQoaW5zdGFuY2UsIFZhbHVlUmVwOjpTb21l
UmVnaXN0ZXIpOwogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoW3Bpbm5lZFJlZ3Nd
IChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYg
cGFyYW1zKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghR2lnYWNhZ2U6OmlzRW5hYmxl
ZChHaWdhY2FnZTo6UHJpbWl0aXZlKSB8fCAhaXNBUk02NCgpKTsKLSAgICAgICAgICAgIEFsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZUlmIGFsbG93U2NyYXRjaChqaXQsICFpc0FSTTY0KCkp
OworICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRj
aChqaXQpOwogICAgICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLT5iYXNl
TWVtb3J5UG9pbnRlcjsKICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoT3JTaXplID0gR2lnYWNh
Z2U6OmlzRW5hYmxlZChHaWdhY2FnZTo6UHJpbWl0aXZlKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkg
OiBwaW5uZWRSZWdzLT5zaXplUmVnaXN0ZXI7CiAKICAgICAgICAgICAgIGppdC5sb2FkUHRyKEND
YWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMF0uZ3ByKCksIEluc3RhbmNlOjpvZmZzZXRPZkNh
Y2hlZE1lbW9yeVNpemUoKSksIHBpbm5lZFJlZ3MtPnNpemVSZWdpc3Rlcik7CiAgICAgICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzBdLmdwcigpLCBJbnN0
YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwogCi0gICAgICAgICAg
ICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwg
c2NyYXRjaE9yU2l6ZSk7CisgICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNh
Z2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgcGlubmVkUmVncy0+c2l6ZVJlZ2lzdGVyLCBzY3Jh
dGNoT3JTaXplKTsKICAgICAgICAgfSk7CiAgICAgfQogfQpAQCAtMTM2Niw3ICsxMzY1LDcgQEAg
YXV0byBCM0lSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QoY29uc3QgU2lnbmF0dXJlJiBzaWdu
YXR1cmUsIFZlY3RvcjxFeHByZXNzaW8KICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhuZXdDb250ZXh0SW5zdGFuY2UsIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hl
ZE1lbW9yeVNpemUoKSksIHBpbm5lZFJlZ3Muc2l6ZVJlZ2lzdGVyKTsgLy8gTWVtb3J5IHNpemUu
CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MobmV3Q29udGV4
dEluc3RhbmNlLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkp
OyAvLyBNZW1vcnk6OnZvaWQqLgogCi0gICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHko
R2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7CisgICAgICAg
ICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9y
eSwgcGlubmVkUmVncy5zaXplUmVnaXN0ZXIsIHNjcmF0Y2hPclNpemUpOwogICAgICAgICB9KTsK
ICAgICAgICAgZG9Db250ZXh0U3dpdGNoLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBK
dW1wLCBvcmlnaW4oKSwgY29udGludWF0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUJpbmRpbmcuY3BwCmluZGV4IGZlZDQ1YjEwNjNjOWEzNmJmNjUxY2Y4MDNlZTEwZjFj
NWJlN2M2NTQuLjIzYzk2NDc0ZjRiNzU1N2UxOWFlMTgyYTYwY2U5MDc3ZjczNmFiYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAKQEAgLTY3LDExICs2Nywx
MSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmlu
ZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcg
Y29kZSBhc3N1bWVzIHRoYXQgYWxsIFdhc206Okluc3RhbmNlIGhhdmUgdGhlIHNhbWUgcGlubmVk
IHJlZ2lzdGVycy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1
MgogICAgIC8vIFNldCB1cCB0aGUgY2FsbGVlJ3MgYmFzZU1lbW9yeSByZWdpc3RlciBhcyB3ZWxs
IGFzIHRoZSBtZW1vcnkgc2l6ZSByZWdpc3RlcnMuCiAgICAgewotICAgICAgICBHUFJSZWcgc2Ny
YXRjaE9yU2l6ZSA9IGlzQVJNNjRFKCkgPyBwaW5uZWRSZWdzLnNpemVSZWdpc3RlciA6IHdhc21D
YWxsaW5nQ29udmVudGlvbkFpcigpLnByb2xvZ3VlU2NyYXRjaCgxKTsKKyAgICAgICAgR1BSUmVn
IHNjcmF0Y2hPclNpemUgPSAhR2lnYWNhZ2U6OmlzRW5hYmxlZChHaWdhY2FnZTo6UHJpbWl0aXZl
KSA/IHBpbm5lZFJlZ3Muc2l6ZVJlZ2lzdGVyIDogd2FzbUNhbGxpbmdDb252ZW50aW9uQWlyKCku
cHJvbG9ndWVTY3JhdGNoKDEpOwogCiAgICAgICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhi
YXNlTWVtb3J5LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnlTaXplKCkpLCBw
aW5uZWRSZWdzLnNpemVSZWdpc3Rlcik7IC8vIE1lbW9yeSBzaXplLgogICAgICAgICBqaXQubG9h
ZFB0cihKSVQ6OkFkZHJlc3MoYmFzZU1lbW9yeSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2Fj
aGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsgLy8gV2FzbTo6TWVtb3J5OjpUYWdnZWRBcnJheVN0
b3JhZ2VQdHI8dm9pZD4gKHZvaWQqKS4KLSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdp
Z2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNjcmF0Y2hPclNpemUpOworICAgICAgICBq
aXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgcGlu
bmVkUmVncy5zaXplUmVnaXN0ZXIsIHNjcmF0Y2hPclNpemUpOwogICAgIH0KIAogICAgIC8vIFRh
aWwgY2FsbCBpbnRvIHRoZSBjYWxsZWUgV2ViQXNzZW1ibHkgZnVuY3Rpb24uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKaW5kZXggNjU3ZGE1N2FlYjdjZTNkYWVh
ZjNjMjU3NDc4MThiNjIwZGNlMTQ5Mi4uMjYzMTNlODQyNjk2NTdmZWU5YjZjYmQ3M2I1NzA1OGM0
NDVmYjViOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dh
c20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcApA
QCAtMjI4LDcgKzIyOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVh
dGVKU1RvV2FzbVdyYXBwZXIoQ29tcGlsYXRpb25Db250ZXh0JiBjb21wCiAgICAgICAgIH0KIAog
ICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNl
R1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkp
OwotICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFz
ZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7CisgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseShH
aWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JTaXplLCBzY3JhdGNoT3JT
aXplKTsKICAgICB9CiAKICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbCA9IGppdC50aHJlYWRT
YWZlUGF0Y2hhYmxlTmVhckNhbGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggMmZmMGU3OGU1ODJmNjU2MWEy
OGYzYzU5NTM3ODIxYzAzOTgwYjg5MC4uOTFiNWI4Mzg4NTIwYTE0MmFhZTA5YzUyZGMzZmM4NTM4
ZTE3YmNmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3coKQogICAgICAgICB9CiAKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgp
KSwgYmFzZU1lbW9yeSk7Ci0gICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6
UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JTaXplKTsKKyAgICAgICAgaml0LmNhZ2VD
b25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNjcmF0Y2hPclNp
emUsIHNjcmF0Y2hPclNpemUpOwogICAgIH0KIAogICAgIC8vIFdlIHVzZSB0aGlzIGNhbGxlZSB0
byBpbmRpY2F0ZSBob3cgdG8gdW53aW5kIHBhc3QgdGhlc2UgdHlwZXMgb2YgZnJhbWVzOgpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oIGIvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9HaWdhY2FnZS5oCmluZGV4IDc2ZDcyZGY3NGExMzZmMDIxOTE1NWNmMjA4Zjdj
Nzc5NThjNGU5OTYuLmEzN2QwYmFmOTk3OWRlZWNjMmU5ZTI1NDJhOGMyOTU4ZGRmODZiNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuaAorKysgYi9Tb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmgKQEAgLTM0LDcgKzM0LDggQEAKICNpbmNsdWRlIDxj
c3RkZGVmPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAKLSNpZiAoKEJPUyhEQVJXSU4pIHx8IEJP
UyhMSU5VWCkpICYmIEJDUFUoWDg2XzY0KSkKKyNpZiAoKEJPUyhEQVJXSU4pIHx8IEJPUyhMSU5V
WCkpICYmIFwKKyAgICAoQkNQVShYODZfNjQpIHx8IChCQ1BVKEFSTTY0KSAmJiAhZGVmaW5lZChf
X0lMUDMyX18pICYmICghQlBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEJQTEFURk9STShJT1MpKSkp
KQogI2RlZmluZSBHSUdBQ0FHRV9FTkFCTEVEIDEKICNlbHNlCiAjZGVmaW5lIEdJR0FDQUdFX0VO
QUJMRUQgMAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371490</attachid>
            <date>2019-06-06 05:39:16 -0700</date>
            <delta_ts>2019-06-06 06:21:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198453-20190606143914.patch</filename>
            <type>text/plain</type>
            <size>32171</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTNmYjIxMTgyZWQ4YmY4MjI5YWZlYWU5MjQzNTUxZGNiNGMwOGRlLi5kZjIzNDJjMjQ2NGQ3OWI5
MWJiNzcxNDA5ZDdhNDA0YTczMWVmYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxOS0wNi0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBvbiBBUk02NC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ1MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE1pY2hhZWwgU2Fib2ZmLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBiYWNr
IEdpZ2FjYWdpbmcgb24gQXBwbGUncyBBUk02NCBwb3J0cy4gVW5saWtlIHRoZQorICAgICAgICBv
bGQgR2lnYWNhZ2UgaG93ZXZlciwgYXJtNjRlIHVzZXMgYm90aCBHaWdhY2FnaW5nIGFuZCBQQUMu
IEluCisgICAgICAgIG9yZGVyIHRvIGVuc3VyZSB0aGUgUEFDIGJpdHMgYXJlIG5vdCBzdHJpcHBl
ZCBpbiB0aGUgY2FnaW5nCisgICAgICAgIHByb2Nlc3Mgd2UgdXNlIHRoZSBiaXQgZmllbGQgaW5z
ZXJ0IGluc3RydWN0aW9uIHRvIHRha2UgdGhlIGxvdworICAgICAgICBiaXRzIGZyb20gY2FnaW5n
IGFuZCB0aGUgaGlnaCBiaXRzIGZyb20gdGhlIFBBQyBhdXRoZW50aWNhdGlvbi4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmJpdEZpZWxkSW5zZXJ0NjQpOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0RS5oOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6
CisgICAgICAgIChKU0M6OnRlc3RDYWdlUHJlc2VydmVzUEFDRmFpbHVyZUJpdCk6CisgICAgICAg
IChKU0M6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJyYXlJc05ldXRlcmVk
SWZPdXRPZkJvdW5kcyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhZ2VU
eXBlZEFycmF5U3RvcmFnZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5V2l0aFNpemUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlTmV3VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNhZ2VkKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkFzc2VtYmx5SGVscGVyczo6Y2FnZVdpdGhvdXRVbnRhZ2luZyk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6Y2FnZUNvbmRpdGlvbmFsbHkpOgorICAgICAgICAoSlNDOjpB
c3NlbWJseUhlbHBlcnM6OmNhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEludFR5cGVkQXJyYXlHZXRCeVZh
bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEZsb2F0VHlwZWRBcnJheUdldEJ5VmFsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0SW50VHlwZWRBcnJheVB1dEJ5VmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0RmxvYXRUeXBlZEFycmF5UHV0QnlWYWwpOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc206CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2luc3RydWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3JlZ2lzdGVycy5y
YjoKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZSk6Cisg
ICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QpOgorICAg
ICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpC
M0lSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZSk6CisgICAgICAgIChK
U0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZENhbGxJbmRpcmVjdCk6CisgICAgICAgICogd2Fz
bS9XYXNtQmluZGluZy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub1dhc20pOgorICAg
ICAgICAqIHdhc20vanMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpjcmVhdGVK
U1RvV2FzbVdyYXBwZXIpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KToKKwogMjAxOS0wNi0wMyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAK
ICAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioqIgpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdl
TG9nCmluZGV4IGE3ZTgwMDA4NDViYWJjYTZkMWY0ZWRiNDE3MTIzZGU3NTgwMTRlYzguLjlmMDQ5
MWYyNTgzMjRhM2RjMThhZTBhOTk2NDM4ODQ4N2I3NjZlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxOS0wNi0wNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWVuYWJsZSBHaWdhY2FnZSBvbiBBUk02NC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ1MworCisgICAgICAgIFJldmll
d2VkIGJ5IE1pY2hhZWwgU2Fib2ZmLgorCisgICAgICAgICogYm1hbGxvYy9HaWdhY2FnZS5oOgor
CiAyMDE5LTA2LTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ2MDIyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBl
ZmY4YjcxZjM5MjMyMjc3ZmJlM2E2MzQ0ODY5NjU5Mzc0YmY4NjIxLi40MDAzMTYzNDc2YjM3OWY0
Nzk3NDk4ZjM1OTYzYzA1YTEwMGY4MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMjUyNiw2ICsyNTI2LDE1
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuZmNzZWw8NjQ+KGRlc3QsIHRoZW5DYXNl
LCBlbHNlQ2FzZSwgQVJNNjRDb25kaXRpb24oY29uZCkpOwogICAgIH0KIAorICAgIC8vIEJpdCBm
aWVsZCBvcGVyYXRpb25zOgorCisgICAgLy8gZGVzdEJpdE9mZnNldCBpcyB0aGUgdG9wIGJpdCBv
ZiB0aGUgZGVzdGluYXRpb24gd2hlcmUgdGhlIGJpdHMgc2hvdWxkIGJlIGNvcGllZCB0by4gWmVy
byBpcyB0aGUgbG93ZXN0IG9yZGVyIGJpdC4KKyAgICB2b2lkIGJpdEZpZWxkSW5zZXJ0NjQoUmVn
aXN0ZXJJRCBzb3VyY2UsIHVuc2lnbmVkIGRlc3RCaXRPZmZzZXQsIHVuc2lnbmVkIHdpZHRoLCBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQod2lkdGggPD0gNjQgLSBkZXN0
Qml0T2Zmc2V0ICYmIGRlc3RCaXRPZmZzZXQgPCA2NCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJm
aTw2ND4oZGVzdCwgc291cmNlLCBkZXN0Qml0T2Zmc2V0LCB3aWR0aCk7CisgICAgfQorCiAgICAg
Ly8gRm9yd2FyZHMgLyBleHRlcm5hbCBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwog
ICAgIC8vIFRoaXMgc2V0IG9mIGp1bXAgYW5kIGNvbmRpdGlvbmFsIGJyYW5jaCBvcGVyYXRpb25z
IHJldHVybiBhIEp1bXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaAppbmRleCAwYjk2OGY2YWZlZGZlYTY5NWE0YTNhMzA4
ZDM0MGYwNzZjOWNmYTQwLi5mZDdlZWM4MDg1NTFiZGY3Mjg3YWZjMWIxZWM0NTNmMmY4MjA4MmQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjRFLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0RS5oCkBAIC0zOSw2ICszOSw4IEBAIHVzaW5nIEFzc2VtYmxlciA9IFRBUkdF
VF9BU1NFTUJMRVI7CiAKIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjRFIDogcHVibGljIE1hY3Jv
QXNzZW1ibGVyQVJNNjQgewogcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtYmVyT2ZQQUNCaXRzID0gMjU7CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdGFnUmV0dXJu
QWRkcmVzcygpCiAgICAgewogICAgICAgICB0YWdQdHIoQVJNNjRSZWdpc3RlcnM6OnNwLCBBUk02
NFJlZ2lzdGVyczo6bHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3Rt
YXNtLmNwcAppbmRleCBhYzVjNjMyOTFiM2Q4OTM1YjU5YjlmY2U0MDYxMzc1NGQ5ZGRjMWYxLi44
MTVjM2QxYmI1NWVjZTlkMTRmZDg2YmM3MDBjODAzNzc4OGU3YzgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL051bWJlck9mQ29yZXMuaD4KKyNpbmNsdWRlIDx3dGYvUHRyVGFnLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oPgogCkBA
IC0xMDksNiArMTEwLDE1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgbmV4dElEKFQgaWQpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PFQ+KGlkICsgMSk7IH0KICAgICAgICAgQ1JBU0goKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9
IHdoaWxlIChmYWxzZSkKIAorI2RlZmluZSBDSEVDS19OT1RfRVEoX2FjdHVhbCwgX2V4cGVjdGVk
KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKChfYWN0
dWFsKSAhPSAoX2V4cGVjdGVkKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY3Jhc2hMb2NrLmxvY2soKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZGF0YUxvZygiRkFJ
TEVEIHdoaWxlIHRlc3RpbmcgIiAjX2FjdHVhbCAiOiBleHBlY3RlZCBub3Q6ICIsIF9leHBlY3Rl
ZCwgIiwgYWN0dWFsOiAiLCBfYWN0dWFsLCAiXG4iKTsgXAorICAgICAgICBXVEZSZXBvcnRBc3Nl
cnRpb25GYWlsdXJlKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BSRVRUWV9GVU5DVElPTiwgIkNI
RUNLX05PVF9FUSgiI19hY3R1YWwgIiwgIiAjX2V4cGVjdGVkICIpIik7IFwKKyAgICAgICAgQ1JB
U0goKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogYm9v
bCBpc1BDKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGlkKQogewpAQCAtOTM1LDYgKzk0NSw0
NyBAQCB2b2lkIHRlc3RCeXRlU3dhcCgpCiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgdGVzdENh
Z2VQcmVzZXJ2ZXNQQUNGYWlsdXJlQml0KCkKK3sKKyAgICBhdXRvIGNhZ2UgPSBjb21waWxlKFtd
IChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUo
KTsKKyAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpOworICAgICAgICBqaXQubW92ZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIHZvaWQqIHB0ciA9IEdpZ2FjYWdl
Ojp0cnlNYWxsb2MoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgMSk7CisgICAgdm9pZCogdGFnZ2VkUHRy
ID0gdGFnQXJyYXlQdHIocHRyLCAxKTsKKyAgICBkYXRhTG9nTG4oInN0YXJ0aW5nIHRlc3QiKTsK
KyAgICBpZiAoaXNBUk02NEUoKSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyB3b24ndCB3b3Jr
IGlmIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmVzIHRyYXAgYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8g
dGVzdCBmb3IgdGhhdCByaWdodCBub3cuCisgICAgICAgIENIRUNLX05PVF9FUShpbnZva2U8dm9p
ZCo+KGNhZ2UsIHRhZ2dlZFB0ciwgMiksIHB0cik7CisgICAgfSBlbHNlCisgICAgICAgIENIRUNL
X0VRKGludm9rZTx2b2lkKj4oY2FnZSwgdGFnZ2VkUHRyLCAyKSwgcHRyKTsKKworICAgIENIRUNL
X0VRKGludm9rZTx2b2lkKj4oY2FnZSwgdGFnZ2VkUHRyLCAxKSwgcHRyKTsKKworICAgIGF1dG8g
Y2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0
KSB7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICBqaXQuY2Fn
ZVdpdGhvdXRVbnRhZ2luZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgICAgICBqaXQubW92ZShHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAg
ICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIGlmIChpc0FSTTY0RSgpKSB7CisgICAgICAg
IC8vIEZJWE1FOiBUaGlzIHdvbid0IHdvcmsgaWYgYXV0aGVudGljYXRpb24gZmFpbHVyZXMgdHJh
cCBidXQgSSBkb24ndCBrbm93IGhvdyB0byB0ZXN0IGZvciB0aGF0IHJpZ2h0IG5vdy4KKyAgICAg
ICAgQ0hFQ0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwg
dW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDIpKSwgcHRyKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1dGhlbnRpY2F0aW9uLCB1bnRhZ0Fy
cmF5UHRyKHRhZ2dlZFB0ciwgMikpLCBwdHIpOworCisgICAgQ0hFQ0tfRVEodW50YWdBcnJheVB0
cih0YWdnZWRQdHIsIDEpLCBwdHIpOworICAgIENIRUNLX0VRKGludm9rZTx2b2lkKj4oY2FnZVdp
dGhvdXRBdXRoZW50aWNhdGlvbiwgdW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDEpKSwgcHRyKTsK
KworICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHB0cik7Cit9CisKICNk
ZWZpbmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg
aWYgKCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGJy
ZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTEwMTgsNiArMTA2OSw4IEBA
IHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKIAogICAgIFJVTih0ZXN0Qnl0ZVN3YXAoKSk7
CiAKKyAgICBSVU4odGVzdENhZ2VQcmVzZXJ2ZXNQQUNGYWlsdXJlQml0KCkpOworCiAgICAgaWYg
KHRhc2tzLmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBlNTUzOGYxOTM2MDYzNmZj
NWE0M2EzYTI5ZmUxOGY1NDM3MDE1Yzc3Li5iMWUzZWYyNjc1NGE1MTI3YmIzYzFlYTNkYWI3NmI3
M2RhNDRlNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcApAQCAtMjg3Myw3ICsyODczLDcgQEAgSklUQ29tcGlsZXI6Okp1bXAgU3BlY3Vs
YXRpdmVKSVQ6Omp1bXBGb3JUeXBlZEFycmF5SXNOZXV0ZXJlZElmT3V0T2ZCb3VuZHMoTm9kZSoK
ICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tMzIoV2FzdGVmdWxUeXBlZEFycmF5KSk7CiAKICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhc051bGxWZWN0b3I7Ci0jaWYgIUdJR0FDQUdF
X0VOQUJMRUQgJiYgQ1BVKEFSTTY0RSkKKyNpZiBDUFUoQVJNNjRFKQogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gbV9qaXQuc2NyYXRjaFJlZ2lzdGVyKCk7
CiAgICAgICAgICAgICAgICAgRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGRpc2Fs
bG93U2NyYXRjaChtX2ppdCk7CkBAIC0yODgyLDcgKzI4ODIsNyBAQCBKSVRDb21waWxlcjo6SnVt
cCBTcGVjdWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJyYXlJc05ldXRlcmVkSWZPdXRPZkJvdW5k
cyhOb2RlKgogICAgICAgICAgICAgICAgIG1faml0LnJlbW92ZUFycmF5UHRyVGFnKHNjcmF0Y2gp
OwogICAgICAgICAgICAgICAgIGhhc051bGxWZWN0b3IgPSBtX2ppdC5icmFuY2hUZXN0UHRyKE1h
Y3JvQXNzZW1ibGVyOjpaZXJvLCBzY3JhdGNoKTsKICAgICAgICAgICAgIH0KLSNlbHNlIC8vICFH
SUdBQ0FHRV9FTkFCTEVEICYmIENQVShBUk02NEUpCisjZWxzZSAvLyBDUFUoQVJNNjRFKQogICAg
ICAgICAgICAgaGFzTnVsbFZlY3RvciA9IG1faml0LmJyYW5jaFRlc3RQdHIoCiAgICAgICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Olplcm8sCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MoYmFzZSwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mVmVjdG9yKCkpKTsK
QEAgLTY3NjAsNiArNjc2MCwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29uc3Rh
bnRTdG9yYWdlUG9pbnRlcihOb2RlKiBub2RlKQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWdl
VHlwZWRBcnJheVN0b3JhZ2UoR1BSUmVnIGJhc2VSZWcsIEdQUlJlZyBzdG9yYWdlUmVnKQogewor
I2lmIENQVShBUk02NEUpCisgICAgbV9qaXQudW50YWdBcnJheVB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhiYXNlUmVnLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZMZW5ndGgoKSksIHN0
b3JhZ2VSZWcpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYmFzZVJlZyk7CisgICAgVU5VU0VE
X1BBUkFNKHN0b3JhZ2VSZWcpOworI2VuZGlmCisKICNpZiBHSUdBQ0FHRV9FTkFCTEVECiAgICAg
VU5VU0VEX1BBUkFNKGJhc2VSZWcpOwogICAgIGlmICghR2lnYWNhZ2U6OnNob3VsZEJlRW5hYmxl
ZCgpKQpAQCAtNjc3MiwxMiArNjc3OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhZ2VUeXBl
ZEFycmF5U3RvcmFnZShHUFJSZWcgYmFzZVJlZywgR1BSUmVnIHN0b3JhZ2VSZWcpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIG1faml0LmNhZ2UoR2lnYWNhZ2U6OlByaW1p
dGl2ZSwgc3RvcmFnZVJlZyk7Ci0jZWxpZiBDUFUoQVJNNjRFKQotICAgIG1faml0LnVudGFnQXJy
YXlQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNBcnJheUJ1ZmZlclZpZXc6
Om9mZnNldE9mTGVuZ3RoKCkpLCBzdG9yYWdlUmVnKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFN
KGJhc2VSZWcpOwotICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlUmVnKTsKKyAgICBtX2ppdC5jYWdl
V2l0aG91dFVudGFnaW5nKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHN0b3JhZ2VSZWcpOwogI2VuZGlm
CiB9CiAKQEAgLTY4NDEsNyArNjg0Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRUeXBlZEFycmF5Qnl0ZU9mZnNldChOb2RlKiBub2RlKQogICAgIEpJVENvbXBpbGVyOjpKdW1w
IG51bGxWZWN0b3IgPSBtX2ppdC5icmFuY2hUZXN0UHRyKEpJVENvbXBpbGVyOjpaZXJvLCB2ZWN0
b3JHUFIpOwogCiAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNl
R1BSLCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpLCBkYXRhR1BSKTsKLSAgICBtX2ppdC5j
YWdlKEdpZ2FjYWdlOjpKU1ZhbHVlLCBkYXRhR1BSKTsKKyAgICBtX2ppdC5jYWdlV2l0aG91dFVu
dGFnaW5nKEdpZ2FjYWdlOjpKU1ZhbHVlLCBkYXRhR1BSKTsKIAogICAgIGNhZ2VUeXBlZEFycmF5
U3RvcmFnZShiYXNlR1BSLCB2ZWN0b3JHUFIpOwogCkBAIC05ODQ1LDcgKzk4NDcsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3VHlwZWRBcnJheVdpdGhTaXplKE5vZGUqIG5vZGUp
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgc2NyYXRjaEdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91cikpOwogICAgIG1faml0LmJyYW5jaFRlc3QzMihN
YWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgc2NyYXRjaEdQUikubGlua1RvKGxvb3AsICZtX2ppdCk7
CiAgICAgZG9uZS5saW5rKCZtX2ppdCk7Ci0jaWYgIUdJR0FDQUdFX0VOQUJMRUQgJiYgQ1BVKEFS
TTY0RSkKKyNpZiBDUFUoQVJNNjRFKQogICAgIC8vIHNpemVHUFIgaXMgc3RpbGwgYm94ZWQgYXMg
YSBudW1iZXIgYW5kIHRoZXJlIGlzIG5vIDMyLWJpdCB2YXJpYW50IG9mIHRoZSBQQUMgaW5zdHJ1
Y3Rpb25zLgogICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKHNpemVHUFIsIHNjcmF0Y2hHUFIp
OwogICAgIG1faml0LnRhZ0FycmF5UHRyKHNjcmF0Y2hHUFIsIHN0b3JhZ2VHUFIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDk0Yzk2NTgy
MjVhNzEwZGFiODAzMTUyZGEwMjQ5ZjYzZDM5MGZmYWMuLjU5YmNlZDQ1NzY1MTI5MzBhOWM1NTBi
MTg5NWIxOGJlYWEzMzdiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKQEAgLTY0ODMsNyArNjQ4Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgbV9vdXQuaW50NjRaZXJvLAogICAgICAgICAgICAgICAgIG1faGVhcHMudHlwZWRBcnJh
eVByb3BlcnRpZXMpOwogCi0jaWYgIUdJR0FDQUdFX0VOQUJMRUQgJiYgQ1BVKEFSTTY0RSkKKyNp
ZiBDUFUoQVJNNjRFKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIExWYWx1ZSBzaXpl
UHRyID0gbV9vdXQuemVyb0V4dFB0cihzaXplKTsKICAgICAgICAgICAgICAgICBQYXRjaHBvaW50
VmFsdWUqIGF1dGhlbnRpY2F0ZSA9IG1fb3V0LnBhdGNocG9pbnQocG9pbnRlclR5cGUoKSk7CkBA
IC0xNDE1NSw2ICsxNDE1NSwxNiBAQCBwcml2YXRlOgogCiAgICAgTFZhbHVlIGNhZ2VkKEdpZ2Fj
YWdlOjpLaW5kIGtpbmQsIExWYWx1ZSBwdHIsIExWYWx1ZSBiYXNlKQogICAgIHsKKyNpZiBDUFUo
QVJNNjRFKQorICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKSB7CisgICAg
ICAgICAgICBMVmFsdWUgc2l6ZSA9IG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTQXJyYXlC
dWZmZXJWaWV3X2xlbmd0aCk7CisgICAgICAgICAgICBwdHIgPSB1bnRhZ0FycmF5UHRyKHB0ciwg
c2l6ZSk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShraW5kKTsKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKGJhc2UpOworI2VuZGlmCisKICNpZiBHSUdBQ0FHRV9FTkFCTEVE
CiAgICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKICAgICAgICAgaWYgKCFHaWdhY2FnZTo6aXNF
bmFibGVkKGtpbmQpKQpAQCAtMTQxNzMsNiArMTQxODMsMTggQEAgcHJpdmF0ZToKICAgICAgICAg
TFZhbHVlIG1hc2tlZCA9IG1fb3V0LmJpdEFuZChwdHIsIG1hc2spOwogICAgICAgICBMVmFsdWUg
cmVzdWx0ID0gbV9vdXQuYWRkKG1hc2tlZCwgYmFzZVB0cik7CiAKKyNpZiBDUFUoQVJNNjRFKQor
ICAgICAgICB7CisgICAgICAgICAgICBQYXRjaHBvaW50VmFsdWUqIG1lcmdlID0gbV9vdXQucGF0
Y2hwb2ludChwb2ludGVyVHlwZSgpKTsKKyAgICAgICAgICAgIG1lcmdlLT5hcHBlbmQocmVzdWx0
LCBCMzo6VmFsdWVSZXAoQjM6OlZhbHVlUmVwOjpTb21lTGF0ZVJlZ2lzdGVyKSk7CisgICAgICAg
ICAgICBtZXJnZS0+YXBwZW5kU29tZVJlZ2lzdGVyKHB0cik7CisgICAgICAgICAgICBtZXJnZS0+
c2V0R2VuZXJhdG9yKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgaml0Lm1vdmUocGFyYW1zWzJd
LmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIGppdC5iaXRGaWVsZElu
c2VydDY0KHBhcmFtc1sxXS5ncHIoKSwgMCwgNjQgLSBNYWNyb0Fzc2VtYmxlcjo6bnVtYmVyT2ZQ
QUNCaXRzLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
ZXN1bHQgPSBtZXJnZTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IEIzIGRvZXNuJ3QgdHJ5IHRvIGRvIHNtYXJ0IHJlYXNzb2NpYXRpb24gb2YgdGhlc2UgcG9p
bnRlciBiaXRzLgogICAgICAgICAvLyBGSVhNRTogSW4gYW4gaWRlYWwgd29ybGQsIEIzIHdvdWxk
IG5vdCBkbyBoYXJtZnVsIHJlYXNzb2NpYXRpb25zLCBhbmQgaWYgaXQgZGlkLCBpdCB3b3VsZCBi
ZSBhYmxlCiAgICAgICAgIC8vIHRvIHVuZG8gdGhlbSBkdXJpbmcgY29uc3RhbnQgaG9pc3Rpbmcg
YW5kIHJlZ2FsbG9jLiBBcyBpdCBzdGFuZHMsIGlmIHlvdSByZW1vdmUgdGhpcyB0aGVuIE9jdGFu
ZQpAQCAtMTQxODUsMTcgKzE0MjA3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gYW5kIHBvc3Np
Ymx5IG90aGVyIHNtYXJ0IHRoaW5ncyBpZiB3ZSB3YW50IHRvIGJlIGFibGUgdG8gcmVtb3ZlIHRo
aXMgb3BhcXVlLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc1NDkzCiAgICAgICAgIHJldHVybiBtX291dC5vcGFxdWUocmVzdWx0KTsKLSNlbGlm
IENQVShBUk02NEUpCi0gICAgICAgIGlmIChraW5kID09IEdpZ2FjYWdlOjpQcmltaXRpdmUpIHsK
LSAgICAgICAgICAgIExWYWx1ZSBzaXplID0gbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMuSlNB
cnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKLSAgICAgICAgICAgIHJldHVybiB1bnRhZ0FycmF5UHRy
KHB0ciwgc2l6ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcHRyOwotI2Vsc2UKLSAg
ICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwotICAgICAgICBVTlVTRURfUEFSQU0oYmFzZSk7Ci0g
ICAgICAgIHJldHVybiBwdHI7CiAjZW5kaWYKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBkOTI2OGU4MzY5MTQyMWZmZWRjMTU0
MTIxN2M4NjdmMzUxZWRiOGQ0Li41ZDNmY2MxZjM5MmNjNWIyYWRhYTQ5OThiNTQwMDI2N2JhYWY5
MzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAg
LTE1NTQsNDMgKzE1NTQsNzQgQEAgcHVibGljOgogICAgICAgICBzdG9yZUZlbmNlKCk7CiAgICAg
ICAgIG9rLmxpbmsodGhpcyk7CiAgICAgfQotICAgIAotICAgIHZvaWQgY2FnZShHaWdhY2FnZTo6
S2luZCBraW5kLCBHUFJSZWcgc3RvcmFnZSkKKworICAgIHZvaWQgY2FnZVdpdGhvdXRVbnRhZ2lu
ZyhHaWdhY2FnZTo6S2luZCBraW5kLCBHUFJSZWcgc3RvcmFnZSkKICAgICB7CiAjaWYgR0lHQUNB
R0VfRU5BQkxFRAogICAgICAgICBpZiAoIUdpZ2FjYWdlOjppc0VuYWJsZWQoa2luZCkpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCisjaWYgQ1BVKEFSTTY0RSkKKyAgICAgICAgUmVn
aXN0ZXJJRCB0ZW1wUmVnID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgaWYgKGtpbmQgPT0gR2ln
YWNhZ2U6OlByaW1pdGl2ZSkgeworICAgICAgICAgICAgdGVtcFJlZyA9IGdldENhY2hlZE1lbW9y
eVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICAgICAgbW92ZShzdG9yYWdl
LCB0ZW1wUmVnKTsKKyAgICAgICAgICAgIC8vIEZsaXAgdGhlIHJlZ2lzdGVycyBzaW5jZSBiaXRG
aWVsZEluc2VydCBvbmx5IGluc2VydHMgaW50byB0aGUgbG93IGJpdHMuCisgICAgICAgICAgICBz
dGQ6OnN3YXAoc3RvcmFnZSwgdGVtcFJlZyk7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBh
bmRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6bWFzayhraW5kKSksIHN0b3JhZ2UpOwogICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6YmFzZVB0cihraW5kKSksIHN0b3Jh
Z2UpOworI2lmIENQVShBUk02NEUpCisgICAgICAgIGlmIChraW5kID09IEdpZ2FjYWdlOjpQcmlt
aXRpdmUpCisgICAgICAgICAgICBiaXRGaWVsZEluc2VydDY0KHN0b3JhZ2UsIDAsIDY0IC0gbnVt
YmVyT2ZQQUNCaXRzLCB0ZW1wUmVnKTsKKyNlbmRpZgorCiAjZWxzZQogICAgICAgICBVTlVTRURf
UEFSQU0oa2luZCk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlKTsKICNlbmRpZgogICAg
IH0KLSAgICAKLSAgICB2b2lkIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpLaW5kIGtpbmQs
IEdQUlJlZyBzdG9yYWdlLCBHUFJSZWcgc2NyYXRjaE9yTGVuZ3RoKQorCisgICAgLy8gbGVuZ3Ro
IG1heSBiZSB0aGUgc2FtZSByZWdpc3RlciBhcyBzY3JhdGNoLgorICAgIHZvaWQgY2FnZUNvbmRp
dGlvbmFsbHkoR2lnYWNhZ2U6OktpbmQga2luZCwgR1BSUmVnIHN0b3JhZ2UsIEdQUlJlZyBsZW5n
dGgsIEdQUlJlZyBzY3JhdGNoKQogICAgIHsKKyNpZiBDUFUoQVJNNjRFKQorICAgICAgICBpZiAo
a2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKQorICAgICAgICAgICAgdW50YWdBcnJheVB0cihs
ZW5ndGgsIHN0b3JhZ2UpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOworICAg
ICAgICBVTlVTRURfUEFSQU0oc3RvcmFnZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShsZW5ndGgp
OworI2VuZGlmCisKICNpZiBHSUdBQ0FHRV9FTkFCTEVECiAgICAgICAgIGlmICghR2lnYWNhZ2U6
OmlzRW5hYmxlZChraW5kKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgICAg
IGlmIChraW5kICE9IEdpZ2FjYWdlOjpQcmltaXRpdmUgfHwgR2lnYWNhZ2U6OmlzRGlzYWJsaW5n
UHJpbWl0aXZlR2lnYWNhZ2VEaXNhYmxlZCgpKQotICAgICAgICAgICAgcmV0dXJuIGNhZ2Uoa2lu
ZCwgc3RvcmFnZSk7Ci0gICAgICAgIAotICAgICAgICBsb2FkUHRyKCZHaWdhY2FnZTo6YmFzZVB0
cihraW5kKSwgc2NyYXRjaE9yTGVuZ3RoKTsKLSAgICAgICAgSnVtcCBkb25lID0gYnJhbmNoVGVz
dFB0cihaZXJvLCBzY3JhdGNoT3JMZW5ndGgpOwotICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0
cihHaWdhY2FnZTo6bWFzayhraW5kKSksIHN0b3JhZ2UpOwotICAgICAgICBhZGRQdHIoc2NyYXRj
aE9yTGVuZ3RoLCBzdG9yYWdlKTsKLSAgICAgICAgZG9uZS5saW5rKHRoaXMpOwotI2VsaWYgQ1BV
KEFSTTY0RSkKLSAgICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkKLSAgICAg
ICAgICAgIHVudGFnQXJyYXlQdHIoc2NyYXRjaE9yTGVuZ3RoLCBzdG9yYWdlKTsKKyAgICAgICAg
ICAgIGNhZ2VXaXRob3V0VW50YWdpbmcoa2luZCwgc3RvcmFnZSk7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgbG9hZFB0cigmR2lnYWNhZ2U6OmJhc2VQdHIoa2luZCksIHNjcmF0Y2gpOwor
ICAgICAgICAgICAgSnVtcCBkb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCBzY3JhdGNoKTsKKyNp
ZiBDUFUoQVJNNjRFKQorICAgICAgICAgICAgYXV0byB0ZW1wUmVnID0gZ2V0Q2FjaGVkTWVtb3J5
VGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgICAgICBtb3ZlKHN0b3JhZ2Us
IHRlbXBSZWcpOworICAgICAgICAgICAgYW5kUHRyKFRydXN0ZWRJbW1QdHIoR2lnYWNhZ2U6Om1h
c2soa2luZCkpLCB0ZW1wUmVnKTsKKyAgICAgICAgICAgIGFkZFB0cihzY3JhdGNoLCB0ZW1wUmVn
KTsKKyAgICAgICAgICAgIGJpdEZpZWxkSW5zZXJ0NjQodGVtcFJlZywgMCwgNjQgLSBudW1iZXJP
ZlBBQ0JpdHMsIHN0b3JhZ2UpOwogI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwot
ICAgICAgICBVTlVTRURfUEFSQU0oc3RvcmFnZSk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShzY3Jh
dGNoT3JMZW5ndGgpOworICAgICAgICAgICAgYW5kUHRyKFRydXN0ZWRJbW1QdHIoR2lnYWNhZ2U6
Om1hc2soa2luZCkpLCBzdG9yYWdlKTsKKyAgICAgICAgICAgIGFkZFB0cihzY3JhdGNoLCBzdG9y
YWdlKTsKICNlbmRpZgorICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMpOworCisKKyAgICAgICAg
fQorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2gpOworI2VuZGlmCisKICAgICB9
CiAKICAgICB2b2lkIGVtaXRDb21wdXRlQnV0dGVyZmx5SW5kZXhpbmdNYXNrKEdQUlJlZyB2ZWN0
b3JMZW5ndGhHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBHUFJSZWcgcmVzdWx0R1BSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCA5ZDYy
MTQ4MWY3NzQ3NGVmYjgzMWJkNGU1ZjFmNTgyMjllMzMyNTU2Li5jYmI3OGQ1YjNlYmJiMjhlODg5
MTFkNTI1YTU3OTlmN2Y2ODQ5MTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMTY3Miw3ICsxNjcyLDcgQEAgSklUOjpKdW1wTGlz
dCBKSVQ6OmVtaXRJbnRUeXBlZEFycmF5R2V0QnlWYWwoY29uc3QgSW5zdHJ1Y3Rpb24qLCBQYXRj
aGFibGVKdW1wJgogICAgIGxvYWQzMihBZGRyZXNzKGJhc2UsIEpTQXJyYXlCdWZmZXJWaWV3Ojpv
ZmZzZXRPZkxlbmd0aCgpKSwgc2NyYXRjaDIpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNo
MzIoQWJvdmVPckVxdWFsLCBwcm9wZXJ0eSwgc2NyYXRjaDIpKTsKICAgICBsb2FkUHRyKEFkZHJl
c3MoYmFzZSwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mVmVjdG9yKCkpLCBzY3JhdGNoKTsK
LSAgICBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBzY3JhdGNoLCBzY3Jh
dGNoMik7CisgICAgY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgc2NyYXRj
aCwgc2NyYXRjaDIsIHNjcmF0Y2gyKTsKIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkp
IHsKICAgICBjYXNlIDE6CkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6
ZW1pdEZsb2F0VHlwZWRBcnJheUdldEJ5VmFsKGNvbnN0IEluc3RydWN0aW9uKiwgUGF0Y2hhYmxl
SnVtcAogICAgIGxvYWQzMihBZGRyZXNzKGJhc2UsIEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRP
Zkxlbmd0aCgpKSwgc2NyYXRjaDIpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoMzIoQWJv
dmVPckVxdWFsLCBwcm9wZXJ0eSwgc2NyYXRjaDIpKTsKICAgICBsb2FkUHRyKEFkZHJlc3MoYmFz
ZSwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mVmVjdG9yKCkpLCBzY3JhdGNoKTsKLSAgICBj
YWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBzY3JhdGNoLCBzY3JhdGNoMik7
CisgICAgY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgc2NyYXRjaCwgc2Ny
YXRjaDIsIHNjcmF0Y2gyKTsKICAgICAKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5cGUpKSB7
CiAgICAgY2FzZSA0OgpAQCAtMTgwMSw3ICsxODAxLDcgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVt
aXRJbnRUeXBlZEFycmF5UHV0QnlWYWwoT3AgYnl0ZWNvZGUsIFBhdGNoYWJsZUp1bXAmIGJhZFR5
cGUKICAgICAvLyBXZSB3b3VsZCBiZSBsb2FkaW5nIHRoaXMgaW50byBiYXNlIGFzIGluIGdldF9i
eV92YWwsIGV4Y2VwdCB0aGF0IHRoZSBzbG93CiAgICAgLy8gcGF0aCBleHBlY3RzIHRoZSBiYXNl
IHRvIGJlIHVuY2xvYmJlcmVkLgogICAgIGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBKU0FycmF5QnVm
ZmVyVmlldzo6b2Zmc2V0T2ZWZWN0b3IoKSksIGxhdGVTY3JhdGNoKTsKLSAgICBjYWdlQ29uZGl0
aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBsYXRlU2NyYXRjaCwgbGF0ZVNjcmF0Y2gyKTsK
KyAgICBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBsYXRlU2NyYXRjaCwg
bGF0ZVNjcmF0Y2gyLCBsYXRlU2NyYXRjaDIpOwogICAgIAogICAgIGlmIChpc0NsYW1wZWQodHlw
ZSkpIHsKICAgICAgICAgQVNTRVJUKGVsZW1lbnRTaXplKHR5cGUpID09IDEpOwpAQCAtMTg5MCw3
ICsxODkwLDcgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRGbG9hdFR5cGVkQXJyYXlQdXRCeVZh
bChPcCBieXRlY29kZSwgUGF0Y2hhYmxlSnVtcCYgYmFkVHkKICAgICAvLyBXZSB3b3VsZCBiZSBs
b2FkaW5nIHRoaXMgaW50byBiYXNlIGFzIGluIGdldF9ieV92YWwsIGV4Y2VwdCB0aGF0IHRoZSBz
bG93CiAgICAgLy8gcGF0aCBleHBlY3RzIHRoZSBiYXNlIHRvIGJlIHVuY2xvYmJlcmVkLgogICAg
IGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZWZWN0b3Io
KSksIGxhdGVTY3JhdGNoKTsKLSAgICBjYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0
aXZlLCBsYXRlU2NyYXRjaCwgbGF0ZVNjcmF0Y2gyKTsKKyAgICBjYWdlQ29uZGl0aW9uYWxseShH
aWdhY2FnZTo6UHJpbWl0aXZlLCBsYXRlU2NyYXRjaCwgbGF0ZVNjcmF0Y2gyLCBsYXRlU2NyYXRj
aDIpOwogICAgIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20KaW5kZXggNDAzMmU3ZThmM2Y4N2JjYmRiZTFlZjljZGZkMTcyMzNiNmM4NTVkYS4uYzBh
ZDgzYzZjNDM2MGYyODI2ZWM5OTY4YzM4M2Y2Yjc1NDBkOGE0MiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtNzYsNyAr
NzYsNyBAQAogIwogIyAgLSBwYyBob2xkcyB0aGUgKG5hdGl2ZSkgcHJvZ3JhbSBjb3VudGVyIG9u
IDMyLWJpdHMgQVJNIGFyY2hpdGVjdHVyZXMgKEFSTXY3KQogIwotIyAgLSB0MCwgdDEsIHQyLCB0
MywgdDQgYW5kIG9wdGlvbmFsbHkgdDUgYXJlIHRlbXBvcmFyeSByZWdpc3RlcnMgdGhhdCBjYW4g
Z2V0IHRyYXNoZWQgb24KKyMgIC0gdDAsIHQxLCB0MiwgdDMsIHQ0LCBhbmQgb3B0aW9uYWxseSB0
NSwgdDYsIGFuZCB0NyBhcmUgdGVtcG9yYXJ5IHJlZ2lzdGVycyB0aGF0IGNhbiBnZXQgdHJhc2hl
ZCBvbgogIyAgY2FsbHMsIGFuZCBhcmUgcGFpcndpc2UgZGlzdGluY3QgcmVnaXN0ZXJzLiB0NCBo
b2xkcyB0aGUgSlMgcHJvZ3JhbSBjb3VudGVyLCBzbyB1c2UKICMgIHdpdGggY2F1dGlvbiBpbiBv
cGNvZGVzIChhY3R1YWxseSwgZG9uJ3QgdXNlIGl0IGluIG9wY29kZXMgYXQgYWxsLCBleGNlcHQg
YXMgUEMpLgogIwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA2YWFmMGRkMTBjM2ViOGFmNmIyNzc3MTM0MTlhYzQw
ZTNkODc4Mzk3Li45MDM2MzVhZjUyNWE4YjFmNDQ3MDYwMzE0MzA3ZDEwODNkMzYzNWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjY0LmFzbQpAQCAtNDM0LDEwICs0MzQsMTkgQEAgZW5kCiAKIG1hY3JvIGxvYWRDYWdlZFByaW1p
dGl2ZShzb3VyY2UsIGRlc3QsIHNjcmF0Y2hPckxlbmd0aCkKICAgICBsb2FkcCBzb3VyY2UsIGRl
c3QKLSAgICBpZiBHSUdBQ0FHRV9FTkFCTEVECi0gICAgICAgIHVuY2FnZShfZ19naWdhY2FnZUJh
c2VQdHJzICsgR2lnYWNhZ2U6OkJhc2VQdHJzOjpwcmltaXRpdmUsIGNvbnN0ZXhwciBHaWdhY2Fn
ZTo6cHJpbWl0aXZlR2lnYWNhZ2VNYXNrLCBkZXN0LCBzY3JhdGNoT3JMZW5ndGgpCi0gICAgZWxz
aWYgQVJNNjRFCisgICAgaWYgQVJNNjRFCisgICAgICAgIGNvbnN0IHJlc3VsdCA9IHQ3CiAgICAg
ICAgIHVudGFnQXJyYXlQdHIgc2NyYXRjaE9yTGVuZ3RoLCBkZXN0CisgICAgICAgIG1vdmUgZGVz
dCwgcmVzdWx0CisgICAgZWxzZQorICAgICAgICBjb25zdCByZXN1bHQgPSBkZXN0CisgICAgZW5k
CisgICAgaWYgR0lHQUNBR0VfRU5BQkxFRAorICAgICAgICB1bmNhZ2UoX2dfZ2lnYWNhZ2VCYXNl
UHRycyArIEdpZ2FjYWdlOjpCYXNlUHRyczo6cHJpbWl0aXZlLCBjb25zdGV4cHIgR2lnYWNhZ2U6
OnByaW1pdGl2ZUdpZ2FjYWdlTWFzaywgcmVzdWx0LCBzY3JhdGNoT3JMZW5ndGgpCisgICAgICAg
IGlmIEFSTTY0RQorICAgICAgICAgICAgY29uc3QgbnVtYmVyT2ZQQUNCaXRzID0gY29uc3RleHBy
IE1hY3JvQXNzZW1ibGVyOjpudW1iZXJPZlBBQ0JpdHMKKyAgICAgICAgICAgIGJmaXEgcmVzdWx0
LCAwLCA2NCAtIG51bWJlck9mUEFDQml0cywgZGVzdAorICAgICAgICBlbmQKICAgICBlbmQKIGVu
ZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5y
YiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDU4YmJj
MmFhZmQ5YjQ4NGVkYzY2NWU2YWQwMjY0OGM0NGM5ZTE3N2MuLjIzZDk0OGYwYTMxZDc3MTU5YmU0
NmZhZDY0NjBmMGQ2NDYzZWQ1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2FybTY0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2FybTY0LnJiCkBAIC0xMjYsNiArMTI2LDggQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAg
IGFybTY0R1BSTmFtZSgneDUnLCBraW5kKQogICAgICAgICB3aGVuICd0NicKICAgICAgICAgICBh
cm02NEdQUk5hbWUoJ3g2Jywga2luZCkKKyAgICAgICAgd2hlbiAndDcnCisgICAgICAgICAgYXJt
NjRHUFJOYW1lKCd4NycsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NmcicKICAgICAgICAgICAgIGFy
bTY0R1BSTmFtZSgneDI5Jywga2luZCkKICAgICAgICAgd2hlbiAnY3NyMCcKQEAgLTEwMTksNiAr
MTAyMSw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInNtYWRk
bCAje29wZXJhbmRzWzJdLmFybTY0T3BlcmFuZCg6cXVhZCl9LCAje29wZXJhbmRzWzBdLmFybTY0
T3BlcmFuZCg6d29yZCl9LCAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCB4enIi
CiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3ki
CisgICAgICAgIHdoZW4gImJmaXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJmaSAje29wZXJh
bmRzWzNdLmFybTY0T3BlcmFuZCg6cXVhZCl9LCAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6
cXVhZCl9LCAje29wZXJhbmRzWzFdLnZhbHVlfSwgI3tvcGVyYW5kc1syXS52YWx1ZX0iCiAgICAg
ICAgIHdoZW4gInBjcnRvYWRkciIKICAgICAgICAgICAgICRhc20ucHV0cyAiYWRyICN7b3BlcmFu
ZHNbMV0uYXJtNjRPcGVyYW5kKDpxdWFkKX0sICN7b3BlcmFuZHNbMF0udmFsdWV9IgogICAgICAg
ICB3aGVuICJub3BDb3J0ZXhBNTNGaXg4MzU3NjkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggMmFkNTk0NGU5MDU1YTU1OTEzNmMy
OGUzNmI4NzJlZGI5YmRkODRlOS4uNzE3ODhiMTA4MzcyYWYwOWJmOGVkODlmYmY5YWIxZDllMTdh
ZDNiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1
Y3Rpb25zLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYgpAQCAtMjczLDYgKzI3Myw3IEBAIEFSTV9JTlNUUlVDVElPTlMgPQogCiBBUk02NF9J
TlNUUlVDVElPTlMgPQogICAgIFsKKyAgICAgImJmaXEiLCAjIEJpdCBmaWVsZCBpbnNlcnQgPHNv
dXJjZSByZWc+IDxsYXN0IGJpdCB3cml0dGVuPiA8d2lkdGggaW1tZWRpYXRlPiA8ZGVzdCByZWc+
CiAgICAgICJwY3J0b2FkZHIiLCAgICMgQWRkcmVzcyBmcm9tIFBDIHJlbGF0aXZlIG9mZnNldCAt
IGFkciBpbnN0cnVjdGlvbgogICAgICAibm9wRml4Q29ydGV4QTUzRXJyODM1NzY5IiwgIyBub3Ag
b24gQ29ydGV4LUE1MyAobm90aGluZyBvdGhlcndpc2UpCiAgICAgICJnbG9iYWxhZGRyIgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCmluZGV4IGFhOGE0
MGZkNGU4NTNjZDQ4ZDQ1ZWNjMjY2NmNkOWExNjQ2MDlkMzkuLjE1OGQxNDE5NDZmOGZkYmI5YzI0
ZmU5ZWJmYzEyZTU3YTRhOGQ4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmIKQEAgLTMyLDYgKzMyLDcgQEAgR1BSUyA9CiAgICAgICJ0NCIsCiAg
ICAgICJ0NSIsCiAgICAgICJ0NiIsCisgICAgICJ0NyIsCiAgICAgICJjZnIiLAogICAgICAiYTAi
LAogICAgICAiYTEiLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJ
UkdlbmVyYXRvci5jcHAKaW5kZXggM2Y1MWQwYjBmYzQyNzk3MzQxZTg2NGY4MDdkNTI3ZmMyNDQ2
YzBjMS4uMTYyZTk5MDczMWY0ODdjZWNiYmZkNzJlZThlNzU5M2IyZTU5ZGUzMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC04
NDMsMTUgKzg0MywxNCBAQCB2b2lkIEFpcklSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlH
bG9iYWxTdGF0ZShSZXN0b3JlQ2FjaGVkU3RhY2tMaW1pdCByZXN0bwogICAgICAgICBwYXRjaHBv
aW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSBHaWdhY2FnZTo6aXNFbmFibGVkKEdpZ2FjYWdl
OjpQcmltaXRpdmUpID8gMSA6IDA7CiAKICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9y
KFtwaW5uZWRSZWdzXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMmIHBhcmFtcykgewotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIUdpZ2Fj
YWdlOjppc0VuYWJsZWQoR2lnYWNhZ2U6OlByaW1pdGl2ZSkgfHwgIWlzQVJNNjQoKSk7Ci0gICAg
ICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2VJZiBhbGxvd1NjcmF0Y2goaml0
LCAhaXNBUk02NCgpKTsKKyAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2Fn
ZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlu
bmVkUmVncy0+YmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaE9y
U2l6ZSA9IEdpZ2FjYWdlOjppc0VuYWJsZWQoR2lnYWNhZ2U6OlByaW1pdGl2ZSkgPyBwYXJhbXMu
Z3BTY3JhdGNoKDApIDogcGlubmVkUmVncy0+c2l6ZVJlZ2lzdGVyOwogCiAgICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzBdLmdwcigpLCBJbnN0YW5j
ZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnlTaXplKCkpLCBwaW5uZWRSZWdzLT5zaXplUmVnaXN0ZXIp
OwogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1sw
XS5ncHIoKSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsK
IAotICAgICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUs
IGJhc2VNZW1vcnksIHNjcmF0Y2hPclNpemUpOworICAgICAgICAgICAgaml0LmNhZ2VDb25kaXRp
b25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHBpbm5lZFJlZ3MtPnNpemVS
ZWdpc3Rlciwgc2NyYXRjaE9yU2l6ZSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGVtaXRQYXRj
aHBvaW50KGJsb2NrLCBwYXRjaHBvaW50LCBUbXAoKSwgaW5zdGFuY2UpOwpAQCAtMTk0OCw3ICsx
OTQ3LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbEluZGlyZWN0KGNvbnN0IFNpZ25h
dHVyZSYgc2lnbmF0dXJlLCBWZWN0b3I8RXhwcmVzc2kKICAgICAgICAgICAgIGppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhuZXdDb250ZXh0SW5zdGFuY2UsIEluc3RhbmNlOjpvZmZz
ZXRPZkNhY2hlZE1lbW9yeVNpemUoKSksIHBpbm5lZFJlZ3Muc2l6ZVJlZ2lzdGVyKTsgLy8gTWVt
b3J5IHNpemUuCiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
bmV3Q29udGV4dEluc3RhbmNlLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJh
c2VNZW1vcnkpOyAvLyBNZW1vcnk6OnZvaWQqLgogCi0gICAgICAgICAgICBqaXQuY2FnZUNvbmRp
dGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7
CisgICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwg
YmFzZU1lbW9yeSwgcGlubmVkUmVncy5zaXplUmVnaXN0ZXIsIHNjcmF0Y2hPclNpemUpOwogICAg
ICAgICB9KTsKIAogICAgICAgICBlbWl0UGF0Y2hwb2ludChkb0NvbnRleHRTd2l0Y2gsIHBhdGNo
cG9pbnQsIFRtcCgpLCBuZXdDb250ZXh0SW5zdGFuY2UsIGluc3RhbmNlVmFsdWUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXgg
NWU4N2Y0YmFmYjRkNzJiMzdkM2Y4OTI1NjFmMjU1MTU0MDNiOWJlNy4uMTIzMjUxODViNjM2MDU1
YmY2ZGQzOTk3MzljOWY2OTQ2M2RiY2YzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcApAQCAtNDg2LDE1ICs0ODYsMTQgQEAgdm9pZCBC
M0lSR2VuZXJhdG9yOjpyZXN0b3JlV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZShSZXN0b3JlQ2FjaGVk
U3RhY2tMaW1pdCByZXN0b3IKIAogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQoaW5zdGFuY2Us
IFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpOwogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0
b3IoW3Bpbm5lZFJlZ3NdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghR2ln
YWNhZ2U6OmlzRW5hYmxlZChHaWdhY2FnZTo6UHJpbWl0aXZlKSB8fCAhaXNBUk02NCgpKTsKLSAg
ICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZUlmIGFsbG93U2NyYXRjaChq
aXQsICFpc0FSTTY0KCkpOworICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBw
aW5uZWRSZWdzLT5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNo
T3JTaXplID0gR2lnYWNhZ2U6OmlzRW5hYmxlZChHaWdhY2FnZTo6UHJpbWl0aXZlKSA/IHBhcmFt
cy5ncFNjcmF0Y2goMCkgOiBwaW5uZWRSZWdzLT5zaXplUmVnaXN0ZXI7CiAKICAgICAgICAgICAg
IGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMF0uZ3ByKCksIEluc3Rh
bmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeVNpemUoKSksIHBpbm5lZFJlZ3MtPnNpemVSZWdpc3Rl
cik7CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFyYW1z
WzBdLmdwcigpLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkp
OwogCi0gICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2
ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7CisgICAgICAgICAgICBqaXQuY2FnZUNvbmRp
dGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgcGlubmVkUmVncy0+c2l6
ZVJlZ2lzdGVyLCBzY3JhdGNoT3JTaXplKTsKICAgICAgICAgfSk7CiAgICAgfQogfQpAQCAtMTM2
Niw3ICsxMzY1LDcgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QoY29uc3Qg
U2lnbmF0dXJlJiBzaWduYXR1cmUsIFZlY3RvcjxFeHByZXNzaW8KICAgICAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhuZXdDb250ZXh0SW5zdGFuY2UsIEluc3RhbmNl
OjpvZmZzZXRPZkNhY2hlZE1lbW9yeVNpemUoKSksIHBpbm5lZFJlZ3Muc2l6ZVJlZ2lzdGVyKTsg
Ly8gTWVtb3J5IHNpemUuCiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MobmV3Q29udGV4dEluc3RhbmNlLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnko
KSksIGJhc2VNZW1vcnkpOyAvLyBNZW1vcnk6OnZvaWQqLgogCi0gICAgICAgICAgICBqaXQuY2Fn
ZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9y
U2l6ZSk7CisgICAgICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1p
dGl2ZSwgYmFzZU1lbW9yeSwgcGlubmVkUmVncy5zaXplUmVnaXN0ZXIsIHNjcmF0Y2hPclNpemUp
OwogICAgICAgICB9KTsKICAgICAgICAgZG9Db250ZXh0U3dpdGNoLT5hcHBlbmROZXdDb250cm9s
VmFsdWUobV9wcm9jLCBKdW1wLCBvcmlnaW4oKSwgY29udGludWF0aW9uKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCmluZGV4IGZlZDQ1YjEwNjNjOWEzNmJm
NjUxY2Y4MDNlZTEwZjFjNWJlN2M2NTQuLjIzYzk2NDc0ZjRiNzU1N2UxOWFlMTgyYTYwY2U5MDc3
ZjczNmFiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5k
aW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAK
QEAgLTY3LDExICs2NywxMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogICAgIC8vIEZJWE1F
IHRoZSBmb2xsb3dpbmcgY29kZSBhc3N1bWVzIHRoYXQgYWxsIFdhc206Okluc3RhbmNlIGhhdmUg
dGhlIHNhbWUgcGlubmVkIHJlZ2lzdGVycy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2Mjk1MgogICAgIC8vIFNldCB1cCB0aGUgY2FsbGVlJ3MgYmFzZU1lbW9yeSBy
ZWdpc3RlciBhcyB3ZWxsIGFzIHRoZSBtZW1vcnkgc2l6ZSByZWdpc3RlcnMuCiAgICAgewotICAg
ICAgICBHUFJSZWcgc2NyYXRjaE9yU2l6ZSA9IGlzQVJNNjRFKCkgPyBwaW5uZWRSZWdzLnNpemVS
ZWdpc3RlciA6IHdhc21DYWxsaW5nQ29udmVudGlvbkFpcigpLnByb2xvZ3VlU2NyYXRjaCgxKTsK
KyAgICAgICAgR1BSUmVnIHNjcmF0Y2hPclNpemUgPSAhR2lnYWNhZ2U6OmlzRW5hYmxlZChHaWdh
Y2FnZTo6UHJpbWl0aXZlKSA/IHBpbm5lZFJlZ3Muc2l6ZVJlZ2lzdGVyIDogd2FzbUNhbGxpbmdD
b252ZW50aW9uQWlyKCkucHJvbG9ndWVTY3JhdGNoKDEpOwogCiAgICAgICAgIGppdC5sb2FkUHRy
KEpJVDo6QWRkcmVzcyhiYXNlTWVtb3J5LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRN
ZW1vcnlTaXplKCkpLCBwaW5uZWRSZWdzLnNpemVSZWdpc3Rlcik7IC8vIE1lbW9yeSBzaXplLgog
ICAgICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3MoYmFzZU1lbW9yeSwgV2FzbTo6SW5zdGFu
Y2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsgLy8gV2FzbTo6TWVtb3J5
OjpUYWdnZWRBcnJheVN0b3JhZ2VQdHI8dm9pZD4gKHZvaWQqKS4KLSAgICAgICAgaml0LmNhZ2VD
b25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNjcmF0Y2hPclNp
emUpOworICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6OlByaW1pdGl2ZSwg
YmFzZU1lbW9yeSwgcGlubmVkUmVncy5zaXplUmVnaXN0ZXIsIHNjcmF0Y2hPclNpemUpOwogICAg
IH0KIAogICAgIC8vIFRhaWwgY2FsbCBpbnRvIHRoZSBjYWxsZWUgV2ViQXNzZW1ibHkgZnVuY3Rp
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKaW5kZXggNjU3
ZGE1N2FlYjdjZTNkYWVhZjNjMjU3NDc4MThiNjIwZGNlMTQ5Mi4uMjYzMTNlODQyNjk2NTdmZWU5
YjZjYmQ3M2I1NzA1OGM0NDVmYjViOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNUb1dhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTVG9XYXNtLmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5h
bEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ29tcGlsYXRpb25Db250ZXh0JiBjb21w
CiAgICAgICAgIH0KIAogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
Y3VycmVudEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnko
KSksIGJhc2VNZW1vcnkpOwotICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHkoR2lnYWNhZ2U6
OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yU2l6ZSk7CisgICAgICAgIGppdC5jYWdl
Q29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JT
aXplLCBzY3JhdGNoT3JTaXplKTsKICAgICB9CiAKICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2Fs
bCA9IGppdC50aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggMmZm
MGU3OGU1ODJmNjU2MWEyOGYzYzU5NTM3ODIxYzAzOTgwYjg5MC4uOTFiNWI4Mzg4NTIwYTE0MmFh
ZTA5YzUyZGMzZmM4NTM4ZTE3YmNmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6
anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICB9CiAKICAgICAgICAgaml0LmxvYWRQdHIo
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRP
ZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7Ci0gICAgICAgIGppdC5jYWdlQ29uZGl0aW9u
YWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JTaXplKTsKKyAg
ICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1v
cnksIHNjcmF0Y2hPclNpemUsIHNjcmF0Y2hPclNpemUpOwogICAgIH0KIAogICAgIC8vIFdlIHVz
ZSB0aGlzIGNhbGxlZSB0byBpbmRpY2F0ZSBob3cgdG8gdW53aW5kIHBhc3QgdGhlc2UgdHlwZXMg
b2YgZnJhbWVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5o
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oCmluZGV4IDc2ZDcyZGY3NGExMzZm
MDIxOTE1NWNmMjA4ZjdjNzc5NThjNGU5OTYuLmEzN2QwYmFmOTk3OWRlZWNjMmU5ZTI1NDJhOGMy
OTU4ZGRmODZiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2Uu
aAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmgKQEAgLTM0LDcgKzM0LDgg
QEAKICNpbmNsdWRlIDxjc3RkZGVmPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAKLSNpZiAoKEJP
UyhEQVJXSU4pIHx8IEJPUyhMSU5VWCkpICYmIEJDUFUoWDg2XzY0KSkKKyNpZiAoKEJPUyhEQVJX
SU4pIHx8IEJPUyhMSU5VWCkpICYmIFwKKyAgICAoQkNQVShYODZfNjQpIHx8IChCQ1BVKEFSTTY0
KSAmJiAhZGVmaW5lZChfX0lMUDMyX18pICYmICghQlBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEJQ
TEFURk9STShJT1MpKSkpKQogI2RlZmluZSBHSUdBQ0FHRV9FTkFCTEVEIDEKICNlbHNlCiAjZGVm
aW5lIEdJR0FDQUdFX0VOQUJMRUQgMAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>