<?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>111294</bug_id>
          
          <creation_ts>2013-03-04 01:36:50 -0800</creation_ts>
          <short_desc>Cleanup: Move HitTestLocation and HitTestResult into separate files.</short_desc>
          <delta_ts>2013-03-05 02:07:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>846228</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 01:36:50 -0800</bug_when>
    <thetext>I noticed the FIXME while trying to understand some related code, so I might as well just take care of it; there&apos;s no good reason to keep HitTestLocation and HitTestResult in the same file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846236</commentid>
    <comment_count>1</comment_count>
      <attachid>191177</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 01:58:19 -0800</bug_when>
    <thetext>Created attachment 191177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846240</commentid>
    <comment_count>2</comment_count>
      <attachid>191177</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-03-04 02:02:38 -0800</bug_when>
    <thetext>Comment on attachment 191177
Patch

LGTM, pending on the builds bots clearing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846241</commentid>
    <comment_count>3</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 02:04:20 -0800</bug_when>
    <thetext>That was a shockingly fast review. Thanks. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846242</commentid>
    <comment_count>4</comment_count>
      <attachid>191177</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-04 02:07:59 -0800</bug_when>
    <thetext>Comment on attachment 191177
Patch

Attachment 191177 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16910526</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846247</commentid>
    <comment_count>5</comment_count>
      <attachid>191177</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-04 02:10:47 -0800</bug_when>
    <thetext>Comment on attachment 191177
Patch

Attachment 191177 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16917158</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846365</commentid>
    <comment_count>6</comment_count>
      <attachid>191212</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 05:42:50 -0800</bug_when>
    <thetext>Created attachment 191212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846366</commentid>
    <comment_count>7</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 05:44:03 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=191212) [details]
&gt; Patch

Ossy pointed me in the right direction regarding Qt (thanks!). If it passes the bots this time, I&apos;ll CQ it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846372</commentid>
    <comment_count>8</comment_count>
      <attachid>191212</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 05:51:47 -0800</bug_when>
    <thetext>Comment on attachment 191212
Patch

Attachment 191212 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16917248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846375</commentid>
    <comment_count>9</comment_count>
      <attachid>191212</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-04 05:53:44 -0800</bug_when>
    <thetext>Comment on attachment 191212
Patch

Attachment 191212 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16917246</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846381</commentid>
    <comment_count>10</comment_count>
      <attachid>191212</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-04 05:57:12 -0800</bug_when>
    <thetext>Comment on attachment 191212
Patch

Attachment 191212 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16912517</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846383</commentid>
    <comment_count>11</comment_count>
      <attachid>191212</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-04 05:58:39 -0800</bug_when>
    <thetext>Comment on attachment 191212
Patch

Attachment 191212 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/16916284</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846385</commentid>
    <comment_count>12</comment_count>
      <attachid>191212</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-04 06:01:10 -0800</bug_when>
    <thetext>Comment on attachment 191212
Patch

Attachment 191212 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16898871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846387</commentid>
    <comment_count>13</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 06:04:07 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 191212 [details])
&gt; Attachment 191212 [details] did not pass qt-wk2-ews (qt):
&gt; Output: http://webkit-commit-queue.appspot.com/results/16898871

*sigh* Today is not my day. I&apos;ll upload a new patch in a moment. One that actually includes the files I&apos;m adding. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846401</commentid>
    <comment_count>14</comment_count>
      <attachid>191220</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 06:14:46 -0800</bug_when>
    <thetext>Created attachment 191220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847387</commentid>
    <comment_count>15</comment_count>
      <attachid>191220</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-05 00:36:58 -0800</bug_when>
    <thetext>Comment on attachment 191220
Patch

Bots are happy. CQing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847392</commentid>
    <comment_count>16</comment_count>
      <attachid>191220</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 00:45:38 -0800</bug_when>
    <thetext>Comment on attachment 191220
Patch

Rejecting attachment 191220 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 191220, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
ILED -- saving rejects to file Source/WebCore/WebCore.xcodeproj/project.pbxproj.rej
patching file Source/WebCore/rendering/HitTestLocation.cpp
patching file Source/WebCore/rendering/HitTestLocation.h
patching file Source/WebCore/rendering/HitTestResult.cpp
patching file Source/WebCore/rendering/HitTestResult.h
patching file Source/WebCore/rendering/RenderBlock.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://webkit-commit-queue.appspot.com/results/17050011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847432</commentid>
    <comment_count>17</comment_count>
      <attachid>191436</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-05 01:36:20 -0800</bug_when>
    <thetext>Created attachment 191436
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847467</commentid>
    <comment_count>18</comment_count>
      <attachid>191436</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 02:07:43 -0800</bug_when>
    <thetext>Comment on attachment 191436
Patch for landing

Clearing flags on attachment: 191436

Committed r144743: &lt;http://trac.webkit.org/changeset/144743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847468</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 02:07:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191177</attachid>
            <date>2013-03-04 01:58:19 -0800</date>
            <delta_ts>2013-03-04 05:42:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111294-20130304105426.patch</filename>
            <type>text/plain</type>
            <size>30980</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdlNjZiOTA0NzdmMzFh
ZjhiNmFmMTNhODc3YzEzZDA2ODgxODg1Ny4uZGZiMWU1MjliODIzMjY4ZWY5MmEwYjcxNDE5YTVk
MTRkZTUzODk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAzLTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW51cDogTW92ZSBIaXRU
ZXN0TG9jYXRpb24gYW5kIEhpdFRlc3RSZXN1bHQgaW50byBzZXBhcmF0ZSBmaWxlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTI5NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhpdFRlc3RMb2NhdGlv
biBhbmQgSGl0VGVzdFJlc3VsdCBjdXJyZW50bHkgYm90aCBsaXZlIGluCisgICAgICAgIEhpdFRl
c3RSZXN1bHQuaC4gVGhhdCBtYWtlcyB0aGluZ3MgbW9yZSBkaWZmaWN1bHQgdG8gdW5kZXJzdGFu
ZCB0aGFuCisgICAgICAgIHRoZXkgc2hvdWxkIGJlLCBhbmQgdmlvbGF0ZXMgdGhlIG9uZS1jbGFz
cy1vbmUtZmlsZSBwcmluY2lwbGUgdGhhdAorICAgICAgICBXZWJLaXQgZ2VuZXJhbGx5IGZvbGxv
d3MuIEhhcHBpbHksIGl0J3MgZmFpcmx5IHRyaXZpYWwgdG8gZml4LgorCisgICAgICAgIFRoaXMg
c2hvdWxkIGhhdmUgbm8gdmlzaWJsZSBjaGFuZ2U7IGl0J3Mgc3RyaWN0bHkgYW4gaW50ZXJuYWwK
KyAgICAgICAgcmVmYWN0b3JpbmcuIEl0IGRvZXNuJ3QgZXZlbiB0b3VjaCBhbnkgaW1wbGVtZW50
YXRpb24gY29kZTogd2UncmUKKyAgICAgICAganVzdCBtb3ZpbmcgYml0cyBmcm9tIG9uZSBwbGFj
ZSB0byBhbm90aGVyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICAgICBIZXks
IGxvb2shIEEgbmV3IGZpbGUhCisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0
TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9j
YXRpb246On5IaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0
aW9uOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjptb3Zl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0c1JlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjppbnRlcnNlY3RzKToKKyAgICAgICAg
KFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6cmVjdEZvclBvaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvSGl0VGVzdExvY2F0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9u
Ojpwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnJvdW5kZWRQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnJlZ2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmlzUmVjdEJhc2VkVGVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmlzUmVjdGlsaW5lYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdExvY2F0aW9uOjpib3VuZGluZ0JveCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRU
ZXN0TG9jYXRpb246OnRvcFBhZGRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0
aW9uOjpyaWdodFBhZGRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjpi
b3R0b21QYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6bGVmdFBh
ZGRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjp0cmFuc2Zvcm1lZFBv
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6dHJhbnNmb3JtZWRSZWN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgICogcmVu
ZGVyaW5nL0hpdFRlc3RSZXN1bHQuaDoKKyAgICAgICAgICAgIE1vdmUgYWxsIHRoaXMgY29kZSBm
cm9tIEhpdFRlc3RSZXN1bHQuKiB0byBIaXRUZXN0TG9jYXRpb24uKi4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAgICAgSW5jbHVkZSBIaXRUZXN0TG9jYXRp
b24uaC4KKwogMjAxMy0wMy0wMyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDQ0NTUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGUxOTczMjE2NzM0MzQ4NTAyOWJlZjIwNGZhODk0ZWFkNTA5ZGU1Mjgu
LjQxOWQyNTg1ZjJmZTExY2ZlOWM1MmNiMThlNTVlMGRjMjhlNmUyMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yMTM1LDYgKzIxMzUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVu
ZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCiAgICAgcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250
cm9sbGVyLmNwcAogICAgIHJlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwCisg
ICAgcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAKICAgICByZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHAKICAgICByZW5kZXJpbmcvSW5saW5lQm94LmNwcAogICAgIHJlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNTgyNWIxZjhh
ZDE1YTRmZWUxNzZhOTJhZDBmZjBkZGI0Y2I1Zjc4Yy4uYzgxN2YwN2M2NzIyYzI5OTU3NTRmNWEz
NjU2ZTU4ZjUxMmU5OWM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MzY4
LDYgKzQzNjgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dGluZ1RyYW5zZm9ybVN0YXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRl
c3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dExvY2F0aW9uLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlv
bi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVCb3guY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDYwM2NkYmRiMjc4NzQw
NzVkZDRmYjExNmVjNDg1NjIyMWZiMmFlZTUuLjI0ZDEwNTQwYjE3NmYxMmZkM2I5ZjVkZmFkMTFk
YWE0MmJhNTVjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMjQ1MSw2ICsyNDUxLDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmggXAogICAgIHJlbmRlcmlu
Zy9GaXhlZFRhYmxlTGF5b3V0LmggXAogICAgIHJlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3Jt
U3RhdGUuaCBcCisgICAgcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oIFwKICAgICByZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5oIFwKICAgICByZW5kZXJpbmcvSW5saW5lQm94LmggXAogICAgIHJl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDcxM2ZiOGQ5OTJh
MmY0ZjM5MmQxNWZlNzllMWFhYjVjZTE4YjU0MTUuLmY1OTBkMTY5MGJhMTE5ZDhlNzFhMWMyNDg0
YzcxMmRlMTMwYmNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI0MDIsNiArMjQwMiw4IEBACiAg
ICAgICAgICAgICAncmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5n
L0hpdFRlc3RMb2NhdGlvbi5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0TG9j
YXRpb24uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvSW5saW5lQm94LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL0lubGluZUZsb3dCb3guY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggZWM0MjY0MzljYTk0ZjYxZGJlNzg5ZDM3ZDk4OGUwZGY5NzM1
ZjcyYS4uMjE3NTlhZTE3YWY0ZmYzZDY1ZGFjMTAxZWY0YjlkOGFjYmE1ODJjZiAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM5MzYzLDYgKzM5
MzYzLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHJlbmRlcmluZ1xIaXRUZXN0TG9jYXRpb24uY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcSGl0VGVzdExv
Y2F0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHJlbmRlcmluZ1xIaXRUZXN0UmVxdWVzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
Mzg2MTU1ODdmOGMyYTU3ZmJjODUxMDIwMDQ4ZmM0MmE3ZDkxZTFhLi42ZTA4ZWYwMzQ4MjFlMjVk
NTNhOTJlMGVjNjMwMGMxMTEzMDM3ZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTgsNiArNzk4LDggQEAKIAkJMkQ0ODFG
MDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDJGQzA1NzE0NjBDRDZGMDAy
NjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLzsgfTsKIAkJMkQ1QTU5MkYxNTI1
MjUyMzAwMzZFRTUxIC8qIEltYWdlT3JpZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NDhENzQxMkNDM0Y4OTAwMUZCQTQxIC8qIElt
YWdlT3JpZW50YXRpb24uY3BwICovOyB9OwogCQkyRDVBNTkzMTE1MjUyNUQwMDAzNkVFNTEgLyog
SW1hZ2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTg3NDhENjYxMkNDMzc2MzAwMUZCQTQxIC8qIEltYWdlT3JpZW50YXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyRDgyODdG
NjE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODI4N0Y0MTZFNEEwMzgwMDg2QkQwMCAv
KiBIaXRUZXN0TG9jYXRpb24uY3BwICovOyB9OworCQkyRDgyODdGNzE2RTRBMDM4MDA4NkJEMDAg
LyogSGl0VGVzdExvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDgyODdGNTE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ4RkVC
REMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi87IH07CiAJCTJEOEZFQkREMTQzRTNFRjcwMDcy
NTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFk
ZVZhbHVlLmggKi87IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkw
NjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovOyB9OwpAQCAtODE2Nyw2
ICs4MTY5LDggQEAKIAkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVy
YXRvckdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQy
RkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEM0EwRTM1MTNBN0Q3NjEwMEU4NUFGMCAvKiBT
VkdQYXJzaW5nRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGFy
c2luZ0Vycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEODI4N0Y0MTZFNEEw
MzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSGl0VGVzdExvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkQ4Mjg3RjUxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaXRUZXN0TG9jYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Ny
b3NzZmFkZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENT
U0Nyb3NzZmFkZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVC
REIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0U3RhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIyNjQsNiArMjIyNjgsOCBAQAogCQkJCTkz
NUM0Nzc0MDlBQzREOEQwMEE2QUFCNCAvKiBHYXBSZWN0cy5oICovLAogCQkJCTQ5NjlCMEYwMTNE
MEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwICovLAogCQkJCTQ5
NjlCMEYxMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCAqLywK
KwkJCQkyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmNwcCAqLywK
KwkJCQkyRDgyODdGNTE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmggKi8sCiAJ
CQkJOTMwOTA4OTAwQUY3RURFNDAwODFERjAxIC8qIEhpdFRlc3RSZXF1ZXN0LmggKi8sCiAJCQkJ
OTMwN0YxRDUwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3BwICovLAogCQkJCTkz
MDdGMUQ2MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0LmggKi8sCkBAIC0yNjY1MSw2
ICsyNjY1Nyw3IEBACiAJCQkJQTAyNDU3NTIxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZm
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMzFDNEU0RjE2RTAyQUI0MDAyRjc5NTcgLyogT0VT
VGV4dHVyZUhhbGZGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTMxQzRFNTQxNkUwMkI0MDAw
MkY3OTU3IC8qIEpTT0VTVGV4dHVyZUhhbGZGbG9hdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkQ4
Mjg3RjcxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yOTg0OSw2ICsyOTg1Niw3IEBACiAJCQkJQTAyNDU3NTExNkNFQUEyNzAwMEU1NjcxIC8q
IEVYVERyYXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzMUM0RTREMTZFMDJBQTYw
MDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEz
MUM0RTUyMTZFMDJCMDgwMDJGNzk1NyAvKiBKU09FU1RleHR1cmVIYWxmRmxvYXQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMkQ4Mjg3RjYxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RM
b2NhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYmU4MjQwYzlkY2Q4ZTk2NDIxYzIxMzAzZjI4NTQ1
OGM4Zjc5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0TG9jYXRpb24uY3BwCkBAIC0wLDAgKzEsMTk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgor
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhpdFRlc3RMb2NhdGlvbi5oIgor
CisjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgi
CisjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKKyNpbmNsdWRlICJS
ZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCisjaW5jbHVkZSAiUmVuZGVy
SW5saW5lLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2VuZGlmCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworSGl0VGVz
dExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oKQorICAgIDogbV9yZWdpb24oMCkKKyAgICAsIG1f
aXNSZWN0QmFzZWQoZmFsc2UpCisgICAgLCBtX2lzUmVjdGlsaW5lYXIodHJ1ZSkKK3sKK30KKwor
SGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50
KQorICAgIDogbV9wb2ludChwb2ludCkKKyAgICAsIG1fYm91bmRpbmdCb3gocmVjdEZvclBvaW50
KHBvaW50LCAwLCAwLCAwLCAwKSkKKyAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChwb2ludCkKKyAg
ICAsIG1fdHJhbnNmb3JtZWRSZWN0KG1fYm91bmRpbmdCb3gpCisgICAgLCBtX3JlZ2lvbigwKQor
ICAgICwgbV9pc1JlY3RCYXNlZChmYWxzZSkKKyAgICAsIG1faXNSZWN0aWxpbmVhcih0cnVlKQor
eworfQorCitIaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50
JiBwb2ludCkKKyAgICA6IG1fcG9pbnQoZmxvb3JlZExheW91dFBvaW50KHBvaW50KSkKKyAgICAs
IG1fYm91bmRpbmdCb3gocmVjdEZvclBvaW50KG1fcG9pbnQsIDAsIDAsIDAsIDApKQorICAgICwg
bV90cmFuc2Zvcm1lZFBvaW50KHBvaW50KQorICAgICwgbV90cmFuc2Zvcm1lZFJlY3QobV9ib3Vu
ZGluZ0JveCkKKyAgICAsIG1fcmVnaW9uKDApCisgICAgLCBtX2lzUmVjdEJhc2VkKGZhbHNlKQor
ICAgICwgbV9pc1JlY3RpbGluZWFyKHRydWUpCit7Cit9CisKK0hpdFRlc3RMb2NhdGlvbjo6SGl0
VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBGbG9hdFF1YWQmIHF1
YWQpCisgICAgOiBtX3RyYW5zZm9ybWVkUG9pbnQocG9pbnQpCisgICAgLCBtX3RyYW5zZm9ybWVk
UmVjdChxdWFkKQorICAgICwgbV9yZWdpb24oMCkKKyAgICAsIG1faXNSZWN0QmFzZWQodHJ1ZSkK
K3sKKyAgICBtX3BvaW50ID0gZmxvb3JlZExheW91dFBvaW50KHBvaW50KTsKKyAgICBtX2JvdW5k
aW5nQm94ID0gZW5jbG9zaW5nSW50UmVjdChxdWFkLmJvdW5kaW5nQm94KCkpOworICAgIG1faXNS
ZWN0aWxpbmVhciA9IHF1YWQuaXNSZWN0aWxpbmVhcigpOworfQorCitIaXRUZXN0TG9jYXRpb246
OkhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVk
IHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGlu
ZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCisgICAgOiBtX3BvaW50KGNlbnRlclBvaW50KQorICAg
ICwgbV9ib3VuZGluZ0JveChyZWN0Rm9yUG9pbnQoY2VudGVyUG9pbnQsIHRvcFBhZGRpbmcsIHJp
Z2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcpKQorICAgICwgbV90cmFuc2Zv
cm1lZFBvaW50KGNlbnRlclBvaW50KQorICAgICwgbV9yZWdpb24oMCkKKyAgICAsIG1faXNSZWN0
QmFzZWQodG9wUGFkZGluZyB8fCByaWdodFBhZGRpbmcgfHwgYm90dG9tUGFkZGluZyB8fCBsZWZ0
UGFkZGluZykKKyAgICAsIG1faXNSZWN0aWxpbmVhcih0cnVlKQoreworICAgIG1fdHJhbnNmb3Jt
ZWRSZWN0ID0gRmxvYXRRdWFkKG1fYm91bmRpbmdCb3gpOworfQorCitIaXRUZXN0TG9jYXRpb246
OkhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mIG90aGVyLCBjb25zdCBMYXlv
dXRTaXplJiBvZmZzZXQsIFJlbmRlclJlZ2lvbiogcmVnaW9uKQorICAgIDogbV9wb2ludChvdGhl
ci5tX3BvaW50KQorICAgICwgbV9ib3VuZGluZ0JveChvdGhlci5tX2JvdW5kaW5nQm94KQorICAg
ICwgbV90cmFuc2Zvcm1lZFBvaW50KG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludCkKKyAgICAsIG1f
dHJhbnNmb3JtZWRSZWN0KG90aGVyLm1fdHJhbnNmb3JtZWRSZWN0KQorICAgICwgbV9yZWdpb24o
cmVnaW9uID8gcmVnaW9uIDogb3RoZXIubV9yZWdpb24pCisgICAgLCBtX2lzUmVjdEJhc2VkKG90
aGVyLm1faXNSZWN0QmFzZWQpCisgICAgLCBtX2lzUmVjdGlsaW5lYXIob3RoZXIubV9pc1JlY3Rp
bGluZWFyKQoreworICAgIG1vdmUob2Zmc2V0KTsKK30KKworSGl0VGVzdExvY2F0aW9uOjpIaXRU
ZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJiBvdGhlcikKKyAgICA6IG1fcG9pbnQo
b3RoZXIubV9wb2ludCkKKyAgICAsIG1fYm91bmRpbmdCb3gob3RoZXIubV9ib3VuZGluZ0JveCkK
KyAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChvdGhlci5tX3RyYW5zZm9ybWVkUG9pbnQpCisgICAg
LCBtX3RyYW5zZm9ybWVkUmVjdChvdGhlci5tX3RyYW5zZm9ybWVkUmVjdCkKKyAgICAsIG1fcmVn
aW9uKG90aGVyLm1fcmVnaW9uKQorICAgICwgbV9pc1JlY3RCYXNlZChvdGhlci5tX2lzUmVjdEJh
c2VkKQorICAgICwgbV9pc1JlY3RpbGluZWFyKG90aGVyLm1faXNSZWN0aWxpbmVhcikKK3sKK30K
KworSGl0VGVzdExvY2F0aW9uOjp+SGl0VGVzdExvY2F0aW9uKCkKK3sKK30KKworSGl0VGVzdExv
Y2F0aW9uJiBIaXRUZXN0TG9jYXRpb246Om9wZXJhdG9yPShjb25zdCBIaXRUZXN0TG9jYXRpb24m
IG90aGVyKQoreworICAgIG1fcG9pbnQgPSBvdGhlci5tX3BvaW50OworICAgIG1fYm91bmRpbmdC
b3ggPSBvdGhlci5tX2JvdW5kaW5nQm94OworICAgIG1fdHJhbnNmb3JtZWRQb2ludCA9IG90aGVy
Lm1fdHJhbnNmb3JtZWRQb2ludDsKKyAgICBtX3RyYW5zZm9ybWVkUmVjdCA9IG90aGVyLm1fdHJh
bnNmb3JtZWRSZWN0OworICAgIG1fcmVnaW9uID0gb3RoZXIubV9yZWdpb247CisgICAgbV9pc1Jl
Y3RCYXNlZCA9IG90aGVyLm1faXNSZWN0QmFzZWQ7CisgICAgbV9pc1JlY3RpbGluZWFyID0gb3Ro
ZXIubV9pc1JlY3RpbGluZWFyOworCisgICAgcmV0dXJuICp0aGlzOworfQorCit2b2lkIEhpdFRl
c3RMb2NhdGlvbjo6bW92ZShjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpCit7CisgICAgbV9wb2lu
dC5tb3ZlKG9mZnNldCk7CisgICAgbV90cmFuc2Zvcm1lZFBvaW50Lm1vdmUob2Zmc2V0KTsKKyAg
ICBtX3RyYW5zZm9ybWVkUmVjdC5tb3ZlKG9mZnNldCk7CisgICAgbV9ib3VuZGluZ0JveCA9IGVu
Y2xvc2luZ0ludFJlY3QobV90cmFuc2Zvcm1lZFJlY3QuYm91bmRpbmdCb3goKSk7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFJlY3RUeXBlPgorYm9vbCBIaXRUZXN0TG9jYXRpb246OmludGVyc2Vj
dHNSZWN0KGNvbnN0IFJlY3RUeXBlJiByZWN0KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBXaGVu
IHRoZSBoaXQgdGVzdCBpcyBub3QgcmVjdCBiYXNlZCB3ZSBzaG91bGQgdXNlIHJlY3QuY29udGFp
bnMobV9wb2ludCkuCisgICAgLy8gVGhhdCBkb2VzIGNoYW5nZSBzb21lIGNvcm5lciBjYXNlIHRl
c3RzIHRob3VnaC4KKworICAgIC8vIEZpcnN0IGNoZWNrIGlmIHJlY3QgZXZlbiBpbnRlcnNlY3Rz
IG91ciBib3VuZGluZyBib3guCisgICAgaWYgKCFyZWN0LmludGVyc2VjdHMobV9ib3VuZGluZ0Jv
eCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIElmIHRoZSB0cmFuc2Zvcm1lZCBy
ZWN0IGlzIHJlY3RpbGluZWFyIHRoZSBib3VuZGluZyBib3ggaW50ZXJzZWN0aW9uIHdhcyBhY2N1
cmF0ZS4KKyAgICBpZiAobV9pc1JlY3RpbGluZWFyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIC8vIElmIHJlY3QgZnVsbHkgY29udGFpbnMgb3VyIGJvdW5kaW5nIGJveCwgd2UgYXJlIGFs
c28gc3VyZSBvZiBhbiBpbnRlcnNlY3Rpb24uCisgICAgaWYgKHJlY3QuY29udGFpbnMobV9ib3Vu
ZGluZ0JveCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gT3RoZXJ3aXNlIHdlIG5l
ZWQgdG8gZG8gYSBzbG93ZXIgcXVhZCBiYXNlZCBpbnRlcnNlY3Rpb24gdGVzdC4KKyAgICByZXR1
cm4gbV90cmFuc2Zvcm1lZFJlY3QuaW50ZXJzZWN0c1JlY3QocmVjdCk7Cit9CisKK2Jvb2wgSGl0
VGVzdExvY2F0aW9uOjppbnRlcnNlY3RzKGNvbnN0IExheW91dFJlY3QmIHJlY3QpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGludGVyc2VjdHNSZWN0KHJlY3QpOworfQorCitib29sIEhpdFRlc3RMb2Nh
dGlvbjo6aW50ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGludGVyc2VjdHNSZWN0KHJlY3QpOworfQorCitJbnRSZWN0IEhpdFRlc3RMb2NhdGlvbjo6
cmVjdEZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgdW5zaWduZWQgdG9wUGFkZGlu
ZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25l
ZCBsZWZ0UGFkZGluZykKK3sKKyAgICBJbnRQb2ludCBhY3R1YWxQb2ludChmbG9vcmVkSW50UG9p
bnQocG9pbnQpKTsKKyAgICBhY3R1YWxQb2ludCAtPSBJbnRTaXplKGxlZnRQYWRkaW5nLCB0b3BQ
YWRkaW5nKTsKKworICAgIEludFNpemUgYWN0dWFsUGFkZGluZyhsZWZ0UGFkZGluZyArIHJpZ2h0
UGFkZGluZywgdG9wUGFkZGluZyArIGJvdHRvbVBhZGRpbmcpOworICAgIC8vIEFzIEludFJlY3Qg
aXMgbGVmdCBpbmNsdXNpdmUgYW5kIHJpZ2h0IGV4Y2x1c2l2ZSAoc2VlaW5nIEludFJlY3Q6OmNv
bnRhaW5zKHgsIHkpKSwgYWRkaW5nICIxIi4KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25j
ZSBub24tcmVjdCBiYXNlZCBoaXQtZGV0ZWN0aW9uIHN0b3BzIHVzaW5nIEludFJlY3Q6aW50ZXJz
ZWN0cy4KKyAgICBhY3R1YWxQYWRkaW5nICs9IEludFNpemUoMSwgMSk7CisKKyAgICByZXR1cm4g
SW50UmVjdChhY3R1YWxQb2ludCwgYWN0dWFsUGFkZGluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9j
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mN2YyYTAwZDE3Y2E3NzEzMDA3MDI4OTcwMTAwNTRhNjRkZjA4YTMzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oCkBA
IC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyovCisKKyNpZm5kZWYgSGl0VGVzdExvY2F0aW9uX2gKKyNkZWZpbmUg
SGl0VGVzdExvY2F0aW9uX2gKKworI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCisjaW5jbHVkZSAiTGF5b3V0
UmVjdC5oIgorI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRWxlbWVudDsKK2NsYXNzIEZyYW1lOworI2lmIEVOQUJMRShWSURFTykKK2NsYXNzIEhUTUxN
ZWRpYUVsZW1lbnQ7CisjZW5kaWYKK2NsYXNzIEltYWdlOworY2xhc3MgS1VSTDsKK2NsYXNzIE5v
ZGU7CitjbGFzcyBSZW5kZXJSZWdpb247CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNzIEhpdFRl
c3RMb2NhdGlvbiB7CitwdWJsaWM6CisKKyAgICBIaXRUZXN0TG9jYXRpb24oKTsKKyAgICBIaXRU
ZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmKTsKKyAgICBIaXRUZXN0TG9jYXRpb24oY29u
c3QgRmxvYXRQb2ludCYpOworICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgRmxvYXRRdWFkJik7CisgICAgLy8gUGFzcyBub24temVybyBwYWRkaW5nIHZhbHVlcyB0
byBwZXJmb3JtIGEgcmVjdC1iYXNlZCBoaXQgdGVzdC4KKyAgICBIaXRUZXN0TG9jYXRpb24oY29u
c3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25l
ZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRk
aW5nKTsKKyAgICAvLyBNYWtlIGEgY29weSB0aGUgSGl0VGVzdExvY2F0aW9uIGluIGEgbmV3IHJl
Z2lvbiBieSBhcHBseWluZyBnaXZlbiBvZmZzZXQgdG8gaW50ZXJuYWwgcG9pbnQgYW5kIGFyZWEu
CisgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91
dFNpemUmIG9mZnNldCwgUmVuZGVyUmVnaW9uKiA9IDApOworICAgIEhpdFRlc3RMb2NhdGlvbihj
b25zdCBIaXRUZXN0TG9jYXRpb24mKTsKKyAgICB+SGl0VGVzdExvY2F0aW9uKCk7CisgICAgSGl0
VGVzdExvY2F0aW9uJiBvcGVyYXRvcj0oY29uc3QgSGl0VGVzdExvY2F0aW9uJik7CisKKyAgICBj
b25zdCBMYXlvdXRQb2ludCYgcG9pbnQoKSBjb25zdCB7IHJldHVybiBtX3BvaW50OyB9CisgICAg
SW50UG9pbnQgcm91bmRlZFBvaW50KCkgY29uc3QgeyByZXR1cm4gcm91bmRlZEludFBvaW50KG1f
cG9pbnQpOyB9CisKKyAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVnaW9uOyB9CisKKyAgICAvLyBSZWN0LWJhc2VkIGhpdCB0ZXN0IHJlbGF0ZWQgbWV0aG9kcy4K
KyAgICBib29sIGlzUmVjdEJhc2VkVGVzdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZWN0QmFzZWQ7
IH0KKyAgICBib29sIGlzUmVjdGlsaW5lYXIoKSBjb25zdCB7IHJldHVybiBtX2lzUmVjdGlsaW5l
YXI7IH0KKyAgICBJbnRSZWN0IGJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZGlu
Z0JveDsgfQorCisgICAgc3RhdGljIEludFJlY3QgcmVjdEZvclBvaW50KGNvbnN0IExheW91dFBv
aW50JiwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25l
ZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZyk7CisgICAgaW50IHRvcFBhZGRp
bmcoKSBjb25zdCB7IHJldHVybiByb3VuZGVkUG9pbnQoKS55KCkgLSBtX2JvdW5kaW5nQm94Lnko
KTsgfQorICAgIGludCByaWdodFBhZGRpbmcoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kaW5nQm94
Lm1heFgoKSAtIHJvdW5kZWRQb2ludCgpLngoKSAtIDE7IH0KKyAgICBpbnQgYm90dG9tUGFkZGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRpbmdCb3gubWF4WSgpIC0gcm91bmRlZFBvaW50KCku
eSgpIC0gMTsgfQorICAgIGludCBsZWZ0UGFkZGluZygpIGNvbnN0IHsgcmV0dXJuIHJvdW5kZWRQ
b2ludCgpLngoKSAtIG1fYm91bmRpbmdCb3gueCgpOyB9CisKKyAgICBib29sIGludGVyc2VjdHMo
Y29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OworICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBGbG9h
dFJlY3QmKSBjb25zdDsKKworICAgIGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zZm9ybWVkUG9pbnQo
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybWVkUG9pbnQ7IH0KKyAgICBjb25zdCBGbG9hdFF1
YWQmIHRyYW5zZm9ybWVkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtZWRSZWN0OyB9
CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVjdFR5cGU+CisgICAgYm9vbCBp
bnRlcnNlY3RzUmVjdChjb25zdCBSZWN0VHlwZSYpIGNvbnN0OworICAgIHZvaWQgbW92ZShjb25z
dCBMYXlvdXRTaXplJiBvZmZzZXQpOworCisgICAgLy8gVGhpcyBpcyBjYWNoZWQgZm9ybXMgb2Yg
dGhlIG1vcmUgYWNjdXJhdGUgcG9pbnQgYW5kIGFyZWEgYmVsb3cuCisgICAgTGF5b3V0UG9pbnQg
bV9wb2ludDsKKyAgICBJbnRSZWN0IG1fYm91bmRpbmdCb3g7CisKKyAgICBGbG9hdFBvaW50IG1f
dHJhbnNmb3JtZWRQb2ludDsKKyAgICBGbG9hdFF1YWQgbV90cmFuc2Zvcm1lZFJlY3Q7CisKKyAg
ICBSZW5kZXJSZWdpb24qIG1fcmVnaW9uOyAvLyBUaGUgcmVnaW9uIHdlJ3JlIGluc2lkZS4KKwor
ICAgIGJvb2wgbV9pc1JlY3RCYXNlZDsKKyAgICBib29sIG1faXNSZWN0aWxpbmVhcjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhpdFRlc3RMb2NhdGlvbl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggMGUyZjJiYWU1
ODEzN2E5NWRiMWYwMDlhYzU1ZGZmM2Q5ZWI3NTczMi4uZjFhMzQ2ZTc4OGU0YzY0MmU5Y2Y1Mzc0
NWRlZmM5MjM5ZmFjYmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVz
dWx0LmNwcApAQCAtMjgsMTMgKzI4LDE0IEBACiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIK
ICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgot
I2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxWaWRlb0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIaXRUZXN0TG9jYXRpb24uaCIKICNpbmNsdWRl
ICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySW5saW5lLmgiCkBAIC00OSwxNTAgKzUwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2Nh
dGlvbigpCi0gICAgOiBtX3JlZ2lvbigwKQotICAgICwgbV9pc1JlY3RCYXNlZChmYWxzZSkKLSAg
ICAsIG1faXNSZWN0aWxpbmVhcih0cnVlKQotewotfQotCi1IaXRUZXN0TG9jYXRpb246OkhpdFRl
c3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCi0gICAgOiBtX3BvaW50KHBvaW50
KQotICAgICwgbV9ib3VuZGluZ0JveChyZWN0Rm9yUG9pbnQocG9pbnQsIDAsIDAsIDAsIDApKQot
ICAgICwgbV90cmFuc2Zvcm1lZFBvaW50KHBvaW50KQotICAgICwgbV90cmFuc2Zvcm1lZFJlY3Qo
bV9ib3VuZGluZ0JveCkKLSAgICAsIG1fcmVnaW9uKDApCi0gICAgLCBtX2lzUmVjdEJhc2VkKGZh
bHNlKQotICAgICwgbV9pc1JlY3RpbGluZWFyKHRydWUpCi17Ci19Ci0KLUhpdFRlc3RMb2NhdGlv
bjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQotICAgIDogbV9wb2lu
dChmbG9vcmVkTGF5b3V0UG9pbnQocG9pbnQpKQotICAgICwgbV9ib3VuZGluZ0JveChyZWN0Rm9y
UG9pbnQobV9wb2ludCwgMCwgMCwgMCwgMCkpCi0gICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQocG9p
bnQpCi0gICAgLCBtX3RyYW5zZm9ybWVkUmVjdChtX2JvdW5kaW5nQm94KQotICAgICwgbV9yZWdp
b24oMCkKLSAgICAsIG1faXNSZWN0QmFzZWQoZmFsc2UpCi0gICAgLCBtX2lzUmVjdGlsaW5lYXIo
dHJ1ZSkKLXsKLX0KLQotSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKLSAgICA6IG1fdHJhbnNmb3Jt
ZWRQb2ludChwb2ludCkKLSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KHF1YWQpCi0gICAgLCBtX3Jl
Z2lvbigwKQotICAgICwgbV9pc1JlY3RCYXNlZCh0cnVlKQotewotICAgIG1fcG9pbnQgPSBmbG9v
cmVkTGF5b3V0UG9pbnQocG9pbnQpOwotICAgIG1fYm91bmRpbmdCb3ggPSBlbmNsb3NpbmdJbnRS
ZWN0KHF1YWQuYm91bmRpbmdCb3goKSk7Ci0gICAgbV9pc1JlY3RpbGluZWFyID0gcXVhZC5pc1Jl
Y3RpbGluZWFyKCk7Ci19Ci0KLUhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0
IExheW91dFBvaW50JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQg
cmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGlu
ZykKLSAgICA6IG1fcG9pbnQoY2VudGVyUG9pbnQpCi0gICAgLCBtX2JvdW5kaW5nQm94KHJlY3RG
b3JQb2ludChjZW50ZXJQb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRk
aW5nLCBsZWZ0UGFkZGluZykpCi0gICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQoY2VudGVyUG9pbnQp
Ci0gICAgLCBtX3JlZ2lvbigwKQotICAgICwgbV9pc1JlY3RCYXNlZCh0b3BQYWRkaW5nIHx8IHJp
Z2h0UGFkZGluZyB8fCBib3R0b21QYWRkaW5nIHx8IGxlZnRQYWRkaW5nKQotICAgICwgbV9pc1Jl
Y3RpbGluZWFyKHRydWUpCi17Ci0gICAgbV90cmFuc2Zvcm1lZFJlY3QgPSBGbG9hdFF1YWQobV9i
b3VuZGluZ0JveCk7Ci19Ci0KLUhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0
IEhpdFRlc3RMb2NhdGlvbiYgb3RoZXIsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgUmVuZGVy
UmVnaW9uKiByZWdpb24pCi0gICAgOiBtX3BvaW50KG90aGVyLm1fcG9pbnQpCi0gICAgLCBtX2Jv
dW5kaW5nQm94KG90aGVyLm1fYm91bmRpbmdCb3gpCi0gICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQo
b3RoZXIubV90cmFuc2Zvcm1lZFBvaW50KQotICAgICwgbV90cmFuc2Zvcm1lZFJlY3Qob3RoZXIu
bV90cmFuc2Zvcm1lZFJlY3QpCi0gICAgLCBtX3JlZ2lvbihyZWdpb24gPyByZWdpb24gOiBvdGhl
ci5tX3JlZ2lvbikKLSAgICAsIG1faXNSZWN0QmFzZWQob3RoZXIubV9pc1JlY3RCYXNlZCkKLSAg
ICAsIG1faXNSZWN0aWxpbmVhcihvdGhlci5tX2lzUmVjdGlsaW5lYXIpCi17Ci0gICAgbW92ZShv
ZmZzZXQpOwotfQotCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRU
ZXN0TG9jYXRpb24mIG90aGVyKQotICAgIDogbV9wb2ludChvdGhlci5tX3BvaW50KQotICAgICwg
bV9ib3VuZGluZ0JveChvdGhlci5tX2JvdW5kaW5nQm94KQotICAgICwgbV90cmFuc2Zvcm1lZFBv
aW50KG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludCkKLSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG90
aGVyLm1fdHJhbnNmb3JtZWRSZWN0KQotICAgICwgbV9yZWdpb24ob3RoZXIubV9yZWdpb24pCi0g
ICAgLCBtX2lzUmVjdEJhc2VkKG90aGVyLm1faXNSZWN0QmFzZWQpCi0gICAgLCBtX2lzUmVjdGls
aW5lYXIob3RoZXIubV9pc1JlY3RpbGluZWFyKQotewotfQotCi1IaXRUZXN0TG9jYXRpb246On5I
aXRUZXN0TG9jYXRpb24oKQotewotfQotCi1IaXRUZXN0TG9jYXRpb24mIEhpdFRlc3RMb2NhdGlv
bjo6b3BlcmF0b3I9KGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgb3RoZXIpCi17Ci0gICAgbV9wb2lu
dCA9IG90aGVyLm1fcG9pbnQ7Ci0gICAgbV9ib3VuZGluZ0JveCA9IG90aGVyLm1fYm91bmRpbmdC
b3g7Ci0gICAgbV90cmFuc2Zvcm1lZFBvaW50ID0gb3RoZXIubV90cmFuc2Zvcm1lZFBvaW50Owot
ICAgIG1fdHJhbnNmb3JtZWRSZWN0ID0gb3RoZXIubV90cmFuc2Zvcm1lZFJlY3Q7Ci0gICAgbV9y
ZWdpb24gPSBvdGhlci5tX3JlZ2lvbjsKLSAgICBtX2lzUmVjdEJhc2VkID0gb3RoZXIubV9pc1Jl
Y3RCYXNlZDsKLSAgICBtX2lzUmVjdGlsaW5lYXIgPSBvdGhlci5tX2lzUmVjdGlsaW5lYXI7Ci0K
LSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLXZvaWQgSGl0VGVzdExvY2F0aW9uOjptb3ZlKGNvbnN0
IExheW91dFNpemUmIG9mZnNldCkKLXsKLSAgICBtX3BvaW50Lm1vdmUob2Zmc2V0KTsKLSAgICBt
X3RyYW5zZm9ybWVkUG9pbnQubW92ZShvZmZzZXQpOwotICAgIG1fdHJhbnNmb3JtZWRSZWN0Lm1v
dmUob2Zmc2V0KTsKLSAgICBtX2JvdW5kaW5nQm94ID0gZW5jbG9zaW5nSW50UmVjdChtX3RyYW5z
Zm9ybWVkUmVjdC5ib3VuZGluZ0JveCgpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUmVjdFR5
cGU+Ci1ib29sIEhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0c1JlY3QoY29uc3QgUmVjdFR5cGUm
IHJlY3QpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFdoZW4gdGhlIGhpdCB0ZXN0IGlzIG5vdCBy
ZWN0IGJhc2VkIHdlIHNob3VsZCB1c2UgcmVjdC5jb250YWlucyhtX3BvaW50KS4KLSAgICAvLyBU
aGF0IGRvZXMgY2hhbmdlIHNvbWUgY29ybmVyIGNhc2UgdGVzdHMgdGhvdWdoLgotCi0gICAgLy8g
Rmlyc3QgY2hlY2sgaWYgcmVjdCBldmVuIGludGVyc2VjdHMgb3VyIGJvdW5kaW5nIGJveC4KLSAg
ICBpZiAoIXJlY3QuaW50ZXJzZWN0cyhtX2JvdW5kaW5nQm94KSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgLy8gSWYgdGhlIHRyYW5zZm9ybWVkIHJlY3QgaXMgcmVjdGlsaW5lYXIgdGhl
IGJvdW5kaW5nIGJveCBpbnRlcnNlY3Rpb24gd2FzIGFjY3VyYXRlLgotICAgIGlmIChtX2lzUmVj
dGlsaW5lYXIpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgLy8gSWYgcmVjdCBmdWxseSBj
b250YWlucyBvdXIgYm91bmRpbmcgYm94LCB3ZSBhcmUgYWxzbyBzdXJlIG9mIGFuIGludGVyc2Vj
dGlvbi4KLSAgICBpZiAocmVjdC5jb250YWlucyhtX2JvdW5kaW5nQm94KSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICAvLyBPdGhlcndpc2Ugd2UgbmVlZCB0byBkbyBhIHNsb3dlciBxdWFk
IGJhc2VkIGludGVyc2VjdGlvbiB0ZXN0LgotICAgIHJldHVybiBtX3RyYW5zZm9ybWVkUmVjdC5p
bnRlcnNlY3RzUmVjdChyZWN0KTsKLX0KLQotYm9vbCBIaXRUZXN0TG9jYXRpb246OmludGVyc2Vj
dHMoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkgY29uc3QKLXsKLSAgICByZXR1cm4gaW50ZXJzZWN0
c1JlY3QocmVjdCk7Ci19Ci0KLWJvb2wgSGl0VGVzdExvY2F0aW9uOjppbnRlcnNlY3RzKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKLXsKLSAgICByZXR1cm4gaW50ZXJzZWN0c1JlY3QocmVj
dCk7Ci19Ci0KLUludFJlY3QgSGl0VGVzdExvY2F0aW9uOjpyZWN0Rm9yUG9pbnQoY29uc3QgTGF5
b3V0UG9pbnQmIHBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRp
bmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKQotewotICAg
IEludFBvaW50IGFjdHVhbFBvaW50KGZsb29yZWRJbnRQb2ludChwb2ludCkpOwotICAgIGFjdHVh
bFBvaW50IC09IEludFNpemUobGVmdFBhZGRpbmcsIHRvcFBhZGRpbmcpOwotCi0gICAgSW50U2l6
ZSBhY3R1YWxQYWRkaW5nKGxlZnRQYWRkaW5nICsgcmlnaHRQYWRkaW5nLCB0b3BQYWRkaW5nICsg
Ym90dG9tUGFkZGluZyk7Ci0gICAgLy8gQXMgSW50UmVjdCBpcyBsZWZ0IGluY2x1c2l2ZSBhbmQg
cmlnaHQgZXhjbHVzaXZlIChzZWVpbmcgSW50UmVjdDo6Y29udGFpbnMoeCwgeSkpLCBhZGRpbmcg
IjEiLgotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIG5vbi1yZWN0IGJhc2VkIGhpdC1k
ZXRlY3Rpb24gc3RvcHMgdXNpbmcgSW50UmVjdDppbnRlcnNlY3RzLgotICAgIGFjdHVhbFBhZGRp
bmcgKz0gSW50U2l6ZSgxLCAxKTsKLQotICAgIHJldHVybiBJbnRSZWN0KGFjdHVhbFBvaW50LCBh
Y3R1YWxQYWRkaW5nKTsKLX0KLQogSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdCgpCiAgICAg
OiBtX2lzT3ZlcldpZGdldChmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5oCmluZGV4IDI3Y2JiNWVhZDQ2NDQwNGZhNmNiYWZmZjE0ODgyZjI1MzNlZjRkYjQu
LjI1YTY5NTVhNGJjNWM2NzQ1ODliNWVjNGJhYmY2MDExMzM3OTdlYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVk
ZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiSGl0VGVz
dExvY2F0aW9uLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJMYXlv
dXRSZWN0LmgiCiAjaW5jbHVkZSAiVGV4dERpcmVjdGlvbi5oIgpAQCAtNDUsNjIgKzQ2LDYgQEAg
Y2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRlclJlZ2lvbjsKIGNsYXNzIFNjcm9sbGJhcjsKIAotLy8g
RklYTUU6IEhpdFRlc3RMb2NhdGlvbiBzaG91bGQgYmUgbW92ZWQgdG8gYSBzZXBhcmF0ZSBmaWxl
LgotY2xhc3MgSGl0VGVzdExvY2F0aW9uIHsKLXB1YmxpYzoKLQotICAgIEhpdFRlc3RMb2NhdGlv
bigpOwotICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIEhpdFRl
c3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50Jik7Ci0gICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFF1YWQmKTsKLSAgICAvLyBQYXNzIG5vbi16ZXJvIHBh
ZGRpbmcgdmFsdWVzIHRvIHBlcmZvcm0gYSByZWN0LWJhc2VkIGhpdCB0ZXN0LgotICAgIEhpdFRl
c3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBh
ZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5z
aWduZWQgbGVmdFBhZGRpbmcpOwotICAgIC8vIE1ha2UgYSBjb3B5IHRoZSBIaXRUZXN0TG9jYXRp
b24gaW4gYSBuZXcgcmVnaW9uIGJ5IGFwcGx5aW5nIGdpdmVuIG9mZnNldCB0byBpbnRlcm5hbCBw
b2ludCBhbmQgYXJlYS4KLSAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9u
JiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0LCBSZW5kZXJSZWdpb24qID0gMCk7Ci0gICAgSGl0
VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYpOwotICAgIH5IaXRUZXN0TG9jYXRp
b24oKTsKLSAgICBIaXRUZXN0TG9jYXRpb24mIG9wZXJhdG9yPShjb25zdCBIaXRUZXN0TG9jYXRp
b24mKTsKLQotICAgIGNvbnN0IExheW91dFBvaW50JiBwb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9pbnQ7IH0KLSAgICBJbnRQb2ludCByb3VuZGVkUG9pbnQoKSBjb25zdCB7IHJldHVybiByb3Vu
ZGVkSW50UG9pbnQobV9wb2ludCk7IH0KLQotICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uKCkgY29u
c3QgeyByZXR1cm4gbV9yZWdpb247IH0KLQotICAgIC8vIFJlY3QtYmFzZWQgaGl0IHRlc3QgcmVs
YXRlZCBtZXRob2RzLgotICAgIGJvb2wgaXNSZWN0QmFzZWRUZXN0KCkgY29uc3QgeyByZXR1cm4g
bV9pc1JlY3RCYXNlZDsgfQotICAgIGJvb2wgaXNSZWN0aWxpbmVhcigpIGNvbnN0IHsgcmV0dXJu
IG1faXNSZWN0aWxpbmVhcjsgfQotICAgIEludFJlY3QgYm91bmRpbmdCb3goKSBjb25zdCB7IHJl
dHVybiBtX2JvdW5kaW5nQm94OyB9Ci0KLSAgICBzdGF0aWMgSW50UmVjdCByZWN0Rm9yUG9pbnQo
Y29uc3QgTGF5b3V0UG9pbnQmLCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBh
ZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKTsKLSAg
ICBpbnQgdG9wUGFkZGluZygpIGNvbnN0IHsgcmV0dXJuIHJvdW5kZWRQb2ludCgpLnkoKSAtIG1f
Ym91bmRpbmdCb3gueSgpOyB9Ci0gICAgaW50IHJpZ2h0UGFkZGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fYm91bmRpbmdCb3gubWF4WCgpIC0gcm91bmRlZFBvaW50KCkueCgpIC0gMTsgfQotICAgIGlu
dCBib3R0b21QYWRkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZGluZ0JveC5tYXhZKCkgLSBy
b3VuZGVkUG9pbnQoKS55KCkgLSAxOyB9Ci0gICAgaW50IGxlZnRQYWRkaW5nKCkgY29uc3QgeyBy
ZXR1cm4gcm91bmRlZFBvaW50KCkueCgpIC0gbV9ib3VuZGluZ0JveC54KCk7IH0KLQotICAgIGJv
b2wgaW50ZXJzZWN0cyhjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7Ci0gICAgYm9vbCBpbnRlcnNl
Y3RzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwotCi0gICAgY29uc3QgRmxvYXRQb2ludCYgdHJh
bnNmb3JtZWRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtZWRQb2ludDsgfQotICAg
IGNvbnN0IEZsb2F0UXVhZCYgdHJhbnNmb3JtZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2Zvcm1lZFJlY3Q7IH0KLQotcHJpdmF0ZToKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0VHlw
ZT4KLSAgICBib29sIGludGVyc2VjdHNSZWN0KGNvbnN0IFJlY3RUeXBlJikgY29uc3Q7Ci0gICAg
dm9pZCBtb3ZlKGNvbnN0IExheW91dFNpemUmIG9mZnNldCk7Ci0KLSAgICAvLyBUaGlzIGlzIGNh
Y2hlZCBmb3JtcyBvZiB0aGUgbW9yZSBhY2N1cmF0ZSBwb2ludCBhbmQgYXJlYSBiZWxvdy4KLSAg
ICBMYXlvdXRQb2ludCBtX3BvaW50OwotICAgIEludFJlY3QgbV9ib3VuZGluZ0JveDsKLQotICAg
IEZsb2F0UG9pbnQgbV90cmFuc2Zvcm1lZFBvaW50OwotICAgIEZsb2F0UXVhZCBtX3RyYW5zZm9y
bWVkUmVjdDsKLQotICAgIFJlbmRlclJlZ2lvbiogbV9yZWdpb247IC8vIFRoZSByZWdpb24gd2Un
cmUgaW5zaWRlLgotCi0gICAgYm9vbCBtX2lzUmVjdEJhc2VkOwotICAgIGJvb2wgbV9pc1JlY3Rp
bGluZWFyOwotfTsKLQogY2xhc3MgSGl0VGVzdFJlc3VsdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBMaXN0SGFzaFNldDxSZWZQdHI8Tm9kZT4gPiBOb2RlU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggMTNhOTdlMzYxYmRkNGY5ZjYyNDBkZjU2ZDljN2Ez
M2JkMTUxMDc5Yy4uOGNkYTIzMGIyNjVhNDNkZTM2ZDhiOWM3MWQwMDBmMWYxMjZhYmQ4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSGl0VGVzdExvY2F0aW9uLmgi
CiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191212</attachid>
            <date>2013-03-04 05:42:50 -0800</date>
            <delta_ts>2013-03-04 06:14:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111294-20130304143857.patch</filename>
            <type>text/plain</type>
            <size>20603</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRkZTUwODYwNGFkOGYw
OGY0ODM5MjczNmIwNzUyZWNjYjZlNDU1Mi4uOTQ4MmMzNWQ2MTMwY2FjNTQ3NjU3ZjFmYTFhMTQ5
ZjE3ZjY4MWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAzLTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW51cDogTW92ZSBIaXRU
ZXN0TG9jYXRpb24gYW5kIEhpdFRlc3RSZXN1bHQgaW50byBzZXBhcmF0ZSBmaWxlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTI5NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsbGFuIFNhbmRmZWxkIEplbnNlbi4KKworICAgICAgICBIaXRUZXN0
TG9jYXRpb24gYW5kIEhpdFRlc3RSZXN1bHQgY3VycmVudGx5IGJvdGggbGl2ZSBpbgorICAgICAg
ICBIaXRUZXN0UmVzdWx0LmguIFRoYXQgbWFrZXMgdGhpbmdzIG1vcmUgZGlmZmljdWx0IHRvIHVu
ZGVyc3RhbmQgdGhhbgorICAgICAgICB0aGV5IHNob3VsZCBiZSwgYW5kIHZpb2xhdGVzIHRoZSBv
bmUtY2xhc3Mtb25lLWZpbGUgcHJpbmNpcGxlIHRoYXQKKyAgICAgICAgV2ViS2l0IGdlbmVyYWxs
eSBmb2xsb3dzLiBIYXBwaWx5LCBpdCdzIGZhaXJseSB0cml2aWFsIHRvIGZpeC4KKworICAgICAg
ICBUaGlzIHNob3VsZCBoYXZlIG5vIHZpc2libGUgY2hhbmdlOyBpdCdzIHN0cmljdGx5IGFuIGlu
dGVybmFsCisgICAgICAgIHJlZmFjdG9yaW5nLiBJdCBkb2Vzbid0IGV2ZW4gdG91Y2ggYW55IGlt
cGxlbWVudGF0aW9uIGNvZGU6IHdlJ3JlCisgICAgICAgIGp1c3QgbW92aW5nIGJpdHMgZnJvbSBv
bmUgcGxhY2UgdG8gYW5vdGhlci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAg
ICAgSGV5LCBsb29rOiBhIG5ldyBmaWxlISBMZXQncyBhZGQgaXQgdG8gc2l4IGRpZmZlcmVudCBi
dWlsZCBzeXN0ZW1zISA6KQorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExv
Y2F0aW9uOjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0
aW9uOjp+SGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlv
bjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6bW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmludGVyc2VjdHNSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnJlY3RGb3JQb2ludCk6CisgICAgICAgICogcmVuZGVy
aW5nL0hpdFRlc3RMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjpyb3VuZGVkUG9pbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjpyZWdpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjppc1JlY3RCYXNlZFRlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SGl0VGVzdExvY2F0aW9uOjppc1JlY3RpbGluZWFyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RMb2NhdGlvbjo6Ym91bmRpbmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dExvY2F0aW9uOjp0b3BQYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlv
bjo6cmlnaHRQYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6Ym90
dG9tUGFkZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmxlZnRQYWRk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6dHJhbnNmb3JtZWRQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnRyYW5zZm9ybWVkUmVjdCk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAqIHJlbmRl
cmluZy9IaXRUZXN0UmVzdWx0Lmg6CisgICAgICAgICAgICBNb3ZlIGFsbCB0aGlzIGNvZGUgZnJv
bSBIaXRUZXN0UmVzdWx0LiogdG8gSGl0VGVzdExvY2F0aW9uLiouCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgICAgIEluY2x1ZGUgSGl0VGVzdExvY2F0aW9u
LmguCisKIDIwMTMtMDMtMDQgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiB0b3VjaG1vdmUgbm90IGVtdWxhdGVkIGluc2lk
ZSBpZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTE5NzMyMTY3MzQzNDg1MDI5YmVmMjA0
ZmE4OTRlYWQ1MDlkZTUyOC4uNDE5ZDI1ODVmMmZlMTFjZmU5YzUyY2IxOGU1NWUwZGMyOGU2ZTIy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxMzUsNiArMjEzNSw3IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKICAgICByZW5kZXJp
bmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFu
c2Zvcm1TdGF0ZS5jcHAKKyAgICByZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcAogICAgIHJl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAogICAgIHJlbmRlcmluZy9JbmxpbmVCb3guY3BwCiAg
ICAgcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA1ODI1YjFmOGFkMTVhNGZlZTE3NmE5MmFkMGZmMGRkYjRjYjVmNzhjLi5jODE3ZjA3
YzY3MjJjMjk5NTc1NGY1YTM2NTZlNThmNTEyZTk5YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTQzNjgsNiArNDM2OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdExvY2F0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggNjAzY2RiZGIyNzg3NDA3NWRkNGZiMTE2ZWM0ODU2MjIxZmIyYWVlNS4uNzg2ZGUxY2ViMGE4
ZjMxN2MxZTQ3YjkzYTcxYjY1N2YyYjhjODU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTczLDYgKzEx
NzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAg
XAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgXAogICAgIHJlbmRlcmlu
Zy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwIFwKKyAgICByZW5kZXJpbmcvSGl0VGVzdExv
Y2F0aW9uLmNwcCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIFwKICAgICByZW5k
ZXJpbmcvSW5saW5lQm94LmNwcCBcCiAgICAgcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIFwK
QEAgLTI0NTEsNiArMjQ1Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5oIFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oIFwKICAg
ICByZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggXAorICAgIHJlbmRlcmluZy9I
aXRUZXN0TG9jYXRpb24uaCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCBcCiAgICAg
cmVuZGVyaW5nL0lubGluZUJveC5oIFwKICAgICByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA1MzEyMWRmMGFlMjY4NDIzMTdkYWE5ZTQ3YzIyMTJiYjE0MWMw
NzM1Li5iYTZlMzkwNDZiY2EyNWJjOTRhMWFhMGNhMzdkODkyMWVhOTU0NjEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0yNDAyLDYgKzI0MDIsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9UZXh0
QXV0b3NpemVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3Jt
U3RhdGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0
YXRlLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwJywKKyAg
ICAgICAgICAgICdyZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgnLAogICAgICAgICAgICAgJ3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0lubGlu
ZUJveC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGVjNDI2
NDM5Y2E5NGY2MWRiZTc4OWQzN2Q5ODhlMGRmOTczNWY3MmEuLjIxNzU5YWUxN2FmNGZmM2Q2NWRh
YzEwMWVmNGI5ZDhhY2JhNTgyY2YgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC0zOTM2Myw2ICszOTM2Myw2MiBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcSGl0VGVzdExvY2F0
aW9uLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEhpdFRlc3RMb2NhdGlvbi5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcSGl0VGVzdFJlcXVl
c3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDM4NjE1NTg3ZjhjMmE1N2ZiYzg1MTAyMDA0
OGZjNDJhN2Q5MWUxYS4uNmUwOGVmMDM0ODIxZTI1ZDUzYTkyZTBlYzYzMDBjMTExMzAzN2UwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNzk4LDYgKzc5OCw4IEBACiAJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlLmggKi87IH07CiAJCTJENUE1OTJGMTUyNTI1MjMwMDM2RUU1MSAvKiBJbWFnZU9yaWVu
dGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4NzQ4RDc0MTJDQzNGODkwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmNwcCAqLzsgfTsK
IAkJMkQ1QTU5MzExNTI1MjVEMDAwMzZFRTUxIC8qIEltYWdlT3JpZW50YXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzQ4RDY2MTJDQzM3NjMw
MDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkQ4Mjg3RjYxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRl
c3RMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmNwcCAqLzsg
fTsKKwkJMkQ4Mjg3RjcxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4Mjg3RjUxNkU0QTAz
ODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEOEZFQkRDMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1ND
cm9zc2ZhZGVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDhGRUJEQTE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3Bw
ICovOyB9OwogCQkyRDhGRUJERDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRC
MTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovOyB9OwogCQkyRDkwNjYw
NjBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExh
eW91dFN0YXRlLmNwcCAqLzsgfTsKQEAgLTgxNjcsNiArODE2OSw4IEBACiAJCTJEMkZDMDU2MTQ2
MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRDNBMEUzNTEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhcnNpbmdFcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RMb2Nh
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEODI4N0Y1MTZFNEEwMzgw
MDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSGl0VGVzdExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
OEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1ND
cm9zc2ZhZGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDcm9z
c2ZhZGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDkwNjYwNDBCRTE0
MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExheW91dFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyMjY0LDYgKzIyMjY4LDggQEAKIAkJCQk5MzVDNDc3NDA5QUM0RDhEMDBBNkFBQjQgLyog
R2FwUmVjdHMuaCAqLywKIAkJCQk0OTY5QjBGMDEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGlu
Z1RyYW5zZm9ybVN0YXRlLmNwcCAqLywKIAkJCQk0OTY5QjBGMTEzRDBCMzNGMDBERjM1MjEgLyog
SGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggKi8sCisJCQkJMkQ4Mjg3RjQxNkU0QTAzODAwODZC
RDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5jcHAgKi8sCisJCQkJMkQ4Mjg3RjUxNkU0QTAzODAwODZC
RDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oICovLAogCQkJCTkzMDkwODkwMEFGN0VERTQwMDgxREYw
MSAvKiBIaXRUZXN0UmVxdWVzdC5oICovLAogCQkJCTkzMDdGMUQ1MEFGMkQ1OTAwMERCQTMxQSAv
KiBIaXRUZXN0UmVzdWx0LmNwcCAqLywKIAkJCQk5MzA3RjFENjBBRjJENTkwMDBEQkEzMUEgLyog
SGl0VGVzdFJlc3VsdC5oICovLApAQCAtMjY2NTEsNiArMjY2NTcsNyBAQAogCQkJCUEwMjQ1NzUy
MTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTMxQzRFNEYxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUEzMUM0RTU0MTZFMDJCNDAwMDJGNzk1NyAvKiBKU09FU1RleHR1cmVIYWxm
RmxvYXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEODI4N0Y3MTZFNEEwMzgwMDg2QkQwMCAvKiBI
aXRUZXN0TG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjk4NDksNiArMjk4NTYsNyBAQAog
CQkJCUEwMjQ1NzUxMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBMzFDNEU0RDE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZG
bG9hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMzFDNEU1MjE2RTAyQjA4MDAyRjc5NTcgLyog
SlNPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJEODI4N0Y2MTZF
NEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggMGUyZjJiYWU1ODEz
N2E5NWRiMWYwMDlhYzU1ZGZmM2Q5ZWI3NTczMi4uZjFhMzQ2ZTc4OGU0YzY0MmU5Y2Y1Mzc0NWRl
ZmM5MjM5ZmFjYmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmNwcApAQCAtMjgsMTMgKzI4LDE0IEBACiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgotI2lu
Y2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21z
LmgiCiAjaW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxW
aWRlb0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIaXRUZXN0TG9jYXRpb24uaCIKICNpbmNsdWRlICJS
ZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
SW5saW5lLmgiCkBAIC00OSwxNTAgKzUwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlv
bigpCi0gICAgOiBtX3JlZ2lvbigwKQotICAgICwgbV9pc1JlY3RCYXNlZChmYWxzZSkKLSAgICAs
IG1faXNSZWN0aWxpbmVhcih0cnVlKQotewotfQotCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RM
b2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCi0gICAgOiBtX3BvaW50KHBvaW50KQot
ICAgICwgbV9ib3VuZGluZ0JveChyZWN0Rm9yUG9pbnQocG9pbnQsIDAsIDAsIDAsIDApKQotICAg
ICwgbV90cmFuc2Zvcm1lZFBvaW50KHBvaW50KQotICAgICwgbV90cmFuc2Zvcm1lZFJlY3QobV9i
b3VuZGluZ0JveCkKLSAgICAsIG1fcmVnaW9uKDApCi0gICAgLCBtX2lzUmVjdEJhc2VkKGZhbHNl
KQotICAgICwgbV9pc1JlY3RpbGluZWFyKHRydWUpCi17Ci19Ci0KLUhpdFRlc3RMb2NhdGlvbjo6
SGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQotICAgIDogbV9wb2ludChm
bG9vcmVkTGF5b3V0UG9pbnQocG9pbnQpKQotICAgICwgbV9ib3VuZGluZ0JveChyZWN0Rm9yUG9p
bnQobV9wb2ludCwgMCwgMCwgMCwgMCkpCi0gICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQocG9pbnQp
Ci0gICAgLCBtX3RyYW5zZm9ybWVkUmVjdChtX2JvdW5kaW5nQm94KQotICAgICwgbV9yZWdpb24o
MCkKLSAgICAsIG1faXNSZWN0QmFzZWQoZmFsc2UpCi0gICAgLCBtX2lzUmVjdGlsaW5lYXIodHJ1
ZSkKLXsKLX0KLQotSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKLSAgICA6IG1fdHJhbnNmb3JtZWRQ
b2ludChwb2ludCkKLSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KHF1YWQpCi0gICAgLCBtX3JlZ2lv
bigwKQotICAgICwgbV9pc1JlY3RCYXNlZCh0cnVlKQotewotICAgIG1fcG9pbnQgPSBmbG9vcmVk
TGF5b3V0UG9pbnQocG9pbnQpOwotICAgIG1fYm91bmRpbmdCb3ggPSBlbmNsb3NpbmdJbnRSZWN0
KHF1YWQuYm91bmRpbmdCb3goKSk7Ci0gICAgbV9pc1JlY3RpbGluZWFyID0gcXVhZC5pc1JlY3Rp
bGluZWFyKCk7Ci19Ci0KLUhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IExh
eW91dFBvaW50JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmln
aHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZykK
LSAgICA6IG1fcG9pbnQoY2VudGVyUG9pbnQpCi0gICAgLCBtX2JvdW5kaW5nQm94KHJlY3RGb3JQ
b2ludChjZW50ZXJQb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5n
LCBsZWZ0UGFkZGluZykpCi0gICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQoY2VudGVyUG9pbnQpCi0g
ICAgLCBtX3JlZ2lvbigwKQotICAgICwgbV9pc1JlY3RCYXNlZCh0b3BQYWRkaW5nIHx8IHJpZ2h0
UGFkZGluZyB8fCBib3R0b21QYWRkaW5nIHx8IGxlZnRQYWRkaW5nKQotICAgICwgbV9pc1JlY3Rp
bGluZWFyKHRydWUpCi17Ci0gICAgbV90cmFuc2Zvcm1lZFJlY3QgPSBGbG9hdFF1YWQobV9ib3Vu
ZGluZ0JveCk7Ci19Ci0KLUhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IEhp
dFRlc3RMb2NhdGlvbiYgb3RoZXIsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgUmVuZGVyUmVn
aW9uKiByZWdpb24pCi0gICAgOiBtX3BvaW50KG90aGVyLm1fcG9pbnQpCi0gICAgLCBtX2JvdW5k
aW5nQm94KG90aGVyLm1fYm91bmRpbmdCb3gpCi0gICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQob3Ro
ZXIubV90cmFuc2Zvcm1lZFBvaW50KQotICAgICwgbV90cmFuc2Zvcm1lZFJlY3Qob3RoZXIubV90
cmFuc2Zvcm1lZFJlY3QpCi0gICAgLCBtX3JlZ2lvbihyZWdpb24gPyByZWdpb24gOiBvdGhlci5t
X3JlZ2lvbikKLSAgICAsIG1faXNSZWN0QmFzZWQob3RoZXIubV9pc1JlY3RCYXNlZCkKLSAgICAs
IG1faXNSZWN0aWxpbmVhcihvdGhlci5tX2lzUmVjdGlsaW5lYXIpCi17Ci0gICAgbW92ZShvZmZz
ZXQpOwotfQotCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0
TG9jYXRpb24mIG90aGVyKQotICAgIDogbV9wb2ludChvdGhlci5tX3BvaW50KQotICAgICwgbV9i
b3VuZGluZ0JveChvdGhlci5tX2JvdW5kaW5nQm94KQotICAgICwgbV90cmFuc2Zvcm1lZFBvaW50
KG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludCkKLSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG90aGVy
Lm1fdHJhbnNmb3JtZWRSZWN0KQotICAgICwgbV9yZWdpb24ob3RoZXIubV9yZWdpb24pCi0gICAg
LCBtX2lzUmVjdEJhc2VkKG90aGVyLm1faXNSZWN0QmFzZWQpCi0gICAgLCBtX2lzUmVjdGlsaW5l
YXIob3RoZXIubV9pc1JlY3RpbGluZWFyKQotewotfQotCi1IaXRUZXN0TG9jYXRpb246On5IaXRU
ZXN0TG9jYXRpb24oKQotewotfQotCi1IaXRUZXN0TG9jYXRpb24mIEhpdFRlc3RMb2NhdGlvbjo6
b3BlcmF0b3I9KGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgb3RoZXIpCi17Ci0gICAgbV9wb2ludCA9
IG90aGVyLm1fcG9pbnQ7Ci0gICAgbV9ib3VuZGluZ0JveCA9IG90aGVyLm1fYm91bmRpbmdCb3g7
Ci0gICAgbV90cmFuc2Zvcm1lZFBvaW50ID0gb3RoZXIubV90cmFuc2Zvcm1lZFBvaW50OwotICAg
IG1fdHJhbnNmb3JtZWRSZWN0ID0gb3RoZXIubV90cmFuc2Zvcm1lZFJlY3Q7Ci0gICAgbV9yZWdp
b24gPSBvdGhlci5tX3JlZ2lvbjsKLSAgICBtX2lzUmVjdEJhc2VkID0gb3RoZXIubV9pc1JlY3RC
YXNlZDsKLSAgICBtX2lzUmVjdGlsaW5lYXIgPSBvdGhlci5tX2lzUmVjdGlsaW5lYXI7Ci0KLSAg
ICByZXR1cm4gKnRoaXM7Ci19Ci0KLXZvaWQgSGl0VGVzdExvY2F0aW9uOjptb3ZlKGNvbnN0IExh
eW91dFNpemUmIG9mZnNldCkKLXsKLSAgICBtX3BvaW50Lm1vdmUob2Zmc2V0KTsKLSAgICBtX3Ry
YW5zZm9ybWVkUG9pbnQubW92ZShvZmZzZXQpOwotICAgIG1fdHJhbnNmb3JtZWRSZWN0Lm1vdmUo
b2Zmc2V0KTsKLSAgICBtX2JvdW5kaW5nQm94ID0gZW5jbG9zaW5nSW50UmVjdChtX3RyYW5zZm9y
bWVkUmVjdC5ib3VuZGluZ0JveCgpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUmVjdFR5cGU+
Ci1ib29sIEhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0c1JlY3QoY29uc3QgUmVjdFR5cGUmIHJl
Y3QpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFdoZW4gdGhlIGhpdCB0ZXN0IGlzIG5vdCByZWN0
IGJhc2VkIHdlIHNob3VsZCB1c2UgcmVjdC5jb250YWlucyhtX3BvaW50KS4KLSAgICAvLyBUaGF0
IGRvZXMgY2hhbmdlIHNvbWUgY29ybmVyIGNhc2UgdGVzdHMgdGhvdWdoLgotCi0gICAgLy8gRmly
c3QgY2hlY2sgaWYgcmVjdCBldmVuIGludGVyc2VjdHMgb3VyIGJvdW5kaW5nIGJveC4KLSAgICBp
ZiAoIXJlY3QuaW50ZXJzZWN0cyhtX2JvdW5kaW5nQm94KSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgLy8gSWYgdGhlIHRyYW5zZm9ybWVkIHJlY3QgaXMgcmVjdGlsaW5lYXIgdGhlIGJv
dW5kaW5nIGJveCBpbnRlcnNlY3Rpb24gd2FzIGFjY3VyYXRlLgotICAgIGlmIChtX2lzUmVjdGls
aW5lYXIpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgLy8gSWYgcmVjdCBmdWxseSBjb250
YWlucyBvdXIgYm91bmRpbmcgYm94LCB3ZSBhcmUgYWxzbyBzdXJlIG9mIGFuIGludGVyc2VjdGlv
bi4KLSAgICBpZiAocmVjdC5jb250YWlucyhtX2JvdW5kaW5nQm94KSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICAvLyBPdGhlcndpc2Ugd2UgbmVlZCB0byBkbyBhIHNsb3dlciBxdWFkIGJh
c2VkIGludGVyc2VjdGlvbiB0ZXN0LgotICAgIHJldHVybiBtX3RyYW5zZm9ybWVkUmVjdC5pbnRl
cnNlY3RzUmVjdChyZWN0KTsKLX0KLQotYm9vbCBIaXRUZXN0TG9jYXRpb246OmludGVyc2VjdHMo
Y29uc3QgTGF5b3V0UmVjdCYgcmVjdCkgY29uc3QKLXsKLSAgICByZXR1cm4gaW50ZXJzZWN0c1Jl
Y3QocmVjdCk7Ci19Ci0KLWJvb2wgSGl0VGVzdExvY2F0aW9uOjppbnRlcnNlY3RzKGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkgY29uc3QKLXsKLSAgICByZXR1cm4gaW50ZXJzZWN0c1JlY3QocmVjdCk7
Ci19Ci0KLUludFJlY3QgSGl0VGVzdExvY2F0aW9uOjpyZWN0Rm9yUG9pbnQoY29uc3QgTGF5b3V0
UG9pbnQmIHBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcs
IHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKQotewotICAgIElu
dFBvaW50IGFjdHVhbFBvaW50KGZsb29yZWRJbnRQb2ludChwb2ludCkpOwotICAgIGFjdHVhbFBv
aW50IC09IEludFNpemUobGVmdFBhZGRpbmcsIHRvcFBhZGRpbmcpOwotCi0gICAgSW50U2l6ZSBh
Y3R1YWxQYWRkaW5nKGxlZnRQYWRkaW5nICsgcmlnaHRQYWRkaW5nLCB0b3BQYWRkaW5nICsgYm90
dG9tUGFkZGluZyk7Ci0gICAgLy8gQXMgSW50UmVjdCBpcyBsZWZ0IGluY2x1c2l2ZSBhbmQgcmln
aHQgZXhjbHVzaXZlIChzZWVpbmcgSW50UmVjdDo6Y29udGFpbnMoeCwgeSkpLCBhZGRpbmcgIjEi
LgotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIG5vbi1yZWN0IGJhc2VkIGhpdC1kZXRl
Y3Rpb24gc3RvcHMgdXNpbmcgSW50UmVjdDppbnRlcnNlY3RzLgotICAgIGFjdHVhbFBhZGRpbmcg
Kz0gSW50U2l6ZSgxLCAxKTsKLQotICAgIHJldHVybiBJbnRSZWN0KGFjdHVhbFBvaW50LCBhY3R1
YWxQYWRkaW5nKTsKLX0KLQogSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdCgpCiAgICAgOiBt
X2lzT3ZlcldpZGdldChmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5oCmluZGV4IDI3Y2JiNWVhZDQ2NDQwNGZhNmNiYWZmZjE0ODgyZjI1MzNlZjRkYjQuLjI1
YTY5NTVhNGJjNWM2NzQ1ODliNWVjNGJhYmY2MDExMzM3OTdlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAi
RmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiSGl0VGVzdExv
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJMYXlvdXRS
ZWN0LmgiCiAjaW5jbHVkZSAiVGV4dERpcmVjdGlvbi5oIgpAQCAtNDUsNjIgKzQ2LDYgQEAgY2xh
c3MgTm9kZTsKIGNsYXNzIFJlbmRlclJlZ2lvbjsKIGNsYXNzIFNjcm9sbGJhcjsKIAotLy8gRklY
TUU6IEhpdFRlc3RMb2NhdGlvbiBzaG91bGQgYmUgbW92ZWQgdG8gYSBzZXBhcmF0ZSBmaWxlLgot
Y2xhc3MgSGl0VGVzdExvY2F0aW9uIHsKLXB1YmxpYzoKLQotICAgIEhpdFRlc3RMb2NhdGlvbigp
OwotICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIEhpdFRlc3RM
b2NhdGlvbihjb25zdCBGbG9hdFBvaW50Jik7Ci0gICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmLCBjb25zdCBGbG9hdFF1YWQmKTsKLSAgICAvLyBQYXNzIG5vbi16ZXJvIHBhZGRp
bmcgdmFsdWVzIHRvIHBlcmZvcm0gYSByZWN0LWJhc2VkIGhpdCB0ZXN0LgotICAgIEhpdFRlc3RM
b2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRp
bmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWdu
ZWQgbGVmdFBhZGRpbmcpOwotICAgIC8vIE1ha2UgYSBjb3B5IHRoZSBIaXRUZXN0TG9jYXRpb24g
aW4gYSBuZXcgcmVnaW9uIGJ5IGFwcGx5aW5nIGdpdmVuIG9mZnNldCB0byBpbnRlcm5hbCBwb2lu
dCBhbmQgYXJlYS4KLSAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJiwg
Y29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0LCBSZW5kZXJSZWdpb24qID0gMCk7Ci0gICAgSGl0VGVz
dExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYpOwotICAgIH5IaXRUZXN0TG9jYXRpb24o
KTsKLSAgICBIaXRUZXN0TG9jYXRpb24mIG9wZXJhdG9yPShjb25zdCBIaXRUZXN0TG9jYXRpb24m
KTsKLQotICAgIGNvbnN0IExheW91dFBvaW50JiBwb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9p
bnQ7IH0KLSAgICBJbnRQb2ludCByb3VuZGVkUG9pbnQoKSBjb25zdCB7IHJldHVybiByb3VuZGVk
SW50UG9pbnQobV9wb2ludCk7IH0KLQotICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWdpb247IH0KLQotICAgIC8vIFJlY3QtYmFzZWQgaGl0IHRlc3QgcmVsYXRl
ZCBtZXRob2RzLgotICAgIGJvb2wgaXNSZWN0QmFzZWRUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9p
c1JlY3RCYXNlZDsgfQotICAgIGJvb2wgaXNSZWN0aWxpbmVhcigpIGNvbnN0IHsgcmV0dXJuIG1f
aXNSZWN0aWxpbmVhcjsgfQotICAgIEludFJlY3QgYm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVy
biBtX2JvdW5kaW5nQm94OyB9Ci0KLSAgICBzdGF0aWMgSW50UmVjdCByZWN0Rm9yUG9pbnQoY29u
c3QgTGF5b3V0UG9pbnQmLCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRp
bmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKTsKLSAgICBp
bnQgdG9wUGFkZGluZygpIGNvbnN0IHsgcmV0dXJuIHJvdW5kZWRQb2ludCgpLnkoKSAtIG1fYm91
bmRpbmdCb3gueSgpOyB9Ci0gICAgaW50IHJpZ2h0UGFkZGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
Ym91bmRpbmdCb3gubWF4WCgpIC0gcm91bmRlZFBvaW50KCkueCgpIC0gMTsgfQotICAgIGludCBi
b3R0b21QYWRkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZGluZ0JveC5tYXhZKCkgLSByb3Vu
ZGVkUG9pbnQoKS55KCkgLSAxOyB9Ci0gICAgaW50IGxlZnRQYWRkaW5nKCkgY29uc3QgeyByZXR1
cm4gcm91bmRlZFBvaW50KCkueCgpIC0gbV9ib3VuZGluZ0JveC54KCk7IH0KLQotICAgIGJvb2wg
aW50ZXJzZWN0cyhjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7Ci0gICAgYm9vbCBpbnRlcnNlY3Rz
KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwotCi0gICAgY29uc3QgRmxvYXRQb2ludCYgdHJhbnNm
b3JtZWRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtZWRQb2ludDsgfQotICAgIGNv
bnN0IEZsb2F0UXVhZCYgdHJhbnNmb3JtZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zv
cm1lZFJlY3Q7IH0KLQotcHJpdmF0ZToKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0VHlwZT4K
LSAgICBib29sIGludGVyc2VjdHNSZWN0KGNvbnN0IFJlY3RUeXBlJikgY29uc3Q7Ci0gICAgdm9p
ZCBtb3ZlKGNvbnN0IExheW91dFNpemUmIG9mZnNldCk7Ci0KLSAgICAvLyBUaGlzIGlzIGNhY2hl
ZCBmb3JtcyBvZiB0aGUgbW9yZSBhY2N1cmF0ZSBwb2ludCBhbmQgYXJlYSBiZWxvdy4KLSAgICBM
YXlvdXRQb2ludCBtX3BvaW50OwotICAgIEludFJlY3QgbV9ib3VuZGluZ0JveDsKLQotICAgIEZs
b2F0UG9pbnQgbV90cmFuc2Zvcm1lZFBvaW50OwotICAgIEZsb2F0UXVhZCBtX3RyYW5zZm9ybWVk
UmVjdDsKLQotICAgIFJlbmRlclJlZ2lvbiogbV9yZWdpb247IC8vIFRoZSByZWdpb24gd2UncmUg
aW5zaWRlLgotCi0gICAgYm9vbCBtX2lzUmVjdEJhc2VkOwotICAgIGJvb2wgbV9pc1JlY3RpbGlu
ZWFyOwotfTsKLQogY2xhc3MgSGl0VGVzdFJlc3VsdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBM
aXN0SGFzaFNldDxSZWZQdHI8Tm9kZT4gPiBOb2RlU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggMTNhOTdlMzYxYmRkNGY5ZjYyNDBkZjU2ZDljN2EzM2Jk
MTUxMDc5Yy4uOGNkYTIzMGIyNjVhNDNkZTM2ZDhiOWM3MWQwMDBmMWYxMjZhYmQ4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSGl0VGVzdExvY2F0aW9uLmgiCiAj
aW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191220</attachid>
            <date>2013-03-04 06:14:46 -0800</date>
            <delta_ts>2013-03-05 01:36:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111294-20130304151052.patch</filename>
            <type>text/plain</type>
            <size>31353</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRkZTUwODYwNGFkOGYw
OGY0ODM5MjczNmIwNzUyZWNjYjZlNDU1Mi4uOTQ4MmMzNWQ2MTMwY2FjNTQ3NjU3ZjFmYTFhMTQ5
ZjE3ZjY4MWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAzLTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW51cDogTW92ZSBIaXRU
ZXN0TG9jYXRpb24gYW5kIEhpdFRlc3RSZXN1bHQgaW50byBzZXBhcmF0ZSBmaWxlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTI5NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsbGFuIFNhbmRmZWxkIEplbnNlbi4KKworICAgICAgICBIaXRUZXN0
TG9jYXRpb24gYW5kIEhpdFRlc3RSZXN1bHQgY3VycmVudGx5IGJvdGggbGl2ZSBpbgorICAgICAg
ICBIaXRUZXN0UmVzdWx0LmguIFRoYXQgbWFrZXMgdGhpbmdzIG1vcmUgZGlmZmljdWx0IHRvIHVu
ZGVyc3RhbmQgdGhhbgorICAgICAgICB0aGV5IHNob3VsZCBiZSwgYW5kIHZpb2xhdGVzIHRoZSBv
bmUtY2xhc3Mtb25lLWZpbGUgcHJpbmNpcGxlIHRoYXQKKyAgICAgICAgV2ViS2l0IGdlbmVyYWxs
eSBmb2xsb3dzLiBIYXBwaWx5LCBpdCdzIGZhaXJseSB0cml2aWFsIHRvIGZpeC4KKworICAgICAg
ICBUaGlzIHNob3VsZCBoYXZlIG5vIHZpc2libGUgY2hhbmdlOyBpdCdzIHN0cmljdGx5IGFuIGlu
dGVybmFsCisgICAgICAgIHJlZmFjdG9yaW5nLiBJdCBkb2Vzbid0IGV2ZW4gdG91Y2ggYW55IGlt
cGxlbWVudGF0aW9uIGNvZGU6IHdlJ3JlCisgICAgICAgIGp1c3QgbW92aW5nIGJpdHMgZnJvbSBv
bmUgcGxhY2UgdG8gYW5vdGhlci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAg
ICAgSGV5LCBsb29rOiBhIG5ldyBmaWxlISBMZXQncyBhZGQgaXQgdG8gc2l4IGRpZmZlcmVudCBi
dWlsZCBzeXN0ZW1zISA6KQorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExv
Y2F0aW9uOjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0
aW9uOjp+SGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlv
bjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6bW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmludGVyc2VjdHNSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnJlY3RGb3JQb2ludCk6CisgICAgICAgICogcmVuZGVy
aW5nL0hpdFRlc3RMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjpyb3VuZGVkUG9pbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjpyZWdpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjppc1JlY3RCYXNlZFRlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SGl0VGVzdExvY2F0aW9uOjppc1JlY3RpbGluZWFyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RMb2NhdGlvbjo6Ym91bmRpbmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dExvY2F0aW9uOjp0b3BQYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlv
bjo6cmlnaHRQYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6Ym90
dG9tUGFkZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmxlZnRQYWRk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6dHJhbnNmb3JtZWRQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnRyYW5zZm9ybWVkUmVjdCk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAqIHJlbmRl
cmluZy9IaXRUZXN0UmVzdWx0Lmg6CisgICAgICAgICAgICBNb3ZlIGFsbCB0aGlzIGNvZGUgZnJv
bSBIaXRUZXN0UmVzdWx0LiogdG8gSGl0VGVzdExvY2F0aW9uLiouCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgICAgIEluY2x1ZGUgSGl0VGVzdExvY2F0aW9u
LmguCisKIDIwMTMtMDMtMDQgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiB0b3VjaG1vdmUgbm90IGVtdWxhdGVkIGluc2lk
ZSBpZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTE5NzMyMTY3MzQzNDg1MDI5YmVmMjA0
ZmE4OTRlYWQ1MDlkZTUyOC4uNDE5ZDI1ODVmMmZlMTFjZmU5YzUyY2IxOGU1NWUwZGMyOGU2ZTIy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxMzUsNiArMjEzNSw3IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKICAgICByZW5kZXJp
bmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFu
c2Zvcm1TdGF0ZS5jcHAKKyAgICByZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcAogICAgIHJl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAogICAgIHJlbmRlcmluZy9JbmxpbmVCb3guY3BwCiAg
ICAgcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA1ODI1YjFmOGFkMTVhNGZlZTE3NmE5MmFkMGZmMGRkYjRjYjVmNzhjLi5jODE3ZjA3
YzY3MjJjMjk5NTc1NGY1YTM2NTZlNThmNTEyZTk5YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTQzNjgsNiArNDM2OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdExvY2F0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggNjAzY2RiZGIyNzg3NDA3NWRkNGZiMTE2ZWM0ODU2MjIxZmIyYWVlNS4uNzg2ZGUxY2ViMGE4
ZjMxN2MxZTQ3YjkzYTcxYjY1N2YyYjhjODU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTczLDYgKzEx
NzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAg
XAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgXAogICAgIHJlbmRlcmlu
Zy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwIFwKKyAgICByZW5kZXJpbmcvSGl0VGVzdExv
Y2F0aW9uLmNwcCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIFwKICAgICByZW5k
ZXJpbmcvSW5saW5lQm94LmNwcCBcCiAgICAgcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIFwK
QEAgLTI0NTEsNiArMjQ1Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5oIFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oIFwKICAg
ICByZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggXAorICAgIHJlbmRlcmluZy9I
aXRUZXN0TG9jYXRpb24uaCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCBcCiAgICAg
cmVuZGVyaW5nL0lubGluZUJveC5oIFwKICAgICByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA1MzEyMWRmMGFlMjY4NDIzMTdkYWE5ZTQ3YzIyMTJiYjE0MWMw
NzM1Li5iYTZlMzkwNDZiY2EyNWJjOTRhMWFhMGNhMzdkODkyMWVhOTU0NjEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0yNDAyLDYgKzI0MDIsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9UZXh0
QXV0b3NpemVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3Jt
U3RhdGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0
YXRlLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwJywKKyAg
ICAgICAgICAgICdyZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgnLAogICAgICAgICAgICAgJ3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0lubGlu
ZUJveC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGVjNDI2
NDM5Y2E5NGY2MWRiZTc4OWQzN2Q5ODhlMGRmOTczNWY3MmEuLjIxNzU5YWUxN2FmNGZmM2Q2NWRh
YzEwMWVmNGI5ZDhhY2JhNTgyY2YgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC0zOTM2Myw2ICszOTM2Myw2MiBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcSGl0VGVzdExvY2F0
aW9uLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEhpdFRlc3RMb2NhdGlvbi5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcSGl0VGVzdFJlcXVl
c3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDM4NjE1NTg3ZjhjMmE1N2ZiYzg1MTAyMDA0
OGZjNDJhN2Q5MWUxYS4uNmUwOGVmMDM0ODIxZTI1ZDUzYTkyZTBlYzYzMDBjMTExMzAzN2UwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNzk4LDYgKzc5OCw4IEBACiAJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5l
cmF0b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlLmggKi87IH07CiAJCTJENUE1OTJGMTUyNTI1MjMwMDM2RUU1MSAvKiBJbWFnZU9yaWVu
dGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4NzQ4RDc0MTJDQzNGODkwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmNwcCAqLzsgfTsK
IAkJMkQ1QTU5MzExNTI1MjVEMDAwMzZFRTUxIC8qIEltYWdlT3JpZW50YXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzQ4RDY2MTJDQzM3NjMw
MDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkQ4Mjg3RjYxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRl
c3RMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmNwcCAqLzsg
fTsKKwkJMkQ4Mjg3RjcxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4Mjg3RjUxNkU0QTAz
ODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEOEZFQkRDMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1ND
cm9zc2ZhZGVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDhGRUJEQTE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3Bw
ICovOyB9OwogCQkyRDhGRUJERDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZFQkRC
MTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovOyB9OwogCQkyRDkwNjYw
NjBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExh
eW91dFN0YXRlLmNwcCAqLzsgfTsKQEAgLTgxNjcsNiArODE2OSw4IEBACiAJCTJEMkZDMDU2MTQ2
MENENkYwMDI2MzYzMyAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMkZDMDU3MTQ2MENENkYwMDI2MzYzMyAvKiBH
ZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRDNBMEUzNTEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhcnNpbmdFcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RMb2Nh
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEODI4N0Y1MTZFNEEwMzgw
MDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSGl0VGVzdExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
OEZFQkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1ND
cm9zc2ZhZGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDcm9z
c2ZhZGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDkwNjYwNDBCRTE0
MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExheW91dFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyMjY0LDYgKzIyMjY4LDggQEAKIAkJCQk5MzVDNDc3NDA5QUM0RDhEMDBBNkFBQjQgLyog
R2FwUmVjdHMuaCAqLywKIAkJCQk0OTY5QjBGMDEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGlu
Z1RyYW5zZm9ybVN0YXRlLmNwcCAqLywKIAkJCQk0OTY5QjBGMTEzRDBCMzNGMDBERjM1MjEgLyog
SGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggKi8sCisJCQkJMkQ4Mjg3RjQxNkU0QTAzODAwODZC
RDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5jcHAgKi8sCisJCQkJMkQ4Mjg3RjUxNkU0QTAzODAwODZC
RDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5oICovLAogCQkJCTkzMDkwODkwMEFGN0VERTQwMDgxREYw
MSAvKiBIaXRUZXN0UmVxdWVzdC5oICovLAogCQkJCTkzMDdGMUQ1MEFGMkQ1OTAwMERCQTMxQSAv
KiBIaXRUZXN0UmVzdWx0LmNwcCAqLywKIAkJCQk5MzA3RjFENjBBRjJENTkwMDBEQkEzMUEgLyog
SGl0VGVzdFJlc3VsdC5oICovLApAQCAtMjY2NTEsNiArMjY2NTcsNyBAQAogCQkJCUEwMjQ1NzUy
MTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTMxQzRFNEYxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUEzMUM0RTU0MTZFMDJCNDAwMDJGNzk1NyAvKiBKU09FU1RleHR1cmVIYWxm
RmxvYXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEODI4N0Y3MTZFNEEwMzgwMDg2QkQwMCAvKiBI
aXRUZXN0TG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjk4NDksNiArMjk4NTYsNyBAQAog
CQkJCUEwMjQ1NzUxMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBMzFDNEU0RDE2RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZG
bG9hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMzFDNEU1MjE2RTAyQjA4MDAyRjc5NTcgLyog
SlNPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJEODI4N0Y2MTZF
NEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3
YmJlODI0MGM5ZGNkOGU5NjQyMWMyMTMwM2YyODU0NThjOGY3OTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcApAQCAtMCwwICsx
LDE5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJIaXRUZXN0TG9jYXRpb24uaCIKKworI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgor
I2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgorI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVmlkZW9FbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJS
ZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgorI2luY2x1ZGUgIlNjcm9s
bGJhci5oIgorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1
ZGUgIlhMaW5rTmFtZXMuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK0hpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9u
KCkKKyAgICA6IG1fcmVnaW9uKDApCisgICAgLCBtX2lzUmVjdEJhc2VkKGZhbHNlKQorICAgICwg
bV9pc1JlY3RpbGluZWFyKHRydWUpCit7Cit9CisKK0hpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExv
Y2F0aW9uKGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKKyAgICA6IG1fcG9pbnQocG9pbnQpCisg
ICAgLCBtX2JvdW5kaW5nQm94KHJlY3RGb3JQb2ludChwb2ludCwgMCwgMCwgMCwgMCkpCisgICAg
LCBtX3RyYW5zZm9ybWVkUG9pbnQocG9pbnQpCisgICAgLCBtX3RyYW5zZm9ybWVkUmVjdChtX2Jv
dW5kaW5nQm94KQorICAgICwgbV9yZWdpb24oMCkKKyAgICAsIG1faXNSZWN0QmFzZWQoZmFsc2Up
CisgICAgLCBtX2lzUmVjdGlsaW5lYXIodHJ1ZSkKK3sKK30KKworSGl0VGVzdExvY2F0aW9uOjpI
aXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCisgICAgOiBtX3BvaW50KGZs
b29yZWRMYXlvdXRQb2ludChwb2ludCkpCisgICAgLCBtX2JvdW5kaW5nQm94KHJlY3RGb3JQb2lu
dChtX3BvaW50LCAwLCAwLCAwLCAwKSkKKyAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChwb2ludCkK
KyAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG1fYm91bmRpbmdCb3gpCisgICAgLCBtX3JlZ2lvbigw
KQorICAgICwgbV9pc1JlY3RCYXNlZChmYWxzZSkKKyAgICAsIG1faXNSZWN0aWxpbmVhcih0cnVl
KQoreworfQorCitIaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBv
aW50JiBwb2ludCwgY29uc3QgRmxvYXRRdWFkJiBxdWFkKQorICAgIDogbV90cmFuc2Zvcm1lZFBv
aW50KHBvaW50KQorICAgICwgbV90cmFuc2Zvcm1lZFJlY3QocXVhZCkKKyAgICAsIG1fcmVnaW9u
KDApCisgICAgLCBtX2lzUmVjdEJhc2VkKHRydWUpCit7CisgICAgbV9wb2ludCA9IGZsb29yZWRM
YXlvdXRQb2ludChwb2ludCk7CisgICAgbV9ib3VuZGluZ0JveCA9IGVuY2xvc2luZ0ludFJlY3Qo
cXVhZC5ib3VuZGluZ0JveCgpKTsKKyAgICBtX2lzUmVjdGlsaW5lYXIgPSBxdWFkLmlzUmVjdGls
aW5lYXIoKTsKK30KKworSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5
b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdo
dFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKQor
ICAgIDogbV9wb2ludChjZW50ZXJQb2ludCkKKyAgICAsIG1fYm91bmRpbmdCb3gocmVjdEZvclBv
aW50KGNlbnRlclBvaW50LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcs
IGxlZnRQYWRkaW5nKSkKKyAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChjZW50ZXJQb2ludCkKKyAg
ICAsIG1fcmVnaW9uKDApCisgICAgLCBtX2lzUmVjdEJhc2VkKHRvcFBhZGRpbmcgfHwgcmlnaHRQ
YWRkaW5nIHx8IGJvdHRvbVBhZGRpbmcgfHwgbGVmdFBhZGRpbmcpCisgICAgLCBtX2lzUmVjdGls
aW5lYXIodHJ1ZSkKK3sKKyAgICBtX3RyYW5zZm9ybWVkUmVjdCA9IEZsb2F0UXVhZChtX2JvdW5k
aW5nQm94KTsKK30KKworSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0
VGVzdExvY2F0aW9uJiBvdGhlciwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0LCBSZW5kZXJSZWdp
b24qIHJlZ2lvbikKKyAgICA6IG1fcG9pbnQob3RoZXIubV9wb2ludCkKKyAgICAsIG1fYm91bmRp
bmdCb3gob3RoZXIubV9ib3VuZGluZ0JveCkKKyAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChvdGhl
ci5tX3RyYW5zZm9ybWVkUG9pbnQpCisgICAgLCBtX3RyYW5zZm9ybWVkUmVjdChvdGhlci5tX3Ry
YW5zZm9ybWVkUmVjdCkKKyAgICAsIG1fcmVnaW9uKHJlZ2lvbiA/IHJlZ2lvbiA6IG90aGVyLm1f
cmVnaW9uKQorICAgICwgbV9pc1JlY3RCYXNlZChvdGhlci5tX2lzUmVjdEJhc2VkKQorICAgICwg
bV9pc1JlY3RpbGluZWFyKG90aGVyLm1faXNSZWN0aWxpbmVhcikKK3sKKyAgICBtb3ZlKG9mZnNl
dCk7Cit9CisKK0hpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgb3RoZXIpCisgICAgOiBtX3BvaW50KG90aGVyLm1fcG9pbnQpCisgICAgLCBtX2Jv
dW5kaW5nQm94KG90aGVyLm1fYm91bmRpbmdCb3gpCisgICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQo
b3RoZXIubV90cmFuc2Zvcm1lZFBvaW50KQorICAgICwgbV90cmFuc2Zvcm1lZFJlY3Qob3RoZXIu
bV90cmFuc2Zvcm1lZFJlY3QpCisgICAgLCBtX3JlZ2lvbihvdGhlci5tX3JlZ2lvbikKKyAgICAs
IG1faXNSZWN0QmFzZWQob3RoZXIubV9pc1JlY3RCYXNlZCkKKyAgICAsIG1faXNSZWN0aWxpbmVh
cihvdGhlci5tX2lzUmVjdGlsaW5lYXIpCit7Cit9CisKK0hpdFRlc3RMb2NhdGlvbjo6fkhpdFRl
c3RMb2NhdGlvbigpCit7Cit9CisKK0hpdFRlc3RMb2NhdGlvbiYgSGl0VGVzdExvY2F0aW9uOjpv
cGVyYXRvcj0oY29uc3QgSGl0VGVzdExvY2F0aW9uJiBvdGhlcikKK3sKKyAgICBtX3BvaW50ID0g
b3RoZXIubV9wb2ludDsKKyAgICBtX2JvdW5kaW5nQm94ID0gb3RoZXIubV9ib3VuZGluZ0JveDsK
KyAgICBtX3RyYW5zZm9ybWVkUG9pbnQgPSBvdGhlci5tX3RyYW5zZm9ybWVkUG9pbnQ7CisgICAg
bV90cmFuc2Zvcm1lZFJlY3QgPSBvdGhlci5tX3RyYW5zZm9ybWVkUmVjdDsKKyAgICBtX3JlZ2lv
biA9IG90aGVyLm1fcmVnaW9uOworICAgIG1faXNSZWN0QmFzZWQgPSBvdGhlci5tX2lzUmVjdEJh
c2VkOworICAgIG1faXNSZWN0aWxpbmVhciA9IG90aGVyLm1faXNSZWN0aWxpbmVhcjsKKworICAg
IHJldHVybiAqdGhpczsKK30KKwordm9pZCBIaXRUZXN0TG9jYXRpb246Om1vdmUoY29uc3QgTGF5
b3V0U2l6ZSYgb2Zmc2V0KQoreworICAgIG1fcG9pbnQubW92ZShvZmZzZXQpOworICAgIG1fdHJh
bnNmb3JtZWRQb2ludC5tb3ZlKG9mZnNldCk7CisgICAgbV90cmFuc2Zvcm1lZFJlY3QubW92ZShv
ZmZzZXQpOworICAgIG1fYm91bmRpbmdCb3ggPSBlbmNsb3NpbmdJbnRSZWN0KG1fdHJhbnNmb3Jt
ZWRSZWN0LmJvdW5kaW5nQm94KCkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0VHlwZT4K
K2Jvb2wgSGl0VGVzdExvY2F0aW9uOjppbnRlcnNlY3RzUmVjdChjb25zdCBSZWN0VHlwZSYgcmVj
dCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2hlbiB0aGUgaGl0IHRlc3QgaXMgbm90IHJlY3Qg
YmFzZWQgd2Ugc2hvdWxkIHVzZSByZWN0LmNvbnRhaW5zKG1fcG9pbnQpLgorICAgIC8vIFRoYXQg
ZG9lcyBjaGFuZ2Ugc29tZSBjb3JuZXIgY2FzZSB0ZXN0cyB0aG91Z2guCisKKyAgICAvLyBGaXJz
dCBjaGVjayBpZiByZWN0IGV2ZW4gaW50ZXJzZWN0cyBvdXIgYm91bmRpbmcgYm94LgorICAgIGlm
ICghcmVjdC5pbnRlcnNlY3RzKG1fYm91bmRpbmdCb3gpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAvLyBJZiB0aGUgdHJhbnNmb3JtZWQgcmVjdCBpcyByZWN0aWxpbmVhciB0aGUgYm91
bmRpbmcgYm94IGludGVyc2VjdGlvbiB3YXMgYWNjdXJhdGUuCisgICAgaWYgKG1faXNSZWN0aWxp
bmVhcikKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBJZiByZWN0IGZ1bGx5IGNvbnRh
aW5zIG91ciBib3VuZGluZyBib3gsIHdlIGFyZSBhbHNvIHN1cmUgb2YgYW4gaW50ZXJzZWN0aW9u
LgorICAgIGlmIChyZWN0LmNvbnRhaW5zKG1fYm91bmRpbmdCb3gpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIC8vIE90aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgc2xvd2VyIHF1YWQgYmFz
ZWQgaW50ZXJzZWN0aW9uIHRlc3QuCisgICAgcmV0dXJuIG1fdHJhbnNmb3JtZWRSZWN0LmludGVy
c2VjdHNSZWN0KHJlY3QpOworfQorCitib29sIEhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0cyhj
b25zdCBMYXlvdXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJldHVybiBpbnRlcnNlY3RzUmVj
dChyZWN0KTsKK30KKworYm9vbCBIaXRUZXN0TG9jYXRpb246OmludGVyc2VjdHMoY29uc3QgRmxv
YXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJldHVybiBpbnRlcnNlY3RzUmVjdChyZWN0KTsK
K30KKworSW50UmVjdCBIaXRUZXN0TG9jYXRpb246OnJlY3RGb3JQb2ludChjb25zdCBMYXlvdXRQ
b2ludCYgcG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywg
dW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCit7CisgICAgSW50
UG9pbnQgYWN0dWFsUG9pbnQoZmxvb3JlZEludFBvaW50KHBvaW50KSk7CisgICAgYWN0dWFsUG9p
bnQgLT0gSW50U2l6ZShsZWZ0UGFkZGluZywgdG9wUGFkZGluZyk7CisKKyAgICBJbnRTaXplIGFj
dHVhbFBhZGRpbmcobGVmdFBhZGRpbmcgKyByaWdodFBhZGRpbmcsIHRvcFBhZGRpbmcgKyBib3R0
b21QYWRkaW5nKTsKKyAgICAvLyBBcyBJbnRSZWN0IGlzIGxlZnQgaW5jbHVzaXZlIGFuZCByaWdo
dCBleGNsdXNpdmUgKHNlZWluZyBJbnRSZWN0Ojpjb250YWlucyh4LCB5KSksIGFkZGluZyAiMSIu
CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ugbm9uLXJlY3QgYmFzZWQgaGl0LWRldGVj
dGlvbiBzdG9wcyB1c2luZyBJbnRSZWN0OmludGVyc2VjdHMuCisgICAgYWN0dWFsUGFkZGluZyAr
PSBJbnRTaXplKDEsIDEpOworCisgICAgcmV0dXJuIEludFJlY3QoYWN0dWFsUG9pbnQsIGFjdHVh
bFBhZGRpbmcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdmMmEwMGQxN2NhNzcxMzAw
NzAyODk3MDEwMDU0YTY0ZGYwOGEzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaApAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAy
MDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisqLworCisjaWZu
ZGVmIEhpdFRlc3RMb2NhdGlvbl9oCisjZGVmaW5lIEhpdFRlc3RMb2NhdGlvbl9oCisKKyNpbmNs
dWRlICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJIaXRU
ZXN0UmVxdWVzdC5oIgorI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJUZXh0RGly
ZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsK
KyNpZiBFTkFCTEUoVklERU8pCitjbGFzcyBIVE1MTWVkaWFFbGVtZW50OworI2VuZGlmCitjbGFz
cyBJbWFnZTsKK2NsYXNzIEtVUkw7CitjbGFzcyBOb2RlOworY2xhc3MgUmVuZGVyUmVnaW9uOwor
Y2xhc3MgU2Nyb2xsYmFyOworCitjbGFzcyBIaXRUZXN0TG9jYXRpb24geworcHVibGljOgorCisg
ICAgSGl0VGVzdExvY2F0aW9uKCk7CisgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBv
aW50Jik7CisgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKKyAgICBIaXRU
ZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UXVhZCYpOworICAgIC8v
IFBhc3Mgbm9uLXplcm8gcGFkZGluZyB2YWx1ZXMgdG8gcGVyZm9ybSBhIHJlY3QtYmFzZWQgaGl0
IHRlc3QuCisgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50JiBjZW50ZXJQb2lu
dCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBi
b3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZyk7CisgICAgLy8gTWFrZSBhIGNvcHkg
dGhlIEhpdFRlc3RMb2NhdGlvbiBpbiBhIG5ldyByZWdpb24gYnkgYXBwbHlpbmcgZ2l2ZW4gb2Zm
c2V0IHRvIGludGVybmFsIHBvaW50IGFuZCBhcmVhLgorICAgIEhpdFRlc3RMb2NhdGlvbihjb25z
dCBIaXRUZXN0TG9jYXRpb24mLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQsIFJlbmRlclJlZ2lv
biogPSAwKTsKKyAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJik7Cisg
ICAgfkhpdFRlc3RMb2NhdGlvbigpOworICAgIEhpdFRlc3RMb2NhdGlvbiYgb3BlcmF0b3I9KGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYpOworCisgICAgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KCkg
Y29uc3QgeyByZXR1cm4gbV9wb2ludDsgfQorICAgIEludFBvaW50IHJvdW5kZWRQb2ludCgpIGNv
bnN0IHsgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChtX3BvaW50KTsgfQorCisgICAgUmVuZGVyUmVn
aW9uKiByZWdpb24oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lvbjsgfQorCisgICAgLy8gUmVjdC1i
YXNlZCBoaXQgdGVzdCByZWxhdGVkIG1ldGhvZHMuCisgICAgYm9vbCBpc1JlY3RCYXNlZFRlc3Qo
KSBjb25zdCB7IHJldHVybiBtX2lzUmVjdEJhc2VkOyB9CisgICAgYm9vbCBpc1JlY3RpbGluZWFy
KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RpbGluZWFyOyB9CisgICAgSW50UmVjdCBib3VuZGlu
Z0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRpbmdCb3g7IH0KKworICAgIHN0YXRpYyBJbnRS
ZWN0IHJlY3RGb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYsIHVuc2lnbmVkIHRvcFBhZGRpbmcs
IHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQg
bGVmdFBhZGRpbmcpOworICAgIGludCB0b3BQYWRkaW5nKCkgY29uc3QgeyByZXR1cm4gcm91bmRl
ZFBvaW50KCkueSgpIC0gbV9ib3VuZGluZ0JveC55KCk7IH0KKyAgICBpbnQgcmlnaHRQYWRkaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZGluZ0JveC5tYXhYKCkgLSByb3VuZGVkUG9pbnQoKS54
KCkgLSAxOyB9CisgICAgaW50IGJvdHRvbVBhZGRpbmcoKSBjb25zdCB7IHJldHVybiBtX2JvdW5k
aW5nQm94Lm1heFkoKSAtIHJvdW5kZWRQb2ludCgpLnkoKSAtIDE7IH0KKyAgICBpbnQgbGVmdFBh
ZGRpbmcoKSBjb25zdCB7IHJldHVybiByb3VuZGVkUG9pbnQoKS54KCkgLSBtX2JvdW5kaW5nQm94
LngoKTsgfQorCisgICAgYm9vbCBpbnRlcnNlY3RzKGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsK
KyAgICBib29sIGludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CisKKyAgICBjb25z
dCBGbG9hdFBvaW50JiB0cmFuc2Zvcm1lZFBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zv
cm1lZFBvaW50OyB9CisgICAgY29uc3QgRmxvYXRRdWFkJiB0cmFuc2Zvcm1lZFJlY3QoKSBjb25z
dCB7IHJldHVybiBtX3RyYW5zZm9ybWVkUmVjdDsgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFJlY3RUeXBlPgorICAgIGJvb2wgaW50ZXJzZWN0c1JlY3QoY29uc3QgUmVjdFR5
cGUmKSBjb25zdDsKKyAgICB2b2lkIG1vdmUoY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0KTsKKwor
ICAgIC8vIFRoaXMgaXMgY2FjaGVkIGZvcm1zIG9mIHRoZSBtb3JlIGFjY3VyYXRlIHBvaW50IGFu
ZCBhcmVhIGJlbG93LgorICAgIExheW91dFBvaW50IG1fcG9pbnQ7CisgICAgSW50UmVjdCBtX2Jv
dW5kaW5nQm94OworCisgICAgRmxvYXRQb2ludCBtX3RyYW5zZm9ybWVkUG9pbnQ7CisgICAgRmxv
YXRRdWFkIG1fdHJhbnNmb3JtZWRSZWN0OworCisgICAgUmVuZGVyUmVnaW9uKiBtX3JlZ2lvbjsg
Ly8gVGhlIHJlZ2lvbiB3ZSdyZSBpbnNpZGUuCisKKyAgICBib29sIG1faXNSZWN0QmFzZWQ7Cisg
ICAgYm9vbCBtX2lzUmVjdGlsaW5lYXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBIaXRUZXN0TG9jYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuY3BwCmluZGV4IDBlMmYyYmFlNTgxMzdhOTVkYjFmMDA5YWM1NWRmZjNkOWVi
NzU3MzIuLmYxYTM0NmU3ODhlNGM2NDJlOWNmNTM3NDVkZWZjOTIzOWZhY2JkZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTI4LDEzICsyOCwxNCBA
QAogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAj
aW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCisjaW5jbHVk
ZSAiSGl0VGVzdExvY2F0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRl
ICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgpAQCAtNDksMTUwICs1
MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oKQotICAgIDogbV9yZWdpb24oMCkK
LSAgICAsIG1faXNSZWN0QmFzZWQoZmFsc2UpCi0gICAgLCBtX2lzUmVjdGlsaW5lYXIodHJ1ZSkK
LXsKLX0KLQotSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9p
bnQmIHBvaW50KQotICAgIDogbV9wb2ludChwb2ludCkKLSAgICAsIG1fYm91bmRpbmdCb3gocmVj
dEZvclBvaW50KHBvaW50LCAwLCAwLCAwLCAwKSkKLSAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChw
b2ludCkKLSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG1fYm91bmRpbmdCb3gpCi0gICAgLCBtX3Jl
Z2lvbigwKQotICAgICwgbV9pc1JlY3RCYXNlZChmYWxzZSkKLSAgICAsIG1faXNSZWN0aWxpbmVh
cih0cnVlKQotewotfQotCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBG
bG9hdFBvaW50JiBwb2ludCkKLSAgICA6IG1fcG9pbnQoZmxvb3JlZExheW91dFBvaW50KHBvaW50
KSkKLSAgICAsIG1fYm91bmRpbmdCb3gocmVjdEZvclBvaW50KG1fcG9pbnQsIDAsIDAsIDAsIDAp
KQotICAgICwgbV90cmFuc2Zvcm1lZFBvaW50KHBvaW50KQotICAgICwgbV90cmFuc2Zvcm1lZFJl
Y3QobV9ib3VuZGluZ0JveCkKLSAgICAsIG1fcmVnaW9uKDApCi0gICAgLCBtX2lzUmVjdEJhc2Vk
KGZhbHNlKQotICAgICwgbV9pc1JlY3RpbGluZWFyKHRydWUpCi17Ci19Ci0KLUhpdFRlc3RMb2Nh
dGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBGbG9h
dFF1YWQmIHF1YWQpCi0gICAgOiBtX3RyYW5zZm9ybWVkUG9pbnQocG9pbnQpCi0gICAgLCBtX3Ry
YW5zZm9ybWVkUmVjdChxdWFkKQotICAgICwgbV9yZWdpb24oMCkKLSAgICAsIG1faXNSZWN0QmFz
ZWQodHJ1ZSkKLXsKLSAgICBtX3BvaW50ID0gZmxvb3JlZExheW91dFBvaW50KHBvaW50KTsKLSAg
ICBtX2JvdW5kaW5nQm94ID0gZW5jbG9zaW5nSW50UmVjdChxdWFkLmJvdW5kaW5nQm94KCkpOwot
ICAgIG1faXNSZWN0aWxpbmVhciA9IHF1YWQuaXNSZWN0aWxpbmVhcigpOwotfQotCi1IaXRUZXN0
TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQs
IHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90
dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCi0gICAgOiBtX3BvaW50KGNlbnRlclBv
aW50KQotICAgICwgbV9ib3VuZGluZ0JveChyZWN0Rm9yUG9pbnQoY2VudGVyUG9pbnQsIHRvcFBh
ZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcpKQotICAgICwg
bV90cmFuc2Zvcm1lZFBvaW50KGNlbnRlclBvaW50KQotICAgICwgbV9yZWdpb24oMCkKLSAgICAs
IG1faXNSZWN0QmFzZWQodG9wUGFkZGluZyB8fCByaWdodFBhZGRpbmcgfHwgYm90dG9tUGFkZGlu
ZyB8fCBsZWZ0UGFkZGluZykKLSAgICAsIG1faXNSZWN0aWxpbmVhcih0cnVlKQotewotICAgIG1f
dHJhbnNmb3JtZWRSZWN0ID0gRmxvYXRRdWFkKG1fYm91bmRpbmdCb3gpOwotfQotCi1IaXRUZXN0
TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mIG90aGVyLCBj
b25zdCBMYXlvdXRTaXplJiBvZmZzZXQsIFJlbmRlclJlZ2lvbiogcmVnaW9uKQotICAgIDogbV9w
b2ludChvdGhlci5tX3BvaW50KQotICAgICwgbV9ib3VuZGluZ0JveChvdGhlci5tX2JvdW5kaW5n
Qm94KQotICAgICwgbV90cmFuc2Zvcm1lZFBvaW50KG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludCkK
LSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG90aGVyLm1fdHJhbnNmb3JtZWRSZWN0KQotICAgICwg
bV9yZWdpb24ocmVnaW9uID8gcmVnaW9uIDogb3RoZXIubV9yZWdpb24pCi0gICAgLCBtX2lzUmVj
dEJhc2VkKG90aGVyLm1faXNSZWN0QmFzZWQpCi0gICAgLCBtX2lzUmVjdGlsaW5lYXIob3RoZXIu
bV9pc1JlY3RpbGluZWFyKQotewotICAgIG1vdmUob2Zmc2V0KTsKLX0KLQotSGl0VGVzdExvY2F0
aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJiBvdGhlcikKLSAgICA6
IG1fcG9pbnQob3RoZXIubV9wb2ludCkKLSAgICAsIG1fYm91bmRpbmdCb3gob3RoZXIubV9ib3Vu
ZGluZ0JveCkKLSAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChvdGhlci5tX3RyYW5zZm9ybWVkUG9p
bnQpCi0gICAgLCBtX3RyYW5zZm9ybWVkUmVjdChvdGhlci5tX3RyYW5zZm9ybWVkUmVjdCkKLSAg
ICAsIG1fcmVnaW9uKG90aGVyLm1fcmVnaW9uKQotICAgICwgbV9pc1JlY3RCYXNlZChvdGhlci5t
X2lzUmVjdEJhc2VkKQotICAgICwgbV9pc1JlY3RpbGluZWFyKG90aGVyLm1faXNSZWN0aWxpbmVh
cikKLXsKLX0KLQotSGl0VGVzdExvY2F0aW9uOjp+SGl0VGVzdExvY2F0aW9uKCkKLXsKLX0KLQot
SGl0VGVzdExvY2F0aW9uJiBIaXRUZXN0TG9jYXRpb246Om9wZXJhdG9yPShjb25zdCBIaXRUZXN0
TG9jYXRpb24mIG90aGVyKQotewotICAgIG1fcG9pbnQgPSBvdGhlci5tX3BvaW50OwotICAgIG1f
Ym91bmRpbmdCb3ggPSBvdGhlci5tX2JvdW5kaW5nQm94OwotICAgIG1fdHJhbnNmb3JtZWRQb2lu
dCA9IG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludDsKLSAgICBtX3RyYW5zZm9ybWVkUmVjdCA9IG90
aGVyLm1fdHJhbnNmb3JtZWRSZWN0OwotICAgIG1fcmVnaW9uID0gb3RoZXIubV9yZWdpb247Ci0g
ICAgbV9pc1JlY3RCYXNlZCA9IG90aGVyLm1faXNSZWN0QmFzZWQ7Ci0gICAgbV9pc1JlY3RpbGlu
ZWFyID0gb3RoZXIubV9pc1JlY3RpbGluZWFyOwotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi12
b2lkIEhpdFRlc3RMb2NhdGlvbjo6bW92ZShjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpCi17Ci0g
ICAgbV9wb2ludC5tb3ZlKG9mZnNldCk7Ci0gICAgbV90cmFuc2Zvcm1lZFBvaW50Lm1vdmUob2Zm
c2V0KTsKLSAgICBtX3RyYW5zZm9ybWVkUmVjdC5tb3ZlKG9mZnNldCk7Ci0gICAgbV9ib3VuZGlu
Z0JveCA9IGVuY2xvc2luZ0ludFJlY3QobV90cmFuc2Zvcm1lZFJlY3QuYm91bmRpbmdCb3goKSk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFJlY3RUeXBlPgotYm9vbCBIaXRUZXN0TG9jYXRpb246
OmludGVyc2VjdHNSZWN0KGNvbnN0IFJlY3RUeXBlJiByZWN0KSBjb25zdAotewotICAgIC8vIEZJ
WE1FOiBXaGVuIHRoZSBoaXQgdGVzdCBpcyBub3QgcmVjdCBiYXNlZCB3ZSBzaG91bGQgdXNlIHJl
Y3QuY29udGFpbnMobV9wb2ludCkuCi0gICAgLy8gVGhhdCBkb2VzIGNoYW5nZSBzb21lIGNvcm5l
ciBjYXNlIHRlc3RzIHRob3VnaC4KLQotICAgIC8vIEZpcnN0IGNoZWNrIGlmIHJlY3QgZXZlbiBp
bnRlcnNlY3RzIG91ciBib3VuZGluZyBib3guCi0gICAgaWYgKCFyZWN0LmludGVyc2VjdHMobV9i
b3VuZGluZ0JveCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIElmIHRoZSB0cmFu
c2Zvcm1lZCByZWN0IGlzIHJlY3RpbGluZWFyIHRoZSBib3VuZGluZyBib3ggaW50ZXJzZWN0aW9u
IHdhcyBhY2N1cmF0ZS4KLSAgICBpZiAobV9pc1JlY3RpbGluZWFyKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLQotICAgIC8vIElmIHJlY3QgZnVsbHkgY29udGFpbnMgb3VyIGJvdW5kaW5nIGJveCwg
d2UgYXJlIGFsc28gc3VyZSBvZiBhbiBpbnRlcnNlY3Rpb24uCi0gICAgaWYgKHJlY3QuY29udGFp
bnMobV9ib3VuZGluZ0JveCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgLy8gT3RoZXJ3
aXNlIHdlIG5lZWQgdG8gZG8gYSBzbG93ZXIgcXVhZCBiYXNlZCBpbnRlcnNlY3Rpb24gdGVzdC4K
LSAgICByZXR1cm4gbV90cmFuc2Zvcm1lZFJlY3QuaW50ZXJzZWN0c1JlY3QocmVjdCk7Ci19Ci0K
LWJvb2wgSGl0VGVzdExvY2F0aW9uOjppbnRlcnNlY3RzKGNvbnN0IExheW91dFJlY3QmIHJlY3Qp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGludGVyc2VjdHNSZWN0KHJlY3QpOwotfQotCi1ib29sIEhp
dFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGludGVyc2VjdHNSZWN0KHJlY3QpOwotfQotCi1JbnRSZWN0IEhpdFRlc3RM
b2NhdGlvbjo6cmVjdEZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgdW5zaWduZWQg
dG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5n
LCB1bnNpZ25lZCBsZWZ0UGFkZGluZykKLXsKLSAgICBJbnRQb2ludCBhY3R1YWxQb2ludChmbG9v
cmVkSW50UG9pbnQocG9pbnQpKTsKLSAgICBhY3R1YWxQb2ludCAtPSBJbnRTaXplKGxlZnRQYWRk
aW5nLCB0b3BQYWRkaW5nKTsKLQotICAgIEludFNpemUgYWN0dWFsUGFkZGluZyhsZWZ0UGFkZGlu
ZyArIHJpZ2h0UGFkZGluZywgdG9wUGFkZGluZyArIGJvdHRvbVBhZGRpbmcpOwotICAgIC8vIEFz
IEludFJlY3QgaXMgbGVmdCBpbmNsdXNpdmUgYW5kIHJpZ2h0IGV4Y2x1c2l2ZSAoc2VlaW5nIElu
dFJlY3Q6OmNvbnRhaW5zKHgsIHkpKSwgYWRkaW5nICIxIi4KLSAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgb25jZSBub24tcmVjdCBiYXNlZCBoaXQtZGV0ZWN0aW9uIHN0b3BzIHVzaW5nIEludFJl
Y3Q6aW50ZXJzZWN0cy4KLSAgICBhY3R1YWxQYWRkaW5nICs9IEludFNpemUoMSwgMSk7Ci0KLSAg
ICByZXR1cm4gSW50UmVjdChhY3R1YWxQb2ludCwgYWN0dWFsUGFkZGluZyk7Ci19Ci0KIEhpdFRl
c3RSZXN1bHQ6OkhpdFRlc3RSZXN1bHQoKQogICAgIDogbV9pc092ZXJXaWRnZXQoZmFsc2UpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAppbmRleCAyN2NiYjVlYWQ0
NjQ0MDRmYTZjYmFmZmYxNDg4MmYyNTMzZWY0ZGI0Li4yNWE2OTU1YTRiYzVjNjc0NTg5YjVlYzRi
YWJmNjAxMTMzNzk3ZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0
VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkhpdFRlc3RMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkhp
dFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIlRleHRE
aXJlY3Rpb24uaCIKQEAgLTQ1LDYyICs0Niw2IEBAIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJS
ZWdpb247CiBjbGFzcyBTY3JvbGxiYXI7CiAKLS8vIEZJWE1FOiBIaXRUZXN0TG9jYXRpb24gc2hv
dWxkIGJlIG1vdmVkIHRvIGEgc2VwYXJhdGUgZmlsZS4KLWNsYXNzIEhpdFRlc3RMb2NhdGlvbiB7
Ci1wdWJsaWM6Ci0KLSAgICBIaXRUZXN0TG9jYXRpb24oKTsKLSAgICBIaXRUZXN0TG9jYXRpb24o
Y29uc3QgTGF5b3V0UG9pbnQmKTsKLSAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYpOwotICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRR
dWFkJik7Ci0gICAgLy8gUGFzcyBub24temVybyBwYWRkaW5nIHZhbHVlcyB0byBwZXJmb3JtIGEg
cmVjdC1iYXNlZCBoaXQgdGVzdC4KLSAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9p
bnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRp
bmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKTsKLSAgICAv
LyBNYWtlIGEgY29weSB0aGUgSGl0VGVzdExvY2F0aW9uIGluIGEgbmV3IHJlZ2lvbiBieSBhcHBs
eWluZyBnaXZlbiBvZmZzZXQgdG8gaW50ZXJuYWwgcG9pbnQgYW5kIGFyZWEuCi0gICAgSGl0VGVz
dExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91dFNpemUmIG9mZnNl
dCwgUmVuZGVyUmVnaW9uKiA9IDApOwotICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0
TG9jYXRpb24mKTsKLSAgICB+SGl0VGVzdExvY2F0aW9uKCk7Ci0gICAgSGl0VGVzdExvY2F0aW9u
JiBvcGVyYXRvcj0oY29uc3QgSGl0VGVzdExvY2F0aW9uJik7Ci0KLSAgICBjb25zdCBMYXlvdXRQ
b2ludCYgcG9pbnQoKSBjb25zdCB7IHJldHVybiBtX3BvaW50OyB9Ci0gICAgSW50UG9pbnQgcm91
bmRlZFBvaW50KCkgY29uc3QgeyByZXR1cm4gcm91bmRlZEludFBvaW50KG1fcG9pbnQpOyB9Ci0K
LSAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uOyB9Ci0K
LSAgICAvLyBSZWN0LWJhc2VkIGhpdCB0ZXN0IHJlbGF0ZWQgbWV0aG9kcy4KLSAgICBib29sIGlz
UmVjdEJhc2VkVGVzdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZWN0QmFzZWQ7IH0KLSAgICBib29s
IGlzUmVjdGlsaW5lYXIoKSBjb25zdCB7IHJldHVybiBtX2lzUmVjdGlsaW5lYXI7IH0KLSAgICBJ
bnRSZWN0IGJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZGluZ0JveDsgfQotCi0g
ICAgc3RhdGljIEludFJlY3QgcmVjdEZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiwgdW5zaWdu
ZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRk
aW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZyk7Ci0gICAgaW50IHRvcFBhZGRpbmcoKSBjb25zdCB7
IHJldHVybiByb3VuZGVkUG9pbnQoKS55KCkgLSBtX2JvdW5kaW5nQm94LnkoKTsgfQotICAgIGlu
dCByaWdodFBhZGRpbmcoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kaW5nQm94Lm1heFgoKSAtIHJv
dW5kZWRQb2ludCgpLngoKSAtIDE7IH0KLSAgICBpbnQgYm90dG9tUGFkZGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fYm91bmRpbmdCb3gubWF4WSgpIC0gcm91bmRlZFBvaW50KCkueSgpIC0gMTsgfQot
ICAgIGludCBsZWZ0UGFkZGluZygpIGNvbnN0IHsgcmV0dXJuIHJvdW5kZWRQb2ludCgpLngoKSAt
IG1fYm91bmRpbmdCb3gueCgpOyB9Ci0KLSAgICBib29sIGludGVyc2VjdHMoY29uc3QgTGF5b3V0
UmVjdCYpIGNvbnN0OwotICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QmKSBjb25z
dDsKLQotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zZm9ybWVkUG9pbnQoKSBjb25zdCB7IHJl
dHVybiBtX3RyYW5zZm9ybWVkUG9pbnQ7IH0KLSAgICBjb25zdCBGbG9hdFF1YWQmIHRyYW5zZm9y
bWVkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtZWRSZWN0OyB9Ci0KLXByaXZhdGU6
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVjdFR5cGU+Ci0gICAgYm9vbCBpbnRlcnNlY3RzUmVj
dChjb25zdCBSZWN0VHlwZSYpIGNvbnN0OwotICAgIHZvaWQgbW92ZShjb25zdCBMYXlvdXRTaXpl
JiBvZmZzZXQpOwotCi0gICAgLy8gVGhpcyBpcyBjYWNoZWQgZm9ybXMgb2YgdGhlIG1vcmUgYWNj
dXJhdGUgcG9pbnQgYW5kIGFyZWEgYmVsb3cuCi0gICAgTGF5b3V0UG9pbnQgbV9wb2ludDsKLSAg
ICBJbnRSZWN0IG1fYm91bmRpbmdCb3g7Ci0KLSAgICBGbG9hdFBvaW50IG1fdHJhbnNmb3JtZWRQ
b2ludDsKLSAgICBGbG9hdFF1YWQgbV90cmFuc2Zvcm1lZFJlY3Q7Ci0KLSAgICBSZW5kZXJSZWdp
b24qIG1fcmVnaW9uOyAvLyBUaGUgcmVnaW9uIHdlJ3JlIGluc2lkZS4KLQotICAgIGJvb2wgbV9p
c1JlY3RCYXNlZDsKLSAgICBib29sIG1faXNSZWN0aWxpbmVhcjsKLX07Ci0KIGNsYXNzIEhpdFRl
c3RSZXN1bHQgewogcHVibGljOgogICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVmUHRyPE5vZGU+
ID4gTm9kZVNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4
IDEzYTk3ZTM2MWJkZDRmOWY2MjQwZGY1NmQ5YzdhMzNiZDE1MTA3OWMuLjhjZGEyMzBiMjY1YTQz
ZGUzNmQ4YjljNzFkMDAwZjFmMTI2YWJkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgorI2luY2x1ZGUgIkhpdFRlc3RMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQu
aCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvci5oIgogI2luY2x1ZGUgIklubGluZVRleHRCb3gu
aCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191436</attachid>
            <date>2013-03-05 01:36:20 -0800</date>
            <delta_ts>2013-03-05 02:07:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-111294-20130305103226.patch</filename>
            <type>text/plain</type>
            <size>31380</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE0ZjBjMTg0ZWJlZTAy
YjM1Mjc3MGE1M2I1ZGM3MDRlNjdiMzU2ZS4uNDI2M2E4ZWQ4ZjgwNDBjZWUxMDE5NWRhMDZhN2M1
NjVmODQ4MjRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAzLTA1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xlYW51cDogTW92ZSBIaXRU
ZXN0TG9jYXRpb24gYW5kIEhpdFRlc3RSZXN1bHQgaW50byBzZXBhcmF0ZSBmaWxlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTI5NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsbGFuIFNhbmRmZWxkIEplbnNlbi4KKworICAgICAgICBIaXRUZXN0
TG9jYXRpb24gYW5kIEhpdFRlc3RSZXN1bHQgY3VycmVudGx5IGJvdGggbGl2ZSBpbgorICAgICAg
ICBIaXRUZXN0UmVzdWx0LmguIFRoYXQgbWFrZXMgdGhpbmdzIG1vcmUgZGlmZmljdWx0IHRvIHVu
ZGVyc3RhbmQgdGhhbgorICAgICAgICB0aGV5IHNob3VsZCBiZSwgYW5kIHZpb2xhdGVzIHRoZSBv
bmUtY2xhc3Mtb25lLWZpbGUgcHJpbmNpcGxlIHRoYXQKKyAgICAgICAgV2ViS2l0IGdlbmVyYWxs
eSBmb2xsb3dzLiBIYXBwaWx5LCBpdCdzIGZhaXJseSB0cml2aWFsIHRvIGZpeC4KKworICAgICAg
ICBUaGlzIHNob3VsZCBoYXZlIG5vIHZpc2libGUgY2hhbmdlOyBpdCdzIHN0cmljdGx5IGFuIGlu
dGVybmFsCisgICAgICAgIHJlZmFjdG9yaW5nLiBJdCBkb2Vzbid0IGV2ZW4gdG91Y2ggYW55IGlt
cGxlbWVudGF0aW9uIGNvZGU6IHdlJ3JlCisgICAgICAgIGp1c3QgbW92aW5nIGJpdHMgZnJvbSBv
bmUgcGxhY2UgdG8gYW5vdGhlci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAg
ICAgSGV5LCBsb29rOiBhIG5ldyBmaWxlISBMZXQncyBhZGQgaXQgdG8gc2l4IGRpZmZlcmVudCBi
dWlsZCBzeXN0ZW1zISA6KQorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExv
Y2F0aW9uOjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0
aW9uOjp+SGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlv
bjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6bW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmludGVyc2VjdHNSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnJlY3RGb3JQb2ludCk6CisgICAgICAgICogcmVuZGVy
aW5nL0hpdFRlc3RMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjpyb3VuZGVkUG9pbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjpyZWdpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uOjppc1JlY3RCYXNlZFRlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SGl0VGVzdExvY2F0aW9uOjppc1JlY3RpbGluZWFyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RMb2NhdGlvbjo6Ym91bmRpbmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dExvY2F0aW9uOjp0b3BQYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlv
bjo6cmlnaHRQYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6Ym90
dG9tUGFkZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OmxlZnRQYWRk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6dHJhbnNmb3JtZWRQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OnRyYW5zZm9ybWVkUmVjdCk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAqIHJlbmRl
cmluZy9IaXRUZXN0UmVzdWx0Lmg6CisgICAgICAgICAgICBNb3ZlIGFsbCB0aGlzIGNvZGUgZnJv
bSBIaXRUZXN0UmVzdWx0LiogdG8gSGl0VGVzdExvY2F0aW9uLiouCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgICAgIEluY2x1ZGUgSGl0VGVzdExvY2F0aW9u
LmguCisKIDIwMTMtMDMtMDUgIEtvamkgSGFyYSAgPGtvamloQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbVjhdIFJlbW92ZSB1bnVzZWQgY3VzdG9tIGluZGV4ZWRQcm9wZXJ0eUdldHRlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBjMDE0MTFmY2QwYmI2ODQ2NTE1NDk1NWFjYzkxYzk3NTY0NmU4
MmJhLi4wNDlkYzZhYmNmNTc1ODc5ZDUyMTg1ZWI4OGZkNmNhY2M4YzFkYjc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMjEzNyw2ICsyMTM3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFk
Q29udHJvbGxlci5jcHAKICAgICByZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmNw
cAorICAgIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCiAgICAgcmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuY3BwCiAgICAgcmVuZGVyaW5nL0lubGluZUJveC5jcHAKICAgICByZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGEyOGVi
MWVmMDBiMTY0ODFjYjI2Zjg2MTgxNDEzNWFkMzdlOTk3ZjcuLjcwMDk3NjZkZTg1ZWIzMzA5OTc3
MWYzMjhhYTYwODA0Mzk0NzhlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NDM3Myw2ICs0MzczLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RMb2NhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9j
YXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBiOWNmOGJjYjZh
MjkzMDIwNjI2MTUyNTQ1ZDk1NGY1MzQwOTk5ZmU0Li40YTk3NjRhYTJiMDgxMjYzZTNkM2Q2ZmM4
YWJmYTk4YTBiMzFmNDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTExNzMsNiArMTE3Myw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCBcCiAgICAgcmVuZGVy
aW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RpbmdU
cmFuc2Zvcm1TdGF0ZS5jcHAgXAorICAgIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwIFwK
ICAgICByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgXAogICAgIHJlbmRlcmluZy9JbmxpbmVC
b3guY3BwIFwKICAgICByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgXApAQCAtMjQ1MSw2ICsy
NDUyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVy
LmggXAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmggXAogICAgIHJlbmRlcmluZy9I
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBcCisgICAgcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlv
bi5oIFwKICAgICByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oIFwKICAgICByZW5kZXJpbmcvSW5s
aW5lQm94LmggXAogICAgIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDQxMWJiNzEzMDVkYTIzMTFiNGJjODkyZTQ0NzQzYjM3MDg3NDlmY2IuLmVjODQ2MzNk
NDg0MmE2YmQwNDkzZjdjNWJmMzRlZWQxYzBkZmJiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI0
MDMsNiArMjQwMyw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCcsCisgICAg
ICAgICAgICAncmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAnLAorICAgICAgICAgICAgJ3Jl
bmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvSW5saW5lQm94LmNwcCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZmExOGJkNjcyZWM2YjU3MmMz
ZDljODhkN2EzM2RlNzUyOTY5M2YwNy4uM2M3NzQwNWFmODlmZjUwMTg4YTYwZDVlOTZlNTBmZDlj
YmJiZjE2ZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTM5MzYzLDYgKzM5MzYzLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xIaXRUZXN0TG9jYXRpb24uY3BwIgorCQkJ
CT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxp
dGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlv
bnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcSGl0VGVzdExvY2F0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xIaXRUZXN0UmVxdWVzdC5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA0ODMxNjhmYzVjZTE2YjdmZjNlMzQ5ZTU4ZmQxYmRhN2QwNDljZWQw
Li4wZmI5MWEwNjM0OGZiZmIzMGExY2E5MDE1OGQ2YWIxOTM4YWYwN2MzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTgsNiAr
Nzk4LDggQEAKIAkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRl
ZEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDJGQzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLzsg
fTsKIAkJMkQ1QTU5MkYxNTI1MjUyMzAwMzZFRTUxIC8qIEltYWdlT3JpZW50YXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NDhENzQxMkND
M0Y4OTAwMUZCQTQxIC8qIEltYWdlT3JpZW50YXRpb24uY3BwICovOyB9OwogCQkyRDVBNTkzMTE1
MjUyNUQwMDAzNkVFNTEgLyogSW1hZ2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NDhENjYxMkNDMzc2MzAwMUZCQTQxIC8qIElt
YWdlT3JpZW50YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkyRDgyODdGNjE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODI4N0Y0
MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwICovOyB9OworCQkyRDgyODdG
NzE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDgyODdGNTE2RTRBMDM4MDA4NkJEMDAgLyog
SGl0VGVzdExvY2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOEZF
QkRBMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi87IH07CiAJCTJE
OEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4RkVCREIxNDNFM0VGNzAwNzI1
MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi87IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQwMDk1
Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRDkwNjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3Bw
ICovOyB9OwpAQCAtODE3MSw2ICs4MTczLDggQEAKIAkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMz
IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkQyRkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVy
YXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEM0EwRTM1MTNB
N0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5nRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHUGFyc2luZ0Vycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJEODI4N0Y0MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdExvY2F0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ4Mjg3RjUxNkU0QTAzODAwODZCRDAwIC8qIEhp
dFRlc3RMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaXRUZXN0
TG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREExNDNFM0VG
NzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAv
KiBMYXlvdXRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGF5b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIyNzgsNiAr
MjIyODIsOCBAQAogCQkJCTkzNUM0Nzc0MDlBQzREOEQwMEE2QUFCNCAvKiBHYXBSZWN0cy5oICov
LAogCQkJCTQ5NjlCMEYwMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3JtU3Rh
dGUuY3BwICovLAogCQkJCTQ5NjlCMEYxMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJh
bnNmb3JtU3RhdGUuaCAqLywKKwkJCQkyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVz
dExvY2F0aW9uLmNwcCAqLywKKwkJCQkyRDgyODdGNTE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVz
dExvY2F0aW9uLmggKi8sCiAJCQkJOTMwOTA4OTAwQUY3RURFNDAwODFERjAxIC8qIEhpdFRlc3RS
ZXF1ZXN0LmggKi8sCiAJCQkJOTMwN0YxRDUwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1
bHQuY3BwICovLAogCQkJCTkzMDdGMUQ2MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0
LmggKi8sCkBAIC0yNjY2Nyw2ICsyNjY3Myw3IEBACiAJCQkJQTMxQzRFNTQxNkUwMkI0MDAwMkY3
OTU3IC8qIEpTT0VTVGV4dHVyZUhhbGZGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U2NkUy
MzQxNkQ2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdFQTMwRjZBMTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovLAorIAkJCQkyRDgyODdGNzE2RTRBMDM4MDA4NkJE
MDAgLyogSGl0VGVzdExvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5ODY3LDYgKzI5ODc0
LDcgQEAKIAkJCQlBMzFDNEU1MjE2RTAyQjA4MDAyRjc5NTcgLyogSlNPRVNUZXh0dXJlSGFsZkZs
b2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFQTMwRjY5
MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGluIFNv
dXJjZXMgKi8sCisgCQkJCTJEODI4N0Y2MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdExvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
TG9jYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YmJlODI0MGM5ZGNkOGU5NjQyMWMyMTMwM2YyODU0
NThjOGY3OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0
VGVzdExvY2F0aW9uLmNwcApAQCAtMCwwICsxLDE5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIaXRUZXN0TG9jYXRpb24uaCIK
KworI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5o
IgorI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgorI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCisjaW5jbHVkZSAi
UmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRl
cklubGluZS5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorCisjaWYgRU5BQkxFKFNWRykKKyNp
bmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKKyNlbmRpZgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK0hpdFRl
c3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKCkKKyAgICA6IG1fcmVnaW9uKDApCisgICAgLCBt
X2lzUmVjdEJhc2VkKGZhbHNlKQorICAgICwgbV9pc1JlY3RpbGluZWFyKHRydWUpCit7Cit9CisK
K0hpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50JiBwb2lu
dCkKKyAgICA6IG1fcG9pbnQocG9pbnQpCisgICAgLCBtX2JvdW5kaW5nQm94KHJlY3RGb3JQb2lu
dChwb2ludCwgMCwgMCwgMCwgMCkpCisgICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQocG9pbnQpCisg
ICAgLCBtX3RyYW5zZm9ybWVkUmVjdChtX2JvdW5kaW5nQm94KQorICAgICwgbV9yZWdpb24oMCkK
KyAgICAsIG1faXNSZWN0QmFzZWQoZmFsc2UpCisgICAgLCBtX2lzUmVjdGlsaW5lYXIodHJ1ZSkK
K3sKK30KKworSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQpCisgICAgOiBtX3BvaW50KGZsb29yZWRMYXlvdXRQb2ludChwb2ludCkpCisgICAg
LCBtX2JvdW5kaW5nQm94KHJlY3RGb3JQb2ludChtX3BvaW50LCAwLCAwLCAwLCAwKSkKKyAgICAs
IG1fdHJhbnNmb3JtZWRQb2ludChwb2ludCkKKyAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG1fYm91
bmRpbmdCb3gpCisgICAgLCBtX3JlZ2lvbigwKQorICAgICwgbV9pc1JlY3RCYXNlZChmYWxzZSkK
KyAgICAsIG1faXNSZWN0aWxpbmVhcih0cnVlKQoreworfQorCitIaXRUZXN0TG9jYXRpb246Okhp
dFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRmxvYXRRdWFkJiBx
dWFkKQorICAgIDogbV90cmFuc2Zvcm1lZFBvaW50KHBvaW50KQorICAgICwgbV90cmFuc2Zvcm1l
ZFJlY3QocXVhZCkKKyAgICAsIG1fcmVnaW9uKDApCisgICAgLCBtX2lzUmVjdEJhc2VkKHRydWUp
Cit7CisgICAgbV9wb2ludCA9IGZsb29yZWRMYXlvdXRQb2ludChwb2ludCk7CisgICAgbV9ib3Vu
ZGluZ0JveCA9IGVuY2xvc2luZ0ludFJlY3QocXVhZC5ib3VuZGluZ0JveCgpKTsKKyAgICBtX2lz
UmVjdGlsaW5lYXIgPSBxdWFkLmlzUmVjdGlsaW5lYXIoKTsKK30KKworSGl0VGVzdExvY2F0aW9u
OjpIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25l
ZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRp
bmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKQorICAgIDogbV9wb2ludChjZW50ZXJQb2ludCkKKyAg
ICAsIG1fYm91bmRpbmdCb3gocmVjdEZvclBvaW50KGNlbnRlclBvaW50LCB0b3BQYWRkaW5nLCBy
aWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nKSkKKyAgICAsIG1fdHJhbnNm
b3JtZWRQb2ludChjZW50ZXJQb2ludCkKKyAgICAsIG1fcmVnaW9uKDApCisgICAgLCBtX2lzUmVj
dEJhc2VkKHRvcFBhZGRpbmcgfHwgcmlnaHRQYWRkaW5nIHx8IGJvdHRvbVBhZGRpbmcgfHwgbGVm
dFBhZGRpbmcpCisgICAgLCBtX2lzUmVjdGlsaW5lYXIodHJ1ZSkKK3sKKyAgICBtX3RyYW5zZm9y
bWVkUmVjdCA9IEZsb2F0UXVhZChtX2JvdW5kaW5nQm94KTsKK30KKworSGl0VGVzdExvY2F0aW9u
OjpIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJiBvdGhlciwgY29uc3QgTGF5
b3V0U2l6ZSYgb2Zmc2V0LCBSZW5kZXJSZWdpb24qIHJlZ2lvbikKKyAgICA6IG1fcG9pbnQob3Ro
ZXIubV9wb2ludCkKKyAgICAsIG1fYm91bmRpbmdCb3gob3RoZXIubV9ib3VuZGluZ0JveCkKKyAg
ICAsIG1fdHJhbnNmb3JtZWRQb2ludChvdGhlci5tX3RyYW5zZm9ybWVkUG9pbnQpCisgICAgLCBt
X3RyYW5zZm9ybWVkUmVjdChvdGhlci5tX3RyYW5zZm9ybWVkUmVjdCkKKyAgICAsIG1fcmVnaW9u
KHJlZ2lvbiA/IHJlZ2lvbiA6IG90aGVyLm1fcmVnaW9uKQorICAgICwgbV9pc1JlY3RCYXNlZChv
dGhlci5tX2lzUmVjdEJhc2VkKQorICAgICwgbV9pc1JlY3RpbGluZWFyKG90aGVyLm1faXNSZWN0
aWxpbmVhcikKK3sKKyAgICBtb3ZlKG9mZnNldCk7Cit9CisKK0hpdFRlc3RMb2NhdGlvbjo6SGl0
VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgb3RoZXIpCisgICAgOiBtX3BvaW50
KG90aGVyLm1fcG9pbnQpCisgICAgLCBtX2JvdW5kaW5nQm94KG90aGVyLm1fYm91bmRpbmdCb3gp
CisgICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQob3RoZXIubV90cmFuc2Zvcm1lZFBvaW50KQorICAg
ICwgbV90cmFuc2Zvcm1lZFJlY3Qob3RoZXIubV90cmFuc2Zvcm1lZFJlY3QpCisgICAgLCBtX3Jl
Z2lvbihvdGhlci5tX3JlZ2lvbikKKyAgICAsIG1faXNSZWN0QmFzZWQob3RoZXIubV9pc1JlY3RC
YXNlZCkKKyAgICAsIG1faXNSZWN0aWxpbmVhcihvdGhlci5tX2lzUmVjdGlsaW5lYXIpCit7Cit9
CisKK0hpdFRlc3RMb2NhdGlvbjo6fkhpdFRlc3RMb2NhdGlvbigpCit7Cit9CisKK0hpdFRlc3RM
b2NhdGlvbiYgSGl0VGVzdExvY2F0aW9uOjpvcGVyYXRvcj0oY29uc3QgSGl0VGVzdExvY2F0aW9u
JiBvdGhlcikKK3sKKyAgICBtX3BvaW50ID0gb3RoZXIubV9wb2ludDsKKyAgICBtX2JvdW5kaW5n
Qm94ID0gb3RoZXIubV9ib3VuZGluZ0JveDsKKyAgICBtX3RyYW5zZm9ybWVkUG9pbnQgPSBvdGhl
ci5tX3RyYW5zZm9ybWVkUG9pbnQ7CisgICAgbV90cmFuc2Zvcm1lZFJlY3QgPSBvdGhlci5tX3Ry
YW5zZm9ybWVkUmVjdDsKKyAgICBtX3JlZ2lvbiA9IG90aGVyLm1fcmVnaW9uOworICAgIG1faXNS
ZWN0QmFzZWQgPSBvdGhlci5tX2lzUmVjdEJhc2VkOworICAgIG1faXNSZWN0aWxpbmVhciA9IG90
aGVyLm1faXNSZWN0aWxpbmVhcjsKKworICAgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBIaXRU
ZXN0TG9jYXRpb246Om1vdmUoY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0KQoreworICAgIG1fcG9p
bnQubW92ZShvZmZzZXQpOworICAgIG1fdHJhbnNmb3JtZWRQb2ludC5tb3ZlKG9mZnNldCk7Cisg
ICAgbV90cmFuc2Zvcm1lZFJlY3QubW92ZShvZmZzZXQpOworICAgIG1fYm91bmRpbmdCb3ggPSBl
bmNsb3NpbmdJbnRSZWN0KG1fdHJhbnNmb3JtZWRSZWN0LmJvdW5kaW5nQm94KCkpOworfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0VHlwZT4KK2Jvb2wgSGl0VGVzdExvY2F0aW9uOjppbnRlcnNl
Y3RzUmVjdChjb25zdCBSZWN0VHlwZSYgcmVjdCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogV2hl
biB0aGUgaGl0IHRlc3QgaXMgbm90IHJlY3QgYmFzZWQgd2Ugc2hvdWxkIHVzZSByZWN0LmNvbnRh
aW5zKG1fcG9pbnQpLgorICAgIC8vIFRoYXQgZG9lcyBjaGFuZ2Ugc29tZSBjb3JuZXIgY2FzZSB0
ZXN0cyB0aG91Z2guCisKKyAgICAvLyBGaXJzdCBjaGVjayBpZiByZWN0IGV2ZW4gaW50ZXJzZWN0
cyBvdXIgYm91bmRpbmcgYm94LgorICAgIGlmICghcmVjdC5pbnRlcnNlY3RzKG1fYm91bmRpbmdC
b3gpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiB0aGUgdHJhbnNmb3JtZWQg
cmVjdCBpcyByZWN0aWxpbmVhciB0aGUgYm91bmRpbmcgYm94IGludGVyc2VjdGlvbiB3YXMgYWNj
dXJhdGUuCisgICAgaWYgKG1faXNSZWN0aWxpbmVhcikKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICAvLyBJZiByZWN0IGZ1bGx5IGNvbnRhaW5zIG91ciBib3VuZGluZyBib3gsIHdlIGFyZSBh
bHNvIHN1cmUgb2YgYW4gaW50ZXJzZWN0aW9uLgorICAgIGlmIChyZWN0LmNvbnRhaW5zKG1fYm91
bmRpbmdCb3gpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIE90aGVyd2lzZSB3ZSBu
ZWVkIHRvIGRvIGEgc2xvd2VyIHF1YWQgYmFzZWQgaW50ZXJzZWN0aW9uIHRlc3QuCisgICAgcmV0
dXJuIG1fdHJhbnNmb3JtZWRSZWN0LmludGVyc2VjdHNSZWN0KHJlY3QpOworfQorCitib29sIEhp
dFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0cyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KSBjb25zdAor
eworICAgIHJldHVybiBpbnRlcnNlY3RzUmVjdChyZWN0KTsKK30KKworYm9vbCBIaXRUZXN0TG9j
YXRpb246OmludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJl
dHVybiBpbnRlcnNlY3RzUmVjdChyZWN0KTsKK30KKworSW50UmVjdCBIaXRUZXN0TG9jYXRpb246
OnJlY3RGb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRp
bmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWdu
ZWQgbGVmdFBhZGRpbmcpCit7CisgICAgSW50UG9pbnQgYWN0dWFsUG9pbnQoZmxvb3JlZEludFBv
aW50KHBvaW50KSk7CisgICAgYWN0dWFsUG9pbnQgLT0gSW50U2l6ZShsZWZ0UGFkZGluZywgdG9w
UGFkZGluZyk7CisKKyAgICBJbnRTaXplIGFjdHVhbFBhZGRpbmcobGVmdFBhZGRpbmcgKyByaWdo
dFBhZGRpbmcsIHRvcFBhZGRpbmcgKyBib3R0b21QYWRkaW5nKTsKKyAgICAvLyBBcyBJbnRSZWN0
IGlzIGxlZnQgaW5jbHVzaXZlIGFuZCByaWdodCBleGNsdXNpdmUgKHNlZWluZyBJbnRSZWN0Ojpj
b250YWlucyh4LCB5KSksIGFkZGluZyAiMSIuCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9u
Y2Ugbm9uLXJlY3QgYmFzZWQgaGl0LWRldGVjdGlvbiBzdG9wcyB1c2luZyBJbnRSZWN0OmludGVy
c2VjdHMuCisgICAgYWN0dWFsUGFkZGluZyArPSBJbnRTaXplKDEsIDEpOworCisgICAgcmV0dXJu
IEludFJlY3QoYWN0dWFsUG9pbnQsIGFjdHVhbFBhZGRpbmcpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExv
Y2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjdmMmEwMGQxN2NhNzcxMzAwNzAyODk3MDEwMDU0YTY0ZGYwOGEzMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaApA
QCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisqLworCisjaWZuZGVmIEhpdFRlc3RMb2NhdGlvbl9oCisjZGVmaW5l
IEhpdFRlc3RMb2NhdGlvbl9oCisKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVxdWVzdC5oIgorI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKKyNpbmNsdWRlICJUZXh0RGlyZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsKKyNpZiBFTkFCTEUoVklERU8pCitjbGFzcyBIVE1M
TWVkaWFFbGVtZW50OworI2VuZGlmCitjbGFzcyBJbWFnZTsKK2NsYXNzIEtVUkw7CitjbGFzcyBO
b2RlOworY2xhc3MgUmVuZGVyUmVnaW9uOworY2xhc3MgU2Nyb2xsYmFyOworCitjbGFzcyBIaXRU
ZXN0TG9jYXRpb24geworcHVibGljOgorCisgICAgSGl0VGVzdExvY2F0aW9uKCk7CisgICAgSGl0
VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50Jik7CisgICAgSGl0VGVzdExvY2F0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmKTsKKyAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYs
IGNvbnN0IEZsb2F0UXVhZCYpOworICAgIC8vIFBhc3Mgbm9uLXplcm8gcGFkZGluZyB2YWx1ZXMg
dG8gcGVyZm9ybSBhIHJlY3QtYmFzZWQgaGl0IHRlc3QuCisgICAgSGl0VGVzdExvY2F0aW9uKGNv
bnN0IExheW91dFBvaW50JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWdu
ZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFk
ZGluZyk7CisgICAgLy8gTWFrZSBhIGNvcHkgdGhlIEhpdFRlc3RMb2NhdGlvbiBpbiBhIG5ldyBy
ZWdpb24gYnkgYXBwbHlpbmcgZ2l2ZW4gb2Zmc2V0IHRvIGludGVybmFsIHBvaW50IGFuZCBhcmVh
LgorICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mLCBjb25zdCBMYXlv
dXRTaXplJiBvZmZzZXQsIFJlbmRlclJlZ2lvbiogPSAwKTsKKyAgICBIaXRUZXN0TG9jYXRpb24o
Y29uc3QgSGl0VGVzdExvY2F0aW9uJik7CisgICAgfkhpdFRlc3RMb2NhdGlvbigpOworICAgIEhp
dFRlc3RMb2NhdGlvbiYgb3BlcmF0b3I9KGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYpOworCisgICAg
Y29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9wb2ludDsgfQorICAg
IEludFBvaW50IHJvdW5kZWRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHJvdW5kZWRJbnRQb2ludCht
X3BvaW50KTsgfQorCisgICAgUmVuZGVyUmVnaW9uKiByZWdpb24oKSBjb25zdCB7IHJldHVybiBt
X3JlZ2lvbjsgfQorCisgICAgLy8gUmVjdC1iYXNlZCBoaXQgdGVzdCByZWxhdGVkIG1ldGhvZHMu
CisgICAgYm9vbCBpc1JlY3RCYXNlZFRlc3QoKSBjb25zdCB7IHJldHVybiBtX2lzUmVjdEJhc2Vk
OyB9CisgICAgYm9vbCBpc1JlY3RpbGluZWFyKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RpbGlu
ZWFyOyB9CisgICAgSW50UmVjdCBib3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRp
bmdCb3g7IH0KKworICAgIHN0YXRpYyBJbnRSZWN0IHJlY3RGb3JQb2ludChjb25zdCBMYXlvdXRQ
b2ludCYsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWdu
ZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpOworICAgIGludCB0b3BQYWRk
aW5nKCkgY29uc3QgeyByZXR1cm4gcm91bmRlZFBvaW50KCkueSgpIC0gbV9ib3VuZGluZ0JveC55
KCk7IH0KKyAgICBpbnQgcmlnaHRQYWRkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZGluZ0Jv
eC5tYXhYKCkgLSByb3VuZGVkUG9pbnQoKS54KCkgLSAxOyB9CisgICAgaW50IGJvdHRvbVBhZGRp
bmcoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kaW5nQm94Lm1heFkoKSAtIHJvdW5kZWRQb2ludCgp
LnkoKSAtIDE7IH0KKyAgICBpbnQgbGVmdFBhZGRpbmcoKSBjb25zdCB7IHJldHVybiByb3VuZGVk
UG9pbnQoKS54KCkgLSBtX2JvdW5kaW5nQm94LngoKTsgfQorCisgICAgYm9vbCBpbnRlcnNlY3Rz
KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKKyAgICBib29sIGludGVyc2VjdHMoY29uc3QgRmxv
YXRSZWN0JikgY29uc3Q7CisKKyAgICBjb25zdCBGbG9hdFBvaW50JiB0cmFuc2Zvcm1lZFBvaW50
KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm1lZFBvaW50OyB9CisgICAgY29uc3QgRmxvYXRR
dWFkJiB0cmFuc2Zvcm1lZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybWVkUmVjdDsg
fQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJlY3RUeXBlPgorICAgIGJvb2wg
aW50ZXJzZWN0c1JlY3QoY29uc3QgUmVjdFR5cGUmKSBjb25zdDsKKyAgICB2b2lkIG1vdmUoY29u
c3QgTGF5b3V0U2l6ZSYgb2Zmc2V0KTsKKworICAgIC8vIFRoaXMgaXMgY2FjaGVkIGZvcm1zIG9m
IHRoZSBtb3JlIGFjY3VyYXRlIHBvaW50IGFuZCBhcmVhIGJlbG93LgorICAgIExheW91dFBvaW50
IG1fcG9pbnQ7CisgICAgSW50UmVjdCBtX2JvdW5kaW5nQm94OworCisgICAgRmxvYXRQb2ludCBt
X3RyYW5zZm9ybWVkUG9pbnQ7CisgICAgRmxvYXRRdWFkIG1fdHJhbnNmb3JtZWRSZWN0OworCisg
ICAgUmVuZGVyUmVnaW9uKiBtX3JlZ2lvbjsgLy8gVGhlIHJlZ2lvbiB3ZSdyZSBpbnNpZGUuCisK
KyAgICBib29sIG1faXNSZWN0QmFzZWQ7CisgICAgYm9vbCBtX2lzUmVjdGlsaW5lYXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIaXRUZXN0TG9jYXRpb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDBlMmYyYmFl
NTgxMzdhOTVkYjFmMDA5YWM1NWRmZjNkOWViNzU3MzIuLmYxYTM0NmU3ODhlNGM2NDJlOWNmNTM3
NDVkZWZjOTIzOWZhY2JkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHAKQEAgLTI4LDEzICsyOCwxNCBAQAogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIK
LSNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVmlkZW9FbGVtZW50LmgiCisjaW5jbHVkZSAiSGl0VGVzdExvY2F0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJl
bmRlcklubGluZS5oIgpAQCAtNDksMTUwICs1MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9j
YXRpb24oKQotICAgIDogbV9yZWdpb24oMCkKLSAgICAsIG1faXNSZWN0QmFzZWQoZmFsc2UpCi0g
ICAgLCBtX2lzUmVjdGlsaW5lYXIodHJ1ZSkKLXsKLX0KLQotSGl0VGVzdExvY2F0aW9uOjpIaXRU
ZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQotICAgIDogbV9wb2ludChwb2lu
dCkKLSAgICAsIG1fYm91bmRpbmdCb3gocmVjdEZvclBvaW50KHBvaW50LCAwLCAwLCAwLCAwKSkK
LSAgICAsIG1fdHJhbnNmb3JtZWRQb2ludChwb2ludCkKLSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0
KG1fYm91bmRpbmdCb3gpCi0gICAgLCBtX3JlZ2lvbigwKQotICAgICwgbV9pc1JlY3RCYXNlZChm
YWxzZSkKLSAgICAsIG1faXNSZWN0aWxpbmVhcih0cnVlKQotewotfQotCi1IaXRUZXN0TG9jYXRp
b246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKLSAgICA6IG1fcG9p
bnQoZmxvb3JlZExheW91dFBvaW50KHBvaW50KSkKLSAgICAsIG1fYm91bmRpbmdCb3gocmVjdEZv
clBvaW50KG1fcG9pbnQsIDAsIDAsIDAsIDApKQotICAgICwgbV90cmFuc2Zvcm1lZFBvaW50KHBv
aW50KQotICAgICwgbV90cmFuc2Zvcm1lZFJlY3QobV9ib3VuZGluZ0JveCkKLSAgICAsIG1fcmVn
aW9uKDApCi0gICAgLCBtX2lzUmVjdEJhc2VkKGZhbHNlKQotICAgICwgbV9pc1JlY3RpbGluZWFy
KHRydWUpCi17Ci19Ci0KLUhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQpCi0gICAgOiBtX3RyYW5zZm9y
bWVkUG9pbnQocG9pbnQpCi0gICAgLCBtX3RyYW5zZm9ybWVkUmVjdChxdWFkKQotICAgICwgbV9y
ZWdpb24oMCkKLSAgICAsIG1faXNSZWN0QmFzZWQodHJ1ZSkKLXsKLSAgICBtX3BvaW50ID0gZmxv
b3JlZExheW91dFBvaW50KHBvaW50KTsKLSAgICBtX2JvdW5kaW5nQm94ID0gZW5jbG9zaW5nSW50
UmVjdChxdWFkLmJvdW5kaW5nQm94KCkpOwotICAgIG1faXNSZWN0aWxpbmVhciA9IHF1YWQuaXNS
ZWN0aWxpbmVhcigpOwotfQotCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25z
dCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVk
IHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRp
bmcpCi0gICAgOiBtX3BvaW50KGNlbnRlclBvaW50KQotICAgICwgbV9ib3VuZGluZ0JveChyZWN0
Rm9yUG9pbnQoY2VudGVyUG9pbnQsIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFk
ZGluZywgbGVmdFBhZGRpbmcpKQotICAgICwgbV90cmFuc2Zvcm1lZFBvaW50KGNlbnRlclBvaW50
KQotICAgICwgbV9yZWdpb24oMCkKLSAgICAsIG1faXNSZWN0QmFzZWQodG9wUGFkZGluZyB8fCBy
aWdodFBhZGRpbmcgfHwgYm90dG9tUGFkZGluZyB8fCBsZWZ0UGFkZGluZykKLSAgICAsIG1faXNS
ZWN0aWxpbmVhcih0cnVlKQotewotICAgIG1fdHJhbnNmb3JtZWRSZWN0ID0gRmxvYXRRdWFkKG1f
Ym91bmRpbmdCb3gpOwotfQotCi1IaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25z
dCBIaXRUZXN0TG9jYXRpb24mIG90aGVyLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQsIFJlbmRl
clJlZ2lvbiogcmVnaW9uKQotICAgIDogbV9wb2ludChvdGhlci5tX3BvaW50KQotICAgICwgbV9i
b3VuZGluZ0JveChvdGhlci5tX2JvdW5kaW5nQm94KQotICAgICwgbV90cmFuc2Zvcm1lZFBvaW50
KG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludCkKLSAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG90aGVy
Lm1fdHJhbnNmb3JtZWRSZWN0KQotICAgICwgbV9yZWdpb24ocmVnaW9uID8gcmVnaW9uIDogb3Ro
ZXIubV9yZWdpb24pCi0gICAgLCBtX2lzUmVjdEJhc2VkKG90aGVyLm1faXNSZWN0QmFzZWQpCi0g
ICAgLCBtX2lzUmVjdGlsaW5lYXIob3RoZXIubV9pc1JlY3RpbGluZWFyKQotewotICAgIG1vdmUo
b2Zmc2V0KTsKLX0KLQotSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0
VGVzdExvY2F0aW9uJiBvdGhlcikKLSAgICA6IG1fcG9pbnQob3RoZXIubV9wb2ludCkKLSAgICAs
IG1fYm91bmRpbmdCb3gob3RoZXIubV9ib3VuZGluZ0JveCkKLSAgICAsIG1fdHJhbnNmb3JtZWRQ
b2ludChvdGhlci5tX3RyYW5zZm9ybWVkUG9pbnQpCi0gICAgLCBtX3RyYW5zZm9ybWVkUmVjdChv
dGhlci5tX3RyYW5zZm9ybWVkUmVjdCkKLSAgICAsIG1fcmVnaW9uKG90aGVyLm1fcmVnaW9uKQot
ICAgICwgbV9pc1JlY3RCYXNlZChvdGhlci5tX2lzUmVjdEJhc2VkKQotICAgICwgbV9pc1JlY3Rp
bGluZWFyKG90aGVyLm1faXNSZWN0aWxpbmVhcikKLXsKLX0KLQotSGl0VGVzdExvY2F0aW9uOjp+
SGl0VGVzdExvY2F0aW9uKCkKLXsKLX0KLQotSGl0VGVzdExvY2F0aW9uJiBIaXRUZXN0TG9jYXRp
b246Om9wZXJhdG9yPShjb25zdCBIaXRUZXN0TG9jYXRpb24mIG90aGVyKQotewotICAgIG1fcG9p
bnQgPSBvdGhlci5tX3BvaW50OwotICAgIG1fYm91bmRpbmdCb3ggPSBvdGhlci5tX2JvdW5kaW5n
Qm94OwotICAgIG1fdHJhbnNmb3JtZWRQb2ludCA9IG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludDsK
LSAgICBtX3RyYW5zZm9ybWVkUmVjdCA9IG90aGVyLm1fdHJhbnNmb3JtZWRSZWN0OwotICAgIG1f
cmVnaW9uID0gb3RoZXIubV9yZWdpb247Ci0gICAgbV9pc1JlY3RCYXNlZCA9IG90aGVyLm1faXNS
ZWN0QmFzZWQ7Ci0gICAgbV9pc1JlY3RpbGluZWFyID0gb3RoZXIubV9pc1JlY3RpbGluZWFyOwot
Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi12b2lkIEhpdFRlc3RMb2NhdGlvbjo6bW92ZShjb25z
dCBMYXlvdXRTaXplJiBvZmZzZXQpCi17Ci0gICAgbV9wb2ludC5tb3ZlKG9mZnNldCk7Ci0gICAg
bV90cmFuc2Zvcm1lZFBvaW50Lm1vdmUob2Zmc2V0KTsKLSAgICBtX3RyYW5zZm9ybWVkUmVjdC5t
b3ZlKG9mZnNldCk7Ci0gICAgbV9ib3VuZGluZ0JveCA9IGVuY2xvc2luZ0ludFJlY3QobV90cmFu
c2Zvcm1lZFJlY3QuYm91bmRpbmdCb3goKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFJlY3RU
eXBlPgotYm9vbCBIaXRUZXN0TG9jYXRpb246OmludGVyc2VjdHNSZWN0KGNvbnN0IFJlY3RUeXBl
JiByZWN0KSBjb25zdAotewotICAgIC8vIEZJWE1FOiBXaGVuIHRoZSBoaXQgdGVzdCBpcyBub3Qg
cmVjdCBiYXNlZCB3ZSBzaG91bGQgdXNlIHJlY3QuY29udGFpbnMobV9wb2ludCkuCi0gICAgLy8g
VGhhdCBkb2VzIGNoYW5nZSBzb21lIGNvcm5lciBjYXNlIHRlc3RzIHRob3VnaC4KLQotICAgIC8v
IEZpcnN0IGNoZWNrIGlmIHJlY3QgZXZlbiBpbnRlcnNlY3RzIG91ciBib3VuZGluZyBib3guCi0g
ICAgaWYgKCFyZWN0LmludGVyc2VjdHMobV9ib3VuZGluZ0JveCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIC8vIElmIHRoZSB0cmFuc2Zvcm1lZCByZWN0IGlzIHJlY3RpbGluZWFyIHRo
ZSBib3VuZGluZyBib3ggaW50ZXJzZWN0aW9uIHdhcyBhY2N1cmF0ZS4KLSAgICBpZiAobV9pc1Jl
Y3RpbGluZWFyKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8vIElmIHJlY3QgZnVsbHkg
Y29udGFpbnMgb3VyIGJvdW5kaW5nIGJveCwgd2UgYXJlIGFsc28gc3VyZSBvZiBhbiBpbnRlcnNl
Y3Rpb24uCi0gICAgaWYgKHJlY3QuY29udGFpbnMobV9ib3VuZGluZ0JveCkpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotCi0gICAgLy8gT3RoZXJ3aXNlIHdlIG5lZWQgdG8gZG8gYSBzbG93ZXIgcXVh
ZCBiYXNlZCBpbnRlcnNlY3Rpb24gdGVzdC4KLSAgICByZXR1cm4gbV90cmFuc2Zvcm1lZFJlY3Qu
aW50ZXJzZWN0c1JlY3QocmVjdCk7Ci19Ci0KLWJvb2wgSGl0VGVzdExvY2F0aW9uOjppbnRlcnNl
Y3RzKGNvbnN0IExheW91dFJlY3QmIHJlY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGludGVyc2Vj
dHNSZWN0KHJlY3QpOwotfQotCi1ib29sIEhpdFRlc3RMb2NhdGlvbjo6aW50ZXJzZWN0cyhjb25z
dCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGludGVyc2VjdHNSZWN0KHJl
Y3QpOwotfQotCi1JbnRSZWN0IEhpdFRlc3RMb2NhdGlvbjo6cmVjdEZvclBvaW50KGNvbnN0IExh
eW91dFBvaW50JiBwb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRk
aW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZykKLXsKLSAg
ICBJbnRQb2ludCBhY3R1YWxQb2ludChmbG9vcmVkSW50UG9pbnQocG9pbnQpKTsKLSAgICBhY3R1
YWxQb2ludCAtPSBJbnRTaXplKGxlZnRQYWRkaW5nLCB0b3BQYWRkaW5nKTsKLQotICAgIEludFNp
emUgYWN0dWFsUGFkZGluZyhsZWZ0UGFkZGluZyArIHJpZ2h0UGFkZGluZywgdG9wUGFkZGluZyAr
IGJvdHRvbVBhZGRpbmcpOwotICAgIC8vIEFzIEludFJlY3QgaXMgbGVmdCBpbmNsdXNpdmUgYW5k
IHJpZ2h0IGV4Y2x1c2l2ZSAoc2VlaW5nIEludFJlY3Q6OmNvbnRhaW5zKHgsIHkpKSwgYWRkaW5n
ICIxIi4KLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBub24tcmVjdCBiYXNlZCBoaXQt
ZGV0ZWN0aW9uIHN0b3BzIHVzaW5nIEludFJlY3Q6aW50ZXJzZWN0cy4KLSAgICBhY3R1YWxQYWRk
aW5nICs9IEludFNpemUoMSwgMSk7Ci0KLSAgICByZXR1cm4gSW50UmVjdChhY3R1YWxQb2ludCwg
YWN0dWFsUGFkZGluZyk7Ci19Ci0KIEhpdFRlc3RSZXN1bHQ6OkhpdFRlc3RSZXN1bHQoKQogICAg
IDogbV9pc092ZXJXaWRnZXQoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRl
c3RSZXN1bHQuaAppbmRleCAyN2NiYjVlYWQ0NjQ0MDRmYTZjYmFmZmYxNDg4MmYyNTMzZWY0ZGI0
Li4yNWE2OTU1YTRiYzVjNjc0NTg5YjVlYzRiYWJmNjAxMTMzNzk3ZWFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1
ZGUgIkZsb2F0UXVhZC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkhpdFRl
c3RMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTGF5
b3V0UmVjdC5oIgogI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKQEAgLTQ1LDYyICs0Niw2IEBA
IGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJSZWdpb247CiBjbGFzcyBTY3JvbGxiYXI7CiAKLS8v
IEZJWE1FOiBIaXRUZXN0TG9jYXRpb24gc2hvdWxkIGJlIG1vdmVkIHRvIGEgc2VwYXJhdGUgZmls
ZS4KLWNsYXNzIEhpdFRlc3RMb2NhdGlvbiB7Ci1wdWJsaWM6Ci0KLSAgICBIaXRUZXN0TG9jYXRp
b24oKTsKLSAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmKTsKLSAgICBIaXRU
ZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYpOwotICAgIEhpdFRlc3RMb2NhdGlvbihjb25z
dCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRRdWFkJik7Ci0gICAgLy8gUGFzcyBub24temVybyBw
YWRkaW5nIHZhbHVlcyB0byBwZXJmb3JtIGEgcmVjdC1iYXNlZCBoaXQgdGVzdC4KLSAgICBIaXRU
ZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQ
YWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVu
c2lnbmVkIGxlZnRQYWRkaW5nKTsKLSAgICAvLyBNYWtlIGEgY29weSB0aGUgSGl0VGVzdExvY2F0
aW9uIGluIGEgbmV3IHJlZ2lvbiBieSBhcHBseWluZyBnaXZlbiBvZmZzZXQgdG8gaW50ZXJuYWwg
cG9pbnQgYW5kIGFyZWEuCi0gICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgUmVuZGVyUmVnaW9uKiA9IDApOwotICAgIEhp
dFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mKTsKLSAgICB+SGl0VGVzdExvY2F0
aW9uKCk7Ci0gICAgSGl0VGVzdExvY2F0aW9uJiBvcGVyYXRvcj0oY29uc3QgSGl0VGVzdExvY2F0
aW9uJik7Ci0KLSAgICBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQoKSBjb25zdCB7IHJldHVybiBt
X3BvaW50OyB9Ci0gICAgSW50UG9pbnQgcm91bmRlZFBvaW50KCkgY29uc3QgeyByZXR1cm4gcm91
bmRlZEludFBvaW50KG1fcG9pbnQpOyB9Ci0KLSAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fcmVnaW9uOyB9Ci0KLSAgICAvLyBSZWN0LWJhc2VkIGhpdCB0ZXN0IHJl
bGF0ZWQgbWV0aG9kcy4KLSAgICBib29sIGlzUmVjdEJhc2VkVGVzdCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNSZWN0QmFzZWQ7IH0KLSAgICBib29sIGlzUmVjdGlsaW5lYXIoKSBjb25zdCB7IHJldHVy
biBtX2lzUmVjdGlsaW5lYXI7IH0KLSAgICBJbnRSZWN0IGJvdW5kaW5nQm94KCkgY29uc3QgeyBy
ZXR1cm4gbV9ib3VuZGluZ0JveDsgfQotCi0gICAgc3RhdGljIEludFJlY3QgcmVjdEZvclBvaW50
KGNvbnN0IExheW91dFBvaW50JiwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQ
YWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZyk7Ci0g
ICAgaW50IHRvcFBhZGRpbmcoKSBjb25zdCB7IHJldHVybiByb3VuZGVkUG9pbnQoKS55KCkgLSBt
X2JvdW5kaW5nQm94LnkoKTsgfQotICAgIGludCByaWdodFBhZGRpbmcoKSBjb25zdCB7IHJldHVy
biBtX2JvdW5kaW5nQm94Lm1heFgoKSAtIHJvdW5kZWRQb2ludCgpLngoKSAtIDE7IH0KLSAgICBp
bnQgYm90dG9tUGFkZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRpbmdCb3gubWF4WSgpIC0g
cm91bmRlZFBvaW50KCkueSgpIC0gMTsgfQotICAgIGludCBsZWZ0UGFkZGluZygpIGNvbnN0IHsg
cmV0dXJuIHJvdW5kZWRQb2ludCgpLngoKSAtIG1fYm91bmRpbmdCb3gueCgpOyB9Ci0KLSAgICBi
b29sIGludGVyc2VjdHMoY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OwotICAgIGJvb2wgaW50ZXJz
ZWN0cyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKLQotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHRy
YW5zZm9ybWVkUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybWVkUG9pbnQ7IH0KLSAg
ICBjb25zdCBGbG9hdFF1YWQmIHRyYW5zZm9ybWVkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNmb3JtZWRSZWN0OyB9Ci0KLXByaXZhdGU6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVjdFR5
cGU+Ci0gICAgYm9vbCBpbnRlcnNlY3RzUmVjdChjb25zdCBSZWN0VHlwZSYpIGNvbnN0OwotICAg
IHZvaWQgbW92ZShjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpOwotCi0gICAgLy8gVGhpcyBpcyBj
YWNoZWQgZm9ybXMgb2YgdGhlIG1vcmUgYWNjdXJhdGUgcG9pbnQgYW5kIGFyZWEgYmVsb3cuCi0g
ICAgTGF5b3V0UG9pbnQgbV9wb2ludDsKLSAgICBJbnRSZWN0IG1fYm91bmRpbmdCb3g7Ci0KLSAg
ICBGbG9hdFBvaW50IG1fdHJhbnNmb3JtZWRQb2ludDsKLSAgICBGbG9hdFF1YWQgbV90cmFuc2Zv
cm1lZFJlY3Q7Ci0KLSAgICBSZW5kZXJSZWdpb24qIG1fcmVnaW9uOyAvLyBUaGUgcmVnaW9uIHdl
J3JlIGluc2lkZS4KLQotICAgIGJvb2wgbV9pc1JlY3RCYXNlZDsKLSAgICBib29sIG1faXNSZWN0
aWxpbmVhcjsKLX07Ci0KIGNsYXNzIEhpdFRlc3RSZXN1bHQgewogcHVibGljOgogICAgIHR5cGVk
ZWYgTGlzdEhhc2hTZXQ8UmVmUHRyPE5vZGU+ID4gTm9kZVNldDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGJmOWUxODVkMmEwNWFmZWY4MGQ3NjA4N2EyNmY5
OThkYzhhMWMxMjcuLjRmZjUyNTBiZDRjZTdiMzcxNzJmZGFjM2EwODdiMDU0YzBkYTE4OWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhpdFRlc3RMb2NhdGlvbi5o
IgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvci5o
IgogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>