<?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>103469</bug_id>
          
          <creation_ts>2012-11-27 16:54:12 -0800</creation_ts>
          <short_desc>Need a method to close all idle localstorage databases immediately.</short_desc>
          <delta_ts>2012-12-02 23:37:13 -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>
          
          <blocked>103861</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Yongjun Zhang">yongjun_zhang</assigned_to>
          <cc>beidson</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jochen</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mifenton</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>777383</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-27 16:54:12 -0800</bug_when>
    <thetext>Currently, if there is no document referencing to a local storage database, the database will be closed in 300 seconds.  It would be nice if we could have a method to close the database without waiting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777387</commentid>
    <comment_count>1</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-27 16:57:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/11858713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777428</commentid>
    <comment_count>2</comment_count>
      <attachid>176378</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-27 17:56:32 -0800</bug_when>
    <thetext>Created attachment 176378
Add a method to PageGroup to close all idle local storage databases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777466</commentid>
    <comment_count>3</comment_count>
      <attachid>176378</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 19:32:27 -0800</bug_when>
    <thetext>Comment on attachment 176378
Add a method to PageGroup to close all idle local storage databases.

Attachment 176378 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15010358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777477</commentid>
    <comment_count>4</comment_count>
      <attachid>176378</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-27 20:15:32 -0800</bug_when>
    <thetext>Comment on attachment 176378
Add a method to PageGroup to close all idle local storage databases.

Attachment 176378 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15023277</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777525</commentid>
    <comment_count>5</comment_count>
      <attachid>176396</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-27 21:58:07 -0800</bug_when>
    <thetext>Created attachment 176396
Fix chrome build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777581</commentid>
    <comment_count>6</comment_count>
      <attachid>176396</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 23:50:28 -0800</bug_when>
    <thetext>Comment on attachment 176396
Fix chrome build break.

Attachment 176396 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15013378

New failing tests:
storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778004</commentid>
    <comment_count>7</comment_count>
      <attachid>176507</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-28 10:02:23 -0800</bug_when>
    <thetext>Created attachment 176507
Fix chromium test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778082</commentid>
    <comment_count>8</comment_count>
      <attachid>176507</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 11:03:22 -0800</bug_when>
    <thetext>Comment on attachment 176507
Fix chromium test failure.

Attachment 176507 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15029424

New failing tests:
storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778099</commentid>
    <comment_count>9</comment_count>
      <attachid>176529</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-28 11:22:35 -0800</bug_when>
    <thetext>Created attachment 176529
skip the new test on chromium since the test requires Safari&apos;s cache model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779027</commentid>
    <comment_count>10</comment_count>
      <attachid>176529</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-11-29 08:33:28 -0800</bug_when>
    <thetext>Comment on attachment 176529
skip the new test on chromium since the test requires Safari&apos;s cache model.

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

r=me with the non-nit issues addressed.

&gt; Source/WebCore/page/PageGroup.cpp:152
&gt; +    if (!pageGroups)

Nit: This variable should be named s_pageGroups and be a static class variable in the PageGroup class instead of a local static variable.
Not necessary to fix this for this patch, though.

&gt; Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp:1003
&gt; +void TestRunner::closeIdleLocalStorageDatabases()
&gt; +{
&gt; +}

Nit:  Could add a FIXME comment here.

&gt; LayoutTests/storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html:13
&gt; +function log(a)
&gt; +{
&gt; +    document.getElementById(&quot;logger&quot;).innerHTML += a + &quot;&lt;br&gt;&quot;;
&gt; +}

Argument to function should have a better name like &quot;message&quot;.

I would prefer it if we used fast/js/resources/js-test-pre.js with the description(), testPassed() and testFailed() functions instead of rolling our own custom messages.  We should also include fast/js/resources/js-test-style.css as a stylesheet for the test.

&gt; LayoutTests/storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html:36
&gt; +        if (loadCount == 1 ) {

Extra space between &quot;1&quot; and &quot;)&quot;.

&gt; LayoutTests/storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html:57
&gt; +&lt;div id=&quot;logger&quot;&gt;&lt;/div&gt;

&quot;logger&quot; becomes &quot;console&quot; here if we use fast/js/resources/js-test-pre.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779214</commentid>
    <comment_count>11</comment_count>
      <attachid>176765</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-29 11:20:32 -0800</bug_when>
    <thetext>Created attachment 176765
slightly modified patch, addressing review comments and use fast/js/resources/js-test-pre.js for presenting test results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779371</commentid>
    <comment_count>12</comment_count>
      <attachid>176765</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 13:16:37 -0800</bug_when>
    <thetext>Comment on attachment 176765
slightly modified patch, addressing review comments and use fast/js/resources/js-test-pre.js for presenting test results.

Rejecting attachment 176765 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
um/third_party/v8-i18n --revision 159 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
51&gt;At revision 159.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...
Total errors found: 0 in 1 files

Full output: http://queues.webkit.org/results/15054088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779413</commentid>
    <comment_count>13</comment_count>
      <attachid>176812</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-11-29 13:59:09 -0800</bug_when>
    <thetext>Created attachment 176812
Remove OOPS in LayoutTest/ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779454</commentid>
    <comment_count>14</comment_count>
      <attachid>176812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 14:45:04 -0800</bug_when>
    <thetext>Comment on attachment 176812
Remove OOPS in LayoutTest/ChangeLog

Rejecting attachment 176812 from commit-queue.

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
Full output: http://queues.webkit.org/results/15036644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780735</commentid>
    <comment_count>15</comment_count>
      <attachid>176812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-01 08:17:55 -0800</bug_when>
    <thetext>Comment on attachment 176812
Remove OOPS in LayoutTest/ChangeLog

Rejecting attachment 176812 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Last 500 characters of output:
  return self.open(self.click(*args, **kwds))
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py&quot;, line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py&quot;, line 255, in _mech_open
    raise response
webkitpy.thirdparty.autoinstalled.mechanize._response.httperror_seek_wrapper: HTTP Error 500: Internal Server Error

Full output: http://queues.webkit.org/results/15063768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780891</commentid>
    <comment_count>16</comment_count>
      <attachid>176812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-02 02:32:35 -0800</bug_when>
    <thetext>Comment on attachment 176812
Remove OOPS in LayoutTest/ChangeLog

Clearing flags on attachment: 176812

Committed r136323: &lt;http://trac.webkit.org/changeset/136323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780892</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-02 02:32:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176378</attachid>
            <date>2012-11-27 17:56:32 -0800</date>
            <delta_ts>2012-11-27 21:58:07 -0800</delta_ts>
            <desc>Add a method to PageGroup to close all idle local storage databases.</desc>
            <filename>close_idle_localstorage.patch</filename>
            <type>text/plain</type>
            <size>20302</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTI3ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhv
ZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3
IFBhZ2VHcm91cCBtZXRob2QgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzLCB3aGljaCB3
YWxrcyB0aHJvdWdoCisgICAgICAgIGFsbCBsb2NhbCBzdG9yYWdlIGFyZWFzIHRoYXQgZG9uJ3Qg
aGF2ZSBkb2N1bWVudCByZWZlcmVuY2luZyB0byB0aGVtIGFuZCBjbG9zZXMKKyAgICAgICAgdGhl
aXIgdW5kZXJseWluZyBkYXRhYmFzZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRp
YXRlbHkuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9Q
YWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjbGVhckxvY2FsU3Rv
cmFnZUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKTogd2Fsa2luZyB0aHJvdWdo
IGFsbCBpZGxlIGxvY2FsIHN0b3JhZ2VzIGFuZAorICAgICAgICAgICAgY2xvc2luZyB0aGVpciBk
YXRhYmFzZXMuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuaDoKKyAgICAgICAgKFBhZ2VHcm91
cCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZUFyZWE6OmNsb3NlRGF0YWJhc2VJZklkbGUpOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y2xv
c2VEYXRhYmFzZUlmSWRsZSk6IGNsb3NlIHRoZSBkYXRhYmFzZSBpZiBpdCBpcyBpZGxlLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaDoKKyAg
ICAgICAgKFN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlLmg6CisgICAgICAgIChTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oOgorICAgICAgICAo
U3RvcmFnZU5hbWVzcGFjZUltcGwpOgorCiAyMDEyLTExLTI3ICBKYW1lcyBTaW1vbnNlbiAgPHNp
bW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6
bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTA3Nyw2ICsxMDc3LDcgQEAgX19aTjdX
ZWJDb3JlOVBhZ2VHcm91cDI2c2V0U2hvdWxkVHJhY2tWaQogX19aTjdXZWJDb3JlOVBhZ2VHcm91
cDI5cmVtb3ZlVXNlclN0eWxlU2hlZXRGcm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJL
TlNfNEtVUkxFCiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzByZW1vdmVVc2VyU3R5bGVTaGVldHNG
cm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDlw
YWdlR3JvdXBFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzBjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXNFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEwbW91c2VN
b3ZlZEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEx
bW91c2VFeGl0ZWRFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEybW91c2VFbnRlcmVkRXYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDkgKzE0
NCwyMSBAQCB2b2lkIFBhZ2VHcm91cDo6Y2xlYXJMb2NhbFN0b3JhZ2VGb3JPcmlnCiAgICAgZm9y
IChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0gcGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQog
ICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0b3JhZ2UoKS0+Y2xlYXJPcmlnaW5Gb3JEZWxl
dGlvbihvcmlnaW4pOwotICAgIH0gICAgCisgICAgfQogfQotICAgIAorCit2b2lkIFBhZ2VHcm91
cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICBpZiAoIXBhZ2VHcm91
cHMpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2VHcm91cE1hcDo6aXRlcmF0b3IgZW5kID0g
cGFnZUdyb3Vwcy0+ZW5kKCk7CisgICAgZm9yIChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0g
cGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmIChpdC0+
dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQorICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0
b3JhZ2UoKS0+Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CisgICAgfQorfQorCiB2
b2lkIFBhZ2VHcm91cDo6c3luY0xvY2FsU3RvcmFnZSgpCiB7CiAgICAgaWYgKCFwYWdlR3JvdXBz
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCBjbGVhckxvY2Fs
U3RvcmFnZUZvckFsbE9yaWdpbnMoKTsKICAgICAgICAgc3RhdGljIHZvaWQgY2xlYXJMb2NhbFN0
b3JhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKKyAgICAgICAgc3RhdGljIHZvaWQgY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CiAgICAgICAgIC8vIER1bXBSZW5kZXJUcmVl
IGhlbHBlciB0aGF0IHRyaWdnZXJzIGEgU3RvcmFnZUFyZWEgc3luYy4KICAgICAgICAgc3RhdGlj
IHZvaWQgc3luY0xvY2FsU3RvcmFnZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbmNyZW1lbnRBY2Nlc3NDb3VudCgpIHsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50QWNjZXNzQ291bnQoKSB7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlRGF0YWJhc2VJZklkbGUoKSB7IH0KICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OSw0ICszNDksMTQgQEAg
dm9pZCBTdG9yYWdlQXJlYUltcGw6OmNsb3NlRGF0YWJhc2VUaW1lcgogICAgICAgICBtX3N0b3Jh
Z2VBcmVhU3luYy0+c2NoZWR1bGVDbG9zZURhdGFiYXNlKCk7CiB9CiAKK3ZvaWQgU3RvcmFnZUFy
ZWFJbXBsOjpjbG9zZURhdGFiYXNlSWZJZGxlKCkKK3sKKyAgICBpZiAobV9jbG9zZURhdGFiYXNl
VGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBBU1NFUlQoIW1fYWNjZXNzQ291bnQpOworICAg
ICAgICBtX2Nsb3NlRGF0YWJhc2VUaW1lci5zdG9wKCk7CisKKyAgICAgICAgY2xvc2VEYXRhYmFz
ZVRpbWVyRmlyZWQoJm1fY2xvc2VEYXRhYmFzZVRpbWVyKTsKKyAgICB9Cit9CisKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkocmV2aXNpb24gMTM1OTI2
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGluY3JlbWVudEFjY2Vzc0NvdW50KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWNyZW1lbnRBY2Nlc3NDb3VudCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFz
ZUlmSWRsZSgpOwogCiAgICAgICAgIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBjb3B5KCk7
CiAgICAgICAgIHZvaWQgY2xvc2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT3JpZ2luRm9yRGVsZXRpb24oU2VjdXJpdHlP
cmlnaW4qKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsT3JpZ2luc0ZvckRlbGV0aW9u
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw0ICsxNjUs
MTIgQEAgdm9pZCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3luYygpCiAgICAgICAgIGl0LT52YWx1
ZS0+c3luYygpOwogfQogCit2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
U3RvcmFnZUFyZWFNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fc3RvcmFnZUFyZWFNYXAuZW5kKCk7Cisg
ICAgZm9yIChTdG9yYWdlQXJlYU1hcDo6aXRlcmF0b3IgaXQgPSBtX3N0b3JhZ2VBcmVhTWFwLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQtPnZhbHVlLT5jbG9zZURhdGFiYXNl
SWZJZGxlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgJKHJldmlzaW9uIDEzNTkyNikK
KysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNyArNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBjbGVhck9yaWdpbkZvckRlbGV0aW9uKFNlY3VyaXR5T3JpZ2luKik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbE9yaWdpbnNGb3JEZWxldGlvbigpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgc3luYygpOwotICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsb3Nl
SWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3Rv
cmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWdu
ZWQgcXVvdGEpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzU5NTMpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0xMS0yNyAgWW9uZ2p1biBaaGFuZyAgPHlvbmdqdW5femhhbmdAYXBwbGUuY29tPgor
CisgICAgICAgIE5lZWQgYSBtZXRob2QgdG8gY2xvc2UgYWxsIGlkbGUgbG9jYWxzdG9yYWdlIGRh
dGFiYXNlcyBpbW1lZGlhdGVseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzQ2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBtZXRob2QgdG8gV2ViU3RvcmFnZU1hbmFnZXIgdGhhdCB3
ZSBjYW4gY2FsbCB0byBjbG9zZSBhbGwKKyAgICAgICAgaWRsZSBsb2NhbCBzdG9yYWdlIGRhdGFi
YXNlcy4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW06CisgICAgICAg
ICgrW1dlYlN0b3JhZ2VNYW5hZ2VyIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlc10pOgor
ICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmg6CisKIDIwMTItMTEt
MjcgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENv
bnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEg
RnJhbWVMb2FkUmVxdWVzdApJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9y
YWdlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyLm1tCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW1wb3J0ICJXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oIgogCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
dG9yYWdlVHJhY2tlci5oPgogI2ltcG9ydCA8cHRocmVhZC5oPgpAQCAtMTAyLDYgKzEwMywxMSBA
QCArICh2b2lkKXNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDooCiAgICAgU3RvcmFnZVRy
YWNrZXI6OnRyYWNrZXIoKS5zZXRTdG9yYWdlRGF0YWJhc2VJZGxlSW50ZXJ2YWwoaW50ZXJ2YWwp
OwogfQogCisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcworeworICAgIFBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7Cit9CisKIHN0YXRpYyB2
b2lkIGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKCkKIHsKICAgICBOU1VzZXJEZWZhdWx0cyAq
ZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyUHJp
dmF0ZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw1ICs0NCw2IEBA
IEBpbnRlcmZhY2UgV2ViU3RvcmFnZU1hbmFnZXIgOiBOU09iamVjdAogCiArIChOU1N0cmluZyAq
KV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKICsgKHZvaWQpc2V0U3RvcmFnZURhdGFiYXNlSWRsZUlu
dGVydmFsOihkb3VibGUpaW50ZXJ2YWw7CisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURh
dGFiYXNlczsKIEBlbmQKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTUzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTEtMjcgIFlvbmdqdW4gWmhhbmcgIDx5
b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0aG9kIHRvIGNsb3Nl
IGFsbCBpZGxlIGxvY2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gSlMgbWV0aG9kIHRv
IFRlc3RSdW5uZXIsIHRvIGVuYWJsZSB0ZXN0aW5nIGNsb3NpbmcgaWRsZSBsb2NhbCBzdG9yYWdl
IGRhdGFiYXNlcyBpbgorICAgICAgICBEdW1wUmVuZGVyVHJlZSBsYXlvdXQgdGVzdHMuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKGNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlc0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3Rv
cmFnZURhdGFiYXNlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJH
dGsuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKwogMjAxMi0xMS0yNyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1bi1wZXJmLXRlc3RzIGZhaWxzIG9uIEFu
ZHJvaWQgYmVjYXVzZSBvZiBzdGRlcnIgb3V0cHV0CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzksNiArMjA3OSwxNCBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRTdG9yYWdlRGF0YWJhc2VJZGxlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihK
U09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPmNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFudFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
aWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjM0NCw2ICsyMzUyLDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuYwogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHBy
ZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNj
cmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsIiwgc2V0U3Rv
cmFnZURhdGFiYXNlSWRsZUludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzIiwgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zIiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAko
cmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNjIsNiArMzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3I7IH0KIAogICAgIHZvaWQgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKGRv
dWJsZSk7CisgICAgdm9pZCBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKIAogICAg
IGJvb2wgaGFzUGVuZGluZ1dlYk5vdGlmaWNhdGlvbkNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNQZW5kaW5nV2ViTm90aWZpY2F0aW9uQ2xpY2s7IH0KIApJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAJ
KHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVz
dFJ1bm5lckJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTYsMyArODU2LDggQEAg
dm9pZCBUZXN0UnVubmVyOjpzZXRTdG9yYWdlRGF0YWJhc2VJZGxlSQogICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGhpcy4KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5u
ZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVu
bmVyRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI0LDMgKzkyNCw4IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9UZXN0UnVubmVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvVGVzdFJ1bm5lckd0ay5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTk3LDMgKzk5
Nyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxl
TG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCShyZXZpc2lvbiAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIx
MywxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiAgICAgW1dl
YlN0b3JhZ2VNYW5hZ2VyIHNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDppbnRlcnZhbF07
CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkK
K3sKKyAgICBbV2ViU3RvcmFnZU1hbmFnZXIgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2Vz
XTsKK30KKwogSlNWYWx1ZVJlZiBUZXN0UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZShK
U0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICByZXR1cm4gb3JpZ2luc0FycmF5VG9KUyhjb250
ZXh0LCBbW1dlYlN0b3JhZ2VNYW5hZ2VyIHNoYXJlZFdlYlN0b3JhZ2VNYW5hZ2VyXSBvcmlnaW5z
XSk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCShy
ZXZpc2lvbiAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDUsMyArMTQ0NSw4IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRo
aXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2Vz
KCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
NywzICs2MTcsOCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiB7
CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNs
b3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgorfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTUzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMjcgIFlvbmdq
dW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0
aG9kIHRvIGNsb3NlIGFsbCBpZGxlIGxvY2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlv
bmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxl
LiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2Nh
bHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3Rv
cmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9yZXNvdXJjZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1t
ZWRpYXRlbHkuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjcgIFRvbnkgQ2hhbmcgIDx0b255QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBsYW5kIHVwZGF0ZWQgR3RrIHJlc3Vs
dHMgYWZ0ZXIgdHJhY2sgbGltaXRlciByZW1vdmFsLgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFz
ZXMtaW1tZWRpYXRlbHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0
YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3Jh
Z2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzIEBACitQQVNTCitQQVNTCisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVk
aWF0ZWx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRl
bHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9n
KGEpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCAr
PSBhICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsb2FkTmV4dFBhZ2UoKQoreworICAgIGxvY2F0
aW9uLmhyZWYgPSAiLi4vLi4vcmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3Jh
Z2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWwiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKKyAgICAvLyBUZXN0IHRvIG1ha2Ugc3VyZSB0aGUgc3RvcmFnZSB2YWx1ZXMgZG9uJ3QgY2hh
bmdlIGFmdGVyIHRoZSBkYXRhYmFzZSBpcyBjbG9zZWQuCisgICAgaWYgKCJsb2NhbFN0b3JhZ2Ui
IGluIHdpbmRvdykgeworICAgICAgICB2YXIgbG9hZENvdW50ID0gd2luZG93LnNlc3Npb25TdG9y
YWdlWyd0ZXN0UGFnZUxvYWRDb3VudCddOworICAgICAgICBpZiAobG9hZENvdW50ICE9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICBsb2FkQ291bnQrKzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbG9hZENvdW50ID0gMTsKKworICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2VbJ3Rlc3RQ
YWdlTG9hZENvdW50J10gPSBsb2FkQ291bnQ7CisKKyAgICAgICAgaWYgKGxvYWRDb3VudCA9PSAx
ICkgeworICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5jbGVhcigpOworICAgICAgICAg
ICAgd2luZG93LmxvY2FsU3RvcmFnZVsnZm9vJ10gPSAnRk9PJzsKKyAgICAgICAgICAgIHdpbmRv
dy5sb2NhbFN0b3JhZ2VbJ2JhciddID0gJ0JBUic7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
ImxvYWROZXh0UGFnZSgpIiwgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBU
ZXN0IGlmIHdlIHN0aWxsIGhhdmUgdGhlIHJpZ2h0IHZhbHVlcyBhZnRlciB0aGUgZGF0YWJhc2Ug
aXMgY2xvc2VkLgorICAgICAgICAgICAgbG9nKHdpbmRvdy5sb2NhbFN0b3JhZ2VbJ2ZvbyddID09
PSAnRk9PJyA/ICdQQVNTJyA6ICdGQUlMJyk7CisgICAgICAgICAgICBsb2cod2luZG93LmxvY2Fs
U3RvcmFnZVsnYmFyJ10gPT09ICdCQVInID8gJ1BBU1MnIDogJ0ZBSUwnKTsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2IGlk
PSJsb2dnZXIiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dG9yYWdlL3Jlc291cmNlcy9zdG9yYWdlLWNsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNl
cy1pbW1lZGlhdGVseS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvcmVz
b3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0
ZWx5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3Jlc291cmNlcy9z
dG9yYWdlLWNsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxzY3JpcHQ+CisgICAgZnVu
Y3Rpb24gc3dpbmdCYWNrKCkgCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmNsb3NlSWRsZUxvY2FsU3RvcmFnZURh
dGFiYXNlcygpOworICAgICAgICB9CisgICAgICAgIGxvY2F0aW9uLmhyZWY9Jy4uL2RvbXN0b3Jh
Z2Uvc3RvcmFnZS1jbG9zZS1kYXRhYmFzZS1vbi1pZGxlLmh0bWwnOworICAgIH0KKzwvc2NyaXB0
PgorPGJvZHkgb25sb2FkPSdzZXRUaW1lb3V0KHN3aW5nQmFjaygpLCAxMDApOyc+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="192151"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176396</attachid>
            <date>2012-11-27 21:58:07 -0800</date>
            <delta_ts>2012-11-28 10:02:23 -0800</delta_ts>
            <desc>Fix chrome build break.</desc>
            <filename>close_idle_localstorage.patch</filename>
            <type>text/plain</type>
            <size>20302</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTI3ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhv
ZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3
IFBhZ2VHcm91cCBtZXRob2QgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzLCB3aGljaCB3
YWxrcyB0aHJvdWdoCisgICAgICAgIGFsbCBsb2NhbCBzdG9yYWdlIGFyZWFzIHRoYXQgZG9uJ3Qg
aGF2ZSBkb2N1bWVudCByZWZlcmVuY2luZyB0byB0aGVtIGFuZCBjbG9zZXMKKyAgICAgICAgdGhl
aXIgdW5kZXJseWluZyBkYXRhYmFzZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRp
YXRlbHkuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9Q
YWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjbGVhckxvY2FsU3Rv
cmFnZUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKTogd2Fsa2luZyB0aHJvdWdo
IGFsbCBpZGxlIGxvY2FsIHN0b3JhZ2VzIGFuZAorICAgICAgICAgICAgY2xvc2luZyB0aGVpciBk
YXRhYmFzZXMuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuaDoKKyAgICAgICAgKFBhZ2VHcm91
cCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZUFyZWE6OmNsb3NlRGF0YWJhc2VJZklkbGUpOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y2xv
c2VEYXRhYmFzZUlmSWRsZSk6IGNsb3NlIHRoZSBkYXRhYmFzZSBpZiBpdCBpcyBpZGxlLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaDoKKyAg
ICAgICAgKFN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlLmg6CisgICAgICAgIChTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oOgorICAgICAgICAo
U3RvcmFnZU5hbWVzcGFjZUltcGwpOgorCiAyMDEyLTExLTI3ICBKYW1lcyBTaW1vbnNlbiAgPHNp
bW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6
bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTA3Nyw2ICsxMDc3LDcgQEAgX19aTjdX
ZWJDb3JlOVBhZ2VHcm91cDI2c2V0U2hvdWxkVHJhY2tWaQogX19aTjdXZWJDb3JlOVBhZ2VHcm91
cDI5cmVtb3ZlVXNlclN0eWxlU2hlZXRGcm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJL
TlNfNEtVUkxFCiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzByZW1vdmVVc2VyU3R5bGVTaGVldHNG
cm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDlw
YWdlR3JvdXBFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzBjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXNFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEwbW91c2VN
b3ZlZEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEx
bW91c2VFeGl0ZWRFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEybW91c2VFbnRlcmVkRXYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDkgKzE0
NCwyMSBAQCB2b2lkIFBhZ2VHcm91cDo6Y2xlYXJMb2NhbFN0b3JhZ2VGb3JPcmlnCiAgICAgZm9y
IChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0gcGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQog
ICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0b3JhZ2UoKS0+Y2xlYXJPcmlnaW5Gb3JEZWxl
dGlvbihvcmlnaW4pOwotICAgIH0gICAgCisgICAgfQogfQotICAgIAorCit2b2lkIFBhZ2VHcm91
cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICBpZiAoIXBhZ2VHcm91
cHMpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2VHcm91cE1hcDo6aXRlcmF0b3IgZW5kID0g
cGFnZUdyb3Vwcy0+ZW5kKCk7CisgICAgZm9yIChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0g
cGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmIChpdC0+
dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQorICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0
b3JhZ2UoKS0+Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CisgICAgfQorfQorCiB2
b2lkIFBhZ2VHcm91cDo6c3luY0xvY2FsU3RvcmFnZSgpCiB7CiAgICAgaWYgKCFwYWdlR3JvdXBz
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCBjbGVhckxvY2Fs
U3RvcmFnZUZvckFsbE9yaWdpbnMoKTsKICAgICAgICAgc3RhdGljIHZvaWQgY2xlYXJMb2NhbFN0
b3JhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKKyAgICAgICAgc3RhdGljIHZvaWQgY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CiAgICAgICAgIC8vIER1bXBSZW5kZXJUcmVl
IGhlbHBlciB0aGF0IHRyaWdnZXJzIGEgU3RvcmFnZUFyZWEgc3luYy4KICAgICAgICAgc3RhdGlj
IHZvaWQgc3luY0xvY2FsU3RvcmFnZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbmNyZW1lbnRBY2Nlc3NDb3VudCgpIHsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50QWNjZXNzQ291bnQoKSB7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlRGF0YWJhc2VJZklkbGUoKSB7IH0KICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OSw0ICszNDksMTQgQEAg
dm9pZCBTdG9yYWdlQXJlYUltcGw6OmNsb3NlRGF0YWJhc2VUaW1lcgogICAgICAgICBtX3N0b3Jh
Z2VBcmVhU3luYy0+c2NoZWR1bGVDbG9zZURhdGFiYXNlKCk7CiB9CiAKK3ZvaWQgU3RvcmFnZUFy
ZWFJbXBsOjpjbG9zZURhdGFiYXNlSWZJZGxlKCkKK3sKKyAgICBpZiAobV9jbG9zZURhdGFiYXNl
VGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBBU1NFUlQoIW1fYWNjZXNzQ291bnQpOworICAg
ICAgICBtX2Nsb3NlRGF0YWJhc2VUaW1lci5zdG9wKCk7CisKKyAgICAgICAgY2xvc2VEYXRhYmFz
ZVRpbWVyRmlyZWQoJm1fY2xvc2VEYXRhYmFzZVRpbWVyKTsKKyAgICB9Cit9CisKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkocmV2aXNpb24gMTM1OTI2
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGluY3JlbWVudEFjY2Vzc0NvdW50KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWNyZW1lbnRBY2Nlc3NDb3VudCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFz
ZUlmSWRsZSgpOwogCiAgICAgICAgIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBjb3B5KCk7
CiAgICAgICAgIHZvaWQgY2xvc2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT3JpZ2luRm9yRGVsZXRpb24oU2VjdXJpdHlP
cmlnaW4qKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsT3JpZ2luc0ZvckRlbGV0aW9u
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKSAgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw0ICsxNjUs
MTIgQEAgdm9pZCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3luYygpCiAgICAgICAgIGl0LT52YWx1
ZS0+c3luYygpOwogfQogCit2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
U3RvcmFnZUFyZWFNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fc3RvcmFnZUFyZWFNYXAuZW5kKCk7Cisg
ICAgZm9yIChTdG9yYWdlQXJlYU1hcDo6aXRlcmF0b3IgaXQgPSBtX3N0b3JhZ2VBcmVhTWFwLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQtPnZhbHVlLT5jbG9zZURhdGFiYXNl
SWZJZGxlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgJKHJldmlzaW9uIDEzNTkyNikK
KysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNyArNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBjbGVhck9yaWdpbkZvckRlbGV0aW9uKFNlY3VyaXR5T3JpZ2luKik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbE9yaWdpbnNGb3JEZWxldGlvbigpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgc3luYygpOwotICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsb3Nl
SWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3Rv
cmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWdu
ZWQgcXVvdGEpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzU5NTMpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0xMS0yNyAgWW9uZ2p1biBaaGFuZyAgPHlvbmdqdW5femhhbmdAYXBwbGUuY29tPgor
CisgICAgICAgIE5lZWQgYSBtZXRob2QgdG8gY2xvc2UgYWxsIGlkbGUgbG9jYWxzdG9yYWdlIGRh
dGFiYXNlcyBpbW1lZGlhdGVseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzQ2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBtZXRob2QgdG8gV2ViU3RvcmFnZU1hbmFnZXIgdGhhdCB3
ZSBjYW4gY2FsbCB0byBjbG9zZSBhbGwKKyAgICAgICAgaWRsZSBsb2NhbCBzdG9yYWdlIGRhdGFi
YXNlcy4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW06CisgICAgICAg
ICgrW1dlYlN0b3JhZ2VNYW5hZ2VyIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlc10pOgor
ICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmg6CisKIDIwMTItMTEt
MjcgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENv
bnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEg
RnJhbWVMb2FkUmVxdWVzdApJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9y
YWdlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyLm1tCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW1wb3J0ICJXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oIgogCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
dG9yYWdlVHJhY2tlci5oPgogI2ltcG9ydCA8cHRocmVhZC5oPgpAQCAtMTAyLDYgKzEwMywxMSBA
QCArICh2b2lkKXNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDooCiAgICAgU3RvcmFnZVRy
YWNrZXI6OnRyYWNrZXIoKS5zZXRTdG9yYWdlRGF0YWJhc2VJZGxlSW50ZXJ2YWwoaW50ZXJ2YWwp
OwogfQogCisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcworeworICAgIFBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7Cit9CisKIHN0YXRpYyB2
b2lkIGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKCkKIHsKICAgICBOU1VzZXJEZWZhdWx0cyAq
ZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyUHJp
dmF0ZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw1ICs0NCw2IEBA
IEBpbnRlcmZhY2UgV2ViU3RvcmFnZU1hbmFnZXIgOiBOU09iamVjdAogCiArIChOU1N0cmluZyAq
KV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKICsgKHZvaWQpc2V0U3RvcmFnZURhdGFiYXNlSWRsZUlu
dGVydmFsOihkb3VibGUpaW50ZXJ2YWw7CisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURh
dGFiYXNlczsKIEBlbmQKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTUzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTEtMjcgIFlvbmdqdW4gWmhhbmcgIDx5
b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0aG9kIHRvIGNsb3Nl
IGFsbCBpZGxlIGxvY2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gSlMgbWV0aG9kIHRv
IFRlc3RSdW5uZXIsIHRvIGVuYWJsZSB0ZXN0aW5nIGNsb3NpbmcgaWRsZSBsb2NhbCBzdG9yYWdl
IGRhdGFiYXNlcyBpbgorICAgICAgICBEdW1wUmVuZGVyVHJlZSBsYXlvdXQgdGVzdHMuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKGNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlc0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3Rv
cmFnZURhdGFiYXNlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJH
dGsuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKwogMjAxMi0xMS0yNyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1bi1wZXJmLXRlc3RzIGZhaWxzIG9uIEFu
ZHJvaWQgYmVjYXVzZSBvZiBzdGRlcnIgb3V0cHV0CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzksNiArMjA3OSwxNCBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRTdG9yYWdlRGF0YWJhc2VJZGxlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihK
U09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPmNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFudFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
aWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjM0NCw2ICsyMzUyLDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuYwogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHBy
ZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNj
cmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsIiwgc2V0U3Rv
cmFnZURhdGFiYXNlSWRsZUludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzIiwgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zIiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAko
cmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNjIsNiArMzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3I7IH0KIAogICAgIHZvaWQgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKGRv
dWJsZSk7CisgICAgdm9pZCBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKIAogICAg
IGJvb2wgaGFzUGVuZGluZ1dlYk5vdGlmaWNhdGlvbkNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNQZW5kaW5nV2ViTm90aWZpY2F0aW9uQ2xpY2s7IH0KIApJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAJ
KHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVz
dFJ1bm5lckJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTYsMyArODU2LDggQEAg
dm9pZCBUZXN0UnVubmVyOjpzZXRTdG9yYWdlRGF0YWJhc2VJZGxlSQogICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGhpcy4KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5u
ZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVu
bmVyRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI0LDMgKzkyNCw4IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9UZXN0UnVubmVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvVGVzdFJ1bm5lckd0ay5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTk3LDMgKzk5
Nyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxl
TG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCShyZXZpc2lvbiAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIx
MywxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiAgICAgW1dl
YlN0b3JhZ2VNYW5hZ2VyIHNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDppbnRlcnZhbF07
CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkK
K3sKKyAgICBbV2ViU3RvcmFnZU1hbmFnZXIgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2Vz
XTsKK30KKwogSlNWYWx1ZVJlZiBUZXN0UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZShK
U0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICByZXR1cm4gb3JpZ2luc0FycmF5VG9KUyhjb250
ZXh0LCBbW1dlYlN0b3JhZ2VNYW5hZ2VyIHNoYXJlZFdlYlN0b3JhZ2VNYW5hZ2VyXSBvcmlnaW5z
XSk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCShy
ZXZpc2lvbiAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDUsMyArMTQ0NSw4IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRo
aXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2Vz
KCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
NywzICs2MTcsOCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiB7
CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNs
b3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgorfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTUzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMjcgIFlvbmdq
dW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0
aG9kIHRvIGNsb3NlIGFsbCBpZGxlIGxvY2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlv
bmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxl
LiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2Nh
bHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3Rv
cmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9yZXNvdXJjZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1t
ZWRpYXRlbHkuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjcgIFRvbnkgQ2hhbmcgIDx0b255QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBsYW5kIHVwZGF0ZWQgR3RrIHJlc3Vs
dHMgYWZ0ZXIgdHJhY2sgbGltaXRlciByZW1vdmFsLgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFz
ZXMtaW1tZWRpYXRlbHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0
YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3Jh
Z2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzIEBACitQQVNTCitQQVNTCisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVk
aWF0ZWx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRl
bHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9n
KGEpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCAr
PSBhICsgIjxicj4iOworfQorCitmdW5jdGlvbiBsb2FkTmV4dFBhZ2UoKQoreworICAgIGxvY2F0
aW9uLmhyZWYgPSAiLi4vLi4vcmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3Jh
Z2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWwiOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKKyAgICAvLyBUZXN0IHRvIG1ha2Ugc3VyZSB0aGUgc3RvcmFnZSB2YWx1ZXMgZG9uJ3QgY2hh
bmdlIGFmdGVyIHRoZSBkYXRhYmFzZSBpcyBjbG9zZWQuCisgICAgaWYgKCJsb2NhbFN0b3JhZ2Ui
IGluIHdpbmRvdykgeworICAgICAgICB2YXIgbG9hZENvdW50ID0gd2luZG93LnNlc3Npb25TdG9y
YWdlWyd0ZXN0UGFnZUxvYWRDb3VudCddOworICAgICAgICBpZiAobG9hZENvdW50ICE9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICBsb2FkQ291bnQrKzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbG9hZENvdW50ID0gMTsKKworICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2VbJ3Rlc3RQ
YWdlTG9hZENvdW50J10gPSBsb2FkQ291bnQ7CisKKyAgICAgICAgaWYgKGxvYWRDb3VudCA9PSAx
ICkgeworICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5jbGVhcigpOworICAgICAgICAg
ICAgd2luZG93LmxvY2FsU3RvcmFnZVsnZm9vJ10gPSAnRk9PJzsKKyAgICAgICAgICAgIHdpbmRv
dy5sb2NhbFN0b3JhZ2VbJ2JhciddID0gJ0JBUic7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
ImxvYWROZXh0UGFnZSgpIiwgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBU
ZXN0IGlmIHdlIHN0aWxsIGhhdmUgdGhlIHJpZ2h0IHZhbHVlcyBhZnRlciB0aGUgZGF0YWJhc2Ug
aXMgY2xvc2VkLgorICAgICAgICAgICAgbG9nKHdpbmRvdy5sb2NhbFN0b3JhZ2VbJ2ZvbyddID09
PSAnRk9PJyA/ICdQQVNTJyA6ICdGQUlMJyk7CisgICAgICAgICAgICBsb2cod2luZG93LmxvY2Fs
U3RvcmFnZVsnYmFyJ10gPT09ICdCQVInID8gJ1BBU1MnIDogJ0ZBSUwnKTsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2IGlk
PSJsb2dnZXIiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy9z
dG9yYWdlL3Jlc291cmNlcy9zdG9yYWdlLWNsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNl
cy1pbW1lZGlhdGVseS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvcmVz
b3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0
ZWx5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3Jlc291cmNlcy9z
dG9yYWdlLWNsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxzY3JpcHQ+CisgICAgZnVu
Y3Rpb24gc3dpbmdCYWNrKCkgCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmNsb3NlSWRsZUxvY2FsU3RvcmFnZURh
dGFiYXNlcygpOworICAgICAgICB9CisgICAgICAgIGxvY2F0aW9uLmhyZWY9Jy4uL2RvbXN0b3Jh
Z2Uvc3RvcmFnZS1jbG9zZS1kYXRhYmFzZS1vbi1pZGxlLmh0bWwnOworICAgIH0KKzwvc2NyaXB0
PgorPGJvZHkgb25sb2FkPSdzZXRUaW1lb3V0KHN3aW5nQmFjaygpLCAxMDApOyc+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="192187"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176507</attachid>
            <date>2012-11-28 10:02:23 -0800</date>
            <delta_ts>2012-11-28 11:22:35 -0800</delta_ts>
            <desc>Fix chromium test failure.</desc>
            <filename>close_idle_localstorage_datbases.patch</filename>
            <type>text/plain</type>
            <size>21033</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTI3ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhv
ZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3
IFBhZ2VHcm91cCBtZXRob2QgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzLCB3aGljaCB3
YWxrcyB0aHJvdWdoCisgICAgICAgIGFsbCBsb2NhbCBzdG9yYWdlIGFyZWFzIHRoYXQgZG9uJ3Qg
aGF2ZSBkb2N1bWVudCByZWZlcmVuY2luZyB0byB0aGVtIGFuZCBjbG9zZXMKKyAgICAgICAgdGhl
aXIgdW5kZXJseWluZyBkYXRhYmFzZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRp
YXRlbHkuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9Q
YWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjbGVhckxvY2FsU3Rv
cmFnZUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKTogd2Fsa2luZyB0aHJvdWdo
IGFsbCBpZGxlIGxvY2FsIHN0b3JhZ2VzIGFuZAorICAgICAgICAgICAgY2xvc2luZyB0aGVpciBk
YXRhYmFzZXMuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuaDoKKyAgICAgICAgKFBhZ2VHcm91
cCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZUFyZWE6OmNsb3NlRGF0YWJhc2VJZklkbGUpOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y2xv
c2VEYXRhYmFzZUlmSWRsZSk6IGNsb3NlIHRoZSBkYXRhYmFzZSBpZiBpdCBpcyBpZGxlLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaDoKKyAg
ICAgICAgKFN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlLmg6CisgICAgICAgIChTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oOgorICAgICAgICAo
U3RvcmFnZU5hbWVzcGFjZUltcGwpOgorCiAyMDEyLTExLTI3ICBKYW1lcyBTaW1vbnNlbiAgPHNp
bW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6
bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTA3Nyw2ICsxMDc3LDcgQEAgX19aTjdX
ZWJDb3JlOVBhZ2VHcm91cDI2c2V0U2hvdWxkVHJhY2tWaQogX19aTjdXZWJDb3JlOVBhZ2VHcm91
cDI5cmVtb3ZlVXNlclN0eWxlU2hlZXRGcm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJL
TlNfNEtVUkxFCiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzByZW1vdmVVc2VyU3R5bGVTaGVldHNG
cm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDlw
YWdlR3JvdXBFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzBjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXNFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEwbW91c2VN
b3ZlZEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEx
bW91c2VFeGl0ZWRFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEybW91c2VFbnRlcmVkRXYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDkgKzE0
NCwyMSBAQCB2b2lkIFBhZ2VHcm91cDo6Y2xlYXJMb2NhbFN0b3JhZ2VGb3JPcmlnCiAgICAgZm9y
IChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0gcGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQog
ICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0b3JhZ2UoKS0+Y2xlYXJPcmlnaW5Gb3JEZWxl
dGlvbihvcmlnaW4pOwotICAgIH0gICAgCisgICAgfQogfQotICAgIAorCit2b2lkIFBhZ2VHcm91
cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICBpZiAoIXBhZ2VHcm91
cHMpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2VHcm91cE1hcDo6aXRlcmF0b3IgZW5kID0g
cGFnZUdyb3Vwcy0+ZW5kKCk7CisgICAgZm9yIChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0g
cGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmIChpdC0+
dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQorICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0
b3JhZ2UoKS0+Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CisgICAgfQorfQorCiB2
b2lkIFBhZ2VHcm91cDo6c3luY0xvY2FsU3RvcmFnZSgpCiB7CiAgICAgaWYgKCFwYWdlR3JvdXBz
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCBjbGVhckxvY2Fs
U3RvcmFnZUZvckFsbE9yaWdpbnMoKTsKICAgICAgICAgc3RhdGljIHZvaWQgY2xlYXJMb2NhbFN0
b3JhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKKyAgICAgICAgc3RhdGljIHZvaWQgY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CiAgICAgICAgIC8vIER1bXBSZW5kZXJUcmVl
IGhlbHBlciB0aGF0IHRyaWdnZXJzIGEgU3RvcmFnZUFyZWEgc3luYy4KICAgICAgICAgc3RhdGlj
IHZvaWQgc3luY0xvY2FsU3RvcmFnZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbmNyZW1lbnRBY2Nlc3NDb3VudCgpIHsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50QWNjZXNzQ291bnQoKSB7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlRGF0YWJhc2VJZklkbGUoKSB7IH0KICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OSw0ICszNDksMTQgQEAg
dm9pZCBTdG9yYWdlQXJlYUltcGw6OmNsb3NlRGF0YWJhc2VUaW1lcgogICAgICAgICBtX3N0b3Jh
Z2VBcmVhU3luYy0+c2NoZWR1bGVDbG9zZURhdGFiYXNlKCk7CiB9CiAKK3ZvaWQgU3RvcmFnZUFy
ZWFJbXBsOjpjbG9zZURhdGFiYXNlSWZJZGxlKCkKK3sKKyAgICBpZiAobV9jbG9zZURhdGFiYXNl
VGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBBU1NFUlQoIW1fYWNjZXNzQ291bnQpOworICAg
ICAgICBtX2Nsb3NlRGF0YWJhc2VUaW1lci5zdG9wKCk7CisKKyAgICAgICAgY2xvc2VEYXRhYmFz
ZVRpbWVyRmlyZWQoJm1fY2xvc2VEYXRhYmFzZVRpbWVyKTsKKyAgICB9Cit9CisKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkocmV2aXNpb24gMTM1OTI2
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGluY3JlbWVudEFjY2Vzc0NvdW50KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWNyZW1lbnRBY2Nlc3NDb3VudCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFz
ZUlmSWRsZSgpOwogCiAgICAgICAgIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBjb3B5KCk7
CiAgICAgICAgIHZvaWQgY2xvc2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT3JpZ2luRm9yRGVsZXRpb24oU2VjdXJpdHlP
cmlnaW4qKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsT3JpZ2luc0ZvckRlbGV0aW9u
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKSAgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw0ICsxNjUs
MTIgQEAgdm9pZCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3luYygpCiAgICAgICAgIGl0LT52YWx1
ZS0+c3luYygpOwogfQogCit2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
U3RvcmFnZUFyZWFNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fc3RvcmFnZUFyZWFNYXAuZW5kKCk7Cisg
ICAgZm9yIChTdG9yYWdlQXJlYU1hcDo6aXRlcmF0b3IgaXQgPSBtX3N0b3JhZ2VBcmVhTWFwLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQtPnZhbHVlLT5jbG9zZURhdGFiYXNl
SWZJZGxlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgJKHJldmlzaW9uIDEzNTkyNikK
KysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNyArNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBjbGVhck9yaWdpbkZvckRlbGV0aW9uKFNlY3VyaXR5T3JpZ2luKik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbE9yaWdpbnNGb3JEZWxldGlvbigpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgc3luYygpOwotICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsb3Nl
SWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3Rv
cmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWdu
ZWQgcXVvdGEpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzU5NTMpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0xMS0yNyAgWW9uZ2p1biBaaGFuZyAgPHlvbmdqdW5femhhbmdAYXBwbGUuY29tPgor
CisgICAgICAgIE5lZWQgYSBtZXRob2QgdG8gY2xvc2UgYWxsIGlkbGUgbG9jYWxzdG9yYWdlIGRh
dGFiYXNlcyBpbW1lZGlhdGVseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzQ2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBtZXRob2QgdG8gV2ViU3RvcmFnZU1hbmFnZXIgdGhhdCB3
ZSBjYW4gY2FsbCB0byBjbG9zZSBhbGwKKyAgICAgICAgaWRsZSBsb2NhbCBzdG9yYWdlIGRhdGFi
YXNlcy4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW06CisgICAgICAg
ICgrW1dlYlN0b3JhZ2VNYW5hZ2VyIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlc10pOgor
ICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmg6CisKIDIwMTItMTEt
MjcgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENv
bnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEg
RnJhbWVMb2FkUmVxdWVzdApJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9y
YWdlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyLm1tCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW1wb3J0ICJXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oIgogCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
dG9yYWdlVHJhY2tlci5oPgogI2ltcG9ydCA8cHRocmVhZC5oPgpAQCAtMTAyLDYgKzEwMywxMSBA
QCArICh2b2lkKXNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDooCiAgICAgU3RvcmFnZVRy
YWNrZXI6OnRyYWNrZXIoKS5zZXRTdG9yYWdlRGF0YWJhc2VJZGxlSW50ZXJ2YWwoaW50ZXJ2YWwp
OwogfQogCisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcworeworICAgIFBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7Cit9CisKIHN0YXRpYyB2
b2lkIGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKCkKIHsKICAgICBOU1VzZXJEZWZhdWx0cyAq
ZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyUHJp
dmF0ZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw1ICs0NCw2IEBA
IEBpbnRlcmZhY2UgV2ViU3RvcmFnZU1hbmFnZXIgOiBOU09iamVjdAogCiArIChOU1N0cmluZyAq
KV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKICsgKHZvaWQpc2V0U3RvcmFnZURhdGFiYXNlSWRsZUlu
dGVydmFsOihkb3VibGUpaW50ZXJ2YWw7CisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURh
dGFiYXNlczsKIEBlbmQKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTUzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTEtMjcgIFlvbmdqdW4gWmhhbmcgIDx5
b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0aG9kIHRvIGNsb3Nl
IGFsbCBpZGxlIGxvY2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gSlMgbWV0aG9kIHRv
IFRlc3RSdW5uZXIsIHRvIGVuYWJsZSB0ZXN0aW5nIGNsb3NpbmcgaWRsZSBsb2NhbCBzdG9yYWdl
IGRhdGFiYXNlcyBpbgorICAgICAgICBEdW1wUmVuZGVyVHJlZSBsYXlvdXQgdGVzdHMuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKGNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlc0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3Rv
cmFnZURhdGFiYXNlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJH
dGsuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKwogMjAxMi0xMS0yNyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1bi1wZXJmLXRlc3RzIGZhaWxzIG9uIEFu
ZHJvaWQgYmVjYXVzZSBvZiBzdGRlcnIgb3V0cHV0CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzksNiArMjA3OSwxNCBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRTdG9yYWdlRGF0YWJhc2VJZGxlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihK
U09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPmNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFudFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
aWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjM0NCw2ICsyMzUyLDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuYwogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHBy
ZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNj
cmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsIiwgc2V0U3Rv
cmFnZURhdGFiYXNlSWRsZUludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzIiwgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zIiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAko
cmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNjIsNiArMzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3I7IH0KIAogICAgIHZvaWQgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKGRv
dWJsZSk7CisgICAgdm9pZCBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKIAogICAg
IGJvb2wgaGFzUGVuZGluZ1dlYk5vdGlmaWNhdGlvbkNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNQZW5kaW5nV2ViTm90aWZpY2F0aW9uQ2xpY2s7IH0KIApJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAJ
KHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVz
dFJ1bm5lckJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTYsMyArODU2LDggQEAg
dm9pZCBUZXN0UnVubmVyOjpzZXRTdG9yYWdlRGF0YWJhc2VJZGxlSQogICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGhpcy4KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5u
ZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAxMzU5MjYpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBAIFRlc3RSdW5uZXI6OlRlc3RS
dW5uZXIoKQogICAgIGJpbmRNZXRob2QoImFkZERpc2FsbG93ZWRVUkwiLCAmVGVzdFJ1bm5lcjo6
bm90SW1wbGVtZW50ZWQpOwogICAgIGJpbmRNZXRob2QoImFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNh
Z2VGb3JPcmlnaW4iLCAmVGVzdFJ1bm5lcjo6bm90SW1wbGVtZW50ZWQpOwogICAgIGJpbmRNZXRo
b2QoImFib3J0TW9kYWwiLCAmVGVzdFJ1bm5lcjo6bm90SW1wbGVtZW50ZWQpOworICAgIGJpbmRN
ZXRob2QoImNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyIsICZUZXN0UnVubmVyOjpub3RJ
bXBsZW1lbnRlZCk7CiAKICAgICAvLyBUaGUgZmFsbGJhY2sgbWV0aG9kIGlzIGNhbGxlZCB3aGVu
IGFuIHVua25vd24gbWV0aG9kIGlzIGludm9rZWQuCiAgICAgYmluZEZhbGxiYWNrTWV0aG9kKCZU
ZXN0UnVubmVyOjpmYWxsYmFja01ldGhvZCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvVGVzdFJ1bm5lckVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCShyZXZpc2lvbiAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNCwzICs5
MjQsOCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KKwordm9pZCBUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0
b3JhZ2VEYXRhYmFzZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCShyZXZpc2lvbiAxMzU5MjYp
CisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk5NywzICs5OTcsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRh
YmFzZUlkbGVJCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCit2b2lkIFRl
c3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7Cit9CkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkocmV2aXNpb24gMTM1OTI2
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTIxMyw2ICsyMTMsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdG9yYWdlRGF0
YWJhc2VJZGxlSQogICAgIFtXZWJTdG9yYWdlTWFuYWdlciBzZXRTdG9yYWdlRGF0YWJhc2VJZGxl
SW50ZXJ2YWw6aW50ZXJ2YWxdOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2Fs
U3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgW1dlYlN0b3JhZ2VNYW5hZ2VyIGNsb3NlSWRsZUxv
Y2FsU3RvcmFnZURhdGFiYXNlc107Cit9CisKIEpTVmFsdWVSZWYgVGVzdFJ1bm5lcjo6b3JpZ2lu
c1dpdGhMb2NhbFN0b3JhZ2UoSlNDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgcmV0dXJuIG9y
aWdpbnNBcnJheVRvSlMoY29udGV4dCwgW1tXZWJTdG9yYWdlTWFuYWdlciBzaGFyZWRXZWJTdG9y
YWdlTWFuYWdlcl0gb3JpZ2luc10pOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rl
c3RSdW5uZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ1LDMgKzE0NDUs
OCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiB7CiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxv
Y2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgor
fQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCShyZXZpc2lv
biAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MTcsMyArNjE3LDggQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdG9y
YWdlRGF0YWJhc2VJZGxlSQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KKwor
dm9pZCBUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTk1MykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEyLTExLTI3ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgTmVlZCBhIG1ldGhvZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0
YWJhc2VzIGltbWVkaWF0ZWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAzNDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMg
YXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25z
IGJlbG93IChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9y
YWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
Y2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0
b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTI3ICBU
b255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbGFu
ZCB1cGRhdGVkIEd0ayByZXN1bHRzIGFmdGVyIHRyYWNrIGxpbWl0ZXIgcmVtb3ZhbC4KSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1s
b2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlk
bGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Ns
b3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorUEFTUworUEFTUworCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9y
YWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2Ut
ZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRh
dGFiYXNlcy1pbW1lZGlhdGVseS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIGxvZyhhKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJs
b2dnZXIiKS5pbm5lckhUTUwgKz0gYSArICI8YnI+IjsKK30KKworZnVuY3Rpb24gbG9hZE5leHRQ
YWdlKCkKK3sKKyAgICBsb2NhdGlvbi5ocmVmID0gIi4uLy4uL3Jlc291cmNlcy9zdG9yYWdlLWNs
b3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1sIjsKK30KKwor
ZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgLy8gVGVzdCB0byBtYWtlIHN1cmUgdGhlIHN0b3Jh
Z2UgdmFsdWVzIGRvbid0IGNoYW5nZSBhZnRlciB0aGUgZGF0YWJhc2UgaXMgY2xvc2VkLgorICAg
IGlmICgibG9jYWxTdG9yYWdlIiBpbiB3aW5kb3cpIHsKKyAgICAgICAgdmFyIGxvYWRDb3VudCA9
IHdpbmRvdy5zZXNzaW9uU3RvcmFnZVsndGVzdFBhZ2VMb2FkQ291bnQnXTsKKyAgICAgICAgaWYg
KGxvYWRDb3VudCAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgbG9hZENvdW50Kys7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGxvYWRDb3VudCA9IDE7CisKKyAgICAgICAgd2luZG93LnNl
c3Npb25TdG9yYWdlWyd0ZXN0UGFnZUxvYWRDb3VudCddID0gbG9hZENvdW50OworCisgICAgICAg
IGlmIChsb2FkQ291bnQgPT0gMSApIHsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uu
Y2xlYXIoKTsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbJ2ZvbyddID0gJ0ZPTyc7
CisgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlWydiYXInXSA9ICdCQVInOworCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KCJsb2FkTmV4dFBhZ2UoKSIsIDApOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgLy8gVGVzdCBpZiB3ZSBzdGlsbCBoYXZlIHRoZSByaWdodCB2YWx1ZXMu
CisgICAgICAgICAgICBsb2cod2luZG93LmxvY2FsU3RvcmFnZVsnZm9vJ10gPT09ICdGT08nID8g
J1BBU1MnIDogJ0ZBSUwnKTsKKyAgICAgICAgICAgIGxvZyh3aW5kb3cubG9jYWxTdG9yYWdlWydi
YXInXSA9PT0gJ0JBUicgPyAnUEFTUycgOiAnRkFJTCcpOworCisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxkaXYgaWQ9ImxvZ2dlciI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvcmVz
b3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0
ZWx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9yZXNvdXJjZXMvc3Rv
cmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtY2xv
c2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBzd2lu
Z0JhY2soKSAKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIuY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7
CisgICAgICAgIH0KKyAgICAgICAgbG9jYXRpb24uaHJlZj0nLi4vZG9tc3RvcmFnZS9zdG9yYWdl
LWNsb3NlLWRhdGFiYXNlLW9uLWlkbGUuaHRtbCc7CisgICAgfQorPC9zY3JpcHQ+Cis8Ym9keSBv
bmxvYWQ9J3NldFRpbWVvdXQoc3dpbmdCYWNrKCksIDEwMCk7Jz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="192334"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176529</attachid>
            <date>2012-11-28 11:22:35 -0800</date>
            <delta_ts>2012-11-29 11:20:32 -0800</delta_ts>
            <desc>skip the new test on chromium since the test requires Safari&apos;s cache model.</desc>
            <filename>close_idle_localstorage_databases.patch</filename>
            <type>text/plain</type>
            <size>21127</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTk1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTI3ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhv
ZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3
IFBhZ2VHcm91cCBtZXRob2QgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzLCB3aGljaCB3
YWxrcyB0aHJvdWdoCisgICAgICAgIGFsbCBsb2NhbCBzdG9yYWdlIGFyZWFzIHRoYXQgZG9uJ3Qg
aGF2ZSBkb2N1bWVudCByZWZlcmVuY2luZyB0byB0aGVtIGFuZCBjbG9zZXMKKyAgICAgICAgdGhl
aXIgdW5kZXJseWluZyBkYXRhYmFzZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRp
YXRlbHkuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9Q
YWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjbGVhckxvY2FsU3Rv
cmFnZUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKTogd2Fsa2luZyB0aHJvdWdo
IGFsbCBpZGxlIGxvY2FsIHN0b3JhZ2VzIGFuZAorICAgICAgICAgICAgY2xvc2luZyB0aGVpciBk
YXRhYmFzZXMuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuaDoKKyAgICAgICAgKFBhZ2VHcm91
cCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZUFyZWE6OmNsb3NlRGF0YWJhc2VJZklkbGUpOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y2xv
c2VEYXRhYmFzZUlmSWRsZSk6IGNsb3NlIHRoZSBkYXRhYmFzZSBpZiBpdCBpcyBpZGxlLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaDoKKyAg
ICAgICAgKFN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlLmg6CisgICAgICAgIChTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oOgorICAgICAgICAo
U3RvcmFnZU5hbWVzcGFjZUltcGwpOgorCiAyMDEyLTExLTI3ICBKYW1lcyBTaW1vbnNlbiAgPHNp
bW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6
bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTA3Nyw2ICsxMDc3LDcgQEAgX19aTjdX
ZWJDb3JlOVBhZ2VHcm91cDI2c2V0U2hvdWxkVHJhY2tWaQogX19aTjdXZWJDb3JlOVBhZ2VHcm91
cDI5cmVtb3ZlVXNlclN0eWxlU2hlZXRGcm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJL
TlNfNEtVUkxFCiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzByZW1vdmVVc2VyU3R5bGVTaGVldHNG
cm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDlw
YWdlR3JvdXBFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmU5UGFnZUdyb3VwMzBjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXNFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEwbW91c2VN
b3ZlZEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEx
bW91c2VFeGl0ZWRFdgogX19aTjdXZWJDb3JlOVNjcm9sbGJhcjEybW91c2VFbnRlcmVkRXYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDkgKzE0
NCwyMSBAQCB2b2lkIFBhZ2VHcm91cDo6Y2xlYXJMb2NhbFN0b3JhZ2VGb3JPcmlnCiAgICAgZm9y
IChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0gcGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQog
ICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0b3JhZ2UoKS0+Y2xlYXJPcmlnaW5Gb3JEZWxl
dGlvbihvcmlnaW4pOwotICAgIH0gICAgCisgICAgfQogfQotICAgIAorCit2b2lkIFBhZ2VHcm91
cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICBpZiAoIXBhZ2VHcm91
cHMpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2VHcm91cE1hcDo6aXRlcmF0b3IgZW5kID0g
cGFnZUdyb3Vwcy0+ZW5kKCk7CisgICAgZm9yIChQYWdlR3JvdXBNYXA6Oml0ZXJhdG9yIGl0ID0g
cGFnZUdyb3Vwcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmIChpdC0+
dmFsdWUtPmhhc0xvY2FsU3RvcmFnZSgpKQorICAgICAgICAgICAgaXQtPnZhbHVlLT5sb2NhbFN0
b3JhZ2UoKS0+Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CisgICAgfQorfQorCiB2
b2lkIFBhZ2VHcm91cDo6c3luY0xvY2FsU3RvcmFnZSgpCiB7CiAgICAgaWYgKCFwYWdlR3JvdXBz
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgdm9pZCBjbGVhckxvY2Fs
U3RvcmFnZUZvckFsbE9yaWdpbnMoKTsKICAgICAgICAgc3RhdGljIHZvaWQgY2xlYXJMb2NhbFN0
b3JhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKKyAgICAgICAgc3RhdGljIHZvaWQgY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CiAgICAgICAgIC8vIER1bXBSZW5kZXJUcmVl
IGhlbHBlciB0aGF0IHRyaWdnZXJzIGEgU3RvcmFnZUFyZWEgc3luYy4KICAgICAgICAgc3RhdGlj
IHZvaWQgc3luY0xvY2FsU3RvcmFnZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbmNyZW1lbnRBY2Nlc3NDb3VudCgpIHsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50QWNjZXNzQ291bnQoKSB7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlRGF0YWJhc2VJZklkbGUoKSB7IH0KICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OSw0ICszNDksMTQgQEAg
dm9pZCBTdG9yYWdlQXJlYUltcGw6OmNsb3NlRGF0YWJhc2VUaW1lcgogICAgICAgICBtX3N0b3Jh
Z2VBcmVhU3luYy0+c2NoZWR1bGVDbG9zZURhdGFiYXNlKCk7CiB9CiAKK3ZvaWQgU3RvcmFnZUFy
ZWFJbXBsOjpjbG9zZURhdGFiYXNlSWZJZGxlKCkKK3sKKyAgICBpZiAobV9jbG9zZURhdGFiYXNl
VGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBBU1NFUlQoIW1fYWNjZXNzQ291bnQpOworICAg
ICAgICBtX2Nsb3NlRGF0YWJhc2VUaW1lci5zdG9wKCk7CisKKyAgICAgICAgY2xvc2VEYXRhYmFz
ZVRpbWVyRmlyZWQoJm1fY2xvc2VEYXRhYmFzZVRpbWVyKTsKKyAgICB9Cit9CisKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkocmV2aXNpb24gMTM1OTI2
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGluY3JlbWVudEFjY2Vzc0NvdW50KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWNyZW1lbnRBY2Nlc3NDb3VudCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFz
ZUlmSWRsZSgpOwogCiAgICAgICAgIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBjb3B5KCk7
CiAgICAgICAgIHZvaWQgY2xvc2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT3JpZ2luRm9yRGVsZXRpb24oU2VjdXJpdHlP
cmlnaW4qKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsT3JpZ2luc0ZvckRlbGV0aW9u
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKSAgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw0ICsxNjUs
MTIgQEAgdm9pZCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3luYygpCiAgICAgICAgIGl0LT52YWx1
ZS0+c3luYygpOwogfQogCit2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
U3RvcmFnZUFyZWFNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fc3RvcmFnZUFyZWFNYXAuZW5kKCk7Cisg
ICAgZm9yIChTdG9yYWdlQXJlYU1hcDo6aXRlcmF0b3IgaXQgPSBtX3N0b3JhZ2VBcmVhTWFwLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQtPnZhbHVlLT5jbG9zZURhdGFiYXNl
SWZJZGxlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgJKHJldmlzaW9uIDEzNTkyNikK
KysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNyArNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBjbGVhck9yaWdpbkZvckRlbGV0aW9uKFNlY3VyaXR5T3JpZ2luKik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbE9yaWdpbnNGb3JEZWxldGlvbigpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgc3luYygpOwotICAgICAgICAKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsb3Nl
SWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3Rv
cmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWdu
ZWQgcXVvdGEpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzU5NTMpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0xMS0yNyAgWW9uZ2p1biBaaGFuZyAgPHlvbmdqdW5femhhbmdAYXBwbGUuY29tPgor
CisgICAgICAgIE5lZWQgYSBtZXRob2QgdG8gY2xvc2UgYWxsIGlkbGUgbG9jYWxzdG9yYWdlIGRh
dGFiYXNlcyBpbW1lZGlhdGVseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzQ2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBtZXRob2QgdG8gV2ViU3RvcmFnZU1hbmFnZXIgdGhhdCB3
ZSBjYW4gY2FsbCB0byBjbG9zZSBhbGwKKyAgICAgICAgaWRsZSBsb2NhbCBzdG9yYWdlIGRhdGFi
YXNlcy4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW06CisgICAgICAg
ICgrW1dlYlN0b3JhZ2VNYW5hZ2VyIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlc10pOgor
ICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmg6CisKIDIwMTItMTEt
MjcgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENv
bnNvbGlkYXRlIEZyYW1lTG9hZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEg
RnJhbWVMb2FkUmVxdWVzdApJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9y
YWdlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyLm1tCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW1wb3J0ICJXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oIgogCisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
dG9yYWdlVHJhY2tlci5oPgogI2ltcG9ydCA8cHRocmVhZC5oPgpAQCAtMTAyLDYgKzEwMywxMSBA
QCArICh2b2lkKXNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDooCiAgICAgU3RvcmFnZVRy
YWNrZXI6OnRyYWNrZXIoKS5zZXRTdG9yYWdlRGF0YWJhc2VJZGxlSW50ZXJ2YWwoaW50ZXJ2YWwp
OwogfQogCisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcworeworICAgIFBh
Z2VHcm91cDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7Cit9CisKIHN0YXRpYyB2
b2lkIGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKCkKIHsKICAgICBOU1VzZXJEZWZhdWx0cyAq
ZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyUHJp
dmF0ZS5oCShyZXZpc2lvbiAxMzU5MjYpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VNYW5hZ2VyUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw1ICs0NCw2IEBA
IEBpbnRlcmZhY2UgV2ViU3RvcmFnZU1hbmFnZXIgOiBOU09iamVjdAogCiArIChOU1N0cmluZyAq
KV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKICsgKHZvaWQpc2V0U3RvcmFnZURhdGFiYXNlSWRsZUlu
dGVydmFsOihkb3VibGUpaW50ZXJ2YWw7CisrICh2b2lkKWNsb3NlSWRsZUxvY2FsU3RvcmFnZURh
dGFiYXNlczsKIEBlbmQKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTUzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTEtMjcgIFlvbmdqdW4gWmhhbmcgIDx5
b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0aG9kIHRvIGNsb3Nl
IGFsbCBpZGxlIGxvY2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gSlMgbWV0aG9kIHRv
IFRlc3RSdW5uZXIsIHRvIGVuYWJsZSB0ZXN0aW5nIGNsb3NpbmcgaWRsZSBsb2NhbCBzdG9yYWdl
IGRhdGFiYXNlcyBpbgorICAgICAgICBEdW1wUmVuZGVyVHJlZSBsYXlvdXQgdGVzdHMuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKGNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlc0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3Rv
cmFnZURhdGFiYXNlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJH
dGsuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKwogMjAxMi0xMS0yNyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1bi1wZXJmLXRlc3RzIGZhaWxzIG9uIEFu
ZHJvaWQgYmVjYXVzZSBvZiBzdGRlcnIgb3V0cHV0CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAkocmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzksNiArMjA3OSwxNCBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRTdG9yYWdlRGF0YWJhc2VJZGxlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihK
U09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPmNsb3NlSWRs
ZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFudFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
aWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjM0NCw2ICsyMzUyLDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuYwogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHBy
ZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNj
cmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsIiwgc2V0U3Rv
cmFnZURhdGFiYXNlSWRsZUludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiY2xv
c2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzIiwgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zIiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAko
cmV2aXNpb24gMTM1OTI2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNjIsNiArMzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3I7IH0KIAogICAgIHZvaWQgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKGRv
dWJsZSk7CisgICAgdm9pZCBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKIAogICAg
IGJvb2wgaGFzUGVuZGluZ1dlYk5vdGlmaWNhdGlvbkNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNQZW5kaW5nV2ViTm90aWZpY2F0aW9uQ2xpY2s7IH0KIApJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAJ
KHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVz
dFJ1bm5lckJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTYsMyArODU2LDggQEAg
dm9pZCBUZXN0UnVubmVyOjpzZXRTdG9yYWdlRGF0YWJhc2VJZGxlSQogICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGhpcy4KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5u
ZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVu
bmVyRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI0LDMgKzkyNCw4IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9UZXN0UnVubmVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvVGVzdFJ1bm5lckd0ay5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTk3LDMgKzk5
Nyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxl
TG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCShyZXZpc2lvbiAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIx
MywxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiAgICAgW1dl
YlN0b3JhZ2VNYW5hZ2VyIHNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDppbnRlcnZhbF07
CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkK
K3sKKyAgICBbV2ViU3RvcmFnZU1hbmFnZXIgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2Vz
XTsKK30KKwogSlNWYWx1ZVJlZiBUZXN0UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZShK
U0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICByZXR1cm4gb3JpZ2luc0FycmF5VG9KUyhjb250
ZXh0LCBbW1dlYlN0b3JhZ2VNYW5hZ2VyIHNoYXJlZFdlYlN0b3JhZ2VNYW5hZ2VyXSBvcmlnaW5z
XSk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCShy
ZXZpc2lvbiAxMzU5MjYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDUsMyArMTQ0NSw4IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRo
aXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2Vz
KCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAJKHJldmlzaW9uIDEzNTkyNikKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
NywzICs2MTcsOCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiB7
CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNs
b3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgorfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTUzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMjcgIFlvbmdq
dW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0
aG9kIHRvIGNsb3NlIGFsbCBpZGxlIGxvY2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlv
bmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxl
LiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2Nh
bHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3Rv
cmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9yZXNvdXJjZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1t
ZWRpYXRlbHkuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjcgIFRvbnkgQ2hhbmcgIDx0b255QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBsYW5kIHVwZGF0ZWQgR3RrIHJlc3Vs
dHMgYWZ0ZXIgdHJhY2sgbGltaXRlciByZW1vdmFsLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzU5MjYpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNv
cHkpCkBAIC04MDIsNiArODAyLDcgQEAgZmFzdC9mb3Jtcy9nZXQtZm9ybXMtdG8tYWJvdXQtYmxh
bmsuaHRtbAogIyBpbXBsZW1lbnQgYmVjYXVzZSB3ZSBjYW4ndCBlbXVsYXRlIHRoZSBjYWNoaW5n
IGJlaGF2aW9ycyBpdCBleHBlY3RzLgogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvbmVzdGVk
LWV4ZWN1dGlvbi5odG1sIFsgV29udEZpeCBdCiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc3RvcmFnZS1j
bG9zZS1kYXRhYmFzZS1vbi1pZGxlLmh0bWwgWyBXb250Rml4IF0KK3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0
ZWx5Lmh0bWwgWyBXb250Rml4IF0KIAogIyBEZWxldGlvbiBVSSBpcyBhIE1haWwtaXNtLiBXZSBk
b24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoaXMuCiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9u
VUktc2luZ2xlLWluc3RhbmNlLmh0bWwgWyBXb250Rml4IF0KSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0
YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdl
LWRhdGFiYXNlcy1pbW1lZGlhdGVseS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxz
dG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMyBAQAorUEFTUworUEFTUworCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1p
bW1lZGlhdGVseS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVk
aWF0ZWx5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlh
dGVseS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IGxvZyhhKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhU
TUwgKz0gYSArICI8YnI+IjsKK30KKworZnVuY3Rpb24gbG9hZE5leHRQYWdlKCkKK3sKKyAgICBs
b2NhdGlvbi5ocmVmID0gIi4uLy4uL3Jlc291cmNlcy9zdG9yYWdlLWNsb3NlLWlkbGUtbG9jYWxz
dG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1sIjsKK30KKworZnVuY3Rpb24gcnVuVGVz
dCgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0Q2FjaGVNb2RlbCgwKTsgLy8gV2ViQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyLgorICAgIH0K
KworICAgIC8vIFRlc3QgdG8gbWFrZSBzdXJlIHRoZSBzdG9yYWdlIHZhbHVlcyBkb24ndCBjaGFu
Z2UgYWZ0ZXIgdGhlIGRhdGFiYXNlIGlzIGNsb3NlZC4KKyAgICBpZiAoImxvY2FsU3RvcmFnZSIg
aW4gd2luZG93KSB7CisgICAgICAgIHZhciBsb2FkQ291bnQgPSB3aW5kb3cuc2Vzc2lvblN0b3Jh
Z2VbJ3Rlc3RQYWdlTG9hZENvdW50J107CisgICAgICAgIGlmIChsb2FkQ291bnQgIT09IHVuZGVm
aW5lZCkKKyAgICAgICAgICAgIGxvYWRDb3VudCsrOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBsb2FkQ291bnQgPSAxOworCisgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZVsndGVzdFBh
Z2VMb2FkQ291bnQnXSA9IGxvYWRDb3VudDsKKworICAgICAgICBpZiAobG9hZENvdW50ID09IDEg
KSB7CisgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmNsZWFyKCk7CisgICAgICAgICAg
ICB3aW5kb3cubG9jYWxTdG9yYWdlWydmb28nXSA9ICdGT08nOworICAgICAgICAgICAgd2luZG93
LmxvY2FsU3RvcmFnZVsnYmFyJ10gPSAnQkFSJzsKKworICAgICAgICAgICAgc2V0VGltZW91dCgi
bG9hZE5leHRQYWdlKCkiLCAwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRl
c3QgaWYgd2Ugc3RpbGwgaGF2ZSB0aGUgcmlnaHQgdmFsdWVzLgorICAgICAgICAgICAgbG9nKHdp
bmRvdy5sb2NhbFN0b3JhZ2VbJ2ZvbyddID09PSAnRk9PJyA/ICdQQVNTJyA6ICdGQUlMJyk7Cisg
ICAgICAgICAgICBsb2cod2luZG93LmxvY2FsU3RvcmFnZVsnYmFyJ10gPT09ICdCQVInID8gJ1BB
U1MnIDogJ0ZBSUwnKTsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3Jlc291cmNlcy9zdG9yYWdlLWNsb3Nl
LWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2Nh
bHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL3Jlc291cmNlcy9zdG9yYWdlLWNsb3NlLWlkbGUtbG9jYWxzdG9yYWdl
LWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBA
Cis8aHRtbD4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gc3dpbmdCYWNrKCkgCisgICAgeworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyLmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpOworICAgICAgICB9CisgICAgICAg
IGxvY2F0aW9uLmhyZWY9Jy4uL2RvbXN0b3JhZ2Uvc3RvcmFnZS1jbG9zZS1kYXRhYmFzZS1vbi1p
ZGxlLmh0bWwnOworICAgIH0KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSdzZXRUaW1lb3V0KHN3
aW5nQmFjaygpLCAxMDApOyc+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="192346"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176765</attachid>
            <date>2012-11-29 11:20:32 -0800</date>
            <delta_ts>2012-11-29 13:59:09 -0800</delta_ts>
            <desc>slightly modified patch, addressing review comments and use fast/js/resources/js-test-pre.js for presenting test results.</desc>
            <filename>reviewed_close_localdb.patch</filename>
            <type>text/plain</type>
            <size>21367</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTI5ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhv
ZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgorCisgICAgICAgIEFkZCBhIG5ldyBQ
YWdlR3JvdXAgbWV0aG9kIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcywgd2hpY2ggd2Fs
a3MgdGhyb3VnaAorICAgICAgICBhbGwgbG9jYWwgc3RvcmFnZSBhcmVhcyB0aGF0IGRvbid0IGhh
dmUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdG8gdGhlbSBhbmQgY2xvc2VzCisgICAgICAgIHRoZWly
IHVuZGVybHlpbmcgZGF0YWJhc2VzLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0
ZWx5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2UvUGFn
ZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cDo6Y2xlYXJMb2NhbFN0b3Jh
Z2VGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
R3JvdXA6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6IHdhbGtpbmcgdGhyb3VnaCBh
bGwgaWRsZSBsb2NhbCBzdG9yYWdlcyBhbmQKKyAgICAgICAgICAgIGNsb3NpbmcgdGhlaXIgZGF0
YWJhc2VzLgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmg6CisgICAgICAgIChQYWdlR3JvdXAp
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VBcmVhOjpjbG9zZURhdGFiYXNlSWZJZGxlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3Jh
Z2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYUltcGw6OmNsb3Nl
RGF0YWJhc2VJZklkbGUpOiBjbG9zZSB0aGUgZGF0YWJhc2UgaWYgaXQgaXMgaWRsZS4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmg6CisgICAg
ICAgIChTdG9yYWdlQXJlYUltcGwpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZS5oOgorICAgICAgICAoU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoKKyAgICAgICAgKFN0
b3JhZ2VOYW1lc3BhY2VJbXBsKToKKwogMjAxMi0xMS0yOSAgVGlhbmNoZW5nIEppYW5nICA8dGlq
aWFuZ0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcGRhdGUgQkIxMCBmb3JtIHRo
ZW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgwLDYgKzEwODAs
NyBAQCBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjZzZXRTaG91bGRUcmFja1ZpCiBfX1pON1dlYkNv
cmU5UGFnZUdyb3VwMjlyZW1vdmVVc2VyU3R5bGVTaGVldEZyb21Xb3JsZEVQTlNfMTVET01XcmFw
cGVyV29ybGRFUktOU180S1VSTEUKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAzMHJlbW92ZVVzZXJT
dHlsZVNoZWV0c0Zyb21Xb3JsZEVQTlNfMTVET01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmU5
UGFnZUdyb3VwOXBhZ2VHcm91cEVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTlQYWdlR3Jv
dXAzMGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlc0V2CiBfX1pON1dlYkNvcmU5U2Nyb2xs
YmFyMTBtb3VzZU1vdmVkRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFCiBfX1pON1dlYkNvcmU5
U2Nyb2xsYmFyMTFtb3VzZUV4aXRlZEV2CiBfX1pON1dlYkNvcmU5U2Nyb2xsYmFyMTJtb3VzZUVu
dGVyZWRFdgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkocmV2aXNpb24gMTM2MTQx
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDQsOSArMTQ0LDIxIEBAIHZvaWQgUGFnZUdyb3VwOjpjbGVhckxvY2FsU3RvcmFnZUZvck9y
aWcKICAgICBmb3IgKFBhZ2VHcm91cE1hcDo6aXRlcmF0b3IgaXQgPSBwYWdlR3JvdXBzLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgaWYgKGl0LT52YWx1ZS0+aGFzTG9jYWxT
dG9yYWdlKCkpCiAgICAgICAgICAgICBpdC0+dmFsdWUtPmxvY2FsU3RvcmFnZSgpLT5jbGVhck9y
aWdpbkZvckRlbGV0aW9uKG9yaWdpbik7Ci0gICAgfSAgICAKKyAgICB9CiB9Ci0gICAgCisKK3Zv
aWQgUGFnZUdyb3VwOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKQoreworICAgIGlm
ICghcGFnZUdyb3VwcykKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZUdyb3VwTWFwOjppdGVy
YXRvciBlbmQgPSBwYWdlR3JvdXBzLT5lbmQoKTsKKyAgICBmb3IgKFBhZ2VHcm91cE1hcDo6aXRl
cmF0b3IgaXQgPSBwYWdlR3JvdXBzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgaWYgKGl0LT52YWx1ZS0+aGFzTG9jYWxTdG9yYWdlKCkpCisgICAgICAgICAgICBpdC0+dmFs
dWUtPmxvY2FsU3RvcmFnZSgpLT5jbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKKyAg
ICB9Cit9CisKIHZvaWQgUGFnZUdyb3VwOjpzeW5jTG9jYWxTdG9yYWdlKCkKIHsKICAgICBpZiAo
IXBhZ2VHcm91cHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgJKHJldmlzaW9uIDEzNjE0
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyB2b2lk
IGNsZWFyTG9jYWxTdG9yYWdlRm9yQWxsT3JpZ2lucygpOwogICAgICAgICBzdGF0aWMgdm9pZCBj
bGVhckxvY2FsU3RvcmFnZUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiopOworICAgICAgICBzdGF0
aWMgdm9pZCBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKICAgICAgICAgLy8gRHVt
cFJlbmRlclRyZWUgaGVscGVyIHRoYXQgdHJpZ2dlcnMgYSBTdG9yYWdlQXJlYSBzeW5jLgogICAg
ICAgICBzdGF0aWMgdm9pZCBzeW5jTG9jYWxTdG9yYWdlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VBcmVhLmgJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUFyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGluY3JlbWVudEFjY2Vz
c0NvdW50KCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1lbnRBY2Nlc3NDb3VudCgp
IHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIHsgfQogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZUFyZWFJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ5LDQg
KzM0OSwxNCBAQCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6Y2xvc2VEYXRhYmFzZVRpbWVyCiAgICAg
ICAgIG1fc3RvcmFnZUFyZWFTeW5jLT5zY2hlZHVsZUNsb3NlRGF0YWJhc2UoKTsKIH0KIAordm9p
ZCBTdG9yYWdlQXJlYUltcGw6OmNsb3NlRGF0YWJhc2VJZklkbGUoKQoreworICAgIGlmIChtX2Ns
b3NlRGF0YWJhc2VUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIEFTU0VSVCghbV9hY2Nlc3ND
b3VudCk7CisgICAgICAgIG1fY2xvc2VEYXRhYmFzZVRpbWVyLnN0b3AoKTsKKworICAgICAgICBj
bG9zZURhdGFiYXNlVGltZXJGaXJlZCgmbV9jbG9zZURhdGFiYXNlVGltZXIpOworICAgIH0KK30K
KwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCShyZXZp
c2lvbiAxMzYxNDEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50QWNjZXNzQ291bnQoKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGRlY3JlbWVudEFjY2Vzc0NvdW50KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBj
bG9zZURhdGFiYXNlSWZJZGxlKCk7CiAKICAgICAgICAgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUlt
cGw+IGNvcHkoKTsKICAgICAgICAgdm9pZCBjbG9zZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPcmlnaW5Gb3JEZWxldGlv
bihTZWN1cml0eU9yaWdpbiopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxPcmlnaW5z
Rm9yRGVsZXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmMoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpICB7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCShyZXZpc2lvbiAxMzYxNDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTY1LDQgKzE2NSwxMiBAQCB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzeW5jKCkKICAgICAg
ICAgaXQtPnZhbHVlLT5zeW5jKCk7CiB9CiAKK3ZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNs
b3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBTdG9yYWdlQXJlYU1hcDo6aXRlcmF0b3IgZW5kID0gbV9zdG9yYWdlQXJlYU1h
cC5lbmQoKTsKKyAgICBmb3IgKFN0b3JhZ2VBcmVhTWFwOjppdGVyYXRvciBpdCA9IG1fc3RvcmFn
ZUFyZWFNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+dmFsdWUtPmNs
b3NlRGF0YWJhc2VJZklkbGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkocmV2aXNp
b24gMTM2MTQxKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFyT3JpZ2luRm9yRGVsZXRpb24oU2VjdXJpdHlPcmln
aW4qKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsT3JpZ2luc0ZvckRlbGV0aW9uKCk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzeW5jKCk7Ci0gICAgICAgIAorICAgICAgICB2aXJ0dWFs
IHZvaWQgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CisKICAgICBwcml2YXRlOgog
ICAgICAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXRoLCB1bnNpZ25lZCBxdW90YSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEz
NjE0MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE3IEBACisyMDEyLTExLTI5ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhvZCB0byBjbG9zZSBhbGwgaWRsZSBsb2Nh
bHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
aWQgS2lsemVyLgorCisgICAgICAgIEFkZCBhIG5ldyBtZXRob2QgdG8gV2ViU3RvcmFnZU1hbmFn
ZXIgdGhhdCB3ZSBjYW4gY2FsbCB0byBjbG9zZSBhbGwKKyAgICAgICAgaWRsZSBsb2NhbCBzdG9y
YWdlIGRhdGFiYXNlcy4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW06
CisgICAgICAgICgrW1dlYlN0b3JhZ2VNYW5hZ2VyIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFi
YXNlc10pOgorICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmg6CisK
IDIwMTItMTEtMjggIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5NzAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbQkocmV2aXNpb24g
MTM2MTQxKQorKysgU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV2ViU3RvcmFnZU1h
bmFnZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQuaCIKIAor
I2ltcG9ydCA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RvcmFnZVRyYWNrZXIuaD4KICNpbXBvcnQgPHB0
aHJlYWQuaD4KQEAgLTEwMiw2ICsxMDMsMTEgQEAgKyAodm9pZClzZXRTdG9yYWdlRGF0YWJhc2VJ
ZGxlSW50ZXJ2YWw6KAogICAgIFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkuc2V0U3RvcmFnZURh
dGFiYXNlSWRsZUludGVydmFsKGludGVydmFsKTsKIH0KIAorKyAodm9pZCljbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXMKK3sKKyAgICBQYWdlR3JvdXA6OmNsb3NlSWRsZUxvY2FsU3RvcmFn
ZURhdGFiYXNlcygpOworfQorCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplTG9jYWxTdG9yYWdlUGF0
aCgpCiB7CiAgICAgTlNVc2VyRGVmYXVsdHMgKmRlZmF1bHRzID0gW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2Vi
U3RvcmFnZU1hbmFnZXJQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
U3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAkocmV2aXNpb24gMTM2MTQxKQorKysg
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNDQsNSArNDQsNiBAQCBAaW50ZXJmYWNlIFdlYlN0b3JhZ2VNYW5hZ2Vy
IDogTlNPYmplY3QKIAogKyAoTlNTdHJpbmcgKilfc3RvcmFnZURpcmVjdG9yeVBhdGg7CiArICh2
b2lkKXNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDooZG91YmxlKWludGVydmFsOworKyAo
dm9pZCljbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXM7CiBAZW5kCiAKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjE0
MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisy
MDEyLTExLTI5ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgTmVlZCBhIG1ldGhvZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJh
c2VzIGltbWVkaWF0ZWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzNDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgorCisg
ICAgICAgIEFkZCBhbiBKUyBtZXRob2QgdG8gVGVzdFJ1bm5lciwgdG8gZW5hYmxlIHRlc3Rpbmcg
Y2xvc2luZyBpZGxlIGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2VzIGluCisgICAgICAgIER1bXBSZW5k
ZXJUcmVlIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzQ2FsbGJhY2sp
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpj
bG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9j
YWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1
bm5lcldpbi5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VE
YXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHA6
CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgor
CiAyMDEyLTExLTI5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBy
dW4tcGVyZi10ZXN0cyAtLWNocm9taXVtLWFuZHJvaWQgZmFpbHMgZHVlIHRvIFNraWEgSU5GTyBs
b2dnaW5nCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMTM2
MTQxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwNzksNiArMjA3OSwxNCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9yYWdlRGF0
YWJhc2VJZGxlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQog
CitzdGF0aWMgSlNWYWx1ZVJlZiBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXNDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgVGVzdFJ1bm5lciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOworICAgIGNvbnRyb2xsZXItPmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygp
OworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0
aWMgSlNWYWx1ZVJlZiBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpA
QCAtMjM0NCw2ICsyMzUyLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGlj
RnVuYwogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHByZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3Rv
cmFnZURhdGFiYXNlSWRsZUludGVydmFsIiwgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFs
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzIiwgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGVueVdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25z
IiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMTM2MTQxKQorKysgVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsNiAr
MzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkg
Y29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7IH0KIAogICAgIHZvaWQg
c2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKGRvdWJsZSk7CisgICAgdm9pZCBjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKIAogICAgIGJvb2wgaGFzUGVuZGluZ1dlYk5vdGlm
aWNhdGlvbkNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nV2ViTm90aWZpY2F0aW9u
Q2xpY2s7IH0KIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NTYsMyArODU2LDggQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdG9y
YWdlRGF0YWJhc2VJZGxlSQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFn
ZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysr
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTI0LDMgKzkyNCw4IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNl
SWRsZUkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNs
b3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAJKHJl
dmlzaW9uIDEzNjE0MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTk3LDMgKzk5Nyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMu
CiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkK
K3sKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCShy
ZXZpc2lvbiAxMzYxNDEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIxMywxMSBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiAgICAgW1dlYlN0b3JhZ2VNYW5hZ2VyIHNldFN0b3Jh
Z2VEYXRhYmFzZUlkbGVJbnRlcnZhbDppbnRlcnZhbF07CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6
Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICBbV2ViU3RvcmFnZU1hbmFn
ZXIgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzXTsKK30KKwogSlNWYWx1ZVJlZiBUZXN0
UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZShKU0NvbnRleHRSZWYgY29udGV4dCkKIHsK
ICAgICByZXR1cm4gb3JpZ2luc0FycmF5VG9KUyhjb250ZXh0LCBbW1dlYlN0b3JhZ2VNYW5hZ2Vy
IHNoYXJlZFdlYlN0b3JhZ2VNYW5hZ2VyXSBvcmlnaW5zXSk7CkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCShyZXZpc2lvbiAxMzYxNDEpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0NDUsMyArMTQ0NSw4IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRs
ZUkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5l
cjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoaXMuCit9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVy
V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJX
eC5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RS
dW5uZXJXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxNywzICs2MTcsOCBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFi
YXNlcygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTM2MTQxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMjkgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5n
QGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0aG9kIHRvIGNsb3NlIGFsbCBpZGxlIGxv
Y2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXZpZCBLaWx6ZXIuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hh
bmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24g
ZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3Jh
Z2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlh
dGVseS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2Ut
aWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWw6IEFkZGVkLgorCiAy
MDEyLTExLTI5ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVHlw
byBpbiAnYXV0b2ZvY3VzJyBzYW5kYm94aW5nIGVycm9yIG1lc3NhZ2UuCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEz
NjE0MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJ
KHdvcmtpbmcgY29weSkKQEAgLTgwMSw2ICs4MDEsNyBAQCBmYXN0L2Zvcm1zL2dldC1mb3Jtcy10
by1hYm91dC1ibGFuay5odG1sCiAjIGltcGxlbWVudCBiZWNhdXNlIHdlIGNhbid0IGVtdWxhdGUg
dGhlIGNhY2hpbmcgYmVoYXZpb3JzIGl0IGV4cGVjdHMuCiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9uZXN0ZWQtZXhlY3V0aW9uLmh0bWwgWyBXb250Rml4IF0KIHN0b3JhZ2UvZG9tc3RvcmFn
ZS9zdG9yYWdlLWNsb3NlLWRhdGFiYXNlLW9uLWlkbGUuaHRtbCBbIFdvbnRGaXggXQorc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFz
ZXMtaW1tZWRpYXRlbHkuaHRtbCBbIFdvbnRGaXggXQogCiAjIERlbGV0aW9uIFVJIGlzIGEgTWFp
bC1pc20uIFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhpcy4KIGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRpb25VSS1zaW5nbGUtaW5zdGFuY2UuaHRtbCBbIFdvbnRGaXggXQpJbmRleDogTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fs
c3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1s
b2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2Ut
aWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitQQVNTIGZvbworUEFTUyBiYXIKKwpJbmRleDogTGF5
b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fs
c3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9y
YWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFn
ZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhhKQoreworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IGEgKyAiPGJyPiI7Cit9CisKK2Z1bmN0
aW9uIGxvYWROZXh0UGFnZSgpCit7CisgICAgbG9jYXRpb24uaHJlZiA9ICIuLi8uLi9yZXNvdXJj
ZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHku
aHRtbCI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldENhY2hlTW9kZWwoMCk7IC8vIFdlYkNhY2hl
TW9kZWxEb2N1bWVudFZpZXdlci4KKyAgICB9CisKKyAgICAvLyBUZXN0IHRvIG1ha2Ugc3VyZSB0
aGUgc3RvcmFnZSB2YWx1ZXMgZG9uJ3QgY2hhbmdlIGFmdGVyIHRoZSBkYXRhYmFzZSBpcyBjbG9z
ZWQuCisgICAgaWYgKCJsb2NhbFN0b3JhZ2UiIGluIHdpbmRvdykgeworICAgICAgICB2YXIgbG9h
ZENvdW50ID0gd2luZG93LnNlc3Npb25TdG9yYWdlWyd0ZXN0UGFnZUxvYWRDb3VudCddOworICAg
ICAgICBpZiAobG9hZENvdW50ICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICBsb2FkQ291bnQr
KzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9hZENvdW50ID0gMTsKKworICAgICAgICB3
aW5kb3cuc2Vzc2lvblN0b3JhZ2VbJ3Rlc3RQYWdlTG9hZENvdW50J10gPSBsb2FkQ291bnQ7CisK
KyAgICAgICAgaWYgKGxvYWRDb3VudCA9PSAxICkgeworICAgICAgICAgICAgd2luZG93LmxvY2Fs
U3RvcmFnZS5jbGVhcigpOworICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZVsnZm9vJ10g
PSAnRk9PJzsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbJ2JhciddID0gJ0JBUic7
CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoImxvYWROZXh0UGFnZSgpIiwgMCk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUZXN0IGlmIHdlIHN0aWxsIGhhdmUgdGhlIHJpZ2h0
IHZhbHVlcy4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYWxTdG9yYWdlWydmb28nXSA9PT0g
J0ZPTycpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZm9vIik7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiZm9vIik7CisKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cubG9jYWxTdG9yYWdlWydiYXInXSA9PT0gJ0JBUicpCisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiYmFyIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiYmFyIik7CisKKyAgICAgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1v
dmVJdGVtKCd0ZXN0UGFnZUxvYWRDb3VudCcpOworCisgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExh
eW91dFRlc3RzL3N0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3Jh
Z2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9yZXNvdXJjZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFz
ZXMtaW1tZWRpYXRlbHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
cmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVk
aWF0ZWx5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPHNjcmlw
dD4KKyAgICBmdW5jdGlvbiBzd2luZ0JhY2soKSAKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuY2xvc2VJZGxlTG9j
YWxTdG9yYWdlRGF0YWJhc2VzKCk7CisgICAgICAgIH0KKyAgICAgICAgbG9jYXRpb24uaHJlZj0n
Li4vZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJh
c2VzLWltbWVkaWF0ZWx5Lmh0bWwnOworICAgIH0KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSdz
ZXRUaW1lb3V0KHN3aW5nQmFjaygpLCAxMDApOyc+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="192647"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176812</attachid>
            <date>2012-11-29 13:59:09 -0800</date>
            <delta_ts>2012-12-02 02:32:35 -0800</delta_ts>
            <desc>Remove OOPS in LayoutTest/ChangeLog</desc>
            <filename>reviewed_close_localdb.patch</filename>
            <type>text/plain</type>
            <size>21147</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTI5ICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhv
ZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgorCisgICAgICAgIEFkZCBhIG5ldyBQ
YWdlR3JvdXAgbWV0aG9kIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcywgd2hpY2ggd2Fs
a3MgdGhyb3VnaAorICAgICAgICBhbGwgbG9jYWwgc3RvcmFnZSBhcmVhcyB0aGF0IGRvbid0IGhh
dmUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdG8gdGhlbSBhbmQgY2xvc2VzCisgICAgICAgIHRoZWly
IHVuZGVybHlpbmcgZGF0YWJhc2VzLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0
ZWx5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2UvUGFn
ZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cDo6Y2xlYXJMb2NhbFN0b3Jh
Z2VGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
R3JvdXA6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6IHdhbGtpbmcgdGhyb3VnaCBh
bGwgaWRsZSBsb2NhbCBzdG9yYWdlcyBhbmQKKyAgICAgICAgICAgIGNsb3NpbmcgdGhlaXIgZGF0
YWJhc2VzLgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmg6CisgICAgICAgIChQYWdlR3JvdXAp
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VBcmVhOjpjbG9zZURhdGFiYXNlSWZJZGxlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3Jh
Z2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYUltcGw6OmNsb3Nl
RGF0YWJhc2VJZklkbGUpOiBjbG9zZSB0aGUgZGF0YWJhc2UgaWYgaXQgaXMgaWRsZS4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmg6CisgICAg
ICAgIChTdG9yYWdlQXJlYUltcGwpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZS5oOgorICAgICAgICAoU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoKKyAgICAgICAgKFN0
b3JhZ2VOYW1lc3BhY2VJbXBsKToKKwogMjAxMi0xMS0yOSAgVGlhbmNoZW5nIEppYW5nICA8dGlq
aWFuZ0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcGRhdGUgQkIxMCBmb3JtIHRo
ZW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgwLDYgKzEwODAs
NyBAQCBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjZzZXRTaG91bGRUcmFja1ZpCiBfX1pON1dlYkNv
cmU5UGFnZUdyb3VwMjlyZW1vdmVVc2VyU3R5bGVTaGVldEZyb21Xb3JsZEVQTlNfMTVET01XcmFw
cGVyV29ybGRFUktOU180S1VSTEUKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAzMHJlbW92ZVVzZXJT
dHlsZVNoZWV0c0Zyb21Xb3JsZEVQTlNfMTVET01XcmFwcGVyV29ybGRFCiBfX1pON1dlYkNvcmU5
UGFnZUdyb3VwOXBhZ2VHcm91cEVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTlQYWdlR3Jv
dXAzMGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlc0V2CiBfX1pON1dlYkNvcmU5U2Nyb2xs
YmFyMTBtb3VzZU1vdmVkRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFCiBfX1pON1dlYkNvcmU5
U2Nyb2xsYmFyMTFtb3VzZUV4aXRlZEV2CiBfX1pON1dlYkNvcmU5U2Nyb2xsYmFyMTJtb3VzZUVu
dGVyZWRFdgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkocmV2aXNpb24gMTM2MTQx
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDQsOSArMTQ0LDIxIEBAIHZvaWQgUGFnZUdyb3VwOjpjbGVhckxvY2FsU3RvcmFnZUZvck9y
aWcKICAgICBmb3IgKFBhZ2VHcm91cE1hcDo6aXRlcmF0b3IgaXQgPSBwYWdlR3JvdXBzLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgaWYgKGl0LT52YWx1ZS0+aGFzTG9jYWxT
dG9yYWdlKCkpCiAgICAgICAgICAgICBpdC0+dmFsdWUtPmxvY2FsU3RvcmFnZSgpLT5jbGVhck9y
aWdpbkZvckRlbGV0aW9uKG9yaWdpbik7Ci0gICAgfSAgICAKKyAgICB9CiB9Ci0gICAgCisKK3Zv
aWQgUGFnZUdyb3VwOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKQoreworICAgIGlm
ICghcGFnZUdyb3VwcykKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZUdyb3VwTWFwOjppdGVy
YXRvciBlbmQgPSBwYWdlR3JvdXBzLT5lbmQoKTsKKyAgICBmb3IgKFBhZ2VHcm91cE1hcDo6aXRl
cmF0b3IgaXQgPSBwYWdlR3JvdXBzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgaWYgKGl0LT52YWx1ZS0+aGFzTG9jYWxTdG9yYWdlKCkpCisgICAgICAgICAgICBpdC0+dmFs
dWUtPmxvY2FsU3RvcmFnZSgpLT5jbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKKyAg
ICB9Cit9CisKIHZvaWQgUGFnZUdyb3VwOjpzeW5jTG9jYWxTdG9yYWdlKCkKIHsKICAgICBpZiAo
IXBhZ2VHcm91cHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgJKHJldmlzaW9uIDEzNjE0
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyB2b2lk
IGNsZWFyTG9jYWxTdG9yYWdlRm9yQWxsT3JpZ2lucygpOwogICAgICAgICBzdGF0aWMgdm9pZCBj
bGVhckxvY2FsU3RvcmFnZUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiopOworICAgICAgICBzdGF0
aWMgdm9pZCBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKICAgICAgICAgLy8gRHVt
cFJlbmRlclRyZWUgaGVscGVyIHRoYXQgdHJpZ2dlcnMgYSBTdG9yYWdlQXJlYSBzeW5jLgogICAg
ICAgICBzdGF0aWMgdm9pZCBzeW5jTG9jYWxTdG9yYWdlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VBcmVhLmgJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUFyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGluY3JlbWVudEFjY2Vz
c0NvdW50KCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1lbnRBY2Nlc3NDb3VudCgp
IHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIHsgfQogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZUFyZWFJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ5LDQg
KzM0OSwxNCBAQCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6Y2xvc2VEYXRhYmFzZVRpbWVyCiAgICAg
ICAgIG1fc3RvcmFnZUFyZWFTeW5jLT5zY2hlZHVsZUNsb3NlRGF0YWJhc2UoKTsKIH0KIAordm9p
ZCBTdG9yYWdlQXJlYUltcGw6OmNsb3NlRGF0YWJhc2VJZklkbGUoKQoreworICAgIGlmIChtX2Ns
b3NlRGF0YWJhc2VUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIEFTU0VSVCghbV9hY2Nlc3ND
b3VudCk7CisgICAgICAgIG1fY2xvc2VEYXRhYmFzZVRpbWVyLnN0b3AoKTsKKworICAgICAgICBj
bG9zZURhdGFiYXNlVGltZXJGaXJlZCgmbV9jbG9zZURhdGFiYXNlVGltZXIpOworICAgIH0KK30K
KwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCShyZXZp
c2lvbiAxMzYxNDEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50QWNjZXNzQ291bnQoKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGRlY3JlbWVudEFjY2Vzc0NvdW50KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBj
bG9zZURhdGFiYXNlSWZJZGxlKCk7CiAKICAgICAgICAgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUlt
cGw+IGNvcHkoKTsKICAgICAgICAgdm9pZCBjbG9zZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgJKHJldmlzaW9uIDEzNjE0MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPcmlnaW5Gb3JEZWxldGlv
bihTZWN1cml0eU9yaWdpbiopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxPcmlnaW5z
Rm9yRGVsZXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmMoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpICB7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCShyZXZpc2lvbiAxMzYxNDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTY1LDQgKzE2NSwxMiBAQCB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzeW5jKCkKICAgICAg
ICAgaXQtPnZhbHVlLT5zeW5jKCk7CiB9CiAKK3ZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNs
b3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBTdG9yYWdlQXJlYU1hcDo6aXRlcmF0b3IgZW5kID0gbV9zdG9yYWdlQXJlYU1h
cC5lbmQoKTsKKyAgICBmb3IgKFN0b3JhZ2VBcmVhTWFwOjppdGVyYXRvciBpdCA9IG1fc3RvcmFn
ZUFyZWFNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+dmFsdWUtPmNs
b3NlRGF0YWJhc2VJZklkbGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAkocmV2aXNp
b24gMTM2MTQxKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFyT3JpZ2luRm9yRGVsZXRpb24oU2VjdXJpdHlPcmln
aW4qKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsT3JpZ2luc0ZvckRlbGV0aW9uKCk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzeW5jKCk7Ci0gICAgICAgIAorICAgICAgICB2aXJ0dWFs
IHZvaWQgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCk7CisKICAgICBwcml2YXRlOgog
ICAgICAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXRoLCB1bnNpZ25lZCBxdW90YSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEz
NjE0MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE3IEBACisyMDEyLTExLTI5ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIG1ldGhvZCB0byBjbG9zZSBhbGwgaWRsZSBsb2Nh
bHN0b3JhZ2UgZGF0YWJhc2VzIGltbWVkaWF0ZWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
aWQgS2lsemVyLgorCisgICAgICAgIEFkZCBhIG5ldyBtZXRob2QgdG8gV2ViU3RvcmFnZU1hbmFn
ZXIgdGhhdCB3ZSBjYW4gY2FsbCB0byBjbG9zZSBhbGwKKyAgICAgICAgaWRsZSBsb2NhbCBzdG9y
YWdlIGRhdGFiYXNlcy4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW06
CisgICAgICAgICgrW1dlYlN0b3JhZ2VNYW5hZ2VyIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFi
YXNlc10pOgorICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmg6CisK
IDIwMTItMTEtMjggIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5NzAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbQkocmV2aXNpb24g
MTM2MTQxKQorKysgU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV2ViU3RvcmFnZU1h
bmFnZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQuaCIKIAor
I2ltcG9ydCA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RvcmFnZVRyYWNrZXIuaD4KICNpbXBvcnQgPHB0
aHJlYWQuaD4KQEAgLTEwMiw2ICsxMDMsMTEgQEAgKyAodm9pZClzZXRTdG9yYWdlRGF0YWJhc2VJ
ZGxlSW50ZXJ2YWw6KAogICAgIFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkuc2V0U3RvcmFnZURh
dGFiYXNlSWRsZUludGVydmFsKGludGVydmFsKTsKIH0KIAorKyAodm9pZCljbG9zZUlkbGVMb2Nh
bFN0b3JhZ2VEYXRhYmFzZXMKK3sKKyAgICBQYWdlR3JvdXA6OmNsb3NlSWRsZUxvY2FsU3RvcmFn
ZURhdGFiYXNlcygpOworfQorCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplTG9jYWxTdG9yYWdlUGF0
aCgpCiB7CiAgICAgTlNVc2VyRGVmYXVsdHMgKmRlZmF1bHRzID0gW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2Vi
U3RvcmFnZU1hbmFnZXJQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
U3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAkocmV2aXNpb24gMTM2MTQxKQorKysg
U291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNDQsNSArNDQsNiBAQCBAaW50ZXJmYWNlIFdlYlN0b3JhZ2VNYW5hZ2Vy
IDogTlNPYmplY3QKIAogKyAoTlNTdHJpbmcgKilfc3RvcmFnZURpcmVjdG9yeVBhdGg7CiArICh2
b2lkKXNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbDooZG91YmxlKWludGVydmFsOworKyAo
dm9pZCljbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXM7CiBAZW5kCiAKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjE0
MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisy
MDEyLTExLTI5ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgTmVlZCBhIG1ldGhvZCB0byBjbG9zZSBhbGwgaWRsZSBsb2NhbHN0b3JhZ2UgZGF0YWJh
c2VzIGltbWVkaWF0ZWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzNDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgorCisg
ICAgICAgIEFkZCBhbiBKUyBtZXRob2QgdG8gVGVzdFJ1bm5lciwgdG8gZW5hYmxlIHRlc3Rpbmcg
Y2xvc2luZyBpZGxlIGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2VzIGluCisgICAgICAgIER1bXBSZW5k
ZXJUcmVlIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzQ2FsbGJhY2sp
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpj
bG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9j
YWxTdG9yYWdlRGF0YWJhc2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1
bm5lcldpbi5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VE
YXRhYmFzZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHA6
CisgICAgICAgIChUZXN0UnVubmVyOjpjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMpOgor
CiAyMDEyLTExLTI5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBy
dW4tcGVyZi10ZXN0cyAtLWNocm9taXVtLWFuZHJvaWQgZmFpbHMgZHVlIHRvIFNraWEgSU5GTyBs
b2dnaW5nCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMTM2
MTQxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwNzksNiArMjA3OSwxNCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9yYWdlRGF0
YWJhc2VJZGxlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQog
CitzdGF0aWMgSlNWYWx1ZVJlZiBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXNDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgVGVzdFJ1bm5lciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOworICAgIGNvbnRyb2xsZXItPmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygp
OworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0
aWMgSlNWYWx1ZVJlZiBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpA
QCAtMjM0NCw2ICsyMzUyLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGlj
RnVuYwogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHByZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3Rv
cmFnZURhdGFiYXNlSWRsZUludGVydmFsIiwgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFs
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJh
c2VzIiwgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGVueVdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25z
IiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMTM2MTQxKQorKysgVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsNiAr
MzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkg
Y29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7IH0KIAogICAgIHZvaWQg
c2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsKGRvdWJsZSk7CisgICAgdm9pZCBjbG9zZUlk
bGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKIAogICAgIGJvb2wgaGFzUGVuZGluZ1dlYk5vdGlm
aWNhdGlvbkNsaWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nV2ViTm90aWZpY2F0aW9u
Q2xpY2s7IH0KIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NTYsMyArODU2LDggQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdG9y
YWdlRGF0YWJhc2VJZGxlSQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFn
ZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysr
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTI0LDMgKzkyNCw4IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNl
SWRsZUkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNs
b3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAJKHJl
dmlzaW9uIDEzNjE0MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTk3LDMgKzk5Nyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0U3RvcmFnZURhdGFiYXNlSWRsZUkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMu
CiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkK
K3sKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCShy
ZXZpc2lvbiAxMzYxNDEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIxMywxMSBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiAgICAgW1dlYlN0b3JhZ2VNYW5hZ2VyIHNldFN0b3Jh
Z2VEYXRhYmFzZUlkbGVJbnRlcnZhbDppbnRlcnZhbF07CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6
Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICBbV2ViU3RvcmFnZU1hbmFn
ZXIgY2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzXTsKK30KKwogSlNWYWx1ZVJlZiBUZXN0
UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZShKU0NvbnRleHRSZWYgY29udGV4dCkKIHsK
ICAgICByZXR1cm4gb3JpZ2luc0FycmF5VG9KUyhjb250ZXh0LCBbW1dlYlN0b3JhZ2VNYW5hZ2Vy
IHNoYXJlZFdlYlN0b3JhZ2VNYW5hZ2VyXSBvcmlnaW5zXSk7CkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCShyZXZpc2lvbiAxMzYxNDEpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0NDUsMyArMTQ0NSw4IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZURhdGFiYXNlSWRs
ZUkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CisKK3ZvaWQgVGVzdFJ1bm5l
cjo6Y2xvc2VJZGxlTG9jYWxTdG9yYWdlRGF0YWJhc2VzKCkKK3sKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoaXMuCit9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVy
V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJX
eC5jcHAJKHJldmlzaW9uIDEzNjE0MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RS
dW5uZXJXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxNywzICs2MTcsOCBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgogfQorCit2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFi
YXNlcygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTM2MTQxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMjkgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5n
QGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIGEgbWV0aG9kIHRvIGNsb3NlIGFsbCBpZGxlIGxv
Y2Fsc3RvcmFnZSBkYXRhYmFzZXMgaW1tZWRpYXRlbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0NjkKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXZpZCBLaWx6ZXIuCisKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1pbW1lZGlhdGVseS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xv
c2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtY2xvc2UtaWRsZS1sb2NhbHN0b3Jh
Z2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVHlwbyBpbiAnYXV0b2ZvY3Vz
JyBzYW5kYm94aW5nIGVycm9yIG1lc3NhZ2UuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNjE0MSkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkK
QEAgLTgwMSw2ICs4MDEsNyBAQCBmYXN0L2Zvcm1zL2dldC1mb3Jtcy10by1hYm91dC1ibGFuay5o
dG1sCiAjIGltcGxlbWVudCBiZWNhdXNlIHdlIGNhbid0IGVtdWxhdGUgdGhlIGNhY2hpbmcgYmVo
YXZpb3JzIGl0IGV4cGVjdHMuCiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9uZXN0ZWQtZXhl
Y3V0aW9uLmh0bWwgWyBXb250Rml4IF0KIHN0b3JhZ2UvZG9tc3RvcmFnZS9zdG9yYWdlLWNsb3Nl
LWRhdGFiYXNlLW9uLWlkbGUuaHRtbCBbIFdvbnRGaXggXQorc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHku
aHRtbCBbIFdvbnRGaXggXQogCiAjIERlbGV0aW9uIFVJIGlzIGEgTWFpbC1pc20uIFdlIGRvbid0
IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhpcy4KIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1z
aW5nbGUtaW5zdGFuY2UuaHRtbCBbIFdvbnRGaXggXQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFz
ZXMtaW1tZWRpYXRlbHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3JhZ2UtZGF0
YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvY2xvc2UtaWRsZS1sb2NhbHN0b3Jh
Z2UtZGF0YWJhc2VzLWltbWVkaWF0ZWx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzIEBACitQQVNTIGZvbworUEFTUyBiYXIKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFz
ZXMtaW1tZWRpYXRlbHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2Nsb3NlLWlkbGUtbG9jYWxzdG9yYWdlLWRhdGFiYXNlcy1p
bW1lZGlhdGVseS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1t
ZWRpYXRlbHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9
CisKK2Z1bmN0aW9uIGxvYWROZXh0UGFnZSgpCit7CisgICAgbG9jYXRpb24uaHJlZiA9ICIuLi8u
Li9yZXNvdXJjZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1t
ZWRpYXRlbHkuaHRtbCI7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldENhY2hlTW9kZWwoMCk7IC8v
IFdlYkNhY2hlTW9kZWxEb2N1bWVudFZpZXdlci4KKyAgICB9CisKKyAgICAvLyBUZXN0IHRvIG1h
a2Ugc3VyZSB0aGUgc3RvcmFnZSB2YWx1ZXMgZG9uJ3QgY2hhbmdlIGFmdGVyIHRoZSBkYXRhYmFz
ZSBpcyBjbG9zZWQuCisgICAgaWYgKCJsb2NhbFN0b3JhZ2UiIGluIHdpbmRvdykgeworICAgICAg
ICB2YXIgbG9hZENvdW50ID0gd2luZG93LnNlc3Npb25TdG9yYWdlWyd0ZXN0UGFnZUxvYWRDb3Vu
dCddOworICAgICAgICBpZiAobG9hZENvdW50ICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICBs
b2FkQ291bnQrKzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9hZENvdW50ID0gMTsKKwor
ICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2VbJ3Rlc3RQYWdlTG9hZENvdW50J10gPSBsb2Fk
Q291bnQ7CisKKyAgICAgICAgaWYgKGxvYWRDb3VudCA9PSAxKSB7CisgICAgICAgICAgICB3aW5k
b3cubG9jYWxTdG9yYWdlLmNsZWFyKCk7CisgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdl
Wydmb28nXSA9ICdGT08nOworICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZVsnYmFyJ10g
PSAnQkFSJzsKKworICAgICAgICAgICAgc2V0VGltZW91dCgibG9hZE5leHRQYWdlKCkiLCAwKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRlc3QgaWYgd2Ugc3RpbGwgaGF2ZSB0
aGUgcmlnaHQgdmFsdWVzLgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhbFN0b3JhZ2VbJ2Zv
byddID09PSAnRk9PJykKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJmb28iKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJmb28iKTsKKworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sb2NhbFN0b3JhZ2VbJ2JhciddID09PSAnQkFSJykKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJiYXIiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJiYXIiKTsKKworICAgICAgICAgICAgd2luZG93LnNlc3Npb25TdG9y
YWdlLnJlbW92ZUl0ZW0oJ3Rlc3RQYWdlTG9hZENvdW50Jyk7CisKKyAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpJ
bmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9yZXNvdXJjZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxv
Y2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL3Jlc291cmNlcy9zdG9yYWdlLWNsb3NlLWlkbGUtbG9jYWxzdG9yYWdl
LWRhdGFiYXNlcy1pbW1lZGlhdGVseS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3RvcmFnZS9yZXNvdXJjZXMvc3RvcmFnZS1jbG9zZS1pZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFz
ZXMtaW1tZWRpYXRlbHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+
Cis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHN3aW5nQmFjaygpIAorICAgIHsKKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5jbG9z
ZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKTsKKyAgICAgICAgfQorICAgICAgICBsb2NhdGlv
bi5ocmVmPScuLi9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3RvcmFn
ZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHkuaHRtbCc7CisgICAgfQorPC9zY3JpcHQ+Cis8Ym9keSBv
bmxvYWQ9J3NldFRpbWVvdXQoc3dpbmdCYWNrKCksIDEwMCk7Jz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>