<?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>64601</bug_id>
          
          <creation_ts>2011-07-15 09:12:38 -0700</creation_ts>
          <short_desc>Web Inspector: implement import/export for timeline data.</short_desc>
          <delta_ts>2011-08-03 08:28:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>437781</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-15 09:12:38 -0700</bug_when>
    <thetext>%subj%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437787</commentid>
    <comment_count>1</comment_count>
      <attachid>100992</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-15 09:22:21 -0700</bug_when>
    <thetext>Created attachment 100992
[patch] initial version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437797</commentid>
    <comment_count>2</comment_count>
      <attachid>100992</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-07-15 09:36:44 -0700</bug_when>
    <thetext>Comment on attachment 100992
[patch] initial version

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

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:211
&gt; +        this.saveAsButton = new WebInspector.StatusBarButton(WebInspector.UIString(&quot;Save as...&quot;), &quot;save-as-status-bar-item&quot;);

saveAsButton should be private

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:214
&gt; +        this.loadButton = new WebInspector.StatusBarButton(WebInspector.UIString(&quot;Load from...&quot;), &quot;load-from-status-bar-item&quot;);

Ditto.

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:247
&gt; +                nextOffset = data.indexOf(&quot;\n&quot;, offset);

This code assumes that input data is not a simple JSON array but an array with additional line breaks which looks odd.

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:289
&gt; +        InspectorFrontendHost.saveAs(&quot;TimelineRawData-&quot; + date + &quot;.json&quot;, records.join(&quot;\n&quot;));

Output format should be covered with a test, r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437841</commentid>
    <comment_count>3</comment_count>
      <attachid>101008</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-15 11:16:54 -0700</bug_when>
    <thetext>Created attachment 101008
[patch] second version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437846</commentid>
    <comment_count>4</comment_count>
      <attachid>101008</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-07-15 11:24:16 -0700</bug_when>
    <thetext>Comment on attachment 101008
[patch] second version

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

&gt; LayoutTests/inspector/timeline/timeline-load.html:16
&gt; +    InspectorTest.addSniffer(WebInspector.TimelinePanel.prototype, &quot;_createFileSelector&quot;, loaded);

_createFileSelector could be renamed to _loadFromFileComplete for better readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438371</commentid>
    <comment_count>5</comment_count>
      <attachid>101135</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-18 00:38:35 -0700</bug_when>
    <thetext>Created attachment 101135
[patch] third version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438376</commentid>
    <comment_count>6</comment_count>
      <attachid>101137</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-18 01:41:52 -0700</bug_when>
    <thetext>Created attachment 101137
[patch] third version with binary changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438379</commentid>
    <comment_count>7</comment_count>
      <attachid>101137</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-18 01:56:40 -0700</bug_when>
    <thetext>Comment on attachment 101137
[patch] third version with binary changes.

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

&gt; Source/WebCore/inspector/front-end/inspector.css:3876
&gt; +    -webkit-mask-position: -64px -48px;

Could you please attach the image?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438384</commentid>
    <comment_count>8</comment_count>
      <attachid>101140</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-18 02:18:49 -0700</bug_when>
    <thetext>Created attachment 101140
screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438385</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-18 02:19:51 -0700</bug_when>
    <thetext>I&apos;d say we should have &quot;Export&quot; and &quot;Import&quot; in context menu + support drag&apos;n&apos;drop both ways instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438545</commentid>
    <comment_count>10</comment_count>
      <attachid>101168</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-18 10:21:38 -0700</bug_when>
    <thetext>Created attachment 101168
[patch] fourth version with context menu</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438565</commentid>
    <comment_count>11</comment_count>
      <attachid>101168</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-18 10:44:30 -0700</bug_when>
    <thetext>Comment on attachment 101168
[patch] fourth version with context menu

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

New failing tests:
inspector/timeline/timeline-load.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438989</commentid>
    <comment_count>12</comment_count>
      <attachid>101276</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-18 23:46:50 -0700</bug_when>
    <thetext>Created attachment 101276
[patch] fourth version with fixed test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438998</commentid>
    <comment_count>13</comment_count>
      <attachid>101276</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-19 00:00:02 -0700</bug_when>
    <thetext>Comment on attachment 101276
[patch] fourth version with fixed test

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

&gt; Source/WebCore/inspector/InspectorFrontendHost.cpp:95
&gt; +            UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture);

yay

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:248
&gt; +        for (var i = 0; i &lt; 20 &amp;&amp; index &lt; data.length; ++i, ++index)

Why do you schedule continuation?

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:257
&gt; +    _importComplete: function()

Why is this needed? If for tests, please name accordingly and put comment inside.

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:263
&gt; +        function onLoad(e) {

{ on the next line

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:283
&gt; +        var date = String.sprintf(&quot;%4d-%2d-%2d-%2d-%2d&quot;, now.getFullYear(), now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes());

This does not look like any of the standard notations. Why not to use a &quot;short&quot; or tfc2445? (20110719T1245)?

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:390
&gt; +        this._rawRecords.push(record);

Can we store records in the TimelineAgentModel instead?

&gt; Source/WebCore/inspector/front-end/inspector.css:3875
&gt; +.save-as-status-bar-item .glyph {

Should this be rolled back?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439037</commentid>
    <comment_count>14</comment_count>
      <attachid>101287</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-19 01:32:25 -0700</bug_when>
    <thetext>Created attachment 101287
[patch] fifth version

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:248
&gt; &gt; +        for (var i = 0; i &lt; 20 &amp;&amp; index &lt; data.length; ++i, ++index)
&gt; 
&gt; Why do you schedule continuation?

otherwise Inspector is unresponsive until insertion is completed.
With this solution the user see the progress of insertion.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:257
&gt; &gt; +    _importComplete: function()
&gt; 
&gt; Why is this needed? If for tests, please name accordingly and put comment inside.

removed.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:263
&gt; &gt; +        function onLoad(e) {
&gt; 
&gt; { on the next line

fixed.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:283
&gt; &gt; +        var date = String.sprintf(&quot;%4d-%2d-%2d-%2d-%2d&quot;, now.getFullYear(), now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes());
&gt; 
&gt; This does not look like any of the standard notations. Why not to use a &quot;short&quot; or tfc2445? (20110719T1245)?

fixed.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:390
&gt; &gt; +        this._rawRecords.push(record);
&gt; 
&gt; Can we store records in the TimelineAgentModel instead?

There is no such thing as TimelineAgentModel and I see no reason to introduce it.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/inspector.css:3875
&gt; &gt; +.save-as-status-bar-item .glyph {
&gt; 
&gt; Should this be rolled back?

reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439068</commentid>
    <comment_count>15</comment_count>
      <attachid>101294</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-19 03:01:43 -0700</bug_when>
    <thetext>Created attachment 101294
[patch] fifth version with extracted model code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439087</commentid>
    <comment_count>16</comment_count>
      <attachid>101294</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-19 04:15:18 -0700</bug_when>
    <thetext>Comment on attachment 101294
[patch] fifth version with extracted model code.

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

&gt; LayoutTests/inspector/timeline/timeline-load.html:9
&gt; +    if (window.layoutTestController)

remove?

&gt; LayoutTests/inspector/timeline/timeline-load.html:40
&gt; +        if (JSON.stringify(data) == JSON.stringify(saveData))

InspectorTest.addResult(JSON.stringify(saveData));

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:224
&gt; +    _createFileSelector: function()

Can this be done lazily?

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:240
&gt; +        contextMenu.appendItem(WebInspector.UIString(&quot;&amp;Export Timeline data...&quot;), this._exportToFile.bind(this));

Use ellipsis character

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:1253
&gt; +                WebInspector.error(WebInspector.UIString(&apos;Timeline.importFromFile: File &quot;%s&quot; not found.&apos;, file.name));

There is no WebInspector.error.

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:1274
&gt; +        var date = String.sprintf(&quot;%4d%2d%2dT%2d%2d&quot;, now.getFullYear(), now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes());

You can move this to utilities.js (Date.prototype.toRFC2445)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439106</commentid>
    <comment_count>17</comment_count>
      <attachid>101306</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-19 05:46:11 -0700</bug_when>
    <thetext>Created attachment 101306
[patch] next version

(In reply to comment #16)
&gt; (From update of attachment 101294 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=101294&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/timeline/timeline-load.html:9
&gt; &gt; +    if (window.layoutTestController)
&gt; 
&gt; remove?

done

&gt; 
&gt; &gt; LayoutTests/inspector/timeline/timeline-load.html:40
&gt; &gt; +        if (JSON.stringify(data) == JSON.stringify(saveData))
&gt; 
&gt; InspectorTest.addResult(JSON.stringify(saveData));

The test doesn&apos;t verify the data but tests that import/export things work.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:224
&gt; &gt; +    _createFileSelector: function()
&gt; 
&gt; Can this be done lazily?

Nope. It doesn&apos;t work if I create input element just on the fly.
I can&apos;t use setTimeout because timer call has no UserGesture flag enabled.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:240
&gt; &gt; +        contextMenu.appendItem(WebInspector.UIString(&quot;&amp;Export Timeline data...&quot;), this._exportToFile.bind(this));
&gt; 
&gt; Use ellipsis character

done.

&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:1253
&gt; &gt; +                WebInspector.error(WebInspector.UIString(&apos;Timeline.importFromFile: File &quot;%s&quot; not found.&apos;, file.name));
&gt; 
&gt; There is no WebInspector.error.

done

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TimelinePanel.js:1274
&gt; &gt; +        var date = String.sprintf(&quot;%4d%2d%2dT%2d%2d&quot;, now.getFullYear(), now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes());
&gt; 
&gt; You can move this to utilities.js (Date.prototype.toRFC2445)

done. toRFC3339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439121</commentid>
    <comment_count>18</comment_count>
      <attachid>101306</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-07-19 06:38:14 -0700</bug_when>
    <thetext>Comment on attachment 101306
[patch] next version

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

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:1261
&gt; +                WebInspector.log(WebInspector.UIString(&apos;Timeline.importFromFile: An error occurred reading the file &quot;%s&quot;&apos;, file.name));

reading -&gt; while reading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439123</commentid>
    <comment_count>19</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-07-19 06:45:21 -0700</bug_when>
    <thetext>Committed r91252: &lt;http://trac.webkit.org/changeset/91252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445880</commentid>
    <comment_count>20</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-08-03 08:28:14 -0700</bug_when>
    <thetext>*** Bug 46276 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100992</attachid>
            <date>2011-07-15 09:22:21 -0700</date>
            <delta_ts>2011-07-15 11:16:54 -0700</delta_ts>
            <desc>[patch] initial version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18599</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNmM0M2ZkLi44MjM3ZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDctMTUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBpbXBvcnQvZXhwb3J0IGZvciB0aW1l
bGluZSBkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkdseXBocy5wbmc6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZVN0YXR1c2JhckJ1dHRvbnMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVG
aWxlU2VsZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlLl9sb2FkRnJvbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUuX2xvYWRGcm9tLm9uTG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUuX3NhdmVBcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUuX2FkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jbGVhclBhbmVsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICguc2F2ZS1hcy1zdGF0dXMt
YmFyLWl0ZW0gLmdseXBoKToKKyAgICAgICAgKC5sb2FkLWZyb20tc3RhdHVzLWJhci1pdGVtIC5n
bHlwaCk6CisKIDIwMTEtMDctMTUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZvY3VzaW5nIG9uIGFub3RoZXIgbm9kZSB3aGls
ZSBlZGl0aW5nIENTUyBwcm9wZXJ0eSBkb2VzIG5vdCB1cGRhdGUgc3R5bGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9zdGF0dXNiYXJCdXR0
b25HbHlwaHMucG5nIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMv
c3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZwppbmRleCBjNDk4N2Y0MTIwOTMwZDY4ZDE3MWYyZjJm
ZjIyZTg3ZDZiYTJmMmY1Li42ZDYzYmIwNTc0NTEyMzcyMDE4ZTVlODFmZDNlZmVhNDE1MzkxZjRl
IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDQ1NDgKemNtWntIY1JiViZ7UW9VeSQwMGw4
b1Z7ZlcqKDlzWExMXkJrTkBudFFNKW5SQjg3WjxJdmJtRVNNSWBJJkQ+TCh1CnpkRk9vbHtDPHpg
cFdvTihwViNhNGM+ZW53dVJsczMpemReVT5kcCktQFowN2xoTT0/bXkwRGAoR2hMVnEwTVJ9Kgp6
dm9OQmFyZSRHfj1Gb1Z4Qzt8Y0Baa1FTQiojPUstekoyITZadFF1bD96ODVCMndwRlJIezc0X3c4
SVNhN0UrJGgKeiklTmFYJD5TIUBZPCF1ZmlRWH5la2skdEtrd0JIKHFmZnsxaFRqYn42U19jK3Fm
P3lhPTAzMTUlQVg5eF5+WmBuCnpNSmhnYUR6QFE+a0dqWm9fJjQ9KmRUYGxxMytQeEdvRnh5dSl4
dkp5QE9yel9MQyFscCVBZlpybT4pdSFNZH13Pgp6Q3omKk9wT0BmWjVXTzdwWi1kelc/fDlHcVdk
cDxnWnRoSC1RVGhSUk8zdnZmWlVKWGBoNzM/SmRYUmNPTExURz0KekYjKSVzT1ZNbytTJkhsMCNx
eSh7MU0yd0NGe1NrQXE9em9ZPEhYVTJaSTh9ejY5RlM0e2lMQVFzamdZWmo1JHJeCnp1Mmt7WDg5
IXJVWSM9Y2FjaDM3QkZiUV92I0BnUGY1X3QxYko0MzJ9akFsUlAoaDtrfGA2R35EcFdgTmI4VEhL
Sgp6dlBTVjdaRz8wKlFgRiVaMlBkUWc/TlYybj9HZk5fOWYhQXlDOylSY3MpSD9JUkh5dFB1M0N0
clAoSzZsZjxfUWwKenF7fXF3cF5+MnRLKFppYGFoWX0wNjg/Z2opeF8jPXJ+Q3wrKDdVJEhPKn5K
aUtsKE96VT9pdlhheHBNS1dkNCUjCnpDSVUyI1VPQH1ecDYjYk04byh6KFZKLU1YVm40Y3xoNDs5
e2xodHdZPkkxfnVzaVNiKW04RntPMmsrUjQkR0F7bwp6JFFlOHZkaX07clB8YWF9Sj1mfSRmUm9J
S2hmazt7YlREPHFrcTFDclFQSEZoRXcjb1k9PXxPfjtGRmtre1NPPGYKei1Qa2s8JiF8RFU1dWpB
Vzl+Ui0mRzhgP0tKcV9lcktGc29uO2I8VkZaJURrVz1rbT95Jnw3YmREUHRJVlFucG1nCnpIVnN2
WVhuPWpRZlVlSjBgKGtWO2dqfEVvIU5TM3BMX0h9QVE4MGpLSFJwakFeanU+eCtNPipCMjlgJmdD
JHdHKAp6PzN2SnRUYHBKKlcxSEN5P217aF44fGNiPistTmdBdjBOfUNJIShHbCtMYG1sT3xAKT1h
RH5mTnlpMiFVQkMqVk0KeiY4UEJUZWBnWFcoZCpDTUZEd0E9R0xURjJCWm9EeGxIZUZCSjgya3F6
Q2dLbEJMS3hzKVJGcyhudm9PNlVPX2NHCno1NHYjUXRHeGlGQ2BaamBVUncmaGxTWl4hSlFOMEtm
ajFqRXhrZD56WXthcC15KUFldnFlUHB6WWhaOGIpR3lXJAp6VlY/OVdSIyZ4bnA9P0IxbTZKMUJh
NnlSSzhyRig1YUJDfnYoJHVBMS1MSXBqK0dDPzgjVkJJXkx4aVludGAyLTQKejtxUzU7dWsjN0kx
LSFNdWR5TVZ4MDkoaHk8Wn43I1U9bUZSP1lWemVHPjc8TFo0dFRKQlplbmFYOD5kaCUwODZECnpX
RVVwKnNhWGlwez0/eHArTWh2ISUjaU05Ml9GUXhXPDFreStRNEJeWWt6WDxFSV5RP0VuPWsmXio0
ZipfenQoPAp6UyZ7TT5FNF9VLXVFaiF7eEZwJjg+dVVPP0g7N0MkcDlwMzlDYXdqQ2dfYzVDeWk2
bTd7cDNpUHE9aHItXiZYdHcKejlPSXVCaExtYEo9PXtYVUpNYTxVaTBuPUxAP0NPPkNfP2tIPDtM
MXlaJWxrWEAqJH0pXypxY2deJHFKKHtfXz9JCnpZM3hPJSEyJjw7YzBEND5MbnVSbVA2Z1JmRmV+
JVo2MnY4RXdDeFB2a3ROMV9QTTlvaUZIe2k9b21naWc5KmtuTgp6JTdiRyl4YDRTWG55aDBiMSZm
VWxGT2IzU1VtWjk1TlgqMmBpZTBlV3NfWWBqeWdndlImP0BWOVQlNWRiUSs9VWAKekE8UHFoJVND
YyF5czQxK2hsYnVzJiVye3NMIyFJM2FMbSg0PHUrIUxmM1hpVnNwTW8jcTc1fVNZaiU3NEwxeVJV
CnpMS0VKJVhqPnV6O2ZDfGRGRjRzQUBob2UmMT1yRGElQGV3UT1OV0ZZXmkyO1Z6Yz1yST5nKE1N
dWBic2QlOHdEWgp6UU59ek1gUGNjd2taKFhCVW9XJktaV09FRyQodnZpVktmRU83NG87KE9Ye2Nf
P094bmJYSUBfQiUlXmpLUCVaUUsKekY0KGtHcitJJHhkaGE1I1NNcFRBWkpvWEZLfjg0R2czPjc3
SntAI3tVTUQrPlZ5YFk0KzxyQkJQSVArWihAfkM0CnpDUiF1e2l4MXordCl7JHZ2UEQ7I3ptX0Fr
NURCVzd7SH5kM0pIK15MeUJrMCEreDdXb3tZNC1WaDEoPkNVQ0YjKgp6bVYqWmRJJmZidS0rNG91
NVUmdjlxbXxrTT9HQm1eZ2NlYnRZQzN6OUZAJiElayZgYVhlWiEhUTU2fnIlMl55KGUKenVNcGRa
MjEqOSpMeWpUI3w3b1MtcW9OKHFkND9GYSFoZjxVMGhaJFVLU3RwSEJOYDtZeWRHO1ZCYDQmQmFl
ZD13CnpkPiNXWUQ/Mz4rU0NiVSRsTklCZTIydyY7NjJeYEMrSG9WYjJwZkJNLUtAIXF2Rlc7MTlS
Nn0lT21mXz1FQEFhegp6RShWUmY/V1V1O185S3NCckw4dFo+SmU+cmoyS2xEbVFYaTZUdk4kdzUp
PjRhT1MwOGN7WXdEWEpxQE8pTD87YE0KeiRwaWd1Z3BhY1orUz1Nbk5JSEBiUTRrfmUrbHRPMjlS
Q1YmXyNTMTNaOy1HcU1mcjFnK3VVejc7KkpvNkZTfSNXCnpSOVZ6UzcxN1F8Q3xZKXhqcEZVTE9S
bzB1MSNPd1hKeVIjQ0lKSz4zKH1XK2lWSS19PVI5TGYwSyk4c2lqNkVMJAp6NT82QjRDQ05sOTco
I2NIJUozWCg3dV5zait6fHohMmhuSkJpJkA2Tm01ZSpCcVpTMjxjZHdoNl5oT2JVWXZ2RWEKemJz
YXlzUkBoeTs1YWxiWHM8M1NEQ1pAe2ZVa200YzJ2TnAydE5aVCMxYTIqUE5vU3k1SXx6WFhBcCRy
JiRlRzVPCnpFZm1EPEYka2heQE5Ldlk/WjMrdkA/RnYrUE1jKl52WiN+UDcrYVFsSUVuMEZeODY9
NEx6O1pUZHRmcmdmQE40Ygp6aGFYRGVKYHkzYFJIVy0kcj0yIWpKSFRBdiVUd1Y2LS1WJFM/Q19F
RmNIdSFtT19AaW5GSjhQVFZQUiZMbUNOYkIKelNwVXVVIUdtPyN0U2RwO1MzYzxZeE1maUReWWZf
JEhsaVRJQGhLISUkMlh7VDdAfSZaZVRWYThLZ2dTZyU/SXVyCnprIS1pQkBCVztaRlR2WjNfQG9n
czBWd2lRUkx5Q14qIWclK3NPN2xEb0xFP3N0eGN2JGc3bHJ8P1gySlp1ZX1oIwp6ZVhwWWlFKFY1
TXlyLVB1I252RTRRbU8qS3E/dU5iRFo8Wk40fEhmOVpAVDtCQ3g3cUg3fWM8XmFEVF9AUnd8PEYK
emFyR3VBSUo8eDh3U2o+X3FXT29QMGxVYiNPcTJHPzdZLU9TWWtlKUVuZShXMUwjdTZgNTJ5b1Z7
ZF5OJkEoIW9oCnp5NiMlbmN6eCplTz1LZHhNU01HSHBkNDtWNFRWUjE/NDU+WVkxfHc/ezZPZFRg
ZnR+V2smKU8hWWNGKVJ5QkBpdQp6NXFZPz9qenJgZSZDS3hSJj5kQGNja1hadHJnTSMkP0lOQW9p
I0Y7ekhiMj1fLV5ATXZLNGxHNFM1USF4NVo0e3YKemEyQ0EhV29PSkBGMzBOfTZUbWRFeHc/OEpG
ZktxfjE9fU9CSXEzT3JfLX4mYXdmUCU5a3dSV3ZDd3h2I24pSUE4CnpedDt6dWROWFRGNX01bmE9
WHJfMFp2PntvWXc3dm9nWXtgM1B0bDRedkAtcSVjI0oyYGI1MiEmS0t4LWN1WXBSfgp6PXJxLURa
SEMyZ0hkTipiY18/ZE5nPWVLMk1wWiRBdVVUfVlZJjxUWWR4fG14bCszM3RUNz5zMDFfPkhoeUJK
QUgKelhgWip1NHBvJGgrRURkNWBYZE4tME1CPWFNeExIZ1VyaEtfPXxAVU8hJWl0SWF5K2VBODVZ
TWFfdVl+K2hIPnN+Cnp5MmxeI3Bodk5OaXp+SnJMRktIOGg/fForR1klZlElNlRybkVUalR+OWN0
cjZ5TzV2NipNdihOTVplbCN6dldxKAp6ITVrcHQ8b24rUFdCMU4yQFhBdiZ7RGFAU2BpT25uLTEy
T3QzdTM+YE8wQGc9Z0RkViRmVEhVREFgUTwzeyMoQ1IKenpKaXxWd3V9fD9ETD1gSk4mTmpTNXZp
WVVpX2R1ODJVYnI5KDJSY0Y7M1hHNXR9eEJCaXU8QXMmMUxYRXVldzlvCnoreDx5Sy0hc3l4OW1K
JnQrbTQlRzlGK1pEbCVHT31lYFVuOWEjSjtIOEVfMmtvJjlSRSprcTkkTzdIaVlBaz5LQAp6VzEp
RjZRSHFSM3lTcGIrX0gmfX0/OEx1SyRQYlhBeSpjQVleZEZHaEooQFkzcHxDXlFuIXk2WnVKcng2
ckRCWn0KelFgM1FUUHd5KkJ4djhKfXprQUlxU0RBT3JNfUpZTz9BUXFfXkgqYkRSeF9tWV5WQX5H
Sysqa0p1SndDKUZaUFkpCnopMFJaN2ZXMFhXejI5V2BfenFnUHk4Tm0tRnkhPHZWR04oZUNNaURX
QGtFdDk0RHgrV1hoRXk9OGZ2PXxXJWNoYAp6Q0Q9WnhfXjczQVhMdytRaTtfamcrYWE7PHs4QzJg
NGY0UDMpamJgWXtSdXdrKkYlOFVyM2dqKmpjfmNgJDAyZ18KempUMWVqRnMhbXBPdSNfTGRDYSp2
QGM+ZDI7ciU1ISNFKHNZTnl7d0lTU3BCWHs5SCY3eyYpcUd6czdhTDZnbVpFCno7YFVJRHd8JmQp
az1NR1pyOG1iT3pCbVBiNXshT2U3RSR2eEdgNC1JNlV0OWQ7VHdtcUApNGhKZmFJKCk3VXd1JAp6
Q3BwRGElRlBPZUE0WEtPVmRjd1RKKiMmU0xwaD8jNWk/ZSM1PE1FaklaMWBTMDZ5ZUkqUXg2JVNz
Z2RNbD8wZX0KekdXS2o+ajJufGJFP1Q9PTYxbH4zKVJkR0krVWNwTyZgZ3gxKjVgfShtITQqb3dR
cFlqY2skR0pzdFlkWjNSQyFTCnpCUU5JclgoJkRFOz15NnVDbmFPXi1HMUoleDQ3UEQpPHBhfDtj
SyV+bCNsallzVD1ybG9BfU57TD5XbkhuPSprMwp6I0hCdSk9PjQyZHM4UHNIY25SKGY5QiEpeEVj
TktmcUYxdzN7akFtcT91Mz96KmhKSjMhbj40fTsyV0JfNjN7YX0KenNPM2BmMm0lWklDdmpTUFNF
RClxWG1OcDtQdVVoX1VOOUd9RU01cSUrNzwxKV9jPUhFTz9iKipAbU8qaDQkJW4lCnp1WTAlQzk/
ZDQxJWR1N28oR3cwSGBSakRnTHJPb2lZdj9ERCF4O0kwMzUwb3Y9X2hQN2Z2fnt1T35GX0hYaD5g
dwp6ZnxeN2dpa3N+bzwyRE95Y14kP0VSVSleeHdnUWIwQiVPNT8ycVBtRzMzMEdoemYkRis8WU03
fnF5UlI/Tl9lWDMKemlgcyhZPz9jPXxFe0pWXnAwTnV1elRnNTA7JkV5USpuWkh1VnxGd1ZaUjFu
RzAjKlk5dThablA+Yys5e25AUzIyCnpuUnlRQkJIYTJDXnJVLTQ7Q3woPUFtMG47T0IlLVhOaGVY
eyVkQD8lMFAoQEpHflRkYUpmKy1QMHh6d01aMXtoIwp6UG0qXyo/U0VkTHFQdSZZJX5zK2lzOHtx
QGdJdHlJJio1Un1UWVc9aGxxb3d7bEgqRm1MS05raTZ2PTRxdEhYYUYKej1IcmtmQ1FfbHxVMzdX
KHpZeVJpakpsSV85STNjYFo1fDteVyZ7e2UqdUJ+IWt8MXM4e2lLI2t7Qz1fN0QxKHVJCnppbm0+
WHYydE1uTy1jUnNWR0kzXy1wKmVtb0FJRTR5dz1ucXd7Qy0kI1k9cChUXzhGMGo1fCZqTjMjeTNk
bUp4Jgp6IT1oQGNeSmlEcEI5bWVJX3VmLUBHWHxqZzUhWSpYPTNDbnJGa2NVITYzX1dLTl4kKWlO
aGJ5K0Rgd1cobUAkYUgKellYSlE1S3xkcm9KWj9hSSpkUUMtIy1ZSWxBR2FQJkpGRW1MPCg9Q2RI
S3c8UWApaSlYdmdGVm54PUdSRUNANThUCnppYG5RankkSHJ5dzFPST57eHI9SEIyRik3Xyp3TTRw
MSN1YEQ/NDc+MjJKb2RHOEBHVD8mTH5SX0k8YUxQQU9wawp6K2dCOUU2WE13NmU4UClgUnsqWEU1
Vk5aQWtldjgyO0teRGooKUMqWm8wLXBVU3ZGWmktfVBQJFFlc3pBQEFtVEsKeiRDeUpVM19XSF5P
IXFUZlZTbiM9XlQpbkZlZDslX1BzRHR8NUdjfGsoTkJScE5nNHtwJCg5QCRHQ2h4OC1HRyhtCnpk
bUdna2s4WT8qTUJVNDBkU2BCPWwqP3RsVGZ1SSp1UHFeYVlMXzwxK3I9blFDV2ZvSWVjZXtgUWNO
O1U1TzQ8fQp6VXMwKE1LVzF3NkZmc3VuMTZHQTE/Nlk4dU5VVi05UzU4Y1MlKjxCV3pPdSZyMWx7
cTYmYjROYSsqQ0VgMXNENkAKekR8SkFYO19eRjNgSTR0e2chPnRWODNwP0UzVCpWODYzMz88bUE8
VXJtQUJ2cj52ZSNeU31VdWc8eD0kSlBWRUMmCnpJJXRJTVAxY1pBPj88bXpuKGRFNnQ3e1FBQE5o
OThAKDVhR0UkXjJfSzdPMm0+aXRTKCM5QFR7enhoUXJwSFZZZAp6WFBHeTBEXiVCeWJnPHYwWF9v
dm5fdjBIVEBxVjNZT189IUxsMlUtTCklQ3ZGaTshdj9pOG8tO3M+b0slWGVNTnEKejhvdFFZMXom
Qk5sLTc/SmdscTd1ZEotZnIoJnVzc21uaTJhYV9xVTVTfF49e0BERnRtJXk1N2ojM1VGTTM9TiF7
Cnp7VFZzNnB8KyZzWWBHbDdsaDUoK2M0bVJUcUFSXlpTKEw9QGRZY3EpTWY0NitFdUghfnQ7d1Vh
WVo+IyFnaGQ8awp6QnQ9RyVtLUM0TSVgKiUjKmBacktRYEVhfEVBKT9HSS0pMmlMJXV+TlEzKHpV
JD5DOU5YeXdmLU55RXB8dnNQZUwKejkyZHJhTHJnZnQxb1FldyQhI0ZCUGQ4QCZeQV9BdnFAOV9o
QT0kKTRWZjBmfXl8cV97NkRHViZkUzxBaWxSJjM+CnpJcCsyWmc0a1U3JUFNXlNkQzZRUVVaYThp
ZWY0ZUA9ek4wREpAdntmMURMYSFQal9JOXhDaEwwLXxXK3NPPlQ3bAp6TV9HUXdQNkUjTm1PSF5s
PjYjMn1xWTg8dkYlYGBhUTt0aDZ8RSV9XitxP2VDUVplVGtlUn1KRXc2PitPbSo3WWsKYiREY3RM
YFF5eDxhTkdCVHsqe0BMckQzKGNUamMpJEomQ052CgpkZWx0YSAzODQxCnpjbWEpOVM1JVY9djs5
SXNtbmdsN2dhe2YrczNKJkhOfkI3V0FgJWJgaCMrMTw1ZXpqNjx3JSFLNUNIe0lrJmEzVwp6PHBU
aT1uMUQhODRneyRPMn10a2Q9ZSp0Wi08TFpOZClBc1k0Pk5sfD8zdmVeXlF4KDVHZzckKFl0QX16
NWZTYnQKeipSS0lVczA7dipxNSl2JT1zMz48SyMoIzN7QntFWEVlWmUjPElgUWN0XnhvJik2X2Bj
al97TTJBQ2h8N1VnRzByCnp5eV8xYlhYPnhrWCl7PE9RYjVKcmhSYW1uPj1kNlpuKiNoc0cqPj8q
OGleIWlJJXVNODVIVmBtQXxfRVVQWCphcAp6IT15TUwjZmNaa1UkS197ckkwfD5tV0V3cWRhNWwt
e0BFSkl2N31xam1sbDRFe2IwTyQ8SjBzaVkmTktFWVA1fV4KemVONnleTis+I0U2ZD1aJFExbHYq
YGBfXldMUCZEZHMpK2xmdDIkNmp6OCVtRUNrVHhFPE5BV2ZCRGRydEMjWFRUCnpCfH1NSCEyeGcp
PmA8N31sflQlX1F2STxCKGJ7entofF5zb3g9a2Q0T054MD1IaTlVQEljM2w0QE5wNHAheXlLOQp6
JWZvS0pAWmsyXllpSn0jY31+bmB7UlRMNVhrSWNqYFRTJnd1Xm8+MyFZbzlKWE9IQ3J4ckg+Zz5y
KVVuYkwweGQKeiN0YHVBRlhLZW09dG5CJnBsSTtpNTJ0QnJmOyE0KihpcUdHVzVrNVBjQ2NfSkw8
N1EyTzd5QDI7bkgoVU0xTGczCno9QyhMWDY0ViFSaE9Iby1qLUIzPCh2OWZQWUFEbnRtNEk9YHQm
MFk8S1dZQTxJYEY2UjR1ZiM7VlJPe0JsakpFLQp6WWw4TEpwbXQ8RWJ2X2t3NXg5e1ohc3slJG9v
Z09uSUkyWXx0LU9iaENSe2VedGFSSykyVjkkRihTJHBtR25pbjIKejtjaX5aVG9XX25mdDReWl91
TkFjdytpQ1pIWFNKQl5vZWp1IVloa3pxSCg0OFEhPTJxKElKd0NoK0c9YWNETlo2Cnp5aXNzOHJI
M0d+Q3ZINkFTb2Q/b2dEP1RHPzh8Zz84SC0rXip2Y0JsUGJ7P3VGXjtfKyEkXk0qK19GVjNTQWNZ
PQp6LWExekhqSFkqKCkkY2VDWChKd1I0fTFpK05oaDc+SChGTV5sSUp7bnM9OFcmcWRaUVJJSz8k
I0ZgPkw7cCskNmEKemdSRW17IXRJTiNSa2EqREx3eTxjVHprUGF0eTRPeklgVnIxPGRkWH4mfiFL
a3J0RyFoa2h8USokS04obitjO0pECnpje1h2dm4+LVp9eiZiKz1hQTQ3LXQhPj19M3xwPW8hQT90
UFA4T2ZKa0ltO2BZazE2QTVJYyZSeWtQO0c+dUthOQp6YkIocnhXdEBgXmxIQTA0SiQ7eUs4c218
fHpKSENqaE4oYXFpaitnM1EkQFlyNz5wI1opYHw8NktOXzJrXzJgdC0KeilmdyotdT9ESlNHbWZl
X3d8ZldOazBLfkg0clozLXN6PWxaU1UhZkN2KSpad2sldV4rZ0lIe1JUanpETnlOV00oCnp7Umtf
cnRPNz4jVyokLWQ8YmZgdVdyTGthUG08cTROcyF2MV5XRCVgSHpMMl5geTEtS1pKVWZNRV5mYT4o
PFR6fAp6USRqYVBmJURzeU5gOWUmOVIpfXMrNnBLT2BVRUlfR31tMnopdXxpZHkyKihrPCFibjRh
fXUzMlYxRC18Mm47KkAKek1uPmkpUUdTdHFgeDU8Jnw1TGVhVl48RmpLTWRPdTZgfjI8N1dZRmdV
eHxfdGlCY29FXlIqcm9oRmR+fEgqY0JICnpnfW9fNiY5bG85eTY3X2BgaCVVO0MoYVQrcVQkdEN4
OWQhdj5ZOzsqJllPc1pCUHY9Sk5eSV8qdl50JW9YWjkoagp6JiMqPTRUV2cycyM0RV8qLVRkJV5P
YXF1eiFva2IpSUBVJlplflN9UnpNR0ZyZXwjaiZUZ0p9dmFlPjF2bWBUa3UKemRrNFE4ZChfTmJD
TlI0SXJkX2ByIVBPXj1aaGphaSgjcD0xQ2ZYfnZobkM0U2ZXdFg4UUkjaThOODtacVdjWDAkCnpT
P0RJKVd1Z0pUSCtoQzJPOz1NZG1oUD5yalF6NGxubjtRMz99a2NEZ3RSIWJRKnN3Pm9NU2U+VFV0
VkZMfHBuVAp6dHtxYTtmOWV6S1FaflJBSzVKVFlxPDZDcF9tT3BDcFp0d08pb3lkdDwtcEY+bzBh
eGp5d189ZGx+MUBtPig9JmoKekR6Vio1LVk9azh4LVE4PD5WQ2MyMzQmcXlwPyVHcD1qRSlgUGw4
QmNybWgxUT9vPVVHbHN5b14oVHo9aVgmY091Cno4OWpsSyh1JV9aS1pIV0YtWCllQzZBdndxZklP
SEZmY2JldmpYS0g7Sj56ZFR6OD1TNXh5eVBvR28+JWo8RVp6Wgp6Mlk1PldsbWE2YHI1Zzloc2tB
bTUrVHpeYndpMkFHTDxGcWJ1SH5rb2BxLUxXPWF3R21GNEt1bW85MCNKeVZCTSEKenxIKWRqN2Bv
WVdIb0FTYCNkfn5wTHZ3TW4rNGZ3YGhrfWEkX1FlXiQjUDB3M0l2ZXxyYkpUPiNCSzA9WWtTZmxR
CnoqdUdkdEZXI2U+RU5tVG9HclZuMTN+Pjs9ZzBXIyEoMnsmc2dwd21BezVLSCl5UW5UbD5aWHww
fDJuTD5qK0s1PAp6dWhNPHUrODF1b3p2NUxxLT5JQml0P1IhejkofG59PDFEO3chYzBPWFJ2WEBf
eVNGfjF1cllHIWw9MURtTW10S3UKem80TktRQHlKPj96VGx6ZkRqMXB1Wm4lYGYpNjAkQzdaZWQt
ZWZYQG5Kay0rRyo0RmFEOEBUcXlORDhyYkZsPWApCnpLMG89KndZdFlPWi1YRCEpenR+VGtzQGhC
aUprQ0hOZGMkKkIkWTltc2cxeWZrTEAhOWI1RS0jJihmUURgVmJ1cwp6dWtJQWBBeiRySyNqO1Fe
R0c9ZzxGST5IUGBAbXJ7Mmx9diFDZHZJYnFIdzd4Z2p7JDRYWSMhVUUoNFdgYE5SfDIKelhvciom
PVQwVGhNRHpkaUJ6IXRAO3R2dEM4ZClMWTlmUzt9dmhYWX1GN2crbiF+YCtASGhkYUJOaDxRYzda
KDB9CnpOTkc2KV9hY2x4NlZRVURmJiM2dkJrP01RKDV0dytJQ3dWRGYrbHJ+WHdiMk5gK3Y7JEA5
UFUtelM7fGJIZWshaAp6QnxzUTU3byFNdFEqMjMreDZnLXBKI1A3aj9LOEYhK0pIX2R4JnpAcGw7
Zj5gU0koOX48ZmFAY2J9NGYyKUgqJiUKejkre0RIXyMocCZSZX5efXpGIVNVJkVlRyE8LVViTUJj
RUBvQHE7bUAyI2ZleUgtbEtsX3dVbVJ0PSUqbHR5b0syCnpgO3tQOVk/fHE+eHEheTNvJHlGWXkr
WVVNZTlEVzhfd1YxTWVZbHNZJFZmP0M0dD9+cilqSlpXTyp8endAKnR1agp6aiRAT3gra0g7JWYk
ZVEjZXIkZSV4QkctJjBhVVRyWExWRnNjc1lYRWk7eG1NbzkheWI+K0k1VFpBc0J+SSpgS2cKemIm
YztZZSRhazMxbHY4b1UrMWBVKVVOb1FieT1Qbjkpc19ERlhTJlledmU5dDA5Z2p9VyE4SG49dz1h
RCZwbGJUCnpNQnQrNGlkeSR7STtgM25tQmVIK3BKdm5ObHJuQEB2TTxjdWtzYUBfakcrKWEtTjZ6
dEllX3s1VV80e1dvVUhCaAp6TGF3T3MtdlBIbT9KVntrJSprVUVlYUV8PmlGbX5vcmdsUER2IVhT
bmN4SjdWMD87eWEyKD1CTHFAQjBDb2BuJHsKeiU1fX4hPmxGJG9gWUhVViU9YkA7VzJvS05tWWot
UyNjM0piaWIrKUMqdD51eW4jTTA9Y1NnUkkmSUlifT4jZiRpCnp0YVAtQUlxWVk+eDQtPCQ7bEp1
SDkxR3EoI0oqXylCKnJycSExYClffERuJSRjK094bDspYz8/JnJXI3xaQEV6UAp6YmN5UWwrdj5s
fUJ+dG1AeTEqWVp6alpARkV+WjZpYk9PaC1KZHI+YlAmd3koeFc+cl9hUCVYOHlMaSpRTzZIXiYK
enteOzNBPE40MDlRMGJ9bExSNnN8S2tYfVVuRXNweVQ+c0tTWXZfdGx3d0E+N3FmRkB5K2Z0MGlK
PmBIIUI8XmpJCnpaUmVmUk90YEdhdT19Z1IhfUVTQmVqMFQkQlMoTW9UNEtyc2Q3VGwrZjJ4aXFn
YmNVcGNPVzBlWXslRCFhcT82Nwp6Mip1MW1mY1ZMQXw3cUVsNGQtb0A+JSFVVTUzP0A4bGdveGpT
QHU4aGs1QElsayl3PDAydlJMQXlffF9Zb2B4TmwKendwPzcpVzBYcUclM2tAMTxiPHJ1eGtNVz95
Rjc3d09TZStecmhLaTFTT18pSj5qZUx8dn5FUytPTTFWNG1KaUtICnpuNElBMjdoaDw2Sl9vdHso
bm8pe1laNGpjNXcwWVc+QURjP0VqYTElQWF8PElgTWw4RjZ3ZCFLczJKUEdMMCNWRwp6VWl9dGsm
fElgSihoYThTTkVnMjRxa1Njc3tWRTlOY0pILW84cDItZStJMCtOUCV9PGAhUzd3ajsrb0pZamMj
eUEKelhAajN1aWRCaVhVUmQyI2JvaHpwbz14MVNONmZObGd5R05EI3xFVTs8SFUyJGd8UiM9NlB9
flRaUUdZSVcoO0xsCnpPLSNCIVU2aHwpejFBXyphfTc2byRMVmZKOHxQPThgdz4lYEBxeG9Vdilu
alhMJCVBbi16e1h+aGNeRHZLN3c/ZQp6YFkhVXZ0dT51MEt+Y3dXNFI+Kzk8c1NRWl8qfihJPmAh
Plo9XzU8YC1YfTUyTUkpYCRkaTlaM0B8XytkbkZfRUIKeihfNnEtSG0mOVYoOC0qX3Y/Y0d8PipT
TF43ZGVRbD9BJHNpPXZpeT5wblhrO2g8JCMhYUBQMFBSfFdzV00ofiVlCno5RFFiWlFUXks+THk0
QUMheEttcFM1MW1gayVtVjthPkBMTmhGIT8zeXFjYVk4Y1hIR28od1ZXKmIlTnE0PU4zJQp6dmNG
XlgoJiNRZlJpPnJkdEAmXmk1OExWN1BWKlR4P2ROaSl2NG1zd2hJX0N9OHNIKTVTYCRReVdOb0kw
UElSQ1cKem1kZXY7bCY7UklPamZhNGNwcWwrISg+OUUjd2FUP1lWYnVTKmIrNiZCWnUmJjU8JGM7
bnl2fDdUQTVfckhPOTl8Cno4THMzajQ0ejU2IS16QTdWfEhQaWZzcCVVUmFJP0RJWHg5Z01YeDdk
YlA/TkJiWnolTnlIN0kjQCtGMjMjMzQ9WAp6T28+MnJIKlBwbW16fEtZaTAhPFdKNl5rPSZnQmFB
T1g5JTI0LXA7fSloSkN4ZS1QJnFPOHJzTFJxc15aaz1VfVAKemZtP3QpLWwhemY2QW8mTWx8QUZM
QVRBcTRfM3EtVlFjTSR5R35VZ1pOITZ7MWZOYiVhRkF0PCFOe3YqOEJAWHtpCnpzNHVMZVQ2RDIr
LTB6KVIzO2d5Vk1yYzdoM3dVfCNxdUdAU2VGRm5SJX0lMTYtfGA2Zyk+Q3Z8JCQqQUA/eCpjMAp6
cj5mRChmbj5iMnYrQXdwRDNzZXo+WF8rK1dZIWRIaGBXKFVKeUc8eU1SJDg+YHgjfVZpY04xcDsq
Uzh2MjBQSlUKejcwdXJzUilvXko/NismJl5+SnQ0UTFeTGhYPSV6NVBwbDdBJUwkOXM0I2gjVlc9
KjE4YF42b01pTlpDWXVPRUlPCnpVU2R7NV9CclctQyF1ZitIM3JyfkclTEMyTTNPK1lMRGEleCky
KCt+eExxYzxHd2MzfkNvez8pUkRhR2QzWF9RTgp6YFJWMzNmZWZqYlRIcXYxdkU1PGN3KnR7JlM5
Z3k/PjJkPyl3O3VLJnM+LWArSnlFQVopWlFrT29JdkJLS3FZVjsKemQtP3daJS1ZVGxJISsqPytp
bSo/UkhBZnFJaSFyWGtIMDhDMj1pPXRKOGl1PihYckIoJGYpPCFgMWJ6dmJvYFUlCnpnZHpfYSh1
X2l4YiMmNGcoeH5qNDtzcihTKyhKfkZ5I1F1RDRZKD9jUVIzRlNuUjVNUWhwKGtuV1hxK1htTGsr
fAp6bVBoKVlXIX5BTHBWRT40QilVNUoqd19kTmZfaGQwNyNXT3BtejdRQzZHOEFnXjdaNV5sLVda
UWIqVlNRZj9kYCMKenpSRUk3YjB3JCpjLUU5fjBOTDxlUGh0QCY+elR4Skw1eilYMTBVMylffWNO
TkQzYlJXPDR4Uik/KzNDOE1HdmVECno8O3RQdUJXQXQwe3UxMClhblNLMDB+MDx6WSUtbVUjRSlJ
cTI0ZVNycHcjczZHR0dsc0N3RHgkWTdIRVJEYU8qTQpJKCFlZTFLVnF7KDxeVFd5CgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmlu
ZGV4IDkwYmE0MWYuLmQ5NjU2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTc4LDYgKzc4LDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5faXRlbXNHcmFwaHNFbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuX2V4cGFuZEVsZW1lbnRzKTsKIAogICAgIHRoaXMuX3Jvb3RS
ZWNvcmQgPSB0aGlzLl9jcmVhdGVSb290UmVjb3JkKCk7CisgICAgdGhpcy5fcmF3UmVjb3JkcyA9
IFtdOwogICAgIHRoaXMuX3NlbmRSZXF1ZXN0UmVjb3JkcyA9IHt9OwogICAgIHRoaXMuX3NjaGVk
dWxlZFJlc291cmNlUmVxdWVzdHMgPSB7fTsKICAgICB0aGlzLl90aW1lclJlY29yZHMgPSB7fTsK
QEAgLTE0OCw3ICsxNDksNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFt0
aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbi5lbGVtZW50LCB0aGlzLnRvZ2dsZVRpbWVsaW5lQnV0dG9u
LmVsZW1lbnQsIHRoaXMuZ2FyYmFnZUNvbGxlY3RCdXR0b24uZWxlbWVudCwgdGhpcy5jbGVhckJ1
dHRvbi5lbGVtZW50LCB0aGlzLl9vdmVydmlld1BhbmUuc3RhdHVzQmFyRmlsdGVyc107CisgICAg
ICAgIHJldHVybiBbdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24uZWxlbWVudCwgdGhpcy50b2dnbGVU
aW1lbGluZUJ1dHRvbi5lbGVtZW50LCB0aGlzLmdhcmJhZ2VDb2xsZWN0QnV0dG9uLmVsZW1lbnQs
IHRoaXMubG9hZEJ1dHRvbi5lbGVtZW50LCB0aGlzLnNhdmVBc0J1dHRvbi5lbGVtZW50LCB0aGlz
LmNsZWFyQnV0dG9uLmVsZW1lbnQsIHRoaXMuX292ZXJ2aWV3UGFuZS5zdGF0dXNCYXJGaWx0ZXJz
XTsKICAgICB9LAogCiAgICAgZ2V0IGNhdGVnb3JpZXMoKQpAQCAtMjA3LDYgKzIwOCwxMiBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuY2xl
YXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkNsZWFyIiksICJjbGVhci1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICAgICAgdGhp
cy5jbGVhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2NsZWFyUGFuZWwu
YmluZCh0aGlzKSwgZmFsc2UpOwogCisgICAgICAgIHRoaXMuc2F2ZUFzQnV0dG9uID0gbmV3IFdl
Ykluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIGFz
Li4uIiksICJzYXZlLWFzLXN0YXR1cy1iYXItaXRlbSIpOworICAgICAgICB0aGlzLnNhdmVBc0J1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3NhdmVBcy5iaW5kKHRoaXMpLCBm
YWxzZSk7CisKKyAgICAgICAgdGhpcy5sb2FkQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0
dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkIGZyb20uLi4iKSwgImxvYWQt
ZnJvbS1zdGF0dXMtYmFyLWl0ZW0iKTsKKyAgICAgICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9y
KHRoaXMubG9hZEJ1dHRvbik7CisKICAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24gPSBu
ZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbih0aGlzLl9oaWRlU2hvcnRSZWNvcmRzVGl0
bGVUZXh0LCAidGltZWxpbmUtZmlsdGVyLXN0YXR1cy1iYXItaXRlbSIpOwogICAgICAgICB0aGlz
LnRvZ2dsZUZpbHRlckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2ds
ZUZpbHRlckJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogCkBAIC0yMTcsNiArMjI0
LDcxIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5yZWNvcmRzQ291bnRlci5jbGFzc05hbWUgPSAidGltZWxpbmUtcmVjb3Jkcy1jb3VudGVy
IjsKICAgICB9LAogCisgICAgX2NyZWF0ZUZpbGVTZWxlY3RvcjogZnVuY3Rpb24oYnV0dG9uKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpCisgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCk7CisK
KyAgICAgICAgdmFyIGZpbGVTZWxlY3RvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnR5cGUgPSAiZmlsZSI7Cisg
ICAgICAgIGZpbGVTZWxlY3RvckVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IDA7CisgICAgICAgIGZp
bGVTZWxlY3RvckVsZW1lbnQub25jaGFuZ2UgPSB0aGlzLl9sb2FkRnJvbS5iaW5kKHRoaXMsIGZp
bGVTZWxlY3RvckVsZW1lbnQpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZmls
ZVNlbGVjdG9yRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQgPSBm
aWxlU2VsZWN0b3JFbGVtZW50OworCisgICAgICAgIGJ1dHRvbi5lbGVtZW50Lm9ubW91c2Vkb3du
ID0gZmlsZVNlbGVjdG9yRWxlbWVudC5jbGljay5iaW5kKGZpbGVTZWxlY3RvckVsZW1lbnQpOwor
ICAgIH0sCisKKyAgICBfbG9hZEZyb206IGZ1bmN0aW9uKGZpbGVTZWxlY3RvckVsZW1lbnQsIGV2
ZW50KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbG9hZE5leHRDaHVuayhkYXRhLCBvZmZzZXQp
IHsKKyAgICAgICAgICAgIHZhciBuZXh0T2Zmc2V0OworICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAyMCAmJiBuZXh0T2Zmc2V0ICE9IC0xOyArK2kpIHsKKyAgICAgICAgICAgICAgICBu
ZXh0T2Zmc2V0ID0gZGF0YS5pbmRleE9mKCJcbiIsIG9mZnNldCk7CisgICAgICAgICAgICAgICAg
dmFyIGpzb25SZWNvcmQ7CisgICAgICAgICAgICAgICAgaWYgKG5leHRPZmZzZXQgIT0gLTEpCisg
ICAgICAgICAgICAgICAgICAgIGpzb25SZWNvcmQgPSBkYXRhLnN1YnN0cihvZmZzZXQsIG5leHRP
ZmZzZXQgLSBvZmZzZXQpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAganNvblJlY29yZCA9IGRhdGEuc3Vic3RyKG9mZnNldCk7CisgICAgICAgICAgICAgICAgdGhp
cy5fYWRkUmVjb3JkVG9UaW1lbGluZShKU09OLnBhcnNlKGpzb25SZWNvcmQpKTsKKyAgICAgICAg
ICAgICAgICBvZmZzZXQgPSBuZXh0T2Zmc2V0ICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChvZmZzZXQpCisgICAgICAgICAgICAgICAgc2V0VGltZW91dChsb2FkTmV4dENodW5r
LmJpbmQodGhpcywgZGF0YSwgb2Zmc2V0KSwgMCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9yKHRoaXMubG9hZEJ1dHRvbik7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoZSkgeworICAgICAgICAgICAgdmFyIGRh
dGEgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gZGF0YS5pbmRl
eE9mKCJcbiIsIG9mZnNldCk7CisgICAgICAgICAgICB2YXIgdmVyc2lvbiA9IGRhdGEuc3Vic3Ry
KDAsIG9mZnNldCk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQobG9hZE5leHRDaHVuay5iaW5k
KHRoaXMsIGRhdGEsIG9mZnNldCArIDEpLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0
aGlzLnRvZ2dsZVRpbWVsaW5lQnV0dG9uLnRvZ2dsZWQpCisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IudGltZWxpbmVNYW5hZ2VyLnN0b3AoKTsKKworICAgICAgICB0aGlzLl9jbGVhclBhbmVsKCk7
CisKKyAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICAgIHJlYWRl
ci5vbmxvYWQgPSBvbkxvYWQuYmluZCh0aGlzKTsKKyAgICAgICAgdmFyIGZpbGUgPSBmaWxlU2Vs
ZWN0b3JFbGVtZW50LmZpbGVzWzBdOworICAgICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTsK
KyAgICB9LAorCisgICAgX3NhdmVBczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGRh
dGEgPSB7fTsKKyAgICAgICAgdmFyIG5vdz0gbmV3IERhdGUoKTsKKyAgICAgICAgdmFyIGRhdGUg
PSBTdHJpbmcuc3ByaW50ZigiJTRkLSUyZC0lMmQtJTJkLSUyZCIsIG5vdy5nZXRGdWxsWWVhcigp
LCBub3cuZ2V0TW9udGgoKSArIDEsIG5vdy5nZXREYXRlKCksIG5vdy5nZXRIb3VycygpLCBub3cu
Z2V0TWludXRlcygpKTsKKyAgICAgICAgdmFyIHJlY29yZHMgPSBbd2luZG93Lm5hdmlnYXRvci5h
cHBWZXJzaW9uXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yYXdSZWNvcmRz
Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgcmVjb3Jkcy5wdXNoKEpTT04uc3RyaW5naWZ5KHRo
aXMuX3Jhd1JlY29yZHNbaV0pKTsKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmVB
cygiVGltZWxpbmVSYXdEYXRhLSIgKyBkYXRlICsgIi5qc29uIiwgcmVjb3Jkcy5qb2luKCJcbiIp
KTsKKyAgICB9LAorCiAgICAgX3VwZGF0ZVJlY29yZHNDb3VudGVyOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICB0aGlzLnJlY29yZHNDb3VudGVyLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCIlZCBvZiAlZCBjYXB0dXJlZCByZWNvcmRzIGFyZSB2aXNpYmxlIiwgdGhpcy5f
cm9vdFJlY29yZC5fdmlzaWJsZVJlY29yZHNDb3VudCwgdGhpcy5fcm9vdFJlY29yZC5fYWxsUmVj
b3Jkc0NvdW50KTsKQEAgLTMxNCw2ICszODYsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fY2xlYXJQYW5lbCgpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIHRoaXMuX3Jhd1JlY29yZHMucHVzaChyZWNv
cmQpOwogICAgICAgICB0aGlzLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCB0aGlz
Ll9yb290UmVjb3JkKTsKICAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKCk7CiAgICAgfSwK
QEAgLTQzNSw2ICs1MDgsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgX2NsZWFyUGFuZWw6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Rp
bWVTdGFtcFJlY29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fcmF3UmVjb3JkcyA9IFtdOwogICAg
ICAgICB0aGlzLl9zZW5kUmVxdWVzdFJlY29yZHMgPSB7fTsKICAgICAgICAgdGhpcy5fc2NoZWR1
bGVkUmVzb3VyY2VSZXF1ZXN0cyA9IHt9OwogICAgICAgICB0aGlzLl90aW1lclJlY29yZHMgPSB7
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cwppbmRleCA4MDM2Y2FjLi4wODYzZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0zODcyLDYgKzM4NzIsMTQgQEAgYm9keS5p
bmFjdGl2ZSBsaS5zZWxlY3RlZCAuYnViYmxlLnNlYXJjaC1tYXRjaGVzIHsKICAgICAtd2Via2l0
LW1hc2stcG9zaXRpb246IC0xMjhweCAtMjRweDsKIH0KIAorLnNhdmUtYXMtc3RhdHVzLWJhci1p
dGVtIC5nbHlwaCB7CisgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiAtNjRweCAtNDhweDsKK30K
KworLmxvYWQtZnJvbS1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKKyAgICAtd2Via2l0LW1hc2st
cG9zaXRpb246IC05NnB4IC00OHB4OworfQorCiAudGltZWxpbmUtcmVjb3Jkcy1jb3VudGVyLCAu
c3RvcmFnZS1hcHBsaWNhdGlvbi1jYWNoZS1zdGF0dXMsIC5zdG9yYWdlLWFwcGxpY2F0aW9uLWNh
Y2hlLWNvbm5lY3Rpdml0eSB7CiAgICAgZm9udC1zaXplOiAxMXB4OwogICAgIHRleHQtc2hhZG93
OiB3aGl0ZSAwIDFweCAwOwo=
</data>
<flag name="review"
          id="95791"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101008</attachid>
            <date>2011-07-15 11:16:54 -0700</date>
            <delta_ts>2011-07-18 00:38:35 -0700</delta_ts>
            <desc>[patch] second version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22330</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MTQ4YTIzLi5jMGVmODVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDct
MTUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGltcGxlbWVudCBpbXBvcnQvZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDct
MTUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEZvY3VzaW5nIG9uIGFub3RoZXIgbm9kZSB3aGlsZSBlZGl0aW5nIENTUyBwcm9w
ZXJ0eSBkb2VzIG5vdCB1cGRhdGUgc3R5bGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUwNDBjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1Rlc3RzIHRoZSBUaW1lbGluZSBzYXZlL2xvYWQgZnVuY3Rpb25hbGl0eS4K
KworcGFzc2VkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1M2I4NDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtbG9hZC5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InRpbWVsaW5lLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
ZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgidGltZWxpbmUi
KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlLCAiX2NyZWF0ZUZpbGVTZWxlY3RvciIsIGxvYWRlZCk7CisgICAgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LnNhdmVBcyA9IHNhdmVBczsKKyAgICB2YXIgZGF0YSA9IFsKKyAgICAg
ICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTQzMTYuODQwOCwiZGF0YSI6eyJpZGVudGlmaWVyIjo0
MywidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnLyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwi
dHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjE4MTk5MzYsInRvdGFs
SGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTExOC45
MzI5LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQzLCJzdGF0dXNDb2RlIjoyMDAsIm1pbWVUeXBlIjoi
dGV4dC9odG1sIn0sImNoaWxkcmVuIjpbXSwiZW5kVGltZSI6MTMxMDc0OTg1NTExOC45NjgsInR5
cGUiOiJSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSIsInVzZWRIZWFwU2l6ZSI6MTgxOTkzNiwidG90
YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM2
LjI0NSwiZGF0YSI6eyJpZGVudGlmaWVyIjo0NCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3Jn
L2Nzcy9tYWluLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2Vu
ZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9
LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzNi42NTUsImRhdGEiOnsiaWRlbnRp
ZmllciI6NDUsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvZ3JlZW4uY3NzIiwicmVx
dWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFw
U2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRU
aW1lIjoxMzEwNzQ5ODU1MTM3LjAyMywiZGF0YSI6eyJpZGVudGlmaWVyIjo0NiwidXJsIjoiaHR0
cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ibHVlLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwi
dHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFs
SGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzNy4z
NDIsImRhdGEiOnsiaWRlbnRpZmllciI6NDcsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9j
c3MveWVsbG93LmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2Vu
ZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9
LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzNy42NTYsImRhdGEiOnsiaWRlbnRp
ZmllciI6NDgsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvcGluay5jc3MiLCJyZXF1
ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBT
aXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRp
bWUiOjEzMTA3NDk4NTUxMzcuOTg5LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ5LCJ1cmwiOiJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvY3NzL3B1cnBsZS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0s
InR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3Rh
bEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzgu
MzA4LCJkYXRhIjp7ImlkZW50aWZpZXIiOjUwLCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Y3NzL2dyYXkuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5k
UmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH1d
OworCisgICAgV2ViSW5zcGVjdG9yLnBhbmVscy50aW1lbGluZS5fbG9hZE5leHRDaHVuayhkYXRh
LCAwKTsKKworICAgIGZ1bmN0aW9uIGxvYWRlZCgpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0
b3IucGFuZWxzLnRpbWVsaW5lLl9zYXZlQXMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzYXZl
QXMobmFtZSwgc2F2ZURhdGEpCisgICAgeworICAgICAgICBzYXZlRGF0YSA9IEpTT04ucGFyc2Uo
c2F2ZURhdGEpOworICAgICAgICBzYXZlRGF0YS5zaGlmdCgpOy8vIHN0cmlwIHZlcnNpb24gaW5m
bworICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZGF0YSkgPT0gSlNPTi5zdHJpbmdpZnkoc2F2
ZURhdGEpKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInBhc3NlZCIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic2F2ZWQg
ZGF0YSBpcyBub3QgZXF1YWwgdG8gcmVzdG9yZWQiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoZSBUaW1lbGluZSBzYXZlL2xvYWQgZnVu
Y3Rpb25hbGl0eS4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2YzQz
ZmQuLmY1YWU0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0wNy0xNSAgSWx5
YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaW1wbGVtZW50IGltcG9ydC9leHBvcnQgZm9yIHRpbWVsaW5lIGRhdGEuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDYwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1sb2FkLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkdseXBocy5wbmc6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
LmdldCBzdGF0dXNCYXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5wcm90b3R5cGUuX2NyZWF0ZVN0YXR1c2JhckJ1dHRvbnMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVGaWxlU2VsZWN0b3IpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9sb2FkTmV4dENodW5rKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fbG9hZEZyb20p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9zYXZlQXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9hZGRSZWNv
cmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS5fY2xlYXJQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuY3NzOgorICAgICAgICAoLnNhdmUtYXMtc3RhdHVzLWJhci1pdGVtIC5nbHlwaCk6CisgICAg
ICAgICgubG9hZC1mcm9tLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGgpOgorCiAyMDExLTA3LTE1ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBGb2N1c2luZyBvbiBhbm90aGVyIG5vZGUgd2hpbGUgZWRpdGluZyBDU1MgcHJvcGVydHkg
ZG9lcyBub3QgdXBkYXRlIHN0eWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbWFnZXMvc3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkdseXBocy5w
bmcKaW5kZXggYzQ5ODdmNDEyMDkzMGQ2OGQxNzFmMmYyZmYyMmU4N2Q2YmEyZjJmNS4uNmQ2M2Ji
MDU3NDUxMjM3MjAxOGU1ZTgxZmQzZWZlYTQxNTM5MWY0ZSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRj
aApkZWx0YSA0NTQ4CnpjbVp7SGNSYlYme1FvVXkkMDBsOG9We2ZXKig5c1hMTF5Ca05AbnRRTSlu
UkI4N1o8SXZibUVTTUlgSSZEPkwodQp6ZEZPb2x7Qzx6YHBXb04ocFYjYTRjPmVud3VSbHMzKXpk
XlU+ZHApLUBaMDdsaE09P215MERgKEdoTFZxME1SfSoKenZvTkJhcmUkR349Rm9WeEM7fGNAWmtR
U0IqIz1LLXpKMiE2WnRRdWw/ejg1QjJ3cEZSSHs3NF93OElTYTdFKyRoCnopJU5hWCQ+UyFAWTwh
dWZpUVh+ZWtrJHRLa3dCSChxZmZ7MWhUamJ+NlNfYytxZj95YT0wMzE1JUFYOXheflpgbgp6TUpo
Z2FEekBRPmtHalpvXyY0PSpkVGBscTMrUHhHb0Z4eXUpeHZKeUBPcnpfTEMhbHAlQWZacm0+KXUh
TWR9dz4KekN6JipPcE9AZlo1V083cFotZHpXP3w5R3FXZHA8Z1p0aEgtUVRoUlJPM3Z2ZlpVSlhg
aDczP0pkWFJjT0xMVEc9CnpGIyklc09WTW8rUyZIbDAjcXkoezFNMndDRntTa0FxPXpvWTxIWFUy
Wkk4fXo2OUZTNHtpTEFRc2pnWVpqNSRyXgp6dTJre1g4OSFyVVkjPWNhY2gzN0JGYlFfdiNAZ1Bm
NV90MWJKNDMyfWpBbFJQKGg7a3xgNkd+RHBXYE5iOFRIS0oKenZQU1Y3Wkc/MCpRYEYlWjJQZFFn
P05WMm4/R2ZOXzlmIUF5QzspUmNzKUg/SVJIeXRQdTNDdHJQKEs2bGY8X1FsCnpxe31xd3BefjJ0
SyhaaWBhaFl9MDY4P2dqKXhfIz1yfkN8Kyg3VSRITyp+SmlLbChPelU/aXZYYXhwTUtXZDQlIwp6
Q0lVMiNVT0B9XnA2I2JNOG8oeihWSi1NWFZuNGN8aDQ7OXtsaHR3WT5JMX51c2lTYiltOEZ7TzJr
K1I0JEdBe28KeiRRZTh2ZGl9O3JQfGFhfUo9Zn0kZlJvSUtoZms7e2JURDxxa3ExQ3JRUEhGaEV3
I29ZPT18T347RkZra3tTTzxmCnotUGtrPCYhfERVNXVqQVc5flItJkc4YD9LSnFfZXJLRnNvbjti
PFZGWiVEa1c9a20/eSZ8N2JkRFB0SVZRbnBtZwp6SFZzdllYbj1qUWZVZUowYChrVjtnanxFbyFO
UzNwTF9IfUFRODBqS0hScGpBXmp1PngrTT4qQjI5YCZnQyR3RygKej8zdkp0VGBwSipXMUhDeT9t
e2heOHxjYj4rLU5nQXYwTn1DSSEoR2wrTGBtbE98QCk9YUR+Zk55aTIhVUJDKlZNCnomOFBCVGVg
Z1hXKGQqQ01GRHdBPUdMVEYyQlpvRHhsSGVGQko4MmtxekNnS2xCTEt4cylSRnMobnZvTzZVT19j
Rwp6NTR2I1F0R3hpRkNgWmpgVVJ3JmhsU1peIUpRTjBLZmoxakV4a2Q+ell7YXAteSlBZXZxZVBw
elloWjhiKUd5VyQKelZWPzlXUiMmeG5wPT9CMW02SjFCYTZ5Uks4ckYoNWFCQ352KCR1QTEtTElw
aitHQz84I1ZCSV5MeGlZbnRgMi00Cno7cVM1O3VrIzdJMS0hTXVkeU1WeDA5KGh5PFp+NyNVPW1G
Uj9ZVnplRz43PExaNHRUSkJaZW5hWDg+ZGglMDg2RAp6V0VVcCpzYVhpcHs9P3hwK01odiElI2lN
OTJfRlF4Vzwxa3krUTRCXllrelg8RUleUT9Fbj1rJl4qNGYqX3p0KDwKelMme00+RTRfVS11RWoh
e3hGcCY4PnVVTz9IOzdDJHA5cDM5Q2F3akNnX2M1Q3lpNm03e3AzaVBxPWhyLV4mWHR3Cno5T0l1
QmhMbWBKPT17WFVKTWE8VWkwbj1MQD9DTz5DXz9rSDw7TDF5WiVsa1hAKiR9KV8qcWNnXiRxSih7
X18/SQp6WTN4TyUhMiY8O2MwRDQ+TG51Um1QNmdSZkZlfiVaNjJ2OEV3Q3hQdmt0TjFfUE05b2lG
SHtpPW9tZ2lnOSprbk4KeiU3YkcpeGA0U1hueWgwYjEmZlVsRk9iM1NVbVo5NU5YKjJgaWUwZVdz
X1lganlnZ3ZSJj9AVjlUJTVkYlErPVVgCnpBPFBxaCVTQ2MheXM0MStobGJ1cyYlcntzTCMhSTNh
TG0oNDx1KyFMZjNYaVZzcE1vI3E3NX1TWWolNzRMMXlSVQp6TEtFSiVYaj51ejtmQ3xkRkY0c0FA
aG9lJjE9ckRhJUBld1E9TldGWV5pMjtWemM9ckk+ZyhNTXVgYnNkJTh3RFoKelFOfXpNYFBjY3dr
WihYQlVvVyZLWldPRUckKHZ2aVZLZkVPNzRvOyhPWHtjXz9PeG5iWElAX0IlJV5qS1AlWlFLCnpG
NChrR3IrSSR4ZGhhNSNTTXBUQVpKb1hGS344NEdnMz43N0p7QCN7VU1EKz5WeWBZNCs8ckJCUElQ
K1ooQH5DNAp6Q1IhdXtpeDF6K3QpeyR2dlBEOyN6bV9BazVEQlc3e0h+ZDNKSCteTHlCazAhK3g3
V297WTQtVmgxKD5DVUNGIyoKem1WKlpkSSZmYnUtKzRvdTVVJnY5cW18a00/R0JtXmdjZWJ0WUMz
ejlGQCYhJWsmYGFYZVohIVE1Nn5yJTJeeShlCnp1TXBkWjIxKjkqTHlqVCN8N29TLXFvTihxZDQ/
RmEhaGY8VTBoWiRVS1N0cEhCTmA7WXlkRztWQmA0JkJhZWQ9dwp6ZD4jV1lEPzM+K1NDYlUkbE5J
QmUyMncmOzYyXmBDK0hvVmIycGZCTS1LQCFxdkZXOzE5UjZ9JU9tZl89RUBBYXoKekUoVlJmP1dV
dTtfOUtzQnJMOHRaPkplPnJqMktsRG1RWGk2VHZOJHc1KT40YU9TMDhje1l3RFhKcUBPKUw/O2BN
CnokcGlndWdwYWNaK1M9TW5OSUhAYlE0a35lK2x0TzI5UkNWJl8jUzEzWjstR3FNZnIxZyt1VXo3
OypKbzZGU30jVwp6UjlWelM3MTdRfEN8WSl4anBGVUxPUm8wdTEjT3dYSnlSI0NJSks+Myh9Vytp
VkktfT1SOUxmMEspOHNpajZFTCQKejU/NkI0Q0NObDk3KCNjSCVKM1goN3Vec2orenx6ITJobkpC
aSZANk5tNWUqQnFaUzI8Y2R3aDZeaE9iVVl2dkVhCnpic2F5c1JAaHk7NWFsYlhzPDNTRENaQHtm
VWttNGMydk5wMnROWlQjMWEyKlBOb1N5NUl8elhYQXAkciYkZUc1Twp6RWZtRDxGJGtoXkBOS3ZZ
P1ozK3ZAP0Z2K1BNYypedlojflA3K2FRbElFbjBGXjg2PTRMejtaVGR0ZnJnZkBONGIKemhhWERl
SmB5M2BSSFctJHI9MiFqSkhUQXYlVHdWNi0tViRTP0NfRUZjSHUhbU9fQGluRko4UFRWUFImTG1D
TmJCCnpTcFV1VSFHbT8jdFNkcDtTM2M8WXhNZmlEXllmXyRIbGlUSUBoSyElJDJYe1Q3QH0mWmVU
VmE4S2dnU2clP0l1cgp6ayEtaUJAQlc7WkZUdlozX0BvZ3MwVndpUVJMeUNeKiFnJStzTzdsRG9M
RT9zdHhjdiRnN2xyfD9YMkpadWV9aCMKemVYcFlpRShWNU15ci1QdSNudkU0UW1PKktxP3VOYkRa
PFpONHxIZjlaQFQ7QkN4N3FIN31jPF5hRFRfQFJ3fDxGCnphckd1QUlKPHg4d1NqPl9xV09vUDBs
VWIjT3EyRz83WS1PU1lrZSlFbmUoVzFMI3U2YDUyeW9We2ReTiZBKCFvaAp6eTYjJW5jengqZU89
S2R4TVNNR0hwZDQ7VjRUVlIxPzQ1PllZMXx3P3s2T2RUYGZ0fldrJilPIVljRilSeUJAaXUKejVx
WT8/anpyYGUmQ0t4UiY+ZEBjY2tYWnRyZ00jJD9JTkFvaSNGO3pIYjI9Xy1eQE12SzRsRzRTNVEh
eDVaNHt2CnphMkNBIVdvT0pARjMwTn02VG1kRXh3PzhKRmZLcX4xPX1PQklxM09yXy1+JmF3ZlAl
OWt3Uld2Q3d4diNuKUlBOAp6XnQ7enVkTlhURjV9NW5hPVhyXzBadj57b1l3N3ZvZ1l7YDNQdGw0
XnZALXElYyNKMmBiNTIhJktLeC1jdVlwUn4Kej1ycS1EWkhDMmdIZE4qYmNfP2ROZz1lSzJNcFok
QXVVVH1ZWSY8VFlkeHxteGwrMzN0VDc+czAxXz5IaHlCSkFICnpYYFoqdTRwbyRoK0VEZDVgWGRO
LTBNQj1hTXhMSGdVcmhLXz18QFVPISVpdElheStlQTg1WU1hX3VZfitoSD5zfgp6eTJsXiNwaHZO
Tml6fkpyTEZLSDhoP3xaK0dZJWZRJTZUcm5FVGpUfjljdHI2eU81djYqTXYoTk1aZWwjenZXcSgK
eiE1a3B0PG9uK1BXQjFOMkBYQXYme0RhQFNgaU9ubi0xMk90M3UzPmBPMEBnPWdEZFYkZlRIVURB
YFE8M3sjKENSCnp6Sml8Vnd1fXw/REw9YEpOJk5qUzV2aVlVaV9kdTgyVWJyOSgyUmNGOzNYRzV0
fXhCQml1PEFzJjFMWEV1ZXc5bwp6K3g8eUstIXN5eDltSiZ0K200JUc5RitaRGwlR099ZWBVbjlh
I0o7SDhFXzJrbyY5UkUqa3E5JE83SGlZQWs+S0AKelcxKUY2UUhxUjN5U3BiK19IJn19PzhMdUsk
UGJYQXkqY0FZXmRGR2hKKEBZM3B8Q15RbiF5Nlp1SnJ4NnJEQlp9CnpRYDNRVFB3eSpCeHY4Sn16
a0FJcVNEQU9yTX1KWU8/QVFxX15IKmJEUnhfbVleVkF+R0srKmtKdUp3QylGWlBZKQp6KTBSWjdm
VzBYV3oyOVdgX3pxZ1B5OE5tLUZ5ITx2VkdOKGVDTWlEV0BrRXQ5NER4K1dYaEV5PThmdj18VyVj
aGAKekNEPVp4X143M0FYTHcrUWk7X2pnK2FhOzx7OEMyYDRmNFAzKWpiYFl7UnV3aypGJThVcjNn
aipqY35jYCQwMmdfCnpqVDFlakZzIW1wT3UjX0xkQ2EqdkBjPmQyO3IlNSEjRShzWU55e3dJU1Nw
Qlh7OUgmN3smKXFHenM3YUw2Z21aRQp6O2BVSUR3fCZkKWs9TUdacjhtYk96Qm1QYjV7IU9lN0Uk
dnhHYDQtSTZVdDlkO1R3bXFAKTRoSmZhSSgpN1V3dSQKekNwcERhJUZQT2VBNFhLT1ZkY3dUSioj
JlNMcGg/IzVpP2UjNTxNRWpJWjFgUzA2eWVJKlF4NiVTc2dkTWw/MGV9CnpHV0tqPmoybnxiRT9U
PT02MWx+MylSZEdJK1VjcE8mYGd4MSo1YH0obSE0Km93UXBZamNrJEdKc3RZZFozUkMhUwp6QlFO
SXJYKCZERTs9eTZ1Q25hT14tRzFKJXg0N1BEKTxwYXw7Y0slfmwjbGpZc1Q9cmxvQX1Oe0w+V25I
bj0qazMKeiNIQnUpPT40MmRzOFBzSGNuUihmOUIhKXhFY05LZnFGMXcze2pBbXE/dTM/eipoSkoz
IW4+NH07MldCXzYze2F9CnpzTzNgZjJtJVpJQ3ZqU1BTRUQpcVhtTnA7UHVVaF9VTjlHfUVNNXEl
Kzc8MSlfYz1IRU8/YioqQG1PKmg0JCVuJQp6dVkwJUM5P2Q0MSVkdTdvKEd3MEhgUmpEZ0xyT29p
WXY/REQheDtJMDM1MG92PV9oUDdmdn57dU9+Rl9IWGg+YHcKemZ8XjdnaWtzfm88MkRPeWNeJD9F
UlUpXnh3Z1FiMEIlTzU/MnFQbUczMzBHaHpmJEYrPFlNN35xeVJSP05fZVgzCnppYHMoWT8/Yz18
RXtKVl5wME51dXpUZzUwOyZFeVEqblpIdVZ8RndWWlIxbkcwIypZOXU4Wm5QPmMrOXtuQFMyMgp6
blJ5UUJCSGEyQ15yVS00O0N8KD1BbTBuO09CJS1YTmhlWHslZEA/JTBQKEBKR35UZGFKZistUDB4
endNWjF7aCMKelBtKl8qP1NFZExxUHUmWSV+cytpczh7cUBnSXR5SSYqNVJ9VFlXPWhscW93e2xI
KkZtTEtOa2k2dj00cXRIWGFGCno9SHJrZkNRX2x8VTM3Vyh6WXlSaWpKbElfOUkzY2BaNXw7Xlcm
e3tlKnVCfiFrfDFzOHtpSyNre0M9XzdEMSh1SQp6aW5tPlh2MnRNbk8tY1JzVkdJM18tcCplbW9B
SUU0eXc9bnF3e0MtJCNZPXAoVF84RjBqNXwmak4zI3kzZG1KeCYKeiE9aEBjXkppRHBCOW1lSV91
Zi1AR1h8amc1IVkqWD0zQ25yRmtjVSE2M19XS05eJClpTmhieStEYHdXKG1AJGFICnpZWEpRNUt8
ZHJvSlo/YUkqZFFDLSMtWUlsQUdhUCZKRkVtTDwoPUNkSEt3PFFgKWkpWHZnRlZueD1HUkVDQDU4
VAp6aWBuUWp5JEhyeXcxT0k+e3hyPUhCMkYpN18qd000cDEjdWBEPzQ3PjIySm9kRzhAR1Q/Jkx+
Ul9JPGFMUEFPcGsKeitnQjlFNlhNdzZlOFApYFJ7KlhFNVZOWkFrZXY4MjtLXkRqKClDKlpvMC1w
VVN2RlppLX1QUCRRZXN6QUBBbVRLCnokQ3lKVTNfV0heTyFxVGZWU24jPV5UKW5GZWQ7JV9Qc0R0
fDVHY3xrKE5CUnBOZzR7cCQoOUAkR0NoeDgtR0cobQp6ZG1HZ2trOFk/Kk1CVTQwZFNgQj1sKj90
bFRmdUkqdVBxXmFZTF88MStyPW5RQ1dmb0llY2V7YFFjTjtVNU80PH0KelVzMChNS1cxdzZGZnN1
bjE2R0ExPzZZOHVOVVYtOVM1OGNTJSo8Qld6T3UmcjFse3E2JmI0TmErKkNFYDFzRDZACnpEfEpB
WDtfXkYzYEk0dHtnIT50VjgzcD9FM1QqVjg2MzM/PG1BPFVybUFCdnI+dmUjXlN9VXVnPHg9JEpQ
VkVDJgp6SSV0SU1QMWNaQT4/PG16bihkRTZ0N3tRQUBOaDk4QCg1YUdFJF4yX0s3TzJtPml0Uygj
OUBUe3p4aFFycEhWWWQKelhQR3kwRF4lQnliZzx2MFhfb3ZuX3YwSFRAcVYzWU9fPSFMbDJVLUwp
JUN2Rmk7IXY/aThvLTtzPm9LJVhlTU5xCno4b3RRWTF6JkJObC03P0pnbHE3dWRKLWZyKCZ1c3Nt
bmkyYWFfcVU1U3xePXtAREZ0bSV5NTdqIzNVRk0zPU4hewp6e1RWczZwfCsmc1lgR2w3bGg1KCtj
NG1SVHFBUl5aUyhMPUBkWWNxKU1mNDYrRXVIIX50O3dVYVlaPiMhZ2hkPGsKekJ0PUclbS1DNE0l
YColIypgWnJLUWBFYXxFQSk/R0ktKTJpTCV1fk5RMyh6VSQ+QzlOWHl3Zi1OeUVwfHZzUGVMCno5
MmRyYUxyZ2Z0MW9RZXckISNGQlBkOEAmXkFfQXZxQDlfaEE9JCk0VmYwZn15fHFfezZER1YmZFM8
QWlsUiYzPgp6SXArMlpnNGtVNyVBTV5TZEM2UVFVWmE4aWVmNGVAPXpOMERKQHZ7ZjFETGEhUGpf
STl4Q2hMMC18VytzTz5UN2wKek1fR1F3UDZFI05tT0hebD42IzJ9cVk4PHZGJWBgYVE7dGg2fEUl
fV4rcT9lQ1FaZVRrZVJ9SkV3Nj4rT20qN1lrCmIkRGN0TGBReXg8YU5HQlR7KntATHJEMyhjVGpj
KSRKJkNOdgoKZGVsdGEgMzg0MQp6Y21hKTlTNSVWPXY7OUlzbW5nbDdnYXtmK3MzSiZITn5CN1dB
YCViYGgjKzE8NWV6ajY8dyUhSzVDSHtJayZhM1cKejxwVGk9bjFEITg0Z3skTzJ9dGtkPWUqdFot
PExaTmQpQXNZND5ObHw/M3ZlXl5ReCg1R2c3JChZdEF9ejVmU2J0CnoqUktJVXMwO3YqcTUpdiU9
czM+PEsjKCMze0J7RVhFZVplIzxJYFFjdF54byYpNl9gY2pfe00yQUNofDdVZ0cwcgp6eXlfMWJY
WD54a1gpezxPUWI1SnJoUmFtbj49ZDZabiojaHNHKj4/KjhpXiFpSSV1TTg1SFZgbUF8X0VVUFgq
YXAKeiE9eU1MI2ZjWmtVJEtfe3JJMHw+bVdFd3FkYTVsLXtARUpJdjd9cWptbGw0RXtiME8kPEow
c2lZJk5LRVlQNX1eCnplTjZ5Xk4rPiNFNmQ9WiRRMWx2KmBgX15XTFAmRGRzKStsZnQyJDZqejgl
bUVDa1R4RTxOQVdmQkRkcnRDI1hUVAp6Qnx9TUghMnhnKT5gPDd9bH5UJV9Rdkk8Qihie3p7aHxe
c294PWtkNE9OeDA9SGk5VUBJYzNsNEBOcDRwIXl5SzkKeiVmb0tKQFprMl5ZaUp9I2N9fm5ge1JU
TDVYa0ljamBUUyZ3dV5vPjMhWW85SlhPSENyeHJIPmc+cilVbmJMMHhkCnojdGB1QUZYS2VtPXRu
QiZwbEk7aTUydEJyZjshNCooaXFHR1c1azVQY0NjX0pMPDdRMk83eUAyO25IKFVNMUxnMwp6PUMo
TFg2NFYhUmhPSG8tai1CMzwodjlmUFlBRG50bTRJPWB0JjBZPEtXWUE8SWBGNlI0dWYjO1ZST3tC
bGpKRS0KellsOExKcG10PEVidl9rdzV4OXtaIXN7JSRvb2dPbklJMll8dC1PYmhDUntlXnRhUksp
MlY5JEYoUyRwbUduaW4yCno7Y2l+WlRvV19uZnQ0XlpfdU5BY3craUNaSFhTSkJeb2VqdSFZaGt6
cUgoNDhRIT0ycShJSndDaCtHPWFjRE5aNgp6eWlzczhySDNHfkN2SDZBU29kP29nRD9URz84fGc/
OEgtK14qdmNCbFBiez91Rl47XyshJF5NKitfRlYzU0FjWT0Kei1hMXpIakhZKigpJGNlQ1goSndS
NH0xaStOaGg3PkgoRk1ebElKe25zPThXJnFkWlFSSUs/JCNGYD5MO3ArJDZhCnpnUkVteyF0SU4j
UmthKkRMd3k8Y1R6a1BhdHk0T3pJYFZyMTxkZFh+Jn4hS2tydEchaGtofFEqJEtOKG4rYztKRAp6
Y3tYdnZuPi1afXomYis9YUE0Ny10IT49fTN8cD1vIUE/dFBQOE9mSmtJbTtgWWsxNkE1SWMmUnlr
UDtHPnVLYTkKemJCKHJ4V3RAYF5sSEEwNEokO3lLOHNtfHx6SkhDamhOKGFxaWorZzNRJEBZcjc+
cCNaKWB8PDZLTl8ya18yYHQtCnopZncqLXU/REpTR21mZV93fGZXTmswS35INHJaMy1zej1sWlNV
IWZDdikqWndrJXVeK2dJSHtSVGp6RE55TldNKAp6e1JrX3J0Tzc+I1cqJC1kPGJmYHVXckxrYVBt
PHE0TnMhdjFeV0QlYEh6TDJeYHkxLUtaSlVmTUVeZmE+KDxUenwKelEkamFQZiVEc3lOYDllJjlS
KX1zKzZwS09gVUVJX0d9bTJ6KXV8aWR5MiooazwhYm40YX11MzJWMUQtfDJuOypACnpNbj5pKVFH
U3RxYHg1PCZ8NUxlYVZePEZqS01kT3U2YH4yPDdXWUZnVXh8X3RpQmNvRV5SKnJvaEZkfnxIKmNC
SAp6Z31vXzYmOWxvOXk2N19gYGglVTtDKGFUK3FUJHRDeDlkIXY+WTs7KiZZT3NaQlB2PUpOXklf
KnZedCVvWFo5KGoKeiYjKj00VFdnMnMjNEVfKi1UZCVeT2FxdXohb2tiKUlAVSZaZX5TfVJ6TUdG
cmV8I2omVGdKfXZhZT4xdm1gVGt1CnpkazRROGQoX05iQ05SNElyZF9gciFQT149WmhqYWkoI3A9
MUNmWH52aG5DNFNmV3RYOFFJI2k4Tjg7WnFXY1gwJAp6Uz9ESSlXdWdKVEgraEMyTzs9TWRtaFA+
cmpRejRsbm47UTM/fWtjRGd0UiFiUSpzdz5vTVNlPlRVdFZGTHxwblQKenR7cWE7ZjllektRWn5S
QUs1SlRZcTw2Q3BfbU9wQ3BadHdPKW95ZHQ8LXBGPm8wYXhqeXdfPWRsfjFAbT4oPSZqCnpEelYq
NS1ZPWs4eC1RODw+VkNjMjM0JnF5cD8lR3A9akUpYFBsOEJjcm1oMVE/bz1VR2xzeW9eKFR6PWlY
JmNPdQp6ODlqbEsodSVfWktaSFdGLVgpZUM2QXZ3cWZJT0hGZmNiZXZqWEtIO0o+emRUejg9UzV4
eXlQb0dvPiVqPEVaeloKejJZNT5XbG1hNmByNWc5aHNrQW01K1R6XmJ3aTJBR0w8RnFidUh+a29g
cS1MVz1hd0dtRjRLdW1vOTAjSnlWQk0hCnp8SClkajdgb1lXSG9BU2AjZH5+cEx2d01uKzRmd2Bo
a31hJF9RZV4kI1AwdzNJdmV8cmJKVD4jQkswPVlrU2ZsUQp6KnVHZHRGVyNlPkVObVRvR3JWbjEz
fj47PWcwVyMhKDJ7JnNncHdtQXs1S0gpeVFuVGw+Wlh8MHwybkw+aitLNTwKenVoTTx1KzgxdW96
djVMcS0+SUJpdD9SIXo5KHxufTwxRDt3IWMwT1hSdlhAX3lTRn4xdXJZRyFsPTFEbU1tdEt1Cnpv
NE5LUUB5Sj4/elRsemZEajFwdVpuJWBmKTYwJEM3WmVkLWVmWEBuSmstK0cqNEZhRDhAVHF5TkQ4
cmJGbD1gKQp6SzBvPSp3WXRZT1otWEQhKXp0flRrc0BoQmlKa0NITmRjJCpCJFk5bXNnMXlma0xA
ITliNUUtIyYoZlFEYFZidXMKenVrSUFgQXokcksjajtRXkdHPWc8Rkk+SFBgQG1yezJsfXYhQ2R2
SWJxSHc3eGdqeyQ0WFkjIVVFKDRXYGBOUnwyCnpYb3IqJj1UMFRoTUR6ZGlCeiF0QDt0dnRDOGQp
TFk5ZlM7fXZoWFl9RjdnK24hfmArQEhoZGFCTmg8UWM3WigwfQp6Tk5HNilfYWNseDZWUVVEZiYj
NnZCaz9NUSg1dHcrSUN3VkRmK2xyflh3YjJOYCt2OyRAOVBVLXpTO3xiSGVrIWgKekJ8c1E1N28h
TXRRKjIzK3g2Zy1wSiNQN2o/SzhGIStKSF9keCZ6QHBsO2Y+YFNJKDl+PGZhQGNifTRmMilIKiYl
Cno5K3tESF8jKHAmUmV+Xn16RiFTVSZFZUchPC1VYk1CY0VAb0BxO21AMiNmZXlILWxLbF93VW1S
dD0lKmx0eW9LMgp6YDt7UDlZP3xxPnhxIXkzbyR5Rll5K1lVTWU5RFc4X3dWMU1lWWxzWSRWZj9D
NHQ/fnIpakpaV08qfHp3QCp0dWoKemokQE94K2tIOyVmJGVRI2VyJGUleEJHLSYwYVVUclhMVkZz
Y3NZWEVpO3htTW85IXliPitJNVRaQXNCfkkqYEtnCnpiJmM7WWUkYWszMWx2OG9VKzFgVSlVTm9R
Ynk9UG45KXNfREZYUyZZXnZlOXQwOWdqfVchOEhuPXc9YUQmcGxiVAp6TUJ0KzRpZHkke0k7YDNu
bUJlSCtwSnZuTmxybkBAdk08Y3Vrc2FAX2pHKylhLU42enRJZV97NVVfNHtXb1VIQmgKekxhd09z
LXZQSG0/SlZ7ayUqa1VFZWFFfD5pRm1+b3JnbFBEdiFYU25jeEo3VjA/O3lhMig9QkxxQEIwQ29g
biR7CnolNX1+IT5sRiRvYFlIVVYlPWJAO1cyb0tObVlqLVMjYzNKYmliKylDKnQ+dXluI00wPWNT
Z1JJJklJYn0+I2YkaQp6dGFQLUFJcVlZPng0LTwkO2xKdUg5MUdxKCNKKl8pQipycnEhMWApX3xE
biUkYytPeGw7KWM/PyZyVyN8WkBFelAKemJjeVFsK3Y+bH1CfnRtQHkxKllaempaQEZFflo2aWJP
T2gtSmRyPmJQJnd5KHhXPnJfYVAlWDh5TGkqUU82SF4mCnp7XjszQTxONDA5UTBifWxMUjZzfEtr
WH1VbkVzcHlUPnNLU1l2X3Rsd3dBPjdxZkZAeStmdDBpSj5gSCFCPF5qSQp6WlJlZlJPdGBHYXU9
fWdSIX1FU0JlajBUJEJTKE1vVDRLcnNkN1RsK2YyeGlxZ2JjVXBjT1cwZVl7JUQhYXE/NjcKejIq
dTFtZmNWTEF8N3FFbDRkLW9APiUhVVU1Mz9AOGxnb3hqU0B1OGhrNUBJbGspdzwwMnZSTEF5X3xf
WW9geE5sCnp3cD83KVcwWHFHJTNrQDE8YjxydXhrTVc/eUY3N3dPU2UrXnJoS2kxU09fKUo+amVM
fHZ+RVMrT00xVjRtSmlLSAp6bjRJQTI3aGg8Nkpfb3R7KG5vKXtZWjRqYzV3MFlXPkFEYz9FamEx
JUFhfDxJYE1sOEY2d2QhS3MySlBHTDAjVkcKelVpfXRrJnxJYEooaGE4U05FZzI0cWtTY3N7VkU5
TmNKSC1vOHAyLWUrSTArTlAlfTxgIVM3d2o7K29KWWpjI3lBCnpYQGozdWlkQmlYVVJkMiNib2h6
cG89eDFTTjZmTmxneUdORCN8RVU7PEhVMiRnfFIjPTZQfX5UWlFHWUlXKDtMbAp6Ty0jQiFVNmh8
KXoxQV8qYX03Nm8kTFZmSjh8UD04YHc+JWBAcXhvVXYpbmpYTCQlQW4tentYfmhjXkR2Szd3P2UK
emBZIVV2dHU+dTBLfmN3VzRSPis5PHNTUVpfKn4oST5gIT5aPV81PGAtWH01Mk1JKWAkZGk5WjNA
fF8rZG5GX0VCCnooXzZxLUhtJjlWKDgtKl92P2NHfD4qU0xeN2RlUWw/QSRzaT12aXk+cG5Yazto
PCQjIWFAUDBQUnxXc1dNKH4lZQp6OURRYlpRVF5LPkx5NEFDIXhLbXBTNTFtYGslbVY7YT5ATE5o
RiE/M3lxY2FZOGNYSEdvKHdWVypiJU5xND1OMyUKenZjRl5YKCYjUWZSaT5yZHRAJl5pNThMVjdQ
VipUeD9kTmkpdjRtc3doSV9DfThzSCk1U2AkUXlXTm9JMFBJUkNXCnptZGV2O2wmO1JJT2pmYTRj
cHFsKyEoPjlFI3dhVD9ZVmJ1UypiKzYmQlp1JiY1PCRjO255dnw3VEE1X3JITzk5fAp6OExzM2o0
NHo1NiEtekE3VnxIUGlmc3AlVVJhST9ESVh4OWdNWHg3ZGJQP05CYlp6JU55SDdJI0ArRjIzIzM0
PVgKek9vPjJySCpQcG1tenxLWWkwITxXSjZeaz0mZ0JhQU9YOSUyNC1wO30paEpDeGUtUCZxTzhy
c0xScXNeWms9VX1QCnpmbT90KS1sIXpmNkFvJk1sfEFGTEFUQXE0XzNxLVZRY00keUd+VWdaTiE2
ezFmTmIlYUZBdDwhTnt2KjhCQFh7aQp6czR1TGVUNkQyKy0weilSMztneVZNcmM3aDN3VXwjcXVH
QFNlRkZuUiV9JTE2LXxgNmcpPkN2fCQkKkFAP3gqYzAKenI+ZkQoZm4+YjJ2K0F3cEQzc2V6Plhf
KytXWSFkSGhgVyhVSnlHPHlNUiQ4PmB4I31WaWNOMXA7KlM4djIwUEpVCno3MHVyc1Ipb15KPzYr
JiZefkp0NFExXkxoWD0lejVQcGw3QSVMJDlzNCNoI1ZXPSoxOGBeNm9NaU5aQ1l1T0VJTwp6VVNk
ezVfQnJXLUMhdWYrSDNycn5HJUxDMk0zTytZTERhJXgpMigrfnhMcWM8R3djM35Db3s/KVJEYUdk
M1hfUU4KemBSVjMzZmVmamJUSHF2MXZFNTxjdyp0eyZTOWd5Pz4yZD8pdzt1SyZzPi1gK0p5RUFa
KVpRa09vSXZCS0txWVY7CnpkLT93WiUtWVRsSSErKj8raW0qP1JIQWZxSWkhclhrSDA4QzI9aT10
SjhpdT4oWHJCKCRmKTwhYDFienZib2BVJQp6Z2R6X2EodV9peGIjJjRnKHh+ajQ7c3IoUysoSn5G
eSNRdUQ0WSg/Y1FSM0ZTblI1TVFocChrbldYcStYbUxrK3wKem1QaClZVyF+QUxwVkU+NEIpVTVK
KndfZE5mX2hkMDcjV09wbXo3UUM2RzhBZ143WjVebC1XWlFiKlZTUWY/ZGAjCnp6UkVJN2IwdyQq
Yy1FOX4wTkw8ZVBodEAmPnpUeEpMNXopWDEwVTMpX31jTk5EM2JSVzw0eFIpPyszQzhNR3ZlRAp6
PDt0UHVCV0F0MHt1MTApYW5TSzAwfjA8elklLW1VI0UpSXEyNGVTcnB3I3M2R0dHbHNDd0R4JFk3
SEVSRGFPKk0KSSghZWUxS1Zxeyg8XlRXeQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCA5MGJhNDFmLi5jNmFhODdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzCkBAIC03OCw2ICs3OCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVu
Y3Rpb24oKQogICAgIHRoaXMuX2l0ZW1zR3JhcGhzRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9l
eHBhbmRFbGVtZW50cyk7CiAKICAgICB0aGlzLl9yb290UmVjb3JkID0gdGhpcy5fY3JlYXRlUm9v
dFJlY29yZCgpOworICAgIHRoaXMuX3Jhd1JlY29yZHMgPSBbXTsKICAgICB0aGlzLl9zZW5kUmVx
dWVzdFJlY29yZHMgPSB7fTsKICAgICB0aGlzLl9zY2hlZHVsZWRSZXNvdXJjZVJlcXVlc3RzID0g
e307CiAgICAgdGhpcy5fdGltZXJSZWNvcmRzID0ge307CkBAIC0xNDgsNyArMTQ5LDcgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgZ2V0IHN0YXR1c0Jh
ckl0ZW1zKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBbdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24u
ZWxlbWVudCwgdGhpcy50b2dnbGVUaW1lbGluZUJ1dHRvbi5lbGVtZW50LCB0aGlzLmdhcmJhZ2VD
b2xsZWN0QnV0dG9uLmVsZW1lbnQsIHRoaXMuY2xlYXJCdXR0b24uZWxlbWVudCwgdGhpcy5fb3Zl
cnZpZXdQYW5lLnN0YXR1c0JhckZpbHRlcnNdOworICAgICAgICByZXR1cm4gW3RoaXMudG9nZ2xl
RmlsdGVyQnV0dG9uLmVsZW1lbnQsIHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24uZWxlbWVudCwg
dGhpcy5nYXJiYWdlQ29sbGVjdEJ1dHRvbi5lbGVtZW50LCB0aGlzLmxvYWRCdXR0b24uZWxlbWVu
dCwgdGhpcy5zYXZlQXNCdXR0b24uZWxlbWVudCwgdGhpcy5jbGVhckJ1dHRvbi5lbGVtZW50LCB0
aGlzLl9vdmVydmlld1BhbmUuc3RhdHVzQmFyRmlsdGVyc107CiAgICAgfSwKIAogICAgIGdldCBj
YXRlZ29yaWVzKCkKQEAgLTIwNyw2ICsyMDgsMTIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmNsZWFyQnV0dG9uID0gbmV3IFdlYkluc3Bl
Y3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciIpLCAiY2xl
YXItc3RhdHVzLWJhci1pdGVtIik7CiAgICAgICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhclBhbmVsLmJpbmQodGhpcyksIGZhbHNlKTsKIAor
ICAgICAgICB0aGlzLnNhdmVBc0J1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0
dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2F2ZSBhcy4uLiIpLCAic2F2ZS1hcy1zdGF0dXMt
YmFyLWl0ZW0iKTsKKyAgICAgICAgdGhpcy5zYXZlQXNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl9zYXZlQXMuYmluZCh0aGlzKSwgZmFsc2UpOworCisgICAgICAgIHRoaXMu
bG9hZEJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiTG9hZCBmcm9tLi4uIiksICJsb2FkLWZyb20tc3RhdHVzLWJhci1pdGVtIik7
CisgICAgICAgIHRoaXMuX2NyZWF0ZUZpbGVTZWxlY3Rvcih0aGlzLmxvYWRCdXR0b24pOworCiAg
ICAgICAgIHRoaXMudG9nZ2xlRmlsdGVyQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNC
YXJCdXR0b24odGhpcy5faGlkZVNob3J0UmVjb3Jkc1RpdGxlVGV4dCwgInRpbWVsaW5lLWZpbHRl
ci1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24uYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVGaWx0ZXJCdXR0b25DbGlja2VkLmJp
bmQodGhpcyksIGZhbHNlKTsKIApAQCAtMjE3LDYgKzIyNCw1OSBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ZXIuY2xh
c3NOYW1lID0gInRpbWVsaW5lLXJlY29yZHMtY291bnRlciI7CiAgICAgfSwKIAorICAgIF9jcmVh
dGVGaWxlU2VsZWN0b3I6IGZ1bmN0aW9uKGJ1dHRvbikKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9maWxlU2VsZWN0b3JFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNo
aWxkKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpOworCisgICAgICAgIHZhciBmaWxlU2VsZWN0
b3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgZmls
ZVNlbGVjdG9yRWxlbWVudC50eXBlID0gImZpbGUiOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVt
ZW50LnN0eWxlLm9wYWNpdHkgPSAwOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50Lm9uY2hh
bmdlID0gdGhpcy5fbG9hZEZyb20uYmluZCh0aGlzLCBmaWxlU2VsZWN0b3JFbGVtZW50KTsKKyAg
ICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGZpbGVTZWxlY3RvckVsZW1lbnQpOworICAg
ICAgICB0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50ID0gZmlsZVNlbGVjdG9yRWxlbWVudDsKKwor
ICAgICAgICBidXR0b24uZWxlbWVudC5vbm1vdXNlZG93biA9IGZpbGVTZWxlY3RvckVsZW1lbnQu
Y2xpY2suYmluZChmaWxlU2VsZWN0b3JFbGVtZW50KTsKKyAgICB9LAorCisgICAgX2xvYWROZXh0
Q2h1bms6IGZ1bmN0aW9uKGRhdGEsIGluZGV4KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAyMCAmJiBpbmRleCA8IGRhdGEubGVuZ3RoOyArK2ksICsraW5kZXgpCisgICAgICAg
ICAgICB0aGlzLl9hZGRSZWNvcmRUb1RpbWVsaW5lKGRhdGFbaW5kZXhdKTsKKworICAgICAgICBp
ZiAoaW5kZXggIT09IGRhdGEubGVuZ3RoKQorICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLl9s
b2FkTmV4dENodW5rLmJpbmQodGhpcywgZGF0YSwgaW5kZXgpLCAwKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9yKHRoaXMubG9hZEJ1dHRvbik7Cisg
ICAgfSwKKworICAgIF9sb2FkRnJvbTogZnVuY3Rpb24oZmlsZVNlbGVjdG9yRWxlbWVudCwgZXZl
bnQpCisgICAgeworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoZSkgeworICAgICAgICAgICAgdmFy
IGRhdGEgPSBKU09OLnBhcnNlKGUudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgICAgICB2YXIgdmVy
c2lvbiA9IGRhdGFbMF07CisgICAgICAgICAgICB0aGlzLl9sb2FkTmV4dENodW5rKGRhdGEsIDEp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24udG9n
Z2xlZCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuc3RvcCgpOwor
CisgICAgICAgIHRoaXMuX2NsZWFyUGFuZWwoKTsKKworICAgICAgICB2YXIgcmVhZGVyID0gbmV3
IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgcmVhZGVyLm9ubG9hZCA9IG9uTG9hZC5iaW5kKHRoaXMp
OworICAgICAgICB2YXIgZmlsZSA9IGZpbGVTZWxlY3RvckVsZW1lbnQuZmlsZXNbMF07CisgICAg
ICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpOworICAgIH0sCisKKyAgICBfc2F2ZUFzOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgbm93PSBuZXcgRGF0ZSgpOworICAgICAgICB2YXIg
ZGF0ZSA9IFN0cmluZy5zcHJpbnRmKCIlNGQtJTJkLSUyZC0lMmQtJTJkIiwgbm93LmdldEZ1bGxZ
ZWFyKCksIG5vdy5nZXRNb250aCgpICsgMSwgbm93LmdldERhdGUoKSwgbm93LmdldEhvdXJzKCks
IG5vdy5nZXRNaW51dGVzKCkpOworICAgICAgICB2YXIgcmVjb3JkcyA9IFt3aW5kb3cubmF2aWdh
dG9yLmFwcFZlcnNpb25dLmNvbmNhdCh0aGlzLl9yYXdSZWNvcmRzKTsKKyAgICAgICAgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LnNhdmVBcygiVGltZWxpbmVSYXdEYXRhLSIgKyBkYXRlICsgIi5qc29u
IiwgSlNPTi5zdHJpbmdpZnkocmVjb3JkcykpOworICAgIH0sCisKICAgICBfdXBkYXRlUmVjb3Jk
c0NvdW50ZXI6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ZXIu
dGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIG9mICVkIGNhcHR1cmVkIHJl
Y29yZHMgYXJlIHZpc2libGUiLCB0aGlzLl9yb290UmVjb3JkLl92aXNpYmxlUmVjb3Jkc0NvdW50
LCB0aGlzLl9yb290UmVjb3JkLl9hbGxSZWNvcmRzQ291bnQpOwpAQCAtMzE0LDYgKzM3NCw3IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICB0aGlzLl9jbGVhclBhbmVsKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAg
dGhpcy5fcmF3UmVjb3Jkcy5wdXNoKHJlY29yZCk7CiAgICAgICAgIHRoaXMuX2lubmVyQWRkUmVj
b3JkVG9UaW1lbGluZShyZWNvcmQsIHRoaXMuX3Jvb3RSZWNvcmQpOwogICAgICAgICB0aGlzLl9z
Y2hlZHVsZVJlZnJlc2goKTsKICAgICB9LApAQCAtNDM1LDYgKzQ5Niw3IEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfY2xlYXJQYW5lbDogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgdGhpcy5fdGltZVN0YW1wUmVjb3JkcyA9IFtdOworICAgICAgICB0
aGlzLl9yYXdSZWNvcmRzID0gW107CiAgICAgICAgIHRoaXMuX3NlbmRSZXF1ZXN0UmVjb3JkcyA9
IHt9OwogICAgICAgICB0aGlzLl9zY2hlZHVsZWRSZXNvdXJjZVJlcXVlc3RzID0ge307CiAgICAg
ICAgIHRoaXMuX3RpbWVyUmVjb3JkcyA9IHt9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IDgwMzZjYWMuLjA4NjNmOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAg
LTM4NzIsNiArMzg3MiwxNCBAQCBib2R5LmluYWN0aXZlIGxpLnNlbGVjdGVkIC5idWJibGUuc2Vh
cmNoLW1hdGNoZXMgewogICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogLTEyOHB4IC0yNHB4Owog
fQogCisuc2F2ZS1hcy1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKKyAgICAtd2Via2l0LW1hc2st
cG9zaXRpb246IC02NHB4IC00OHB4OworfQorCisubG9hZC1mcm9tLXN0YXR1cy1iYXItaXRlbSAu
Z2x5cGggeworICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogLTk2cHggLTQ4cHg7Cit9CisKIC50
aW1lbGluZS1yZWNvcmRzLWNvdW50ZXIsIC5zdG9yYWdlLWFwcGxpY2F0aW9uLWNhY2hlLXN0YXR1
cywgLnN0b3JhZ2UtYXBwbGljYXRpb24tY2FjaGUtY29ubmVjdGl2aXR5IHsKICAgICBmb250LXNp
emU6IDExcHg7CiAgICAgdGV4dC1zaGFkb3c6IHdoaXRlIDAgMXB4IDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101135</attachid>
            <date>2011-07-18 00:38:35 -0700</date>
            <delta_ts>2011-07-18 01:41:52 -0700</delta_ts>
            <desc>[patch] third version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11605</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZTI0M2M0Li45MTAxMWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDct
MTUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGltcGxlbWVudCBpbXBvcnQvZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDct
MTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hyb21pdW0g
cmViYXNlbGluZXMgYWZ0ZXIgcjkxMTU4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMDQwYzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUZXN0cyB0aGUgVGltZWxpbmUgc2F2ZS9sb2FkIGZ1bmN0aW9uYWxpdHkuCisK
K3Bhc3NlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTQxMDEyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LWxvYWQuaHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJ0aW1lbGluZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1
bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInRpbWVsaW5lIik7
CisgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSwgIl9sb2FkQ29tcGxldGUiLCBsb2FkZWQpOworICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5zYXZlQXMgPSBzYXZlQXM7CisgICAgdmFyIGRhdGEgPSBbCisgICAgICAgIHsic3Rh
cnRUaW1lIjoxMzEwNzQ5ODU0MzE2Ljg0MDgsImRhdGEiOnsiaWRlbnRpZmllciI6NDMsInVybCI6
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJS
ZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0b3RhbEhlYXBTaXpl
Ijo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMTguOTMyOSwiZGF0
YSI6eyJpZGVudGlmaWVyIjo0Mywic3RhdHVzQ29kZSI6MjAwLCJtaW1lVHlwZSI6InRleHQvaHRt
bCJ9LCJjaGlsZHJlbiI6W10sImVuZFRpbWUiOjEzMTA3NDk4NTUxMTguOTY4LCJ0eXBlIjoiUmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2UiLCJ1c2VkSGVhcFNpemUiOjE4MTk5MzYsInRvdGFsSGVhcFNp
emUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzNi4yNDUsImRh
dGEiOnsiaWRlbnRpZmllciI6NDQsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvbWFp
bi5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0
IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAg
ICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzYuNjU1LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ1
LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2dyZWVuLmNzcyIsInJlcXVlc3RNZXRo
b2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIz
NjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMx
MDc0OTg1NTEzNy4wMjMsImRhdGEiOnsiaWRlbnRpZmllciI6NDYsInVybCI6Imh0dHA6Ly93d3cu
d2Via2l0Lm9yZy9jc3MvYmx1ZS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJS
ZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXpl
Ijo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzcuMzQyLCJkYXRh
Ijp7ImlkZW50aWZpZXIiOjQ3LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL3llbGxv
dy5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0
IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAg
ICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzcuNjU2LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ4
LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL3BpbmsuY3NzIiwicmVxdWVzdE1ldGhv
ZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2
NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEw
NzQ5ODU1MTM3Ljk4OSwiZGF0YSI6eyJpZGVudGlmaWVyIjo0OSwidXJsIjoiaHR0cDovL3d3dy53
ZWJraXQub3JnL2Nzcy9wdXJwbGUuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoi
UmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6
ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM4LjMwOCwiZGF0
YSI6eyJpZGVudGlmaWVyIjo1MCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ncmF5
LmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3Qi
LCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9XTsKKworICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMudGltZWxpbmUuX2xvYWROZXh0Q2h1bmsoZGF0YSwgMCk7CisK
KyAgICBmdW5jdGlvbiBsb2FkZWQoKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVs
cy50aW1lbGluZS5fc2F2ZUFzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2F2ZUFzKG5hbWUs
IHNhdmVEYXRhKQorICAgIHsKKyAgICAgICAgc2F2ZURhdGEgPSBKU09OLnBhcnNlKHNhdmVEYXRh
KTsKKyAgICAgICAgc2F2ZURhdGEuc2hpZnQoKTsvLyBzdHJpcCB2ZXJzaW9uIGluZm8KKyAgICAg
ICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGEpID09IEpTT04uc3RyaW5naWZ5KHNhdmVEYXRhKSkK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwYXNzZWQiKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNhdmVkIGRhdGEgaXMg
bm90IGVxdWFsIHRvIHJlc3RvcmVkIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+CitUZXN0cyB0aGUgVGltZWxpbmUgc2F2ZS9sb2FkIGZ1bmN0aW9uYWxp
dHkuCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZTY4NTkzLi5mZjM4
M2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDctMTUgIElseWEgVGlraG9u
b3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGlt
cGxlbWVudCBpbXBvcnQvZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtbG9hZC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdl
cy9zdGF0dXNiYXJCdXR0b25HbHlwaHMucG5nOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQgc3Rh
dHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlLl9jcmVhdGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZS5fY3JlYXRlRmlsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fbG9hZE5leHRDaHVuayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2xvYWRGcm9tKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fc2F2ZUFzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fYWRkUmVjb3JkVG9UaW1l
bGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2Ns
ZWFyUGFuZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoK
KyAgICAgICAgKC5zYXZlLWFzLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGgpOgorICAgICAgICAoLmxv
YWQtZnJvbS1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoKToKKwogMjAxMS0wNy0xNyAgTHVrZSBNYWNw
aGVyc29uICAgPG1hY3BoZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBD
U1NQcm9wZXJ0eUN1cnNvciBpbiBDU1NTdHlsZUFwcGx5UHJvcGVydHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkds
eXBocy5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9zdGF0
dXNiYXJCdXR0b25HbHlwaHMucG5nCmluZGV4IGM0OTg3ZjQuLjZkNjNiYjAgMTAwNjQ0CkJpbmFy
eSBmaWxlcyBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3N0YXR1
c2JhckJ1dHRvbkdseXBocy5wbmcgYW5kIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9JbWFnZXMvc3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCA5
MGJhNDFmLi5mODliNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC03OCw2ICs3OCw3IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX2l0ZW1zR3JhcGhzRWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9leHBhbmRFbGVtZW50cyk7CiAKICAgICB0aGlzLl9yb290UmVjb3Jk
ID0gdGhpcy5fY3JlYXRlUm9vdFJlY29yZCgpOworICAgIHRoaXMuX3Jhd1JlY29yZHMgPSBbXTsK
ICAgICB0aGlzLl9zZW5kUmVxdWVzdFJlY29yZHMgPSB7fTsKICAgICB0aGlzLl9zY2hlZHVsZWRS
ZXNvdXJjZVJlcXVlc3RzID0ge307CiAgICAgdGhpcy5fdGltZXJSZWNvcmRzID0ge307CkBAIC0x
NDgsNyArMTQ5LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewog
CiAgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBbdGhpcy50
b2dnbGVGaWx0ZXJCdXR0b24uZWxlbWVudCwgdGhpcy50b2dnbGVUaW1lbGluZUJ1dHRvbi5lbGVt
ZW50LCB0aGlzLmdhcmJhZ2VDb2xsZWN0QnV0dG9uLmVsZW1lbnQsIHRoaXMuY2xlYXJCdXR0b24u
ZWxlbWVudCwgdGhpcy5fb3ZlcnZpZXdQYW5lLnN0YXR1c0JhckZpbHRlcnNdOworICAgICAgICBy
ZXR1cm4gW3RoaXMudG9nZ2xlRmlsdGVyQnV0dG9uLmVsZW1lbnQsIHRoaXMudG9nZ2xlVGltZWxp
bmVCdXR0b24uZWxlbWVudCwgdGhpcy5nYXJiYWdlQ29sbGVjdEJ1dHRvbi5lbGVtZW50LCB0aGlz
Ll9sb2FkQnV0dG9uLmVsZW1lbnQsIHRoaXMuX3NhdmVBc0J1dHRvbi5lbGVtZW50LCB0aGlzLmNs
ZWFyQnV0dG9uLmVsZW1lbnQsIHRoaXMuX292ZXJ2aWV3UGFuZS5zdGF0dXNCYXJGaWx0ZXJzXTsK
ICAgICB9LAogCiAgICAgZ2V0IGNhdGVnb3JpZXMoKQpAQCAtMjA3LDYgKzIwOCwxMiBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuY2xlYXJC
dXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNsZWFyIiksICJjbGVhci1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICAgICAgdGhpcy5j
bGVhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2NsZWFyUGFuZWwuYmlu
ZCh0aGlzKSwgZmFsc2UpOwogCisgICAgICAgIHRoaXMuX3NhdmVBc0J1dHRvbiA9IG5ldyBXZWJJ
bnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2F2ZSBhcy4u
LiIpLCAic2F2ZS1hcy1zdGF0dXMtYmFyLWl0ZW0iKTsKKyAgICAgICAgdGhpcy5fc2F2ZUFzQnV0
dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fc2F2ZUFzLmJpbmQodGhpcyksIGZh
bHNlKTsKKworICAgICAgICB0aGlzLl9sb2FkQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0
dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkIGZyb20uLi4iKSwgImxvYWQt
ZnJvbS1zdGF0dXMtYmFyLWl0ZW0iKTsKKyAgICAgICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9y
KHRoaXMuX2xvYWRCdXR0b24pOworCiAgICAgICAgIHRoaXMudG9nZ2xlRmlsdGVyQnV0dG9uID0g
bmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24odGhpcy5faGlkZVNob3J0UmVjb3Jkc1Rp
dGxlVGV4dCwgInRpbWVsaW5lLWZpbHRlci1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICAgICAgdGhp
cy50b2dnbGVGaWx0ZXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dn
bGVGaWx0ZXJCdXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKIApAQCAtMjE3LDYgKzIy
NCw2NCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMucmVjb3Jkc0NvdW50ZXIuY2xhc3NOYW1lID0gInRpbWVsaW5lLXJlY29yZHMtY291bnRl
ciI7CiAgICAgfSwKIAorICAgIF9jcmVhdGVGaWxlU2VsZWN0b3I6IGZ1bmN0aW9uKGJ1dHRvbikK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50KQorICAgICAgICAg
ICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpOwor
CisgICAgICAgIHZhciBmaWxlU2VsZWN0b3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW5wdXQiKTsKKyAgICAgICAgZmlsZVNlbGVjdG9yRWxlbWVudC50eXBlID0gImZpbGUiOwor
ICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAwOworICAgICAgICBm
aWxlU2VsZWN0b3JFbGVtZW50Lm9uY2hhbmdlID0gdGhpcy5fbG9hZEZyb21GaWxlLmJpbmQodGhp
cywgZmlsZVNlbGVjdG9yRWxlbWVudCk7CisgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGls
ZChmaWxlU2VsZWN0b3JFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVu
dCA9IGZpbGVTZWxlY3RvckVsZW1lbnQ7CisKKyAgICAgICAgYnV0dG9uLmVsZW1lbnQub25tb3Vz
ZWRvd24gPSBmaWxlU2VsZWN0b3JFbGVtZW50LmNsaWNrLmJpbmQoZmlsZVNlbGVjdG9yRWxlbWVu
dCk7CisgICAgfSwKKworICAgIF9sb2FkTmV4dENodW5rOiBmdW5jdGlvbihkYXRhLCBpbmRleCkK
KyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjAgJiYgaW5kZXggPCBkYXRhLmxl
bmd0aDsgKytpLCArK2luZGV4KQorICAgICAgICAgICAgdGhpcy5fYWRkUmVjb3JkVG9UaW1lbGlu
ZShkYXRhW2luZGV4XSk7CisKKyAgICAgICAgaWYgKGluZGV4ICE9PSBkYXRhLmxlbmd0aCkKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQodGhpcy5fbG9hZE5leHRDaHVuay5iaW5kKHRoaXMsIGRhdGEs
IGluZGV4KSwgMCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2xvYWRDb21wbGV0
ZSgpOworICAgIH0sCisKKyAgICBfbG9hZENvbXBsZXRlOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB0aGlzLl9jcmVhdGVGaWxlU2VsZWN0b3IodGhpcy5fbG9hZEJ1dHRvbik7CisgICAgfSwK
KworICAgIF9sb2FkRnJvbUZpbGU6IGZ1bmN0aW9uKGZpbGVTZWxlY3RvckVsZW1lbnQpCisgICAg
eworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoZSkgeworICAgICAgICAgICAgdmFyIGRhdGEgPSBK
U09OLnBhcnNlKGUudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgICAgICB2YXIgdmVyc2lvbiA9IGRh
dGFbMF07CisgICAgICAgICAgICB0aGlzLl9sb2FkTmV4dENodW5rKGRhdGEsIDEpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24udG9nZ2xlZCkKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuc3RvcCgpOworCisgICAgICAg
IHRoaXMuX2NsZWFyUGFuZWwoKTsKKworICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFk
ZXIoKTsKKyAgICAgICAgcmVhZGVyLm9ubG9hZCA9IG9uTG9hZC5iaW5kKHRoaXMpOworICAgICAg
ICB2YXIgZmlsZSA9IGZpbGVTZWxlY3RvckVsZW1lbnQuZmlsZXNbMF07CisgICAgICAgIHJlYWRl
ci5yZWFkQXNUZXh0KGZpbGUpOworICAgIH0sCisKKyAgICBfc2F2ZUFzOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB2YXIgbm93PSBuZXcgRGF0ZSgpOworICAgICAgICB2YXIgZGF0ZSA9IFN0
cmluZy5zcHJpbnRmKCIlNGQtJTJkLSUyZC0lMmQtJTJkIiwgbm93LmdldEZ1bGxZZWFyKCksIG5v
dy5nZXRNb250aCgpICsgMSwgbm93LmdldERhdGUoKSwgbm93LmdldEhvdXJzKCksIG5vdy5nZXRN
aW51dGVzKCkpOworICAgICAgICB2YXIgcmVjb3JkcyA9IFt3aW5kb3cubmF2aWdhdG9yLmFwcFZl
cnNpb25dLmNvbmNhdCh0aGlzLl9yYXdSZWNvcmRzKTsKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LnNhdmVBcygiVGltZWxpbmVSYXdEYXRhLSIgKyBkYXRlICsgIi5qc29uIiwgSlNPTi5z
dHJpbmdpZnkocmVjb3JkcykpOworICAgIH0sCisKICAgICBfdXBkYXRlUmVjb3Jkc0NvdW50ZXI6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ZXIudGV4dENvbnRl
bnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIG9mICVkIGNhcHR1cmVkIHJlY29yZHMgYXJl
IHZpc2libGUiLCB0aGlzLl9yb290UmVjb3JkLl92aXNpYmxlUmVjb3Jkc0NvdW50LCB0aGlzLl9y
b290UmVjb3JkLl9hbGxSZWNvcmRzQ291bnQpOwpAQCAtMzE0LDYgKzM3OSw3IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl9j
bGVhclBhbmVsKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgdGhpcy5fcmF3
UmVjb3Jkcy5wdXNoKHJlY29yZCk7CiAgICAgICAgIHRoaXMuX2lubmVyQWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQsIHRoaXMuX3Jvb3RSZWNvcmQpOwogICAgICAgICB0aGlzLl9zY2hlZHVsZVJl
ZnJlc2goKTsKICAgICB9LApAQCAtNDM1LDYgKzUwMSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfY2xlYXJQYW5lbDogZnVuY3Rpb24oKQogICAgIHsK
ICAgICAgICAgdGhpcy5fdGltZVN0YW1wUmVjb3JkcyA9IFtdOworICAgICAgICB0aGlzLl9yYXdS
ZWNvcmRzID0gW107CiAgICAgICAgIHRoaXMuX3NlbmRSZXF1ZXN0UmVjb3JkcyA9IHt9OwogICAg
ICAgICB0aGlzLl9zY2hlZHVsZWRSZXNvdXJjZVJlcXVlc3RzID0ge307CiAgICAgICAgIHRoaXMu
X3RpbWVyUmVjb3JkcyA9IHt9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IDgwMzZjYWMuLjA4NjNmOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTM4NzIsNiAr
Mzg3MiwxNCBAQCBib2R5LmluYWN0aXZlIGxpLnNlbGVjdGVkIC5idWJibGUuc2VhcmNoLW1hdGNo
ZXMgewogICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogLTEyOHB4IC0yNHB4OwogfQogCisuc2F2
ZS1hcy1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKKyAgICAtd2Via2l0LW1hc2stcG9zaXRpb246
IC02NHB4IC00OHB4OworfQorCisubG9hZC1mcm9tLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGggewor
ICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogLTk2cHggLTQ4cHg7Cit9CisKIC50aW1lbGluZS1y
ZWNvcmRzLWNvdW50ZXIsIC5zdG9yYWdlLWFwcGxpY2F0aW9uLWNhY2hlLXN0YXR1cywgLnN0b3Jh
Z2UtYXBwbGljYXRpb24tY2FjaGUtY29ubmVjdGl2aXR5IHsKICAgICBmb250LXNpemU6IDExcHg7
CiAgICAgdGV4dC1zaGFkb3c6IHdoaXRlIDAgMXB4IDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101137</attachid>
            <date>2011-07-18 01:41:52 -0700</date>
            <delta_ts>2011-07-18 10:21:38 -0700</delta_ts>
            <desc>[patch] third version with binary changes.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22322</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZTI0M2M0Li45MTAxMWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDct
MTUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGltcGxlbWVudCBpbXBvcnQvZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDct
MTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hyb21pdW0g
cmViYXNlbGluZXMgYWZ0ZXIgcjkxMTU4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMDQwYzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUZXN0cyB0aGUgVGltZWxpbmUgc2F2ZS9sb2FkIGZ1bmN0aW9uYWxpdHkuCisK
K3Bhc3NlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTQxMDEyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LWxvYWQuaHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJ0aW1lbGluZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1
bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInRpbWVsaW5lIik7
CisgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSwgIl9sb2FkQ29tcGxldGUiLCBsb2FkZWQpOworICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5zYXZlQXMgPSBzYXZlQXM7CisgICAgdmFyIGRhdGEgPSBbCisgICAgICAgIHsic3Rh
cnRUaW1lIjoxMzEwNzQ5ODU0MzE2Ljg0MDgsImRhdGEiOnsiaWRlbnRpZmllciI6NDMsInVybCI6
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJS
ZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0b3RhbEhlYXBTaXpl
Ijo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMTguOTMyOSwiZGF0
YSI6eyJpZGVudGlmaWVyIjo0Mywic3RhdHVzQ29kZSI6MjAwLCJtaW1lVHlwZSI6InRleHQvaHRt
bCJ9LCJjaGlsZHJlbiI6W10sImVuZFRpbWUiOjEzMTA3NDk4NTUxMTguOTY4LCJ0eXBlIjoiUmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2UiLCJ1c2VkSGVhcFNpemUiOjE4MTk5MzYsInRvdGFsSGVhcFNp
emUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzNi4yNDUsImRh
dGEiOnsiaWRlbnRpZmllciI6NDQsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvbWFp
bi5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0
IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAg
ICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzYuNjU1LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ1
LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2dyZWVuLmNzcyIsInJlcXVlc3RNZXRo
b2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIz
NjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMx
MDc0OTg1NTEzNy4wMjMsImRhdGEiOnsiaWRlbnRpZmllciI6NDYsInVybCI6Imh0dHA6Ly93d3cu
d2Via2l0Lm9yZy9jc3MvYmx1ZS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJS
ZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXpl
Ijo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzcuMzQyLCJkYXRh
Ijp7ImlkZW50aWZpZXIiOjQ3LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL3llbGxv
dy5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0
IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAg
ICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzcuNjU2LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ4
LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL3BpbmsuY3NzIiwicmVxdWVzdE1ldGhv
ZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2
NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEw
NzQ5ODU1MTM3Ljk4OSwiZGF0YSI6eyJpZGVudGlmaWVyIjo0OSwidXJsIjoiaHR0cDovL3d3dy53
ZWJraXQub3JnL2Nzcy9wdXJwbGUuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoi
UmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6
ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM4LjMwOCwiZGF0
YSI6eyJpZGVudGlmaWVyIjo1MCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ncmF5
LmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3Qi
LCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9XTsKKworICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMudGltZWxpbmUuX2xvYWROZXh0Q2h1bmsoZGF0YSwgMCk7CisK
KyAgICBmdW5jdGlvbiBsb2FkZWQoKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVs
cy50aW1lbGluZS5fc2F2ZUFzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2F2ZUFzKG5hbWUs
IHNhdmVEYXRhKQorICAgIHsKKyAgICAgICAgc2F2ZURhdGEgPSBKU09OLnBhcnNlKHNhdmVEYXRh
KTsKKyAgICAgICAgc2F2ZURhdGEuc2hpZnQoKTsvLyBzdHJpcCB2ZXJzaW9uIGluZm8KKyAgICAg
ICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGEpID09IEpTT04uc3RyaW5naWZ5KHNhdmVEYXRhKSkK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwYXNzZWQiKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNhdmVkIGRhdGEgaXMg
bm90IGVxdWFsIHRvIHJlc3RvcmVkIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+CitUZXN0cyB0aGUgVGltZWxpbmUgc2F2ZS9sb2FkIGZ1bmN0aW9uYWxp
dHkuCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZTY4NTkzLi5mZjM4
M2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDctMTUgIElseWEgVGlraG9u
b3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGlt
cGxlbWVudCBpbXBvcnQvZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtbG9hZC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdl
cy9zdGF0dXNiYXJCdXR0b25HbHlwaHMucG5nOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQgc3Rh
dHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlLl9jcmVhdGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZS5fY3JlYXRlRmlsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fbG9hZE5leHRDaHVuayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2xvYWRGcm9tKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fc2F2ZUFzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fYWRkUmVjb3JkVG9UaW1l
bGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2Ns
ZWFyUGFuZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoK
KyAgICAgICAgKC5zYXZlLWFzLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGgpOgorICAgICAgICAoLmxv
YWQtZnJvbS1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoKToKKwogMjAxMS0wNy0xNyAgTHVrZSBNYWNw
aGVyc29uICAgPG1hY3BoZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBD
U1NQcm9wZXJ0eUN1cnNvciBpbiBDU1NTdHlsZUFwcGx5UHJvcGVydHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3N0YXR1c2JhckJ1dHRvbkds
eXBocy5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9zdGF0
dXNiYXJCdXR0b25HbHlwaHMucG5nCmluZGV4IGM0OTg3ZjQxMjA5MzBkNjhkMTcxZjJmMmZmMjJl
ODdkNmJhMmYyZjUuLjZkNjNiYjA1NzQ1MTIzNzIwMThlNWU4MWZkM2VmZWE0MTUzOTFmNGUgMTAw
NjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgNDU0OAp6Y21ae0hjUmJWJntRb1V5JDAwbDhvVntm
VyooOXNYTExeQmtOQG50UU0pblJCODdaPEl2Ym1FU01JYEkmRD5MKHUKemRGT29se0M8emBwV29O
KHBWI2E0Yz5lbnd1UmxzMyl6ZF5VPmRwKS1AWjA3bGhNPT9teTBEYChHaExWcTBNUn0qCnp2b05C
YXJlJEd+PUZvVnhDO3xjQFprUVNCKiM9Sy16SjIhNlp0UXVsP3o4NUIyd3BGUkh7NzRfdzhJU2E3
RSskaAp6KSVOYVgkPlMhQFk8IXVmaVFYfmVrayR0S2t3QkgocWZmezFoVGpifjZTX2MrcWY/eWE9
MDMxNSVBWDl4Xn5aYG4Kek1KaGdhRHpAUT5rR2pab18mND0qZFRgbHEzK1B4R29GeHl1KXh2SnlA
T3J6X0xDIWxwJUFmWnJtPil1IU1kfXc+CnpDeiYqT3BPQGZaNVdPN3BaLWR6Vz98OUdxV2RwPGda
dGhILVFUaFJSTzN2dmZaVUpYYGg3Mz9KZFhSY09MTFRHPQp6RiMpJXNPVk1vK1MmSGwwI3F5KHsx
TTJ3Q0Z7U2tBcT16b1k8SFhVMlpJOH16NjlGUzR7aUxBUXNqZ1laajUkcl4KenUya3tYODkhclVZ
Iz1jYWNoMzdCRmJRX3YjQGdQZjVfdDFiSjQzMn1qQWxSUChoO2t8YDZHfkRwV2BOYjhUSEtKCnp2
UFNWN1pHPzAqUWBGJVoyUGRRZz9OVjJuP0dmTl85ZiFBeUM7KVJjcylIP0lSSHl0UHUzQ3RyUChL
NmxmPF9RbAp6cXt9cXdwXn4ydEsoWmlgYWhZfTA2OD9nail4XyM9cn5DfCsoN1UkSE8qfkppS2wo
T3pVP2l2WGF4cE1LV2Q0JSMKekNJVTIjVU9AfV5wNiNiTThvKHooVkotTVhWbjRjfGg0Ozl7bGh0
d1k+STF+dXNpU2IpbThGe08yaytSNCRHQXtvCnokUWU4dmRpfTtyUHxhYX1KPWZ9JGZSb0lLaGZr
O3tiVEQ8cWtxMUNyUVBIRmhFdyNvWT09fE9+O0ZGa2t7U088Zgp6LVBrazwmIXxEVTV1akFXOX5S
LSZHOGA/S0pxX2VyS0Zzb247YjxWRlolRGtXPWttP3kmfDdiZERQdElWUW5wbWcKekhWc3ZZWG49
alFmVWVKMGAoa1Y7Z2p8RW8hTlMzcExfSH1BUTgwaktIUnBqQV5qdT54K00+KkIyOWAmZ0Mkd0co
Cno/M3ZKdFRgcEoqVzFIQ3k/bXtoXjh8Y2I+Ky1OZ0F2ME59Q0khKEdsK0xgbWxPfEApPWFEfmZO
eWkyIVVCQypWTQp6JjhQQlRlYGdYVyhkKkNNRkR3QT1HTFRGMkJab0R4bEhlRkJKODJrcXpDZ0ts
QkxLeHMpUkZzKG52b082VU9fY0cKejU0diNRdEd4aUZDYFpqYFVSdyZobFNaXiFKUU4wS2ZqMWpF
eGtkPnpZe2FwLXkpQWV2cWVQcHpZaFo4YilHeVckCnpWVj85V1IjJnhucD0/QjFtNkoxQmE2eVJL
OHJGKDVhQkN+digkdUExLUxJcGorR0M/OCNWQkleTHhpWW50YDItNAp6O3FTNTt1ayM3STEtIU11
ZHlNVngwOShoeTxafjcjVT1tRlI/WVZ6ZUc+NzxMWjR0VEpCWmVuYVg4PmRoJTA4NkQKeldFVXAq
c2FYaXB7PT94cCtNaHYhJSNpTTkyX0ZReFc8MWt5K1E0Ql5Za3pYPEVJXlE/RW49ayZeKjRmKl96
dCg8CnpTJntNPkU0X1UtdUVqIXt4RnAmOD51VU8/SDs3QyRwOXAzOUNhd2pDZ19jNUN5aTZtN3tw
M2lQcT1oci1eJlh0dwp6OU9JdUJoTG1gSj09e1hVSk1hPFVpMG49TEA/Q08+Q18/a0g8O0wxeVol
bGtYQCokfSlfKnFjZ14kcUooe19fP0kKelkzeE8lITImPDtjMEQ0PkxudVJtUDZnUmZGZX4lWjYy
djhFd0N4UHZrdE4xX1BNOW9pRkh7aT1vbWdpZzkqa25OCnolN2JHKXhgNFNYbnloMGIxJmZVbEZP
YjNTVW1aOTVOWCoyYGllMGVXc19ZYGp5Z2d2UiY/QFY5VCU1ZGJRKz1VYAp6QTxQcWglU0NjIXlz
NDEraGxidXMmJXJ7c0wjIUkzYUxtKDQ8dSshTGYzWGlWc3BNbyNxNzV9U1lqJTc0TDF5UlUKekxL
RUolWGo+dXo7ZkN8ZEZGNHNBQGhvZSYxPXJEYSVAZXdRPU5XRlleaTI7VnpjPXJJPmcoTU11YGJz
ZCU4d0RaCnpRTn16TWBQY2N3a1ooWEJVb1cmS1pXT0VHJCh2dmlWS2ZFTzc0bzsoT1h7Y18/T3hu
YlhJQF9CJSVeaktQJVpRSwp6RjQoa0dyK0kkeGRoYTUjU01wVEFaSm9YRkt+ODRHZzM+NzdKe0Aj
e1VNRCs+VnlgWTQrPHJCQlBJUCtaKEB+QzQKekNSIXV7aXgxeit0KXskdnZQRDsjem1fQWs1REJX
N3tIfmQzSkgrXkx5QmswISt4N1dve1k0LVZoMSg+Q1VDRiMqCnptVipaZEkmZmJ1LSs0b3U1VSZ2
OXFtfGtNP0dCbV5nY2VidFlDM3o5RkAmISVrJmBhWGVaISFRNTZ+ciUyXnkoZQp6dU1wZFoyMSo5
Kkx5alQjfDdvUy1xb04ocWQ0P0ZhIWhmPFUwaFokVUtTdHBIQk5gO1l5ZEc7VkJgNCZCYWVkPXcK
emQ+I1dZRD8zPitTQ2JVJGxOSUJlMjJ3Jjs2Ml5gQytIb1ZiMnBmQk0tS0AhcXZGVzsxOVI2fSVP
bWZfPUVAQWF6CnpFKFZSZj9XVXU7XzlLc0JyTDh0Wj5KZT5yajJLbERtUVhpNlR2TiR3NSk+NGFP
UzA4Y3tZd0RYSnFATylMPztgTQp6JHBpZ3VncGFjWitTPU1uTklIQGJRNGt+ZStsdE8yOVJDViZf
I1MxM1o7LUdxTWZyMWcrdVV6NzsqSm82RlN9I1cKelI5VnpTNzE3UXxDfFkpeGpwRlVMT1JvMHUx
I093WEp5UiNDSUpLPjMofVcraVZJLX09UjlMZjBLKThzaWo2RUwkCno1PzZCNENDTmw5NygjY0gl
SjNYKDd1XnNqK3p8eiEyaG5KQmkmQDZObTVlKkJxWlMyPGNkd2g2XmhPYlVZdnZFYQp6YnNheXNS
QGh5OzVhbGJYczwzU0RDWkB7ZlVrbTRjMnZOcDJ0TlpUIzFhMipQTm9TeTVJfHpYWEFwJHImJGVH
NU8KekVmbUQ8RiRraF5ATkt2WT9aMyt2QD9GditQTWMqXnZaI35QNythUWxJRW4wRl44Nj00THo7
WlRkdGZyZ2ZATjRiCnpoYVhEZUpgeTNgUkhXLSRyPTIhakpIVEF2JVR3VjYtLVYkUz9DX0VGY0h1
IW1PX0BpbkZKOFBUVlBSJkxtQ05iQgp6U3BVdVUhR20/I3RTZHA7UzNjPFl4TWZpRF5ZZl8kSGxp
VElAaEshJSQyWHtUN0B9JlplVFZhOEtnZ1NnJT9JdXIKemshLWlCQEJXO1pGVHZaM19Ab2dzMFZ3
aVFSTHlDXiohZyUrc083bERvTEU/c3R4Y3YkZzdscnw/WDJKWnVlfWgjCnplWHBZaUUoVjVNeXIt
UHUjbnZFNFFtTypLcT91TmJEWjxaTjR8SGY5WkBUO0JDeDdxSDd9YzxeYURUX0BSd3w8Rgp6YXJH
dUFJSjx4OHdTaj5fcVdPb1AwbFViI09xMkc/N1ktT1NZa2UpRW5lKFcxTCN1NmA1MnlvVntkXk4m
QSghb2gKenk2IyVuY3p4KmVPPUtkeE1TTUdIcGQ0O1Y0VFZSMT80NT5ZWTF8dz97Nk9kVGBmdH5X
ayYpTyFZY0YpUnlCQGl1Cno1cVk/P2p6cmBlJkNLeFImPmRAY2NrWFp0cmdNIyQ/SU5Bb2kjRjt6
SGIyPV8tXkBNdks0bEc0UzVRIXg1WjR7dgp6YTJDQSFXb09KQEYzME59NlRtZEV4dz84SkZmS3F+
MT19T0JJcTNPcl8tfiZhd2ZQJTlrd1JXdkN3eHYjbilJQTgKel50O3p1ZE5YVEY1fTVuYT1Ycl8w
WnY+e29Zdzd2b2dZe2AzUHRsNF52QC1xJWMjSjJgYjUyISZLS3gtY3VZcFJ+Cno9cnEtRFpIQzJn
SGROKmJjXz9kTmc9ZUsyTXBaJEF1VVR9WVkmPFRZZHh8bXhsKzMzdFQ3PnMwMV8+SGh5QkpBSAp6
WGBaKnU0cG8kaCtFRGQ1YFhkTi0wTUI9YU14TEhnVXJoS189fEBVTyElaXRJYXkrZUE4NVlNYV91
WX4raEg+c34KenkybF4jcGh2Tk5pen5KckxGS0g4aD98WitHWSVmUSU2VHJuRVRqVH45Y3RyNnlP
NXY2Kk12KE5NWmVsI3p2V3EoCnohNWtwdDxvbitQV0IxTjJAWEF2JntEYUBTYGlPbm4tMTJPdDN1
Mz5gTzBAZz1nRGRWJGZUSFVEQWBRPDN7IyhDUgp6ekppfFZ3dX18P0RMPWBKTiZOalM1dmlZVWlf
ZHU4MlVicjkoMlJjRjszWEc1dH14QkJpdTxBcyYxTFhFdWV3OW8Keit4PHlLLSFzeXg5bUomdCtt
NCVHOUYrWkRsJUdPfWVgVW45YSNKO0g4RV8ya28mOVJFKmtxOSRPN0hpWUFrPktACnpXMSlGNlFI
cVIzeVNwYitfSCZ9fT84THVLJFBiWEF5KmNBWV5kRkdoSihAWTNwfENeUW4heTZadUpyeDZyREJa
fQp6UWAzUVRQd3kqQnh2OEp9emtBSXFTREFPck19SllPP0FRcV9eSCpiRFJ4X21ZXlZBfkdLKypr
SnVKd0MpRlpQWSkKeikwUlo3ZlcwWFd6MjlXYF96cWdQeThObS1GeSE8dlZHTihlQ01pRFdAa0V0
OTREeCtXWGhFeT04ZnY9fFclY2hgCnpDRD1aeF9eNzNBWEx3K1FpO19qZythYTs8ezhDMmA0ZjRQ
MylqYmBZe1J1d2sqRiU4VXIzZ2oqamN+Y2AkMDJnXwp6alQxZWpGcyFtcE91I19MZENhKnZAYz5k
MjtyJTUhI0Uoc1lOeXt3SVNTcEJYezlIJjd7JilxR3pzN2FMNmdtWkUKejtgVUlEd3wmZClrPU1H
WnI4bWJPekJtUGI1eyFPZTdFJHZ4R2A0LUk2VXQ5ZDtUd21xQCk0aEpmYUkoKTdVd3UkCnpDcHBE
YSVGUE9lQTRYS09WZGN3VEoqIyZTTHBoPyM1aT9lIzU8TUVqSVoxYFMwNnllSSpReDYlU3NnZE1s
PzBlfQp6R1dLaj5qMm58YkU/VD09NjFsfjMpUmRHSStVY3BPJmBneDEqNWB9KG0hNCpvd1FwWWpj
ayRHSnN0WWRaM1JDIVMKekJRTklyWCgmREU7PXk2dUNuYU9eLUcxSiV4NDdQRCk8cGF8O2NLJX5s
I2xqWXNUPXJsb0F9TntMPlduSG49KmszCnojSEJ1KT0+NDJkczhQc0hjblIoZjlCISl4RWNOS2Zx
RjF3M3tqQW1xP3UzP3oqaEpKMyFuPjR9OzJXQl82M3thfQp6c08zYGYybSVaSUN2alNQU0VEKXFY
bU5wO1B1VWhfVU45R31FTTVxJSs3PDEpX2M9SEVPP2IqKkBtTypoNCQlbiUKenVZMCVDOT9kNDEl
ZHU3byhHdzBIYFJqRGdMck9vaVl2P0REIXg7STAzNTBvdj1faFA3ZnZ+e3VPfkZfSFhoPmB3Cnpm
fF43Z2lrc35vPDJET3ljXiQ/RVJVKV54d2dRYjBCJU81PzJxUG1HMzMwR2h6ZiRGKzxZTTd+cXlS
Uj9OX2VYMwp6aWBzKFk/P2M9fEV7SlZecDBOdXV6VGc1MDsmRXlRKm5aSHVWfEZ3VlpSMW5HMCMq
WTl1OFpuUD5jKzl7bkBTMjIKem5SeVFCQkhhMkNeclUtNDtDfCg9QW0wbjtPQiUtWE5oZVh7JWRA
PyUwUChASkd+VGRhSmYrLVAweHp3TVoxe2gjCnpQbSpfKj9TRWRMcVB1JlklfnMraXM4e3FAZ0l0
eUkmKjVSfVRZVz1obHFvd3tsSCpGbUxLTmtpNnY9NHF0SFhhRgp6PUhya2ZDUV9sfFUzN1coell5
UmlqSmxJXzlJM2NgWjV8O15XJnt7ZSp1Qn4ha3wxczh7aUsja3tDPV83RDEodUkKemlubT5YdjJ0
TW5PLWNSc1ZHSTNfLXAqZW1vQUlFNHl3PW5xd3tDLSQjWT1wKFRfOEYwajV8JmpOMyN5M2RtSngm
CnohPWhAY15KaURwQjltZUlfdWYtQEdYfGpnNSFZKlg9M0NuckZrY1UhNjNfV0tOXiQpaU5oYnkr
RGB3VyhtQCRhSAp6WVhKUTVLfGRyb0paP2FJKmRRQy0jLVlJbEFHYVAmSkZFbUw8KD1DZEhLdzxR
YClpKVh2Z0ZWbng9R1JFQ0A1OFQKemlgblFqeSRIcnl3MU9JPnt4cj1IQjJGKTdfKndNNHAxI3Vg
RD80Nz4yMkpvZEc4QEdUPyZMflJfSTxhTFBBT3BrCnorZ0I5RTZYTXc2ZThQKWBSeypYRTVWTlpB
a2V2ODI7S15EaigpQypabzAtcFVTdkZaaS19UFAkUWVzekFAQW1USwp6JEN5SlUzX1dIXk8hcVRm
VlNuIz1eVCluRmVkOyVfUHNEdHw1R2N8ayhOQlJwTmc0e3AkKDlAJEdDaHg4LUdHKG0KemRtR2dr
azhZPypNQlU0MGRTYEI9bCo/dGxUZnVJKnVQcV5hWUxfPDErcj1uUUNXZm9JZWNle2BRY047VTVP
NDx9CnpVczAoTUtXMXc2RmZzdW4xNkdBMT82WTh1TlVWLTlTNThjUyUqPEJXek91JnIxbHtxNiZi
NE5hKypDRWAxc0Q2QAp6RHxKQVg7X15GM2BJNHR7ZyE+dFY4M3A/RTNUKlY4NjMzPzxtQTxVcm1B
QnZyPnZlI15TfVV1Zzx4PSRKUFZFQyYKekkldElNUDFjWkE+Pzxtem4oZEU2dDd7UUFATmg5OEAo
NWFHRSReMl9LN08ybT5pdFMoIzlAVHt6eGhRcnBIVllkCnpYUEd5MEReJUJ5Ymc8djBYX292bl92
MEhUQHFWM1lPXz0hTGwyVS1MKSVDdkZpOyF2P2k4by07cz5vSyVYZU1OcQp6OG90UVkxeiZCTmwt
Nz9KZ2xxN3VkSi1mcigmdXNzbW5pMmFhX3FVNVN8Xj17QERGdG0leTU3aiMzVUZNMz1OIXsKentU
VnM2cHwrJnNZYEdsN2xoNSgrYzRtUlRxQVJeWlMoTD1AZFljcSlNZjQ2K0V1SCF+dDt3VWFZWj4j
IWdoZDxrCnpCdD1HJW0tQzRNJWAqJSMqYFpyS1FgRWF8RUEpP0dJLSkyaUwldX5OUTMoelUkPkM5
Tlh5d2YtTnlFcHx2c1BlTAp6OTJkcmFMcmdmdDFvUWV3JCEjRkJQZDhAJl5BX0F2cUA5X2hBPSQp
NFZmMGZ9eXxxX3s2REdWJmRTPEFpbFImMz4KeklwKzJaZzRrVTclQU1eU2RDNlFRVVphOGllZjRl
QD16TjBESkB2e2YxRExhIVBqX0k5eENoTDAtfFcrc08+VDdsCnpNX0dRd1A2RSNObU9IXmw+NiMy
fXFZODx2RiVgYGFRO3RoNnxFJX1eK3E/ZUNRWmVUa2VSfUpFdzY+K09tKjdZawpiJERjdExgUXl4
PGFOR0JUeyp7QExyRDMoY1RqYykkSiZDTnYKCmRlbHRhIDM4NDEKemNtYSk5UzUlVj12OzlJc21u
Z2w3Z2F7ZitzM0omSE5+QjdXQWAlYmBoIysxPDVlemo2PHclIUs1Q0h7SWsmYTNXCno8cFRpPW4x
RCE4NGd7JE8yfXRrZD1lKnRaLTxMWk5kKUFzWTQ+Tmx8PzN2ZV5eUXgoNUdnNyQoWXRBfXo1ZlNi
dAp6KlJLSVVzMDt2KnE1KXYlPXMzPjxLIygjM3tCe0VYRWVaZSM8SWBRY3ReeG8mKTZfYGNqX3tN
MkFDaHw3VWdHMHIKenl5XzFiWFg+eGtYKXs8T1FiNUpyaFJhbW4+PWQ2Wm4qI2hzRyo+Pyo4aV4h
aUkldU04NUhWYG1BfF9FVVBYKmFwCnohPXlNTCNmY1prVSRLX3tySTB8Pm1XRXdxZGE1bC17QEVK
SXY3fXFqbWxsNEV7YjBPJDxKMHNpWSZOS0VZUDV9Xgp6ZU42eV5OKz4jRTZkPVokUTFsdipgYF9e
V0xQJkRkcykrbGZ0MiQ2ano4JW1FQ2tUeEU8TkFXZkJEZHJ0QyNYVFQKekJ8fU1IITJ4Zyk+YDw3
fWx+VCVfUXZJPEIoYnt6e2h8XnNveD1rZDRPTngwPUhpOVVASWMzbDRATnA0cCF5eUs5CnolZm9L
SkBaazJeWWlKfSNjfX5uYHtSVEw1WGtJY2pgVFMmd3Vebz4zIVlvOUpYT0hDcnhySD5nPnIpVW5i
TDB4ZAp6I3RgdUFGWEtlbT10bkImcGxJO2k1MnRCcmY7ITQqKGlxR0dXNWs1UGNDY19KTDw3UTJP
N3lAMjtuSChVTTFMZzMKej1DKExYNjRWIVJoT0hvLWotQjM8KHY5ZlBZQURudG00ST1gdCYwWTxL
V1lBPElgRjZSNHVmIztWUk97QmxqSkUtCnpZbDhMSnBtdDxFYnZfa3c1eDl7WiFzeyUkb29nT25J
STJZfHQtT2JoQ1J7ZV50YVJLKTJWOSRGKFMkcG1HbmluMgp6O2NpflpUb1dfbmZ0NF5aX3VOQWN3
K2lDWkhYU0pCXm9lanUhWWhrenFIKDQ4USE9MnEoSUp3Q2grRz1hY0ROWjYKenlpc3M4ckgzR35D
dkg2QVNvZD9vZ0Q/VEc/OHxnPzhILSteKnZjQmxQYns/dUZeO18rISReTSorX0ZWM1NBY1k9Cnot
YTF6SGpIWSooKSRjZUNYKEp3UjR9MWkrTmhoNz5IKEZNXmxJSntucz04VyZxZFpRUklLPyQjRmA+
TDtwKyQ2YQp6Z1JFbXshdElOI1JrYSpETHd5PGNUemtQYXR5NE96SWBWcjE8ZGRYfiZ+IUtrcnRH
IWhraHxRKiRLTihuK2M7SkQKemN7WHZ2bj4tWn16JmIrPWFBNDctdCE+PX0zfHA9byFBP3RQUDhP
ZkprSW07YFlrMTZBNUljJlJ5a1A7Rz51S2E5CnpiQihyeFd0QGBebEhBMDRKJDt5SzhzbXx8ekpI
Q2poTihhcWlqK2czUSRAWXI3PnAjWilgfDw2S05fMmtfMmB0LQp6KWZ3Ki11P0RKU0dtZmVfd3xm
V05rMEt+SDRyWjMtc3o9bFpTVSFmQ3YpKlp3ayV1XitnSUh7UlRqekROeU5XTSgKentSa19ydE83
PiNXKiQtZDxiZmB1V3JMa2FQbTxxNE5zIXYxXldEJWBIekwyXmB5MS1LWkpVZk1FXmZhPig8VHp8
CnpRJGphUGYlRHN5TmA5ZSY5Uil9cys2cEtPYFVFSV9HfW0yeil1fGlkeTIqKGs8IWJuNGF9dTMy
VjFELXwybjsqQAp6TW4+aSlRR1N0cWB4NTwmfDVMZWFWXjxGaktNZE91NmB+Mjw3V1lGZ1V4fF90
aUJjb0VeUipyb2hGZH58SCpjQkgKemd9b182Jjlsbzl5NjdfYGBoJVU7QyhhVCtxVCR0Q3g5ZCF2
Plk7OyomWU9zWkJQdj1KTl5JXyp2XnQlb1haOShqCnomIyo9NFRXZzJzIzRFXyotVGQlXk9hcXV6
IW9rYilJQFUmWmV+U31Sek1HRnJlfCNqJlRnSn12YWU+MXZtYFRrdQp6ZGs0UThkKF9OYkNOUjRJ
cmRfYHIhUE9ePVpoamFpKCNwPTFDZlh+dmhuQzRTZld0WDhRSSNpOE44O1pxV2NYMCQKelM/REkp
V3VnSlRIK2hDMk87PU1kbWhQPnJqUXo0bG5uO1EzP31rY0RndFIhYlEqc3c+b01TZT5UVXRWRkx8
cG5UCnp0e3FhO2Y5ZXpLUVp+UkFLNUpUWXE8NkNwX21PcENwWnR3TylveWR0PC1wRj5vMGF4anl3
Xz1kbH4xQG0+KD0magp6RHpWKjUtWT1rOHgtUTg8PlZDYzIzNCZxeXA/JUdwPWpFKWBQbDhCY3Jt
aDFRP289VUdsc3lvXihUej1pWCZjT3UKejg5amxLKHUlX1pLWkhXRi1YKWVDNkF2d3FmSU9IRmZj
YmV2alhLSDtKPnpkVHo4PVM1eHl5UG9Hbz4lajxFWnpaCnoyWTU+V2xtYTZgcjVnOWhza0FtNStU
el5id2kyQUdMPEZxYnVIfmtvYHEtTFc9YXdHbUY0S3VtbzkwI0p5VkJNIQp6fEgpZGo3YG9ZV0hv
QVNgI2R+fnBMdndNbis0ZndgaGt9YSRfUWVeJCNQMHczSXZlfHJiSlQ+I0JLMD1Za1NmbFEKeip1
R2R0RlcjZT5FTm1Ub0dyVm4xM34+Oz1nMFcjISgyeyZzZ3B3bUF7NUtIKXlRblRsPlpYfDB8Mm5M
PmorSzU8Cnp1aE08dSs4MXVvenY1THEtPklCaXQ/UiF6OSh8bn08MUQ7dyFjME9YUnZYQF95U0Z+
MXVyWUchbD0xRG1NbXRLdQp6bzROS1FAeUo+P3pUbHpmRGoxcHVabiVgZik2MCRDN1plZC1lZlhA
bkprLStHKjRGYUQ4QFRxeU5EOHJiRmw9YCkKekswbz0qd1l0WU9aLVhEISl6dH5Ua3NAaEJpSmtD
SE5kYyQqQiRZOW1zZzF5ZmtMQCE5YjVFLSMmKGZRRGBWYnVzCnp1a0lBYEF6JHJLI2o7UV5HRz1n
PEZJPkhQYEBtcnsybH12IUNkdklicUh3N3hnanskNFhZIyFVRSg0V2BgTlJ8Mgp6WG9yKiY9VDBU
aE1EemRpQnohdEA7dHZ0QzhkKUxZOWZTO312aFhZfUY3ZytuIX5gK0BIaGRhQk5oPFFjN1ooMH0K
ek5ORzYpX2FjbHg2VlFVRGYmIzZ2Qms/TVEoNXR3K0lDd1ZEZitscn5Yd2IyTmArdjskQDlQVS16
Uzt8YkhlayFoCnpCfHNRNTdvIU10USoyMyt4NmctcEojUDdqP0s4RiErSkhfZHgmekBwbDtmPmBT
SSg5fjxmYUBjYn00ZjIpSComJQp6OSt7REhfIyhwJlJlfl59ekYhU1UmRWVHITwtVWJNQmNFQG9A
cTttQDIjZmV5SC1sS2xfd1VtUnQ9JSpsdHlvSzIKemA7e1A5WT98cT54cSF5M28keUZZeStZVU1l
OURXOF93VjFNZVlsc1kkVmY/QzR0P35yKWpKWldPKnx6d0AqdHVqCnpqJEBPeCtrSDslZiRlUSNl
ciRlJXhCRy0mMGFVVHJYTFZGc2NzWVhFaTt4bU1vOSF5Yj4rSTVUWkFzQn5JKmBLZwp6YiZjO1ll
JGFrMzFsdjhvVSsxYFUpVU5vUWJ5PVBuOSlzX0RGWFMmWV52ZTl0MDlnan1XIThIbj13PWFEJnBs
YlQKek1CdCs0aWR5JHtJO2Azbm1CZUgrcEp2bk5scm5AQHZNPGN1a3NhQF9qRyspYS1ONnp0SWVf
ezVVXzR7V29VSEJoCnpMYXdPcy12UEhtP0pWe2slKmtVRWVhRXw+aUZtfm9yZ2xQRHYhWFNuY3hK
N1YwPzt5YTIoPUJMcUBCMENvYG4kewp6JTV9fiE+bEYkb2BZSFVWJT1iQDtXMm9LTm1Zai1TI2Mz
SmJpYispQyp0PnV5biNNMD1jU2dSSSZJSWJ9PiNmJGkKenRhUC1BSXFZWT54NC08JDtsSnVIOTFH
cSgjSipfKUIqcnJxITFgKV98RG4lJGMrT3hsOyljPz8mclcjfFpARXpQCnpiY3lRbCt2Pmx9Qn50
bUB5MSpZWnpqWkBGRX5aNmliT09oLUpkcj5iUCZ3eSh4Vz5yX2FQJVg4eUxpKlFPNkheJgp6e147
M0E8TjQwOVEwYn1sTFI2c3xLa1h9VW5Fc3B5VD5zS1NZdl90bHd3QT43cWZGQHkrZnQwaUo+YEgh
QjxeakkKelpSZWZST3RgR2F1PX1nUiF9RVNCZWowVCRCUyhNb1Q0S3JzZDdUbCtmMnhpcWdiY1Vw
Y09XMGVZeyVEIWFxPzY3CnoyKnUxbWZjVkxBfDdxRWw0ZC1vQD4lIVVVNTM/QDhsZ294alNAdTho
azVASWxrKXc8MDJ2UkxBeV98X1lvYHhObAp6d3A/NylXMFhxRyUza0AxPGI8cnV4a01XP3lGNzd3
T1NlK15yaEtpMVNPXylKPmplTHx2fkVTK09NMVY0bUppS0gKem40SUEyN2hoPDZKX290eyhubyl7
WVo0amM1dzBZVz5BRGM/RWphMSVBYXw8SWBNbDhGNndkIUtzMkpQR0wwI1ZHCnpVaX10ayZ8SWBK
KGhhOFNORWcyNHFrU2Nze1ZFOU5jSkgtbzhwMi1lK0kwK05QJX08YCFTN3dqOytvSllqYyN5QQp6
WEBqM3VpZEJpWFVSZDIjYm9oenBvPXgxU042Zk5sZ3lHTkQjfEVVOzxIVTIkZ3xSIz02UH1+VFpR
R1lJVyg7TGwKek8tI0IhVTZofCl6MUFfKmF9NzZvJExWZko4fFA9OGB3PiVgQHF4b1V2KW5qWEwk
JUFuLXp7WH5oY15Edks3dz9lCnpgWSFVdnR1PnUwS35jd1c0Uj4rOTxzU1FaXyp+KEk+YCE+Wj1f
NTxgLVh9NTJNSSlgJGRpOVozQHxfK2RuRl9FQgp6KF82cS1IbSY5Vig4LSpfdj9jR3w+KlNMXjdk
ZVFsP0Ekc2k9dml5PnBuWGs7aDwkIyFhQFAwUFJ8V3NXTSh+JWUKejlEUWJaUVReSz5MeTRBQyF4
S21wUzUxbWBrJW1WO2E+QExOaEYhPzN5cWNhWThjWEhHbyh3VlcqYiVOcTQ9TjMlCnp2Y0ZeWCgm
I1FmUmk+cmR0QCZeaTU4TFY3UFYqVHg/ZE5pKXY0bXN3aElfQ304c0gpNVNgJFF5V05vSTBQSVJD
Vwp6bWRldjtsJjtSSU9qZmE0Y3BxbCshKD45RSN3YVQ/WVZidVMqYis2JkJadSYmNTwkYztueXZ8
N1RBNV9ySE85OXwKejhMczNqNDR6NTYhLXpBN1Z8SFBpZnNwJVVSYUk/RElYeDlnTVh4N2RiUD9O
QmJaeiVOeUg3SSNAK0YyMyMzND1YCnpPbz4yckgqUHBtbXp8S1lpMCE8V0o2Xms9JmdCYUFPWDkl
MjQtcDt9KWhKQ3hlLVAmcU84cnNMUnFzXlprPVV9UAp6Zm0/dCktbCF6ZjZBbyZNbHxBRkxBVEFx
NF8zcS1WUWNNJHlHflVnWk4hNnsxZk5iJWFGQXQ8IU57dio4QkBYe2kKenM0dUxlVDZEMistMHop
UjM7Z3lWTXJjN2gzd1V8I3F1R0BTZUZGblIlfSUxNi18YDZnKT5DdnwkJCpBQD94KmMwCnpyPmZE
KGZuPmIyditBd3BEM3Nlej5YXysrV1khZEhoYFcoVUp5Rzx5TVIkOD5geCN9VmljTjFwOypTOHYy
MFBKVQp6NzB1cnNSKW9eSj82KyYmXn5KdDRRMV5MaFg9JXo1UHBsN0ElTCQ5czQjaCNWVz0qMThg
XjZvTWlOWkNZdU9FSU8KelVTZHs1X0JyVy1DIXVmK0gzcnJ+RyVMQzJNM08rWUxEYSV4KTIoK354
THFjPEd3YzN+Q297PylSRGFHZDNYX1FOCnpgUlYzM2ZlZmpiVEhxdjF2RTU8Y3cqdHsmUzlneT8+
MmQ/KXc7dUsmcz4tYCtKeUVBWilaUWtPb0l2QktLcVlWOwp6ZC0/d1olLVlUbEkhKyo/K2ltKj9S
SEFmcUlpIXJYa0gwOEMyPWk9dEo4aXU+KFhyQigkZik8IWAxYnp2Ym9gVSUKemdkel9hKHVfaXhi
IyY0Zyh4fmo0O3NyKFMrKEp+RnkjUXVENFkoP2NRUjNGU25SNU1RaHAoa25XWHErWG1Mayt8Cnpt
UGgpWVchfkFMcFZFPjRCKVU1Sip3X2ROZl9oZDA3I1dPcG16N1FDNkc4QWdeN1o1XmwtV1pRYipW
U1FmP2RgIwp6elJFSTdiMHckKmMtRTl+ME5MPGVQaHRAJj56VHhKTDV6KVgxMFUzKV99Y05ORDNi
Ulc8NHhSKT8rM0M4TUd2ZUQKejw7dFB1QldBdDB7dTEwKWFuU0swMH4wPHpZJS1tVSNFKUlxMjRl
U3JwdyNzNkdHR2xzQ3dEeCRZN0hFUkRhTypNCkkoIWVlMUtWcXsoPF5UV3kKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXgg
OTBiYTQxZi4uZjg5YjUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtNzgsNiArNzgsNyBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9pdGVtc0dyYXBoc0VsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fZXhwYW5kRWxlbWVudHMpOwogCiAgICAgdGhpcy5fcm9vdFJlY29y
ZCA9IHRoaXMuX2NyZWF0ZVJvb3RSZWNvcmQoKTsKKyAgICB0aGlzLl9yYXdSZWNvcmRzID0gW107
CiAgICAgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRzID0ge307CiAgICAgdGhpcy5fc2NoZWR1bGVk
UmVzb3VyY2VSZXF1ZXN0cyA9IHt9OwogICAgIHRoaXMuX3RpbWVyUmVjb3JkcyA9IHt9OwpAQCAt
MTQ4LDcgKzE0OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsK
IAogICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCiAgICAgewotICAgICAgICByZXR1cm4gW3RoaXMu
dG9nZ2xlRmlsdGVyQnV0dG9uLmVsZW1lbnQsIHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24uZWxl
bWVudCwgdGhpcy5nYXJiYWdlQ29sbGVjdEJ1dHRvbi5lbGVtZW50LCB0aGlzLmNsZWFyQnV0dG9u
LmVsZW1lbnQsIHRoaXMuX292ZXJ2aWV3UGFuZS5zdGF0dXNCYXJGaWx0ZXJzXTsKKyAgICAgICAg
cmV0dXJuIFt0aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbi5lbGVtZW50LCB0aGlzLnRvZ2dsZVRpbWVs
aW5lQnV0dG9uLmVsZW1lbnQsIHRoaXMuZ2FyYmFnZUNvbGxlY3RCdXR0b24uZWxlbWVudCwgdGhp
cy5fbG9hZEJ1dHRvbi5lbGVtZW50LCB0aGlzLl9zYXZlQXNCdXR0b24uZWxlbWVudCwgdGhpcy5j
bGVhckJ1dHRvbi5lbGVtZW50LCB0aGlzLl9vdmVydmlld1BhbmUuc3RhdHVzQmFyRmlsdGVyc107
CiAgICAgfSwKIAogICAgIGdldCBjYXRlZ29yaWVzKCkKQEAgLTIwNyw2ICsyMDgsMTIgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmNsZWFy
QnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJDbGVhciIpLCAiY2xlYXItc3RhdHVzLWJhci1pdGVtIik7CiAgICAgICAgIHRoaXMu
Y2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhclBhbmVsLmJp
bmQodGhpcyksIGZhbHNlKTsKIAorICAgICAgICB0aGlzLl9zYXZlQXNCdXR0b24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNhdmUgYXMu
Li4iKSwgInNhdmUtYXMtc3RhdHVzLWJhci1pdGVtIik7CisgICAgICAgIHRoaXMuX3NhdmVBc0J1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3NhdmVBcy5iaW5kKHRoaXMpLCBm
YWxzZSk7CisKKyAgICAgICAgdGhpcy5fbG9hZEJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rh
dHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZCBmcm9tLi4uIiksICJsb2Fk
LWZyb20tc3RhdHVzLWJhci1pdGVtIik7CisgICAgICAgIHRoaXMuX2NyZWF0ZUZpbGVTZWxlY3Rv
cih0aGlzLl9sb2FkQnV0dG9uKTsKKwogICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKHRoaXMuX2hpZGVTaG9ydFJlY29yZHNU
aXRsZVRleHQsICJ0aW1lbGluZS1maWx0ZXItc3RhdHVzLWJhci1pdGVtIik7CiAgICAgICAgIHRo
aXMudG9nZ2xlRmlsdGVyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9n
Z2xlRmlsdGVyQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKQEAgLTIxNyw2ICsy
MjQsNjQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLnJlY29yZHNDb3VudGVyLmNsYXNzTmFtZSA9ICJ0aW1lbGluZS1yZWNvcmRzLWNvdW50
ZXIiOwogICAgIH0sCiAKKyAgICBfY3JlYXRlRmlsZVNlbGVjdG9yOiBmdW5jdGlvbihidXR0b24p
CisgICAgeworICAgICAgICBpZiAodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCkKKyAgICAgICAg
ICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50KTsK
KworICAgICAgICB2YXIgZmlsZVNlbGVjdG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlucHV0Iik7CisgICAgICAgIGZpbGVTZWxlY3RvckVsZW1lbnQudHlwZSA9ICJmaWxlIjsK
KyAgICAgICAgZmlsZVNlbGVjdG9yRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gMDsKKyAgICAgICAg
ZmlsZVNlbGVjdG9yRWxlbWVudC5vbmNoYW5nZSA9IHRoaXMuX2xvYWRGcm9tRmlsZS5iaW5kKHRo
aXMsIGZpbGVTZWxlY3RvckVsZW1lbnQpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hp
bGQoZmlsZVNlbGVjdG9yRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1l
bnQgPSBmaWxlU2VsZWN0b3JFbGVtZW50OworCisgICAgICAgIGJ1dHRvbi5lbGVtZW50Lm9ubW91
c2Vkb3duID0gZmlsZVNlbGVjdG9yRWxlbWVudC5jbGljay5iaW5kKGZpbGVTZWxlY3RvckVsZW1l
bnQpOworICAgIH0sCisKKyAgICBfbG9hZE5leHRDaHVuazogZnVuY3Rpb24oZGF0YSwgaW5kZXgp
CisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwICYmIGluZGV4IDwgZGF0YS5s
ZW5ndGg7ICsraSwgKytpbmRleCkKKyAgICAgICAgICAgIHRoaXMuX2FkZFJlY29yZFRvVGltZWxp
bmUoZGF0YVtpbmRleF0pOworCisgICAgICAgIGlmIChpbmRleCAhPT0gZGF0YS5sZW5ndGgpCisg
ICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuX2xvYWROZXh0Q2h1bmsuYmluZCh0aGlzLCBkYXRh
LCBpbmRleCksIDApOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2FkQ29tcGxl
dGUoKTsKKyAgICB9LAorCisgICAgX2xvYWRDb21wbGV0ZTogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9yKHRoaXMuX2xvYWRCdXR0b24pOworICAgIH0s
CisKKyAgICBfbG9hZEZyb21GaWxlOiBmdW5jdGlvbihmaWxlU2VsZWN0b3JFbGVtZW50KQorICAg
IHsKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKGUpIHsKKyAgICAgICAgICAgIHZhciBkYXRhID0g
SlNPTi5wYXJzZShlLnRhcmdldC5yZXN1bHQpOworICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBk
YXRhWzBdOworICAgICAgICAgICAgdGhpcy5fbG9hZE5leHRDaHVuayhkYXRhLCAxKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0aGlzLnRvZ2dsZVRpbWVsaW5lQnV0dG9uLnRvZ2dsZWQpCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLnN0b3AoKTsKKworICAgICAg
ICB0aGlzLl9jbGVhclBhbmVsKCk7CisKKyAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVh
ZGVyKCk7CisgICAgICAgIHJlYWRlci5vbmxvYWQgPSBvbkxvYWQuYmluZCh0aGlzKTsKKyAgICAg
ICAgdmFyIGZpbGUgPSBmaWxlU2VsZWN0b3JFbGVtZW50LmZpbGVzWzBdOworICAgICAgICByZWFk
ZXIucmVhZEFzVGV4dChmaWxlKTsKKyAgICB9LAorCisgICAgX3NhdmVBczogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgdmFyIG5vdz0gbmV3IERhdGUoKTsKKyAgICAgICAgdmFyIGRhdGUgPSBT
dHJpbmcuc3ByaW50ZigiJTRkLSUyZC0lMmQtJTJkLSUyZCIsIG5vdy5nZXRGdWxsWWVhcigpLCBu
b3cuZ2V0TW9udGgoKSArIDEsIG5vdy5nZXREYXRlKCksIG5vdy5nZXRIb3VycygpLCBub3cuZ2V0
TWludXRlcygpKTsKKyAgICAgICAgdmFyIHJlY29yZHMgPSBbd2luZG93Lm5hdmlnYXRvci5hcHBW
ZXJzaW9uXS5jb25jYXQodGhpcy5fcmF3UmVjb3Jkcyk7CisgICAgICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5zYXZlQXMoIlRpbWVsaW5lUmF3RGF0YS0iICsgZGF0ZSArICIuanNvbiIsIEpTT04u
c3RyaW5naWZ5KHJlY29yZHMpKTsKKyAgICB9LAorCiAgICAgX3VwZGF0ZVJlY29yZHNDb3VudGVy
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLnJlY29yZHNDb3VudGVyLnRleHRDb250
ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBvZiAlZCBjYXB0dXJlZCByZWNvcmRzIGFy
ZSB2aXNpYmxlIiwgdGhpcy5fcm9vdFJlY29yZC5fdmlzaWJsZVJlY29yZHNDb3VudCwgdGhpcy5f
cm9vdFJlY29yZC5fYWxsUmVjb3Jkc0NvdW50KTsKQEAgLTMxNCw2ICszNzksNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5f
Y2xlYXJQYW5lbCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIHRoaXMuX3Jh
d1JlY29yZHMucHVzaChyZWNvcmQpOwogICAgICAgICB0aGlzLl9pbm5lckFkZFJlY29yZFRvVGlt
ZWxpbmUocmVjb3JkLCB0aGlzLl9yb290UmVjb3JkKTsKICAgICAgICAgdGhpcy5fc2NoZWR1bGVS
ZWZyZXNoKCk7CiAgICAgfSwKQEAgLTQzNSw2ICs1MDEsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX2NsZWFyUGFuZWw6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIHRoaXMuX3RpbWVTdGFtcFJlY29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fcmF3
UmVjb3JkcyA9IFtdOwogICAgICAgICB0aGlzLl9zZW5kUmVxdWVzdFJlY29yZHMgPSB7fTsKICAg
ICAgICAgdGhpcy5fc2NoZWR1bGVkUmVzb3VyY2VSZXF1ZXN0cyA9IHt9OwogICAgICAgICB0aGlz
Ll90aW1lclJlY29yZHMgPSB7fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCA4MDM2Y2FjLi4wODYzZjk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0zODcyLDYg
KzM4NzIsMTQgQEAgYm9keS5pbmFjdGl2ZSBsaS5zZWxlY3RlZCAuYnViYmxlLnNlYXJjaC1tYXRj
aGVzIHsKICAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IC0xMjhweCAtMjRweDsKIH0KIAorLnNh
dmUtYXMtc3RhdHVzLWJhci1pdGVtIC5nbHlwaCB7CisgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9u
OiAtNjRweCAtNDhweDsKK30KKworLmxvYWQtZnJvbS1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsK
KyAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IC05NnB4IC00OHB4OworfQorCiAudGltZWxpbmUt
cmVjb3Jkcy1jb3VudGVyLCAuc3RvcmFnZS1hcHBsaWNhdGlvbi1jYWNoZS1zdGF0dXMsIC5zdG9y
YWdlLWFwcGxpY2F0aW9uLWNhY2hlLWNvbm5lY3Rpdml0eSB7CiAgICAgZm9udC1zaXplOiAxMXB4
OwogICAgIHRleHQtc2hhZG93OiB3aGl0ZSAwIDFweCAwOwo=
</data>
<flag name="review"
          id="95959"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>101140</attachid>
            <date>2011-07-18 02:18:49 -0700</date>
            <delta_ts>2011-07-18 23:46:50 -0700</delta_ts>
            <desc>screenshot</desc>
            <filename>Screenshot.png</filename>
            <type>image/png</type>
            <size>4316</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAOQAAABpCAIAAAClGxjcAAAAA3NCSVQICAjb4U/gAAAAGXRFWHRT
b2Z0d2FyZQBnbm9tZS1zY3JlZW5zaG907wO/PgAAEG9JREFUeJztnXtQFFe+x3/dNMwMDrsaXAV8
oKuYOEaHRQ0aK7pokIe7Mcb4BDcbH5hr3TyIda9VxsdgLJHExLWiJoK7WRYVt3LVursgkKqomKhM
ZKvWR4RoEnB8gN7rZQUGmOnuc+4fDSM7TPf0GXt2bHM+df5gun/n278+/Z0zZ06fHpjm5magUPQA
G+oEKBS1ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1
K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3
ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNS
dAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAM1K0U3ULNSdAPn
cDhCnQOFogrG2dWpodw3Fy+NmzBeQ0Eq/niLP2UZqz6eY7DGGWgu+CMUP3PmzLRp04IkTkpQxYFE
nMNYy1wwxtoK/gjFq6urt+fnv/HGGxmZmZqLk/JIiXMYaX14TQUfTXGMcXt7e1RUlObidrt9e36+
1WotLCxi2bDZs9O0Ev/88yqO42bOnCW9PHHiC5fLlZHh5/0Q7DanPWsQxXmev3LlytWr3zY1NQ0b
NmzMmDGjRo02Go2aiJ8+XV1UVGi1WgsK3lu37j937twJwKSmpmoifuzYscbGxpSUmdLL999/f8SI
EenpGZqIO53OixcvNjc3AUBMTOyECRP69evntxZxzyo3JKmvq/v6668B4JlnnnlqrNpRMMbYp+Dc
D8i+xv33WpN6cS+OHz9eW1t74e9/BwBrYuKkSZMyVXye+hW/e/fuF198cevmzdra2ta2NgYAAzwx
YIDVah35859Pnz590KBBAYsDwKVLl/bt+2R4fHxBQYGIxIKCgnXr1u383Ydu3jVnzpyHyVziuenP
Xb/e2NbeGhUV1d7ezjDw3PTn/Fb0K87z/NGjR48eOdLW3u7ZGGU2z3/55fnz54eFhfkT95v4Azjw
Ze2VK1fevn2bYRgAOHz4cFxc3P79+9VKyr9Xhg9k+0VAJw8Ig/SHhPTS6YZ+EVB3GymJKL4Rm5ub
CwsLa2pqpMwBwF5TU3PuXO358zk5OTExMQFnDgC3b926fOmS0WhMTEz0XANRFLu6uq5dvZowevSg
n/0sYPGKioqPPvrIarW+V1AgiqKkLPl1z+7dLMNkZCh2gb7ET5w4sWPHDs9LqU2MBgNgLLXOgZKS
kj/9yROwdevWpKQkoswFQcjfts1ut5tMplkzZ44fPx4ALl26dPbs2T9++mljQ8PatWuV/arcLF5w
uM/7ZumSpa33W+Pj41etWgUARUVFDocjKzvrwMEDfuUQQn0FASDFwp28IowaxL79qwiF6h+Wuetu
oxSLj6wUxD0UFhXa7XaPUyUYhrHb7cDAxk0bA8jcw7D4Ya8ufzU8PNxLHyFkNpvNZrNCdWVxjHFl
VaU10VpQUCAgwdPZCEjYXrB93bp1+/fvT8tI8zquX/EdH+zoW4UJYzCDTf1MJpOps7Ozd8CGjRvK
j5cTZX7k2BG73Q4AQ4cNfW3Na9JHf1pG2s0bN22bbaeqT8WPjF+4cKFcdYQQ0aCV8wqurq5uvd86
cuTIvR/vRQgBwL7J+1bnrHY4HPZz9uQpycpyckPm3MxwADh5RUAY5WaE+6y7s4KvrkMpFi43M1w6
tEpxiYrjFfYau9xee429orwiI1O2f/I72P/qy6/Ky8sNEYa+wyyX25WXlxcbGxuYeHNT83fXvuvf
v/+czDkjR44seK9AGgTPyZwDANHR0ZH9IkVB5DiOSJwBBgAqqyqll6tzVl+/fp1lWMDdE0bx8fH7
CvdJe9PT0hlg+uooZO50Oo98dsRkMg0ZMuTa1WubN27ebNtsNpsx4Li4OFue7fV/f/3IZ0fmZM6R
G7+SfgPpSb2nnD1zFgBWrlwpCiJGGCMsCuLq1asBoKamxiu4b+k+tz4FiSg3IzzFwlXXoZ3H+b4B
O4/3ODUjHImISFwqtbW1yqdaW1sbQOae8tSTTzU3NTf0obGx8U7zndiY2IDFY2NiKysrDx8+jBD6
/vvvjQajtD0hISE6OvrgwYOHDh7iwjhicQAAEHhBKpIzOpwdgKGzo7OzsxNj7NnbYx+CzC9euOh0
OqdOnZqfn2+xWOrq6vJsee1t7dLeuNi4adOmOZ3OixcuBtzmXoXz6sNYlgWA1tbW3ttbW1sBQBRF
nx1ebzo6OuRiEEJvpXMAcPKKAMC/mfZgKLOrSqyuRykW7q10ThAEn9WVxQHgwoULyrlduHBBobqy
OACMGDHCaDQ6nU6v7RjjwYMHK9eVEz958uSxY8d++OEH6aXU+G63u3cnmpb2YPZq/fr1zz77LFHm
CKE1a9Y4HA6mB4SQy+UCgOvXr2dmZg4fPnzv3r2eYPXiTU1NAGCxWAwGg81ms9ls33zzjc1m27Rp
k9lslnadOHGiqalJTqGjo4Ooc2UBUO+SlPQLAHzo0MHeGw8dOgiAJ078hVewrwIKe0WRfyudTbGE
VdejXVWCtHFXlVBdj1IsYW+ls6LIBywOAP7em36rK50ax7EDBw70qWy1TgisWT788IOGhgaWZaQi
qTEMBkAYizdv3rh3755nL8sy+fnbSDKX0kMzZkxnWWbZsqyKinKjMQIA/fSnURUV5cuWZbEsM2PG
9N7BJM3yoIrRGGGzbRo3zlJXV7dlS157e2vfmIAu2T8VFmOmd3n++VSj0eRw3FixYlVl5eeVlZ//
9rfLHY4bGMOoUQlewX0LACgHCAJ6M40DgPqm7sj6JgCAN9M4QUAPI56YmIgxKJTExMSHyRxjJikp
yafyrFnPB5Y5AAMAx49XSGX48HiMgWHCPHvj4+M9ezEGAKLMpfSYxYuXZGVll5QcLC4u8ewtLi4p
KTmYlZW9ePGS3sHqmyUmJhZjuHz5ivTSYDBt3myzWCx1dfV5ee+2tTkvX76CMcTExCo2C0FhEQO9
i4DRfx07ajKZ7t69u3vPnt179ty7dw8YAAZycnJuNTd5xXsVAKW9UuGRKPXqnioAwCPRb0Vl8aSJ
E6U85UrSxIkPmfl4q9WncuzQIYFlLlV3CbxL4DtcXf0HDAAG2js7EAOdbtfoMQn9BwxwCXxbh9Ml
8FIwqbh0TRctWZy1LPtQaemh0lLEgPRH1rLsRUsWCxj1DlbfLOMmjDebzWfOnnXcvCFtiTAZN+XZ
LOMs9fX1699551zNObPZPG7CeIVmwQxB4VCfMYPLzX929GhlRcX58+cBYPLkyekZGUsXL269f3/1
qpyP9+2LjYtTGFj0FfQJ7onEJLUUwlLT02v/9jf7uXM+9yZPnZqanq48svSbQ9zQodAnZtDgwVx4
hN+6vgPwg128IG7ZupVl2bb2doSBC4/Ylr8dANw8362PZXWUxTHGCKMFCxfdu/d/paWlCODPpaUZ
mZkLFy3mReQVrFYcwGiKnL9gQfGnn7675d31GzcOGzYMACIMxo2bbRs3bLh29SoD8MqrrxpNkQqN
QzQfwDFY7LuVd4upqbPS0lIBACHEu7tKSw9lZ2W3tLT82+qcTz75JDZOdprGp6CPMIDdVQL0zLCo
rSUfhkVx5crlDMY1NTVeu6ZMmbJi5XIs8sq3S/zm8BNzZGxcbNPtpt4bJ0wYH8Zgv3UVAhgsrn17
Lc/z8+bNKysrA4BRo0f9o+UfjQ2NoxNGP/3003a7PW9LnoKOsvibr7+xKmfVnTt31qx5LXrAgAMH
DmRnZy9asmjjhneWr1heVla2Zs2awMRfnPvCD99/9+XpL/8jNzd5SvLYsWMBoK6u7qbDwQAkJye/
8OtfKbeMj9kyeWTXBoiiKN1KkXC5XSUHSpZlL2tpaSktLc19O1dOUeX3uzv38Z373TXU11IOi46O
Xr9hfVVlVW1trTQ5YLVaJ02alJaeJgiC30P4DWBZduzYsV5mTU5OVlNXIQBj7OpyRRgiysrKkp9J
/urMV5GmSMd1h8FgaGhocDgcXZ1dnuo+dfyIu1xFhUW8m//rX/4aHh4+7ulx5eXlJQdKEkYn7Prd
LqPRGLC4y+VavmL5wIEDqyqrTp8+fbr6NAAAA/0i+817ad4Lc18QRCGc9T2t7le8LxzCau/Odrn5
4pKSAyUlS7OzFSaY1AgezfW+j+Vyu9Xk4FfczYvPp86enZYuTQMhhBBCbl4EFTeh/YozLDf9lym5
b6/tvbGlpQUD67fNfYr3DIGYj/d1T86LCC3JykIISbMDHtw87wkmFd//+z94bWQAGIbpXkWCMS8I
pOLdMGHAhM19cd7stPSr335769YtABgyZMiYJ580mUzAMBhY5VYlWhwgu5DFJ27BvSR7qSDySodQ
IejiXX1qqctAhbiIRVEUofeHj0bibBhjGTf2ftt9z5awsLBIcySo+SzzJT48fnjT7dsvvThXVXYM
K5ukfObqxfv3708qHh7BhUeYASDqJ1GDYwdLN28xxhj1HqYqNw5Jzwr+5vm9EP3GEwqSEWpxFsAY
8c8fCypT8hX2yxkzTp06pfoxOJy/Ld/34XxtfOWV3xQXF8utKPDiiScGLFq0SL24d2YAAS57JRoG
sFo/4Kq54GMs/vL8lxcuWKjSTwDA87zPQZ5P8fkvzV+4QHYRSV8EQfA5WxLUZmHIhgGU0OH1LVZH
4iGBufe//xPqHCgUVdAfuaDoBu7WzRuhzoFCUQVXVFgY6hwoFFVwk1NfDHUOFIoquEjpkQO52S65
iQWt4rWC5CFJAPJ8tGoHvUPUblo3QrdZ5aZm5WYAtYrXCtUzld2Q5qNVO+gdonbTvBE4kykS5NcT
yM1XaxWvFern1SVI89GqHfQOUbtp3ghchMkIwf7xLQC5xQxyx1W9usaPDmk+pPqk56VVPqRo1c6h
PShnMFCzBq5PzfqvPCgXYTAo6GoFNau2+ZDymJiV48IBZEfOcusM5H75QC4eycb7hvS9wxJ+85TL
h1RfToc0H72YlfDJaRnzBGxWaZEyqS7pFwtGJj5UF1Wru8xa6WjVcwf7E0wTAk6GY8PCFOrLeYn0
HOXiiYcfj+eXbPL2D3J8UAk4GY5lOFCYR5Q9oMxSWyzT18jEE4/t5Poy0ny0QqPjkra/ZvEaXUei
82VkRPxeXK4nLjQQfwyFKtEgQ3pawY4PKrIX3V+WnPRbA6xMHJI1k9ybgCxe7rhyaJePVmhzXNL2
1yxeo+tIdL6sTDfs9+JygV7PUC0OeNRu0j9Kg8FACPaiEC0P2j0MkDd1cAnVcR81SNsh2PFBJeBk
esasxPfKfW+Xn9IiiycnZKPuEB1XK0Iy+g3woH7+W0uoFnCQ6wR3AY18Ptqcr1btSd7pkM6WaHC+
8kvV/DSyn6dbSU9eK3MEe5UWKaHKJ9jHfaTa2f/PN/1r8qBQHh5qVopuCPGYNdhj3+CPWbUhdGNW
uYVKZPhUkRUhfL7Cs5X2rBTdQM1K0Q10NkAVP7bZgKDOpsrep/J3spzsUheKCrR6QDJUD1pqBVGW
Ad+HoL8i+FA8rp8kjya0W6Xohv8H/xpCpBJzJaoAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101168</attachid>
            <date>2011-07-18 10:21:38 -0700</date>
            <delta_ts>2011-07-18 23:46:50 -0700</delta_ts>
            <desc>[patch] fourth version with context menu</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>23102</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkOGYxOTQyLi4xOWMyNzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDct
MTUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGltcGxlbWVudCBpbXBvcnQvZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDct
MTggIEdhYm9yIExva2kgIDxsb2tpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUXQgcmViYXNlbGlu
ZXMgYWZ0ZXIgcjkxMDYwIGFuZCByOTExMTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTA0MGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorVGVzdHMgdGhlIFRpbWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFsaXR5Lgor
CitwYXNzZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0MTAxMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1sb2FkLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0idGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitm
dW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIp
OworICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5wcm90b3R5cGUsICJfbG9hZENvbXBsZXRlIiwgbG9hZGVkKTsKKyAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3Quc2F2ZUFzID0gc2F2ZUFzOworICAgIHZhciBkYXRhID0gWworICAgICAgICB7InN0
YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44NDA4LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQzLCJ1cmwi
OiJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoi
UmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MTgxOTkzNiwidG90YWxIZWFwU2l6
ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTE4LjkzMjksImRh
dGEiOnsiaWRlbnRpZmllciI6NDMsInN0YXR1c0NvZGUiOjIwMCwibWltZVR5cGUiOiJ0ZXh0L2h0
bWwifSwiY2hpbGRyZW4iOltdLCJlbmRUaW1lIjoxMzEwNzQ5ODU1MTE4Ljk2OCwidHlwZSI6IlJl
c291cmNlUmVjZWl2ZVJlc3BvbnNlIiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0b3RhbEhlYXBT
aXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzYuMjQ1LCJk
YXRhIjp7ImlkZW50aWZpZXIiOjQ0LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL21h
aW4uY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVz
dCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAg
ICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM2LjY1NSwiZGF0YSI6eyJpZGVudGlmaWVyIjo0
NSwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ncmVlbi5jc3MiLCJyZXF1ZXN0TWV0
aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoy
MzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEz
MTA3NDk4NTUxMzcuMDIzLCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ2LCJ1cmwiOiJodHRwOi8vd3d3
LndlYmtpdC5vcmcvY3NzL2JsdWUuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoi
UmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6
ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3LjM0MiwiZGF0
YSI6eyJpZGVudGlmaWVyIjo0NywidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy95ZWxs
b3cuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVz
dCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAg
ICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3LjY1NiwiZGF0YSI6eyJpZGVudGlmaWVyIjo0
OCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9waW5rLmNzcyIsInJlcXVlc3RNZXRo
b2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIz
NjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMx
MDc0OTg1NTEzNy45ODksImRhdGEiOnsiaWRlbnRpZmllciI6NDksInVybCI6Imh0dHA6Ly93d3cu
d2Via2l0Lm9yZy9jc3MvcHVycGxlLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6
IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNp
emUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzOC4zMDgsImRh
dGEiOnsiaWRlbnRpZmllciI6NTAsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvZ3Jh
eS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0
IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfV07CisKKyAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLnRpbWVsaW5lLl9sb2FkTmV4dENodW5rKGRhdGEsIDApOwor
CisgICAgZnVuY3Rpb24gbG9hZGVkKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMudGltZWxpbmUuX3NhdmVBcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNhdmVBcyhuYW1l
LCBzYXZlRGF0YSkKKyAgICB7CisgICAgICAgIHNhdmVEYXRhID0gSlNPTi5wYXJzZShzYXZlRGF0
YSk7CisgICAgICAgIHNhdmVEYXRhLnNoaWZ0KCk7Ly8gc3RyaXAgdmVyc2lvbiBpbmZvCisgICAg
ICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhKSA9PSBKU09OLnN0cmluZ2lmeShzYXZlRGF0YSkp
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicGFzc2VkIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJzYXZlZCBkYXRhIGlz
IG5vdCBlcXVhbCB0byByZXN0b3JlZCIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhlIFRpbWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFs
aXR5LgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ2NDk1Yy4uNmUx
YTg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA3LTE1ICBJbHlhIFRpa2hv
bm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBp
bXBsZW1lbnQgaW1wb3J0L2V4cG9ydCBmb3IgdGltZWxpbmUgZGF0YS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjAxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLWxvYWQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFn
ZXMvc3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZ2V0IHN0
YXR1c0Jhckl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS5fY3JlYXRlU3RhdHVzYmFyQnV0dG9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZUZpbGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2xvYWROZXh0Q2h1bmspOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9sb2FkRnJvbSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3NhdmVBcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2FkZFJlY29yZFRvVGlt
ZWxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9j
bGVhclBhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6
CisgICAgICAgICguc2F2ZS1hcy1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoKToKKyAgICAgICAgKC5s
b2FkLWZyb20tc3RhdHVzLWJhci1pdGVtIC5nbHlwaCk6CisKIDIwMTEtMDctMTggIEp1bGllbiBD
aGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFJlbmRl
ck9iamVjdDo6YWRkTGF5ZXJzIHNlY29uZCBhcmd1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDYyZjQ5NTkwMjZiOTcwMTIw
MzBmYjNlYzU0NTViNjVhOWEzZTYxOTIuLjhkODVhMDU5NGNmNWE5Y2VhZDZiMDdkNTBkNWE3MTJm
ZDQzNzI0M2YgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMjM3CnpjbWRtWG9CN2RRPF8r
ODRQTDdhSiV+V0lYV1hOU0dWOH59RVZrbHV5VTxoSHoxb0JmRWEpNUxta1hCJHdWTXFrWgpuQnJA
b01wJU96WlB8T3lIbF45NlVKTmJaP1psTX4zRD88Z0B3dm5wV250PS1kVUY8QiQKCmRlbHRhIDkK
UmNtYUVLbXdEVDU8Xys4NDBzdEhNMSohbDUKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDAwNGU0NTcuLmFjOWRjZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3Rl
Ym9hcmQuaCIKICNpbmNsdWRlICJTY3JpcHRGdW5jdGlvbkNhbGwuaCIKKyNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgogCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTkxLDYgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQog
ICAgIHsKICAgICAgICAgaWYgKG1fZnJvbnRlbmRIb3N0KSB7CisgICAgICAgICAgICBVc2VyR2Vz
dHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdl
c3R1cmUpOwogICAgICAgICAgICAgaW50IGl0ZW1OdW1iZXIgPSBpdGVtLT5hY3Rpb24oKSAtIENv
bnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWc7CiAKICAgICAgICAgICAgIFNjcmlwdEZ1bmN0aW9u
Q2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImNvbnRleHRNZW51SXRlbVNlbGVjdGVkIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9z
dGF0dXNiYXJCdXR0b25HbHlwaHMucG5nIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9JbWFnZXMvc3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZwppbmRleCBjNDk4N2Y0MTIwOTMw
ZDY4ZDE3MWYyZjJmZjIyZTg3ZDZiYTJmMmY1Li42ZDYzYmIwNTc0NTEyMzcyMDE4ZTVlODFmZDNl
ZmVhNDE1MzkxZjRlIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDQ1NDgKemNtWntIY1Ji
ViZ7UW9VeSQwMGw4b1Z7ZlcqKDlzWExMXkJrTkBudFFNKW5SQjg3WjxJdmJtRVNNSWBJJkQ+TCh1
CnpkRk9vbHtDPHpgcFdvTihwViNhNGM+ZW53dVJsczMpemReVT5kcCktQFowN2xoTT0/bXkwRGAo
R2hMVnEwTVJ9Kgp6dm9OQmFyZSRHfj1Gb1Z4Qzt8Y0Baa1FTQiojPUstekoyITZadFF1bD96ODVC
MndwRlJIezc0X3c4SVNhN0UrJGgKeiklTmFYJD5TIUBZPCF1ZmlRWH5la2skdEtrd0JIKHFmZnsx
aFRqYn42U19jK3FmP3lhPTAzMTUlQVg5eF5+WmBuCnpNSmhnYUR6QFE+a0dqWm9fJjQ9KmRUYGxx
MytQeEdvRnh5dSl4dkp5QE9yel9MQyFscCVBZlpybT4pdSFNZH13Pgp6Q3omKk9wT0BmWjVXTzdw
Wi1kelc/fDlHcVdkcDxnWnRoSC1RVGhSUk8zdnZmWlVKWGBoNzM/SmRYUmNPTExURz0KekYjKSVz
T1ZNbytTJkhsMCNxeSh7MU0yd0NGe1NrQXE9em9ZPEhYVTJaSTh9ejY5RlM0e2lMQVFzamdZWmo1
JHJeCnp1Mmt7WDg5IXJVWSM9Y2FjaDM3QkZiUV92I0BnUGY1X3QxYko0MzJ9akFsUlAoaDtrfGA2
R35EcFdgTmI4VEhLSgp6dlBTVjdaRz8wKlFgRiVaMlBkUWc/TlYybj9HZk5fOWYhQXlDOylSY3Mp
SD9JUkh5dFB1M0N0clAoSzZsZjxfUWwKenF7fXF3cF5+MnRLKFppYGFoWX0wNjg/Z2opeF8jPXJ+
Q3wrKDdVJEhPKn5KaUtsKE96VT9pdlhheHBNS1dkNCUjCnpDSVUyI1VPQH1ecDYjYk04byh6KFZK
LU1YVm40Y3xoNDs5e2xodHdZPkkxfnVzaVNiKW04RntPMmsrUjQkR0F7bwp6JFFlOHZkaX07clB8
YWF9Sj1mfSRmUm9JS2hmazt7YlREPHFrcTFDclFQSEZoRXcjb1k9PXxPfjtGRmtre1NPPGYKei1Q
a2s8JiF8RFU1dWpBVzl+Ui0mRzhgP0tKcV9lcktGc29uO2I8VkZaJURrVz1rbT95Jnw3YmREUHRJ
VlFucG1nCnpIVnN2WVhuPWpRZlVlSjBgKGtWO2dqfEVvIU5TM3BMX0h9QVE4MGpLSFJwakFeanU+
eCtNPipCMjlgJmdDJHdHKAp6PzN2SnRUYHBKKlcxSEN5P217aF44fGNiPistTmdBdjBOfUNJIShH
bCtMYG1sT3xAKT1hRH5mTnlpMiFVQkMqVk0KeiY4UEJUZWBnWFcoZCpDTUZEd0E9R0xURjJCWm9E
eGxIZUZCSjgya3F6Q2dLbEJMS3hzKVJGcyhudm9PNlVPX2NHCno1NHYjUXRHeGlGQ2BaamBVUncm
aGxTWl4hSlFOMEtmajFqRXhrZD56WXthcC15KUFldnFlUHB6WWhaOGIpR3lXJAp6VlY/OVdSIyZ4
bnA9P0IxbTZKMUJhNnlSSzhyRig1YUJDfnYoJHVBMS1MSXBqK0dDPzgjVkJJXkx4aVludGAyLTQK
ejtxUzU7dWsjN0kxLSFNdWR5TVZ4MDkoaHk8Wn43I1U9bUZSP1lWemVHPjc8TFo0dFRKQlplbmFY
OD5kaCUwODZECnpXRVVwKnNhWGlwez0/eHArTWh2ISUjaU05Ml9GUXhXPDFreStRNEJeWWt6WDxF
SV5RP0VuPWsmXio0ZipfenQoPAp6UyZ7TT5FNF9VLXVFaiF7eEZwJjg+dVVPP0g7N0MkcDlwMzlD
YXdqQ2dfYzVDeWk2bTd7cDNpUHE9aHItXiZYdHcKejlPSXVCaExtYEo9PXtYVUpNYTxVaTBuPUxA
P0NPPkNfP2tIPDtMMXlaJWxrWEAqJH0pXypxY2deJHFKKHtfXz9JCnpZM3hPJSEyJjw7YzBEND5M
bnVSbVA2Z1JmRmV+JVo2MnY4RXdDeFB2a3ROMV9QTTlvaUZIe2k9b21naWc5KmtuTgp6JTdiRyl4
YDRTWG55aDBiMSZmVWxGT2IzU1VtWjk1TlgqMmBpZTBlV3NfWWBqeWdndlImP0BWOVQlNWRiUSs9
VWAKekE8UHFoJVNDYyF5czQxK2hsYnVzJiVye3NMIyFJM2FMbSg0PHUrIUxmM1hpVnNwTW8jcTc1
fVNZaiU3NEwxeVJVCnpMS0VKJVhqPnV6O2ZDfGRGRjRzQUBob2UmMT1yRGElQGV3UT1OV0ZZXmky
O1Z6Yz1yST5nKE1NdWBic2QlOHdEWgp6UU59ek1gUGNjd2taKFhCVW9XJktaV09FRyQodnZpVktm
RU83NG87KE9Ye2NfP094bmJYSUBfQiUlXmpLUCVaUUsKekY0KGtHcitJJHhkaGE1I1NNcFRBWkpv
WEZLfjg0R2czPjc3SntAI3tVTUQrPlZ5YFk0KzxyQkJQSVArWihAfkM0CnpDUiF1e2l4MXordCl7
JHZ2UEQ7I3ptX0FrNURCVzd7SH5kM0pIK15MeUJrMCEreDdXb3tZNC1WaDEoPkNVQ0YjKgp6bVYq
WmRJJmZidS0rNG91NVUmdjlxbXxrTT9HQm1eZ2NlYnRZQzN6OUZAJiElayZgYVhlWiEhUTU2fnIl
Ml55KGUKenVNcGRaMjEqOSpMeWpUI3w3b1MtcW9OKHFkND9GYSFoZjxVMGhaJFVLU3RwSEJOYDtZ
eWRHO1ZCYDQmQmFlZD13CnpkPiNXWUQ/Mz4rU0NiVSRsTklCZTIydyY7NjJeYEMrSG9WYjJwZkJN
LUtAIXF2Rlc7MTlSNn0lT21mXz1FQEFhegp6RShWUmY/V1V1O185S3NCckw4dFo+SmU+cmoyS2xE
bVFYaTZUdk4kdzUpPjRhT1MwOGN7WXdEWEpxQE8pTD87YE0KeiRwaWd1Z3BhY1orUz1Nbk5JSEBi
UTRrfmUrbHRPMjlSQ1YmXyNTMTNaOy1HcU1mcjFnK3VVejc7KkpvNkZTfSNXCnpSOVZ6UzcxN1F8
Q3xZKXhqcEZVTE9SbzB1MSNPd1hKeVIjQ0lKSz4zKH1XK2lWSS19PVI5TGYwSyk4c2lqNkVMJAp6
NT82QjRDQ05sOTcoI2NIJUozWCg3dV5zait6fHohMmhuSkJpJkA2Tm01ZSpCcVpTMjxjZHdoNl5o
T2JVWXZ2RWEKemJzYXlzUkBoeTs1YWxiWHM8M1NEQ1pAe2ZVa200YzJ2TnAydE5aVCMxYTIqUE5v
U3k1SXx6WFhBcCRyJiRlRzVPCnpFZm1EPEYka2heQE5Ldlk/WjMrdkA/RnYrUE1jKl52WiN+UDcr
YVFsSUVuMEZeODY9NEx6O1pUZHRmcmdmQE40Ygp6aGFYRGVKYHkzYFJIVy0kcj0yIWpKSFRBdiVU
d1Y2LS1WJFM/Q19FRmNIdSFtT19AaW5GSjhQVFZQUiZMbUNOYkIKelNwVXVVIUdtPyN0U2RwO1Mz
YzxZeE1maUReWWZfJEhsaVRJQGhLISUkMlh7VDdAfSZaZVRWYThLZ2dTZyU/SXVyCnprIS1pQkBC
VztaRlR2WjNfQG9nczBWd2lRUkx5Q14qIWclK3NPN2xEb0xFP3N0eGN2JGc3bHJ8P1gySlp1ZX1o
Iwp6ZVhwWWlFKFY1TXlyLVB1I252RTRRbU8qS3E/dU5iRFo8Wk40fEhmOVpAVDtCQ3g3cUg3fWM8
XmFEVF9AUnd8PEYKemFyR3VBSUo8eDh3U2o+X3FXT29QMGxVYiNPcTJHPzdZLU9TWWtlKUVuZShX
MUwjdTZgNTJ5b1Z7ZF5OJkEoIW9oCnp5NiMlbmN6eCplTz1LZHhNU01HSHBkNDtWNFRWUjE/NDU+
WVkxfHc/ezZPZFRgZnR+V2smKU8hWWNGKVJ5QkBpdQp6NXFZPz9qenJgZSZDS3hSJj5kQGNja1ha
dHJnTSMkP0lOQW9pI0Y7ekhiMj1fLV5ATXZLNGxHNFM1USF4NVo0e3YKemEyQ0EhV29PSkBGMzBO
fTZUbWRFeHc/OEpGZktxfjE9fU9CSXEzT3JfLX4mYXdmUCU5a3dSV3ZDd3h2I24pSUE4CnpedDt6
dWROWFRGNX01bmE9WHJfMFp2PntvWXc3dm9nWXtgM1B0bDRedkAtcSVjI0oyYGI1MiEmS0t4LWN1
WXBSfgp6PXJxLURaSEMyZ0hkTipiY18/ZE5nPWVLMk1wWiRBdVVUfVlZJjxUWWR4fG14bCszM3RU
Nz5zMDFfPkhoeUJKQUgKelhgWip1NHBvJGgrRURkNWBYZE4tME1CPWFNeExIZ1VyaEtfPXxAVU8h
JWl0SWF5K2VBODVZTWFfdVl+K2hIPnN+Cnp5MmxeI3Bodk5OaXp+SnJMRktIOGg/fForR1klZlEl
NlRybkVUalR+OWN0cjZ5TzV2NipNdihOTVplbCN6dldxKAp6ITVrcHQ8b24rUFdCMU4yQFhBdiZ7
RGFAU2BpT25uLTEyT3QzdTM+YE8wQGc9Z0RkViRmVEhVREFgUTwzeyMoQ1IKenpKaXxWd3V9fD9E
TD1gSk4mTmpTNXZpWVVpX2R1ODJVYnI5KDJSY0Y7M1hHNXR9eEJCaXU8QXMmMUxYRXVldzlvCnor
eDx5Sy0hc3l4OW1KJnQrbTQlRzlGK1pEbCVHT31lYFVuOWEjSjtIOEVfMmtvJjlSRSprcTkkTzdI
aVlBaz5LQAp6VzEpRjZRSHFSM3lTcGIrX0gmfX0/OEx1SyRQYlhBeSpjQVleZEZHaEooQFkzcHxD
XlFuIXk2WnVKcng2ckRCWn0KelFgM1FUUHd5KkJ4djhKfXprQUlxU0RBT3JNfUpZTz9BUXFfXkgq
YkRSeF9tWV5WQX5HSysqa0p1SndDKUZaUFkpCnopMFJaN2ZXMFhXejI5V2BfenFnUHk4Tm0tRnkh
PHZWR04oZUNNaURXQGtFdDk0RHgrV1hoRXk9OGZ2PXxXJWNoYAp6Q0Q9WnhfXjczQVhMdytRaTtf
amcrYWE7PHs4QzJgNGY0UDMpamJgWXtSdXdrKkYlOFVyM2dqKmpjfmNgJDAyZ18KempUMWVqRnMh
bXBPdSNfTGRDYSp2QGM+ZDI7ciU1ISNFKHNZTnl7d0lTU3BCWHs5SCY3eyYpcUd6czdhTDZnbVpF
Cno7YFVJRHd8JmQpaz1NR1pyOG1iT3pCbVBiNXshT2U3RSR2eEdgNC1JNlV0OWQ7VHdtcUApNGhK
ZmFJKCk3VXd1JAp6Q3BwRGElRlBPZUE0WEtPVmRjd1RKKiMmU0xwaD8jNWk/ZSM1PE1FaklaMWBT
MDZ5ZUkqUXg2JVNzZ2RNbD8wZX0KekdXS2o+ajJufGJFP1Q9PTYxbH4zKVJkR0krVWNwTyZgZ3gx
KjVgfShtITQqb3dRcFlqY2skR0pzdFlkWjNSQyFTCnpCUU5JclgoJkRFOz15NnVDbmFPXi1HMUol
eDQ3UEQpPHBhfDtjSyV+bCNsallzVD1ybG9BfU57TD5XbkhuPSprMwp6I0hCdSk9PjQyZHM4UHNI
Y25SKGY5QiEpeEVjTktmcUYxdzN7akFtcT91Mz96KmhKSjMhbj40fTsyV0JfNjN7YX0KenNPM2Bm
Mm0lWklDdmpTUFNFRClxWG1OcDtQdVVoX1VOOUd9RU01cSUrNzwxKV9jPUhFTz9iKipAbU8qaDQk
JW4lCnp1WTAlQzk/ZDQxJWR1N28oR3cwSGBSakRnTHJPb2lZdj9ERCF4O0kwMzUwb3Y9X2hQN2Z2
fnt1T35GX0hYaD5gdwp6ZnxeN2dpa3N+bzwyRE95Y14kP0VSVSleeHdnUWIwQiVPNT8ycVBtRzMz
MEdoemYkRis8WU03fnF5UlI/Tl9lWDMKemlgcyhZPz9jPXxFe0pWXnAwTnV1elRnNTA7JkV5USpu
Wkh1VnxGd1ZaUjFuRzAjKlk5dThablA+Yys5e25AUzIyCnpuUnlRQkJIYTJDXnJVLTQ7Q3woPUFt
MG47T0IlLVhOaGVYeyVkQD8lMFAoQEpHflRkYUpmKy1QMHh6d01aMXtoIwp6UG0qXyo/U0VkTHFQ
dSZZJX5zK2lzOHtxQGdJdHlJJio1Un1UWVc9aGxxb3d7bEgqRm1MS05raTZ2PTRxdEhYYUYKej1I
cmtmQ1FfbHxVMzdXKHpZeVJpakpsSV85STNjYFo1fDteVyZ7e2UqdUJ+IWt8MXM4e2lLI2t7Qz1f
N0QxKHVJCnppbm0+WHYydE1uTy1jUnNWR0kzXy1wKmVtb0FJRTR5dz1ucXd7Qy0kI1k9cChUXzhG
MGo1fCZqTjMjeTNkbUp4Jgp6IT1oQGNeSmlEcEI5bWVJX3VmLUBHWHxqZzUhWSpYPTNDbnJGa2NV
ITYzX1dLTl4kKWlOaGJ5K0Rgd1cobUAkYUgKellYSlE1S3xkcm9KWj9hSSpkUUMtIy1ZSWxBR2FQ
JkpGRW1MPCg9Q2RIS3c8UWApaSlYdmdGVm54PUdSRUNANThUCnppYG5RankkSHJ5dzFPST57eHI9
SEIyRik3Xyp3TTRwMSN1YEQ/NDc+MjJKb2RHOEBHVD8mTH5SX0k8YUxQQU9wawp6K2dCOUU2WE13
NmU4UClgUnsqWEU1Vk5aQWtldjgyO0teRGooKUMqWm8wLXBVU3ZGWmktfVBQJFFlc3pBQEFtVEsK
eiRDeUpVM19XSF5PIXFUZlZTbiM9XlQpbkZlZDslX1BzRHR8NUdjfGsoTkJScE5nNHtwJCg5QCRH
Q2h4OC1HRyhtCnpkbUdna2s4WT8qTUJVNDBkU2BCPWwqP3RsVGZ1SSp1UHFeYVlMXzwxK3I9blFD
V2ZvSWVjZXtgUWNOO1U1TzQ8fQp6VXMwKE1LVzF3NkZmc3VuMTZHQTE/Nlk4dU5VVi05UzU4Y1Ml
KjxCV3pPdSZyMWx7cTYmYjROYSsqQ0VgMXNENkAKekR8SkFYO19eRjNgSTR0e2chPnRWODNwP0Uz
VCpWODYzMz88bUE8VXJtQUJ2cj52ZSNeU31VdWc8eD0kSlBWRUMmCnpJJXRJTVAxY1pBPj88bXpu
KGRFNnQ3e1FBQE5oOThAKDVhR0UkXjJfSzdPMm0+aXRTKCM5QFR7enhoUXJwSFZZZAp6WFBHeTBE
XiVCeWJnPHYwWF9vdm5fdjBIVEBxVjNZT189IUxsMlUtTCklQ3ZGaTshdj9pOG8tO3M+b0slWGVN
TnEKejhvdFFZMXomQk5sLTc/SmdscTd1ZEotZnIoJnVzc21uaTJhYV9xVTVTfF49e0BERnRtJXk1
N2ojM1VGTTM9TiF7Cnp7VFZzNnB8KyZzWWBHbDdsaDUoK2M0bVJUcUFSXlpTKEw9QGRZY3EpTWY0
NitFdUghfnQ7d1VhWVo+IyFnaGQ8awp6QnQ9RyVtLUM0TSVgKiUjKmBacktRYEVhfEVBKT9HSS0p
MmlMJXV+TlEzKHpVJD5DOU5YeXdmLU55RXB8dnNQZUwKejkyZHJhTHJnZnQxb1FldyQhI0ZCUGQ4
QCZeQV9BdnFAOV9oQT0kKTRWZjBmfXl8cV97NkRHViZkUzxBaWxSJjM+CnpJcCsyWmc0a1U3JUFN
XlNkQzZRUVVaYThpZWY0ZUA9ek4wREpAdntmMURMYSFQal9JOXhDaEwwLXxXK3NPPlQ3bAp6TV9H
UXdQNkUjTm1PSF5sPjYjMn1xWTg8dkYlYGBhUTt0aDZ8RSV9XitxP2VDUVplVGtlUn1KRXc2PitP
bSo3WWsKYiREY3RMYFF5eDxhTkdCVHsqe0BMckQzKGNUamMpJEomQ052CgpkZWx0YSAzODQxCnpj
bWEpOVM1JVY9djs5SXNtbmdsN2dhe2YrczNKJkhOfkI3V0FgJWJgaCMrMTw1ZXpqNjx3JSFLNUNI
e0lrJmEzVwp6PHBUaT1uMUQhODRneyRPMn10a2Q9ZSp0Wi08TFpOZClBc1k0Pk5sfD8zdmVeXlF4
KDVHZzckKFl0QX16NWZTYnQKeipSS0lVczA7dipxNSl2JT1zMz48SyMoIzN7QntFWEVlWmUjPElg
UWN0XnhvJik2X2Bjal97TTJBQ2h8N1VnRzByCnp5eV8xYlhYPnhrWCl7PE9RYjVKcmhSYW1uPj1k
NlpuKiNoc0cqPj8qOGleIWlJJXVNODVIVmBtQXxfRVVQWCphcAp6IT15TUwjZmNaa1UkS197ckkw
fD5tV0V3cWRhNWwte0BFSkl2N31xam1sbDRFe2IwTyQ8SjBzaVkmTktFWVA1fV4KemVONnleTis+
I0U2ZD1aJFExbHYqYGBfXldMUCZEZHMpK2xmdDIkNmp6OCVtRUNrVHhFPE5BV2ZCRGRydEMjWFRU
CnpCfH1NSCEyeGcpPmA8N31sflQlX1F2STxCKGJ7entofF5zb3g9a2Q0T054MD1IaTlVQEljM2w0
QE5wNHAheXlLOQp6JWZvS0pAWmsyXllpSn0jY31+bmB7UlRMNVhrSWNqYFRTJnd1Xm8+MyFZbzlK
WE9IQ3J4ckg+Zz5yKVVuYkwweGQKeiN0YHVBRlhLZW09dG5CJnBsSTtpNTJ0QnJmOyE0KihpcUdH
VzVrNVBjQ2NfSkw8N1EyTzd5QDI7bkgoVU0xTGczCno9QyhMWDY0ViFSaE9Iby1qLUIzPCh2OWZQ
WUFEbnRtNEk9YHQmMFk8S1dZQTxJYEY2UjR1ZiM7VlJPe0JsakpFLQp6WWw4TEpwbXQ8RWJ2X2t3
NXg5e1ohc3slJG9vZ09uSUkyWXx0LU9iaENSe2VedGFSSykyVjkkRihTJHBtR25pbjIKejtjaX5a
VG9XX25mdDReWl91TkFjdytpQ1pIWFNKQl5vZWp1IVloa3pxSCg0OFEhPTJxKElKd0NoK0c9YWNE
Tlo2Cnp5aXNzOHJIM0d+Q3ZINkFTb2Q/b2dEP1RHPzh8Zz84SC0rXip2Y0JsUGJ7P3VGXjtfKyEk
Xk0qK19GVjNTQWNZPQp6LWExekhqSFkqKCkkY2VDWChKd1I0fTFpK05oaDc+SChGTV5sSUp7bnM9
OFcmcWRaUVJJSz8kI0ZgPkw7cCskNmEKemdSRW17IXRJTiNSa2EqREx3eTxjVHprUGF0eTRPeklg
VnIxPGRkWH4mfiFLa3J0RyFoa2h8USokS04obitjO0pECnpje1h2dm4+LVp9eiZiKz1hQTQ3LXQh
Pj19M3xwPW8hQT90UFA4T2ZKa0ltO2BZazE2QTVJYyZSeWtQO0c+dUthOQp6YkIocnhXdEBgXmxI
QTA0SiQ7eUs4c218fHpKSENqaE4oYXFpaitnM1EkQFlyNz5wI1opYHw8NktOXzJrXzJgdC0Keilm
dyotdT9ESlNHbWZlX3d8ZldOazBLfkg0clozLXN6PWxaU1UhZkN2KSpad2sldV4rZ0lIe1JUanpE
TnlOV00oCnp7UmtfcnRPNz4jVyokLWQ8YmZgdVdyTGthUG08cTROcyF2MV5XRCVgSHpMMl5geTEt
S1pKVWZNRV5mYT4oPFR6fAp6USRqYVBmJURzeU5gOWUmOVIpfXMrNnBLT2BVRUlfR31tMnopdXxp
ZHkyKihrPCFibjRhfXUzMlYxRC18Mm47KkAKek1uPmkpUUdTdHFgeDU8Jnw1TGVhVl48RmpLTWRP
dTZgfjI8N1dZRmdVeHxfdGlCY29FXlIqcm9oRmR+fEgqY0JICnpnfW9fNiY5bG85eTY3X2BgaCVV
O0MoYVQrcVQkdEN4OWQhdj5ZOzsqJllPc1pCUHY9Sk5eSV8qdl50JW9YWjkoagp6JiMqPTRUV2cy
cyM0RV8qLVRkJV5PYXF1eiFva2IpSUBVJlplflN9UnpNR0ZyZXwjaiZUZ0p9dmFlPjF2bWBUa3UK
emRrNFE4ZChfTmJDTlI0SXJkX2ByIVBPXj1aaGphaSgjcD0xQ2ZYfnZobkM0U2ZXdFg4UUkjaThO
ODtacVdjWDAkCnpTP0RJKVd1Z0pUSCtoQzJPOz1NZG1oUD5yalF6NGxubjtRMz99a2NEZ3RSIWJR
KnN3Pm9NU2U+VFV0VkZMfHBuVAp6dHtxYTtmOWV6S1FaflJBSzVKVFlxPDZDcF9tT3BDcFp0d08p
b3lkdDwtcEY+bzBheGp5d189ZGx+MUBtPig9JmoKekR6Vio1LVk9azh4LVE4PD5WQ2MyMzQmcXlw
PyVHcD1qRSlgUGw4QmNybWgxUT9vPVVHbHN5b14oVHo9aVgmY091Cno4OWpsSyh1JV9aS1pIV0Yt
WCllQzZBdndxZklPSEZmY2JldmpYS0g7Sj56ZFR6OD1TNXh5eVBvR28+JWo8RVp6Wgp6Mlk1Plds
bWE2YHI1Zzloc2tBbTUrVHpeYndpMkFHTDxGcWJ1SH5rb2BxLUxXPWF3R21GNEt1bW85MCNKeVZC
TSEKenxIKWRqN2BvWVdIb0FTYCNkfn5wTHZ3TW4rNGZ3YGhrfWEkX1FlXiQjUDB3M0l2ZXxyYkpU
PiNCSzA9WWtTZmxRCnoqdUdkdEZXI2U+RU5tVG9HclZuMTN+Pjs9ZzBXIyEoMnsmc2dwd21BezVL
SCl5UW5UbD5aWHwwfDJuTD5qK0s1PAp6dWhNPHUrODF1b3p2NUxxLT5JQml0P1IhejkofG59PDFE
O3chYzBPWFJ2WEBfeVNGfjF1cllHIWw9MURtTW10S3UKem80TktRQHlKPj96VGx6ZkRqMXB1Wm4l
YGYpNjAkQzdaZWQtZWZYQG5Kay0rRyo0RmFEOEBUcXlORDhyYkZsPWApCnpLMG89KndZdFlPWi1Y
RCEpenR+VGtzQGhCaUprQ0hOZGMkKkIkWTltc2cxeWZrTEAhOWI1RS0jJihmUURgVmJ1cwp6dWtJ
QWBBeiRySyNqO1FeR0c9ZzxGST5IUGBAbXJ7Mmx9diFDZHZJYnFIdzd4Z2p7JDRYWSMhVUUoNFdg
YE5SfDIKelhvciomPVQwVGhNRHpkaUJ6IXRAO3R2dEM4ZClMWTlmUzt9dmhYWX1GN2crbiF+YCtA
SGhkYUJOaDxRYzdaKDB9CnpOTkc2KV9hY2x4NlZRVURmJiM2dkJrP01RKDV0dytJQ3dWRGYrbHJ+
WHdiMk5gK3Y7JEA5UFUtelM7fGJIZWshaAp6QnxzUTU3byFNdFEqMjMreDZnLXBKI1A3aj9LOEYh
K0pIX2R4JnpAcGw7Zj5gU0koOX48ZmFAY2J9NGYyKUgqJiUKejkre0RIXyMocCZSZX5efXpGIVNV
JkVlRyE8LVViTUJjRUBvQHE7bUAyI2ZleUgtbEtsX3dVbVJ0PSUqbHR5b0syCnpgO3tQOVk/fHE+
eHEheTNvJHlGWXkrWVVNZTlEVzhfd1YxTWVZbHNZJFZmP0M0dD9+cilqSlpXTyp8endAKnR1agp6
aiRAT3gra0g7JWYkZVEjZXIkZSV4QkctJjBhVVRyWExWRnNjc1lYRWk7eG1NbzkheWI+K0k1VFpB
c0J+SSpgS2cKemImYztZZSRhazMxbHY4b1UrMWBVKVVOb1FieT1Qbjkpc19ERlhTJlledmU5dDA5
Z2p9VyE4SG49dz1hRCZwbGJUCnpNQnQrNGlkeSR7STtgM25tQmVIK3BKdm5ObHJuQEB2TTxjdWtz
YUBfakcrKWEtTjZ6dEllX3s1VV80e1dvVUhCaAp6TGF3T3MtdlBIbT9KVntrJSprVUVlYUV8PmlG
bX5vcmdsUER2IVhTbmN4SjdWMD87eWEyKD1CTHFAQjBDb2BuJHsKeiU1fX4hPmxGJG9gWUhVViU9
YkA7VzJvS05tWWotUyNjM0piaWIrKUMqdD51eW4jTTA9Y1NnUkkmSUlifT4jZiRpCnp0YVAtQUlx
WVk+eDQtPCQ7bEp1SDkxR3EoI0oqXylCKnJycSExYClffERuJSRjK094bDspYz8/JnJXI3xaQEV6
UAp6YmN5UWwrdj5sfUJ+dG1AeTEqWVp6alpARkV+WjZpYk9PaC1KZHI+YlAmd3koeFc+cl9hUCVY
OHlMaSpRTzZIXiYKenteOzNBPE40MDlRMGJ9bExSNnN8S2tYfVVuRXNweVQ+c0tTWXZfdGx3d0E+
N3FmRkB5K2Z0MGlKPmBIIUI8XmpJCnpaUmVmUk90YEdhdT19Z1IhfUVTQmVqMFQkQlMoTW9UNEty
c2Q3VGwrZjJ4aXFnYmNVcGNPVzBlWXslRCFhcT82Nwp6Mip1MW1mY1ZMQXw3cUVsNGQtb0A+JSFV
VTUzP0A4bGdveGpTQHU4aGs1QElsayl3PDAydlJMQXlffF9Zb2B4TmwKendwPzcpVzBYcUclM2tA
MTxiPHJ1eGtNVz95Rjc3d09TZStecmhLaTFTT18pSj5qZUx8dn5FUytPTTFWNG1KaUtICnpuNElB
MjdoaDw2Sl9vdHsobm8pe1laNGpjNXcwWVc+QURjP0VqYTElQWF8PElgTWw4RjZ3ZCFLczJKUEdM
MCNWRwp6VWl9dGsmfElgSihoYThTTkVnMjRxa1Njc3tWRTlOY0pILW84cDItZStJMCtOUCV9PGAh
Uzd3ajsrb0pZamMjeUEKelhAajN1aWRCaVhVUmQyI2JvaHpwbz14MVNONmZObGd5R05EI3xFVTs8
SFUyJGd8UiM9NlB9flRaUUdZSVcoO0xsCnpPLSNCIVU2aHwpejFBXyphfTc2byRMVmZKOHxQPThg
dz4lYEBxeG9VdilualhMJCVBbi16e1h+aGNeRHZLN3c/ZQp6YFkhVXZ0dT51MEt+Y3dXNFI+Kzk8
c1NRWl8qfihJPmAhPlo9XzU8YC1YfTUyTUkpYCRkaTlaM0B8XytkbkZfRUIKeihfNnEtSG0mOVYo
OC0qX3Y/Y0d8PipTTF43ZGVRbD9BJHNpPXZpeT5wblhrO2g8JCMhYUBQMFBSfFdzV00ofiVlCno5
RFFiWlFUXks+THk0QUMheEttcFM1MW1gayVtVjthPkBMTmhGIT8zeXFjYVk4Y1hIR28od1ZXKmIl
TnE0PU4zJQp6dmNGXlgoJiNRZlJpPnJkdEAmXmk1OExWN1BWKlR4P2ROaSl2NG1zd2hJX0N9OHNI
KTVTYCRReVdOb0kwUElSQ1cKem1kZXY7bCY7UklPamZhNGNwcWwrISg+OUUjd2FUP1lWYnVTKmIr
NiZCWnUmJjU8JGM7bnl2fDdUQTVfckhPOTl8Cno4THMzajQ0ejU2IS16QTdWfEhQaWZzcCVVUmFJ
P0RJWHg5Z01YeDdkYlA/TkJiWnolTnlIN0kjQCtGMjMjMzQ9WAp6T28+MnJIKlBwbW16fEtZaTAh
PFdKNl5rPSZnQmFBT1g5JTI0LXA7fSloSkN4ZS1QJnFPOHJzTFJxc15aaz1VfVAKemZtP3QpLWwh
emY2QW8mTWx8QUZMQVRBcTRfM3EtVlFjTSR5R35VZ1pOITZ7MWZOYiVhRkF0PCFOe3YqOEJAWHtp
CnpzNHVMZVQ2RDIrLTB6KVIzO2d5Vk1yYzdoM3dVfCNxdUdAU2VGRm5SJX0lMTYtfGA2Zyk+Q3Z8
JCQqQUA/eCpjMAp6cj5mRChmbj5iMnYrQXdwRDNzZXo+WF8rK1dZIWRIaGBXKFVKeUc8eU1SJDg+
YHgjfVZpY04xcDsqUzh2MjBQSlUKejcwdXJzUilvXko/NismJl5+SnQ0UTFeTGhYPSV6NVBwbDdB
JUwkOXM0I2gjVlc9KjE4YF42b01pTlpDWXVPRUlPCnpVU2R7NV9CclctQyF1ZitIM3JyfkclTEMy
TTNPK1lMRGEleCkyKCt+eExxYzxHd2MzfkNvez8pUkRhR2QzWF9RTgp6YFJWMzNmZWZqYlRIcXYx
dkU1PGN3KnR7JlM5Z3k/PjJkPyl3O3VLJnM+LWArSnlFQVopWlFrT29JdkJLS3FZVjsKemQtP3da
JS1ZVGxJISsqPytpbSo/UkhBZnFJaSFyWGtIMDhDMj1pPXRKOGl1PihYckIoJGYpPCFgMWJ6dmJv
YFUlCnpnZHpfYSh1X2l4YiMmNGcoeH5qNDtzcihTKyhKfkZ5I1F1RDRZKD9jUVIzRlNuUjVNUWhw
KGtuV1hxK1htTGsrfAp6bVBoKVlXIX5BTHBWRT40QilVNUoqd19kTmZfaGQwNyNXT3BtejdRQzZH
OEFnXjdaNV5sLVdaUWIqVlNRZj9kYCMKenpSRUk3YjB3JCpjLUU5fjBOTDxlUGh0QCY+elR4Skw1
eilYMTBVMylffWNOTkQzYlJXPDR4Uik/KzNDOE1HdmVECno8O3RQdUJXQXQwe3UxMClhblNLMDB+
MDx6WSUtbVUjRSlJcTI0ZVNycHcjczZHR0dsc0N3RHgkWTdIRVJEYU8qTQpJKCFlZTFLVnF7KDxe
VFd5CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCmluZGV4IDkwYmE0MWYuLjk5MWM3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTMzLDYgKzMzLDcg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVj
dG9yLlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5lIik7CiAKICAgICB0aGlzLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fY3JlYXRlVG9wUGFuZSgpKTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0TWVudS5iaW5kKHRoaXMpLCB0
cnVlKTsKICAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOwogCiAgICAgdGhpcy5fc2lkZWJh
ckJhY2tncm91bmRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC03
OCw2ICs3OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVuY3Rpb24oKQogICAg
IHRoaXMuX2l0ZW1zR3JhcGhzRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9leHBhbmRFbGVtZW50
cyk7CiAKICAgICB0aGlzLl9yb290UmVjb3JkID0gdGhpcy5fY3JlYXRlUm9vdFJlY29yZCgpOwor
ICAgIHRoaXMuX3Jhd1JlY29yZHMgPSBbXTsKICAgICB0aGlzLl9zZW5kUmVxdWVzdFJlY29yZHMg
PSB7fTsKICAgICB0aGlzLl9zY2hlZHVsZWRSZXNvdXJjZVJlcXVlc3RzID0ge307CiAgICAgdGhp
cy5fdGltZXJSZWNvcmRzID0ge307CkBAIC0xMDAsNiArMTAyLDggQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fdGltZVN0YW1wUmVjb3JkcyA9IFtd
OwogICAgIHRoaXMuX2V4cGFuZE9mZnNldCA9IDE1OwogCisgICAgdGhpcy5fY3JlYXRlRmlsZVNl
bGVjdG9yKCk7CisKICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5FdmVudFR5cGVzLlRpbWVsaW5lRXZl
bnRSZWNvcmRlZCwgdGhpcy5fb25UaW1lbGluZUV2ZW50UmVjb3JkZWQsIHRoaXMpOwogfQogCkBA
IC0yMTcsNiArMjIxLDY5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5yZWNvcmRzQ291bnRlci5jbGFzc05hbWUgPSAidGltZWxpbmUtcmVj
b3Jkcy1jb3VudGVyIjsKICAgICB9LAogCisgICAgX2NyZWF0ZUZpbGVTZWxlY3RvcjogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpCisgICAg
ICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVu
dCk7CisKKyAgICAgICAgdmFyIGZpbGVTZWxlY3RvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbnB1dCIpOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnR5cGUgPSAiZmls
ZSI7CisgICAgICAgIGZpbGVTZWxlY3RvckVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IDA7CisgICAg
ICAgIGZpbGVTZWxlY3RvckVsZW1lbnQub25jaGFuZ2UgPSB0aGlzLl9pbXBvcnRGcm9tRmlsZS5i
aW5kKHRoaXMpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZmlsZVNlbGVjdG9y
RWxlbWVudCk7CisgICAgICAgIHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQgPSBmaWxlU2VsZWN0
b3JFbGVtZW50OworICAgIH0sCisKKyAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9uKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0
TWVudSgpOworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiJkV4cG9ydCBUaW1lbGluZSBkYXRhLi4uIiksIHRoaXMuX2V4cG9ydFRvRmlsZS5iaW5k
KHRoaXMpKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIiZJbXBvcnQgVGltZWxpbmUgZGF0YS4uLiIpLCB0aGlzLl9maWxlU2VsZWN0b3JFbGVt
ZW50LmNsaWNrLmJpbmQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCkpOworICAgICAgICBjb250
ZXh0TWVudS5zaG93KGV2ZW50KTsKKyAgICB9LAorCisKKyAgICBfaW1wb3J0TmV4dENodW5rOiBm
dW5jdGlvbihkYXRhLCBpbmRleCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MjAgJiYgaW5kZXggPCBkYXRhLmxlbmd0aDsgKytpLCArK2luZGV4KQorICAgICAgICAgICAgdGhp
cy5fYWRkUmVjb3JkVG9UaW1lbGluZShkYXRhW2luZGV4XSk7CisKKyAgICAgICAgaWYgKGluZGV4
ICE9PSBkYXRhLmxlbmd0aCkKKyAgICAgICAgICAgIHNldFRpbWVvdXQodGhpcy5faW1wb3J0TmV4
dENodW5rLmJpbmQodGhpcywgZGF0YSwgaW5kZXgpLCAwKTsKKyAgICB9LAorCisgICAgX2ltcG9y
dEZyb21GaWxlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoZSkg
eworICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGUudGFyZ2V0LnJlc3VsdCk7Cisg
ICAgICAgICAgICB2YXIgdmVyc2lvbiA9IGRhdGFbMF07CisgICAgICAgICAgICB0aGlzLl9pbXBv
cnROZXh0Q2h1bmsoZGF0YSwgMSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy50b2dn
bGVUaW1lbGluZUJ1dHRvbi50b2dnbGVkKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVs
aW5lTWFuYWdlci5zdG9wKCk7CisKKyAgICAgICAgdGhpcy5fY2xlYXJQYW5lbCgpOworCisgICAg
ICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICByZWFkZXIub25sb2Fk
ID0gb25Mb2FkLmJpbmQodGhpcyk7CisgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KHRoaXMuX2Zp
bGVTZWxlY3RvckVsZW1lbnQuZmlsZXNbMF0pOworICAgICAgICB0aGlzLl9jcmVhdGVGaWxlU2Vs
ZWN0b3IoKTsKKyAgICB9LAorCisgICAgX2V4cG9ydFRvRmlsZTogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdmFyIG5vdz0gbmV3IERhdGUoKTsKKyAgICAgICAgdmFyIGRhdGUgPSBTdHJpbmcu
c3ByaW50ZigiJTRkLSUyZC0lMmQtJTJkLSUyZCIsIG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0
TW9udGgoKSArIDEsIG5vdy5nZXREYXRlKCksIG5vdy5nZXRIb3VycygpLCBub3cuZ2V0TWludXRl
cygpKTsKKworICAgICAgICB2YXIgcmVjb3JkcyA9IFsnWycgKyBKU09OLnN0cmluZ2lmeSh3aW5k
b3cubmF2aWdhdG9yLmFwcFZlcnNpb24pXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
aGlzLl9yYXdSZWNvcmRzLmxlbmd0aCAtIDE7ICsraSkKKyAgICAgICAgICAgIHJlY29yZHMucHVz
aChKU09OLnN0cmluZ2lmeSh0aGlzLl9yYXdSZWNvcmRzW2ldKSk7CisgICAgICAgIHJlY29yZHMu
cHVzaChKU09OLnN0cmluZ2lmeSh0aGlzLl9yYXdSZWNvcmRzW3RoaXMuX3Jhd1JlY29yZHMubGVu
Z3RoIC0gMV0pICsgIl0iKTsKKworICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2F2ZUFz
KCJUaW1lbGluZVJhd0RhdGEtIiArIGRhdGUgKyAiLmpzb24iLCByZWNvcmRzLmpvaW4oIixcbiIp
KTsKKyAgICB9LAorCiAgICAgX3VwZGF0ZVJlY29yZHNDb3VudGVyOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICB0aGlzLnJlY29yZHNDb3VudGVyLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCIlZCBvZiAlZCBjYXB0dXJlZCByZWNvcmRzIGFyZSB2aXNpYmxlIiwgdGhpcy5f
cm9vdFJlY29yZC5fdmlzaWJsZVJlY29yZHNDb3VudCwgdGhpcy5fcm9vdFJlY29yZC5fYWxsUmVj
b3Jkc0NvdW50KTsKQEAgLTMxNCw2ICszODEsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fY2xlYXJQYW5lbCgpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIHRoaXMuX3Jhd1JlY29yZHMucHVzaChyZWNv
cmQpOwogICAgICAgICB0aGlzLl9pbm5lckFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCB0aGlz
Ll9yb290UmVjb3JkKTsKICAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKCk7CiAgICAgfSwK
QEAgLTQzNSw2ICs1MDMsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgX2NsZWFyUGFuZWw6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Rp
bWVTdGFtcFJlY29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fcmF3UmVjb3JkcyA9IFtdOwogICAg
ICAgICB0aGlzLl9zZW5kUmVxdWVzdFJlY29yZHMgPSB7fTsKICAgICAgICAgdGhpcy5fc2NoZWR1
bGVkUmVzb3VyY2VSZXF1ZXN0cyA9IHt9OwogICAgICAgICB0aGlzLl90aW1lclJlY29yZHMgPSB7
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cwppbmRleCA4MDM2Y2FjLi4wODYzZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0zODcyLDYgKzM4NzIsMTQgQEAgYm9keS5p
bmFjdGl2ZSBsaS5zZWxlY3RlZCAuYnViYmxlLnNlYXJjaC1tYXRjaGVzIHsKICAgICAtd2Via2l0
LW1hc2stcG9zaXRpb246IC0xMjhweCAtMjRweDsKIH0KIAorLnNhdmUtYXMtc3RhdHVzLWJhci1p
dGVtIC5nbHlwaCB7CisgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiAtNjRweCAtNDhweDsKK30K
KworLmxvYWQtZnJvbS1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKKyAgICAtd2Via2l0LW1hc2st
cG9zaXRpb246IC05NnB4IC00OHB4OworfQorCiAudGltZWxpbmUtcmVjb3Jkcy1jb3VudGVyLCAu
c3RvcmFnZS1hcHBsaWNhdGlvbi1jYWNoZS1zdGF0dXMsIC5zdG9yYWdlLWFwcGxpY2F0aW9uLWNh
Y2hlLWNvbm5lY3Rpdml0eSB7CiAgICAgZm9udC1zaXplOiAxMXB4OwogICAgIHRleHQtc2hhZG93
OiB3aGl0ZSAwIDFweCAwOwo=
</data>
<flag name="commit-queue"
          id="96004"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101276</attachid>
            <date>2011-07-18 23:46:50 -0700</date>
            <delta_ts>2011-07-19 01:32:25 -0700</delta_ts>
            <desc>[patch] fourth version with fixed test</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>23326</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNjE4ZDA5Yy4uYTNjMDkzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA3
LTE4ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgaW1wb3J0L2V4cG9ydCBmb3IgdGltZWxpbmUgZGF0YS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjAxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLmh0bWw6IEFkZGVkLgorCiAyMDExLTA3
LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBDaHJv
bWl1bSB0ZXN0IGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZTA0MGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGVzdHMgdGhlIFRpbWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFsaXR5LgorCitw
YXNzZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNkOTFjNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0idGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiBwZXJmb3JtQWN0aW9ucygpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworfQorCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwor
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5w
cm90b3R5cGUsICJfaW1wb3J0Q29tcGxldGUiLCBsb2FkZWQpOworICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5zYXZlQXMgPSBzYXZlQXM7CisgICAgdmFyIGRhdGEgPSBbCisgICAgICAgIHsic3Rh
cnRUaW1lIjoxMzEwNzQ5ODU0MzE2Ljg0MDgsImRhdGEiOnsiaWRlbnRpZmllciI6NDMsInVybCI6
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJS
ZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0b3RhbEhlYXBTaXpl
Ijo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMTguOTMyOSwiZGF0
YSI6eyJpZGVudGlmaWVyIjo0Mywic3RhdHVzQ29kZSI6MjAwLCJtaW1lVHlwZSI6InRleHQvaHRt
bCJ9LCJjaGlsZHJlbiI6W10sImVuZFRpbWUiOjEzMTA3NDk4NTUxMTguOTY4LCJ0eXBlIjoiUmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2UiLCJ1c2VkSGVhcFNpemUiOjE4MTk5MzYsInRvdGFsSGVhcFNp
emUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEzNi4yNDUsImRh
dGEiOnsiaWRlbnRpZmllciI6NDQsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvbWFp
bi5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0
IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAg
ICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzYuNjU1LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ1
LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2dyZWVuLmNzcyIsInJlcXVlc3RNZXRo
b2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIz
NjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMx
MDc0OTg1NTEzNy4wMjMsImRhdGEiOnsiaWRlbnRpZmllciI6NDYsInVybCI6Imh0dHA6Ly93d3cu
d2Via2l0Lm9yZy9jc3MvYmx1ZS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJS
ZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXpl
Ijo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzcuMzQyLCJkYXRh
Ijp7ImlkZW50aWZpZXIiOjQ3LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL3llbGxv
dy5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0
IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAg
ICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUxMzcuNjU2LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ4
LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL3BpbmsuY3NzIiwicmVxdWVzdE1ldGhv
ZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2
NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEw
NzQ5ODU1MTM3Ljk4OSwiZGF0YSI6eyJpZGVudGlmaWVyIjo0OSwidXJsIjoiaHR0cDovL3d3dy53
ZWJraXQub3JnL2Nzcy9wdXJwbGUuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoi
UmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6
ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM4LjMwOCwiZGF0
YSI6eyJpZGVudGlmaWVyIjo1MCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ncmF5
LmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3Qi
LCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9XTsKKworICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMudGltZWxpbmUuX2ltcG9ydE5leHRDaHVuayhkYXRhLCAwKTsK
KworICAgIGZ1bmN0aW9uIGxvYWRlZCgpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnRpbWVsaW5lLl9leHBvcnRUb0ZpbGUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzYXZl
QXMobmFtZSwgc2F2ZURhdGEpCisgICAgeworICAgICAgICBzYXZlRGF0YSA9IEpTT04ucGFyc2Uo
c2F2ZURhdGEpOworICAgICAgICBzYXZlRGF0YS5zaGlmdCgpOy8vIHN0cmlwIHZlcnNpb24gaW5m
bworICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZGF0YSkgPT0gSlNPTi5zdHJpbmdpZnkoc2F2
ZURhdGEpKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInBhc3NlZCIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic2F2ZWQg
ZGF0YSBpcyBub3QgZXF1YWwgdG8gcmVzdG9yZWQiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoZSBUaW1lbGluZSBzYXZlL2xvYWQgZnVu
Y3Rpb25hbGl0eS4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdmYTcz
ODAuLjUwYWEzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMS0wNy0xOCAgSWx5
YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaW1wbGVtZW50IGltcG9ydC9leHBvcnQgZm9yIHRpbWVsaW5lIGRhdGEuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDYwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1sb2FkLmh0bWwKKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyb250ZW5kTWVudVByb3ZpZGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMv
c3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZUZp
bGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5
cGUuX2NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZS5faW1wb3J0TmV4dENodW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5faW1wb3J0RnJvbUZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9leHBvcnRUb0ZpbGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9hZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fY2xlYXJQYW5lbCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAo
LnNhdmUtYXMtc3RhdHVzLWJhci1pdGVtIC5nbHlwaCk6CisgICAgICAgICgubG9hZC1mcm9tLXN0
YXR1cy1iYXItaXRlbSAuZ2x5cGgpOgorCiAyMDExLTA3LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04oOTEyMDk/KTogZmFzdC9jc3MvY3Vz
dG9tLWZvbnQteGhlaWdodC5odG1sIGlzIGZhaWxpbmcgb24gTGVvcGFyZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNl
L1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDYyZjQ5NTkw
MjZiOTcwMTIwMzBmYjNlYzU0NTViNjVhOWEzZTYxOTIuLjhkODVhMDU5NGNmNWE5Y2VhZDZiMDdk
NTBkNWE3MTJmZDQzNzI0M2YgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMjM3CnpjbWRt
WG9CN2RRPF8rODRQTDdhSiV+V0lYV1hOU0dWOH59RVZrbHV5VTxoSHoxb0JmRWEpNUxta1hCJHdW
TXFrWgpuQnJAb01wJU96WlB8T3lIbF45NlVKTmJaP1psTX4zRD88Z0B3dm5wV250PS1kVUY8QiQK
CmRlbHRhIDkKUmNtYUVLbXdEVDU8Xys4NDBzdEhNMSohbDUKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDAwNGU0NTcuLmFj
OWRjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBhc3RlYm9hcmQuaCIKICNpbmNsdWRlICJTY3JpcHRGdW5jdGlvbkNhbGwuaCIKKyNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTkxLDYgKzkyLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVt
KiBpdGVtKQogICAgIHsKICAgICAgICAgaWYgKG1fZnJvbnRlbmRIb3N0KSB7CisgICAgICAgICAg
ICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNz
aW5nVXNlckdlc3R1cmUpOwogICAgICAgICAgICAgaW50IGl0ZW1OdW1iZXIgPSBpdGVtLT5hY3Rp
b24oKSAtIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWc7CiAKICAgICAgICAgICAgIFNjcmlw
dEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImNvbnRleHRNZW51SXRlbVNl
bGVjdGVkIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0ltYWdlcy9zdGF0dXNiYXJCdXR0b25HbHlwaHMucG5nIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbWFnZXMvc3RhdHVzYmFyQnV0dG9uR2x5cGhzLnBuZwppbmRleCBjNDk4
N2Y0MTIwOTMwZDY4ZDE3MWYyZjJmZjIyZTg3ZDZiYTJmMmY1Li42ZDYzYmIwNTc0NTEyMzcyMDE4
ZTVlODFmZDNlZmVhNDE1MzkxZjRlIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDQ1NDgK
emNtWntIY1JiViZ7UW9VeSQwMGw4b1Z7ZlcqKDlzWExMXkJrTkBudFFNKW5SQjg3WjxJdmJtRVNN
SWBJJkQ+TCh1CnpkRk9vbHtDPHpgcFdvTihwViNhNGM+ZW53dVJsczMpemReVT5kcCktQFowN2xo
TT0/bXkwRGAoR2hMVnEwTVJ9Kgp6dm9OQmFyZSRHfj1Gb1Z4Qzt8Y0Baa1FTQiojPUstekoyITZa
dFF1bD96ODVCMndwRlJIezc0X3c4SVNhN0UrJGgKeiklTmFYJD5TIUBZPCF1ZmlRWH5la2skdEtr
d0JIKHFmZnsxaFRqYn42U19jK3FmP3lhPTAzMTUlQVg5eF5+WmBuCnpNSmhnYUR6QFE+a0dqWm9f
JjQ9KmRUYGxxMytQeEdvRnh5dSl4dkp5QE9yel9MQyFscCVBZlpybT4pdSFNZH13Pgp6Q3omKk9w
T0BmWjVXTzdwWi1kelc/fDlHcVdkcDxnWnRoSC1RVGhSUk8zdnZmWlVKWGBoNzM/SmRYUmNPTExU
Rz0KekYjKSVzT1ZNbytTJkhsMCNxeSh7MU0yd0NGe1NrQXE9em9ZPEhYVTJaSTh9ejY5RlM0e2lM
QVFzamdZWmo1JHJeCnp1Mmt7WDg5IXJVWSM9Y2FjaDM3QkZiUV92I0BnUGY1X3QxYko0MzJ9akFs
UlAoaDtrfGA2R35EcFdgTmI4VEhLSgp6dlBTVjdaRz8wKlFgRiVaMlBkUWc/TlYybj9HZk5fOWYh
QXlDOylSY3MpSD9JUkh5dFB1M0N0clAoSzZsZjxfUWwKenF7fXF3cF5+MnRLKFppYGFoWX0wNjg/
Z2opeF8jPXJ+Q3wrKDdVJEhPKn5KaUtsKE96VT9pdlhheHBNS1dkNCUjCnpDSVUyI1VPQH1ecDYj
Yk04byh6KFZKLU1YVm40Y3xoNDs5e2xodHdZPkkxfnVzaVNiKW04RntPMmsrUjQkR0F7bwp6JFFl
OHZkaX07clB8YWF9Sj1mfSRmUm9JS2hmazt7YlREPHFrcTFDclFQSEZoRXcjb1k9PXxPfjtGRmtr
e1NPPGYKei1Qa2s8JiF8RFU1dWpBVzl+Ui0mRzhgP0tKcV9lcktGc29uO2I8VkZaJURrVz1rbT95
Jnw3YmREUHRJVlFucG1nCnpIVnN2WVhuPWpRZlVlSjBgKGtWO2dqfEVvIU5TM3BMX0h9QVE4MGpL
SFJwakFeanU+eCtNPipCMjlgJmdDJHdHKAp6PzN2SnRUYHBKKlcxSEN5P217aF44fGNiPistTmdB
djBOfUNJIShHbCtMYG1sT3xAKT1hRH5mTnlpMiFVQkMqVk0KeiY4UEJUZWBnWFcoZCpDTUZEd0E9
R0xURjJCWm9EeGxIZUZCSjgya3F6Q2dLbEJMS3hzKVJGcyhudm9PNlVPX2NHCno1NHYjUXRHeGlG
Q2BaamBVUncmaGxTWl4hSlFOMEtmajFqRXhrZD56WXthcC15KUFldnFlUHB6WWhaOGIpR3lXJAp6
VlY/OVdSIyZ4bnA9P0IxbTZKMUJhNnlSSzhyRig1YUJDfnYoJHVBMS1MSXBqK0dDPzgjVkJJXkx4
aVludGAyLTQKejtxUzU7dWsjN0kxLSFNdWR5TVZ4MDkoaHk8Wn43I1U9bUZSP1lWemVHPjc8TFo0
dFRKQlplbmFYOD5kaCUwODZECnpXRVVwKnNhWGlwez0/eHArTWh2ISUjaU05Ml9GUXhXPDFreStR
NEJeWWt6WDxFSV5RP0VuPWsmXio0ZipfenQoPAp6UyZ7TT5FNF9VLXVFaiF7eEZwJjg+dVVPP0g7
N0MkcDlwMzlDYXdqQ2dfYzVDeWk2bTd7cDNpUHE9aHItXiZYdHcKejlPSXVCaExtYEo9PXtYVUpN
YTxVaTBuPUxAP0NPPkNfP2tIPDtMMXlaJWxrWEAqJH0pXypxY2deJHFKKHtfXz9JCnpZM3hPJSEy
Jjw7YzBEND5MbnVSbVA2Z1JmRmV+JVo2MnY4RXdDeFB2a3ROMV9QTTlvaUZIe2k9b21naWc5Kmtu
Tgp6JTdiRyl4YDRTWG55aDBiMSZmVWxGT2IzU1VtWjk1TlgqMmBpZTBlV3NfWWBqeWdndlImP0BW
OVQlNWRiUSs9VWAKekE8UHFoJVNDYyF5czQxK2hsYnVzJiVye3NMIyFJM2FMbSg0PHUrIUxmM1hp
VnNwTW8jcTc1fVNZaiU3NEwxeVJVCnpMS0VKJVhqPnV6O2ZDfGRGRjRzQUBob2UmMT1yRGElQGV3
UT1OV0ZZXmkyO1Z6Yz1yST5nKE1NdWBic2QlOHdEWgp6UU59ek1gUGNjd2taKFhCVW9XJktaV09F
RyQodnZpVktmRU83NG87KE9Ye2NfP094bmJYSUBfQiUlXmpLUCVaUUsKekY0KGtHcitJJHhkaGE1
I1NNcFRBWkpvWEZLfjg0R2czPjc3SntAI3tVTUQrPlZ5YFk0KzxyQkJQSVArWihAfkM0CnpDUiF1
e2l4MXordCl7JHZ2UEQ7I3ptX0FrNURCVzd7SH5kM0pIK15MeUJrMCEreDdXb3tZNC1WaDEoPkNV
Q0YjKgp6bVYqWmRJJmZidS0rNG91NVUmdjlxbXxrTT9HQm1eZ2NlYnRZQzN6OUZAJiElayZgYVhl
WiEhUTU2fnIlMl55KGUKenVNcGRaMjEqOSpMeWpUI3w3b1MtcW9OKHFkND9GYSFoZjxVMGhaJFVL
U3RwSEJOYDtZeWRHO1ZCYDQmQmFlZD13CnpkPiNXWUQ/Mz4rU0NiVSRsTklCZTIydyY7NjJeYEMr
SG9WYjJwZkJNLUtAIXF2Rlc7MTlSNn0lT21mXz1FQEFhegp6RShWUmY/V1V1O185S3NCckw4dFo+
SmU+cmoyS2xEbVFYaTZUdk4kdzUpPjRhT1MwOGN7WXdEWEpxQE8pTD87YE0KeiRwaWd1Z3BhY1or
Uz1Nbk5JSEBiUTRrfmUrbHRPMjlSQ1YmXyNTMTNaOy1HcU1mcjFnK3VVejc7KkpvNkZTfSNXCnpS
OVZ6UzcxN1F8Q3xZKXhqcEZVTE9SbzB1MSNPd1hKeVIjQ0lKSz4zKH1XK2lWSS19PVI5TGYwSyk4
c2lqNkVMJAp6NT82QjRDQ05sOTcoI2NIJUozWCg3dV5zait6fHohMmhuSkJpJkA2Tm01ZSpCcVpT
MjxjZHdoNl5oT2JVWXZ2RWEKemJzYXlzUkBoeTs1YWxiWHM8M1NEQ1pAe2ZVa200YzJ2TnAydE5a
VCMxYTIqUE5vU3k1SXx6WFhBcCRyJiRlRzVPCnpFZm1EPEYka2heQE5Ldlk/WjMrdkA/RnYrUE1j
Kl52WiN+UDcrYVFsSUVuMEZeODY9NEx6O1pUZHRmcmdmQE40Ygp6aGFYRGVKYHkzYFJIVy0kcj0y
IWpKSFRBdiVUd1Y2LS1WJFM/Q19FRmNIdSFtT19AaW5GSjhQVFZQUiZMbUNOYkIKelNwVXVVIUdt
PyN0U2RwO1MzYzxZeE1maUReWWZfJEhsaVRJQGhLISUkMlh7VDdAfSZaZVRWYThLZ2dTZyU/SXVy
CnprIS1pQkBCVztaRlR2WjNfQG9nczBWd2lRUkx5Q14qIWclK3NPN2xEb0xFP3N0eGN2JGc3bHJ8
P1gySlp1ZX1oIwp6ZVhwWWlFKFY1TXlyLVB1I252RTRRbU8qS3E/dU5iRFo8Wk40fEhmOVpAVDtC
Q3g3cUg3fWM8XmFEVF9AUnd8PEYKemFyR3VBSUo8eDh3U2o+X3FXT29QMGxVYiNPcTJHPzdZLU9T
WWtlKUVuZShXMUwjdTZgNTJ5b1Z7ZF5OJkEoIW9oCnp5NiMlbmN6eCplTz1LZHhNU01HSHBkNDtW
NFRWUjE/NDU+WVkxfHc/ezZPZFRgZnR+V2smKU8hWWNGKVJ5QkBpdQp6NXFZPz9qenJgZSZDS3hS
Jj5kQGNja1hadHJnTSMkP0lOQW9pI0Y7ekhiMj1fLV5ATXZLNGxHNFM1USF4NVo0e3YKemEyQ0Eh
V29PSkBGMzBOfTZUbWRFeHc/OEpGZktxfjE9fU9CSXEzT3JfLX4mYXdmUCU5a3dSV3ZDd3h2I24p
SUE4CnpedDt6dWROWFRGNX01bmE9WHJfMFp2PntvWXc3dm9nWXtgM1B0bDRedkAtcSVjI0oyYGI1
MiEmS0t4LWN1WXBSfgp6PXJxLURaSEMyZ0hkTipiY18/ZE5nPWVLMk1wWiRBdVVUfVlZJjxUWWR4
fG14bCszM3RUNz5zMDFfPkhoeUJKQUgKelhgWip1NHBvJGgrRURkNWBYZE4tME1CPWFNeExIZ1Vy
aEtfPXxAVU8hJWl0SWF5K2VBODVZTWFfdVl+K2hIPnN+Cnp5MmxeI3Bodk5OaXp+SnJMRktIOGg/
fForR1klZlElNlRybkVUalR+OWN0cjZ5TzV2NipNdihOTVplbCN6dldxKAp6ITVrcHQ8b24rUFdC
MU4yQFhBdiZ7RGFAU2BpT25uLTEyT3QzdTM+YE8wQGc9Z0RkViRmVEhVREFgUTwzeyMoQ1IKenpK
aXxWd3V9fD9ETD1gSk4mTmpTNXZpWVVpX2R1ODJVYnI5KDJSY0Y7M1hHNXR9eEJCaXU8QXMmMUxY
RXVldzlvCnoreDx5Sy0hc3l4OW1KJnQrbTQlRzlGK1pEbCVHT31lYFVuOWEjSjtIOEVfMmtvJjlS
RSprcTkkTzdIaVlBaz5LQAp6VzEpRjZRSHFSM3lTcGIrX0gmfX0/OEx1SyRQYlhBeSpjQVleZEZH
aEooQFkzcHxDXlFuIXk2WnVKcng2ckRCWn0KelFgM1FUUHd5KkJ4djhKfXprQUlxU0RBT3JNfUpZ
Tz9BUXFfXkgqYkRSeF9tWV5WQX5HSysqa0p1SndDKUZaUFkpCnopMFJaN2ZXMFhXejI5V2BfenFn
UHk4Tm0tRnkhPHZWR04oZUNNaURXQGtFdDk0RHgrV1hoRXk9OGZ2PXxXJWNoYAp6Q0Q9WnhfXjcz
QVhMdytRaTtfamcrYWE7PHs4QzJgNGY0UDMpamJgWXtSdXdrKkYlOFVyM2dqKmpjfmNgJDAyZ18K
empUMWVqRnMhbXBPdSNfTGRDYSp2QGM+ZDI7ciU1ISNFKHNZTnl7d0lTU3BCWHs5SCY3eyYpcUd6
czdhTDZnbVpFCno7YFVJRHd8JmQpaz1NR1pyOG1iT3pCbVBiNXshT2U3RSR2eEdgNC1JNlV0OWQ7
VHdtcUApNGhKZmFJKCk3VXd1JAp6Q3BwRGElRlBPZUE0WEtPVmRjd1RKKiMmU0xwaD8jNWk/ZSM1
PE1FaklaMWBTMDZ5ZUkqUXg2JVNzZ2RNbD8wZX0KekdXS2o+ajJufGJFP1Q9PTYxbH4zKVJkR0kr
VWNwTyZgZ3gxKjVgfShtITQqb3dRcFlqY2skR0pzdFlkWjNSQyFTCnpCUU5JclgoJkRFOz15NnVD
bmFPXi1HMUoleDQ3UEQpPHBhfDtjSyV+bCNsallzVD1ybG9BfU57TD5XbkhuPSprMwp6I0hCdSk9
PjQyZHM4UHNIY25SKGY5QiEpeEVjTktmcUYxdzN7akFtcT91Mz96KmhKSjMhbj40fTsyV0JfNjN7
YX0KenNPM2BmMm0lWklDdmpTUFNFRClxWG1OcDtQdVVoX1VOOUd9RU01cSUrNzwxKV9jPUhFTz9i
KipAbU8qaDQkJW4lCnp1WTAlQzk/ZDQxJWR1N28oR3cwSGBSakRnTHJPb2lZdj9ERCF4O0kwMzUw
b3Y9X2hQN2Z2fnt1T35GX0hYaD5gdwp6ZnxeN2dpa3N+bzwyRE95Y14kP0VSVSleeHdnUWIwQiVP
NT8ycVBtRzMzMEdoemYkRis8WU03fnF5UlI/Tl9lWDMKemlgcyhZPz9jPXxFe0pWXnAwTnV1elRn
NTA7JkV5USpuWkh1VnxGd1ZaUjFuRzAjKlk5dThablA+Yys5e25AUzIyCnpuUnlRQkJIYTJDXnJV
LTQ7Q3woPUFtMG47T0IlLVhOaGVYeyVkQD8lMFAoQEpHflRkYUpmKy1QMHh6d01aMXtoIwp6UG0q
Xyo/U0VkTHFQdSZZJX5zK2lzOHtxQGdJdHlJJio1Un1UWVc9aGxxb3d7bEgqRm1MS05raTZ2PTRx
dEhYYUYKej1IcmtmQ1FfbHxVMzdXKHpZeVJpakpsSV85STNjYFo1fDteVyZ7e2UqdUJ+IWt8MXM4
e2lLI2t7Qz1fN0QxKHVJCnppbm0+WHYydE1uTy1jUnNWR0kzXy1wKmVtb0FJRTR5dz1ucXd7Qy0k
I1k9cChUXzhGMGo1fCZqTjMjeTNkbUp4Jgp6IT1oQGNeSmlEcEI5bWVJX3VmLUBHWHxqZzUhWSpY
PTNDbnJGa2NVITYzX1dLTl4kKWlOaGJ5K0Rgd1cobUAkYUgKellYSlE1S3xkcm9KWj9hSSpkUUMt
Iy1ZSWxBR2FQJkpGRW1MPCg9Q2RIS3c8UWApaSlYdmdGVm54PUdSRUNANThUCnppYG5RankkSHJ5
dzFPST57eHI9SEIyRik3Xyp3TTRwMSN1YEQ/NDc+MjJKb2RHOEBHVD8mTH5SX0k8YUxQQU9wawp6
K2dCOUU2WE13NmU4UClgUnsqWEU1Vk5aQWtldjgyO0teRGooKUMqWm8wLXBVU3ZGWmktfVBQJFFl
c3pBQEFtVEsKeiRDeUpVM19XSF5PIXFUZlZTbiM9XlQpbkZlZDslX1BzRHR8NUdjfGsoTkJScE5n
NHtwJCg5QCRHQ2h4OC1HRyhtCnpkbUdna2s4WT8qTUJVNDBkU2BCPWwqP3RsVGZ1SSp1UHFeYVlM
XzwxK3I9blFDV2ZvSWVjZXtgUWNOO1U1TzQ8fQp6VXMwKE1LVzF3NkZmc3VuMTZHQTE/Nlk4dU5V
Vi05UzU4Y1MlKjxCV3pPdSZyMWx7cTYmYjROYSsqQ0VgMXNENkAKekR8SkFYO19eRjNgSTR0e2ch
PnRWODNwP0UzVCpWODYzMz88bUE8VXJtQUJ2cj52ZSNeU31VdWc8eD0kSlBWRUMmCnpJJXRJTVAx
Y1pBPj88bXpuKGRFNnQ3e1FBQE5oOThAKDVhR0UkXjJfSzdPMm0+aXRTKCM5QFR7enhoUXJwSFZZ
ZAp6WFBHeTBEXiVCeWJnPHYwWF9vdm5fdjBIVEBxVjNZT189IUxsMlUtTCklQ3ZGaTshdj9pOG8t
O3M+b0slWGVNTnEKejhvdFFZMXomQk5sLTc/SmdscTd1ZEotZnIoJnVzc21uaTJhYV9xVTVTfF49
e0BERnRtJXk1N2ojM1VGTTM9TiF7Cnp7VFZzNnB8KyZzWWBHbDdsaDUoK2M0bVJUcUFSXlpTKEw9
QGRZY3EpTWY0NitFdUghfnQ7d1VhWVo+IyFnaGQ8awp6QnQ9RyVtLUM0TSVgKiUjKmBacktRYEVh
fEVBKT9HSS0pMmlMJXV+TlEzKHpVJD5DOU5YeXdmLU55RXB8dnNQZUwKejkyZHJhTHJnZnQxb1Fl
dyQhI0ZCUGQ4QCZeQV9BdnFAOV9oQT0kKTRWZjBmfXl8cV97NkRHViZkUzxBaWxSJjM+CnpJcCsy
Wmc0a1U3JUFNXlNkQzZRUVVaYThpZWY0ZUA9ek4wREpAdntmMURMYSFQal9JOXhDaEwwLXxXK3NP
PlQ3bAp6TV9HUXdQNkUjTm1PSF5sPjYjMn1xWTg8dkYlYGBhUTt0aDZ8RSV9XitxP2VDUVplVGtl
Un1KRXc2PitPbSo3WWsKYiREY3RMYFF5eDxhTkdCVHsqe0BMckQzKGNUamMpJEomQ052CgpkZWx0
YSAzODQxCnpjbWEpOVM1JVY9djs5SXNtbmdsN2dhe2YrczNKJkhOfkI3V0FgJWJgaCMrMTw1ZXpq
Njx3JSFLNUNIe0lrJmEzVwp6PHBUaT1uMUQhODRneyRPMn10a2Q9ZSp0Wi08TFpOZClBc1k0Pk5s
fD8zdmVeXlF4KDVHZzckKFl0QX16NWZTYnQKeipSS0lVczA7dipxNSl2JT1zMz48SyMoIzN7QntF
WEVlWmUjPElgUWN0XnhvJik2X2Bjal97TTJBQ2h8N1VnRzByCnp5eV8xYlhYPnhrWCl7PE9RYjVK
cmhSYW1uPj1kNlpuKiNoc0cqPj8qOGleIWlJJXVNODVIVmBtQXxfRVVQWCphcAp6IT15TUwjZmNa
a1UkS197ckkwfD5tV0V3cWRhNWwte0BFSkl2N31xam1sbDRFe2IwTyQ8SjBzaVkmTktFWVA1fV4K
emVONnleTis+I0U2ZD1aJFExbHYqYGBfXldMUCZEZHMpK2xmdDIkNmp6OCVtRUNrVHhFPE5BV2ZC
RGRydEMjWFRUCnpCfH1NSCEyeGcpPmA8N31sflQlX1F2STxCKGJ7entofF5zb3g9a2Q0T054MD1I
aTlVQEljM2w0QE5wNHAheXlLOQp6JWZvS0pAWmsyXllpSn0jY31+bmB7UlRMNVhrSWNqYFRTJnd1
Xm8+MyFZbzlKWE9IQ3J4ckg+Zz5yKVVuYkwweGQKeiN0YHVBRlhLZW09dG5CJnBsSTtpNTJ0QnJm
OyE0KihpcUdHVzVrNVBjQ2NfSkw8N1EyTzd5QDI7bkgoVU0xTGczCno9QyhMWDY0ViFSaE9Iby1q
LUIzPCh2OWZQWUFEbnRtNEk9YHQmMFk8S1dZQTxJYEY2UjR1ZiM7VlJPe0JsakpFLQp6WWw4TEpw
bXQ8RWJ2X2t3NXg5e1ohc3slJG9vZ09uSUkyWXx0LU9iaENSe2VedGFSSykyVjkkRihTJHBtR25p
bjIKejtjaX5aVG9XX25mdDReWl91TkFjdytpQ1pIWFNKQl5vZWp1IVloa3pxSCg0OFEhPTJxKElK
d0NoK0c9YWNETlo2Cnp5aXNzOHJIM0d+Q3ZINkFTb2Q/b2dEP1RHPzh8Zz84SC0rXip2Y0JsUGJ7
P3VGXjtfKyEkXk0qK19GVjNTQWNZPQp6LWExekhqSFkqKCkkY2VDWChKd1I0fTFpK05oaDc+SChG
TV5sSUp7bnM9OFcmcWRaUVJJSz8kI0ZgPkw7cCskNmEKemdSRW17IXRJTiNSa2EqREx3eTxjVHpr
UGF0eTRPeklgVnIxPGRkWH4mfiFLa3J0RyFoa2h8USokS04obitjO0pECnpje1h2dm4+LVp9eiZi
Kz1hQTQ3LXQhPj19M3xwPW8hQT90UFA4T2ZKa0ltO2BZazE2QTVJYyZSeWtQO0c+dUthOQp6YkIo
cnhXdEBgXmxIQTA0SiQ7eUs4c218fHpKSENqaE4oYXFpaitnM1EkQFlyNz5wI1opYHw8NktOXzJr
XzJgdC0KeilmdyotdT9ESlNHbWZlX3d8ZldOazBLfkg0clozLXN6PWxaU1UhZkN2KSpad2sldV4r
Z0lIe1JUanpETnlOV00oCnp7UmtfcnRPNz4jVyokLWQ8YmZgdVdyTGthUG08cTROcyF2MV5XRCVg
SHpMMl5geTEtS1pKVWZNRV5mYT4oPFR6fAp6USRqYVBmJURzeU5gOWUmOVIpfXMrNnBLT2BVRUlf
R31tMnopdXxpZHkyKihrPCFibjRhfXUzMlYxRC18Mm47KkAKek1uPmkpUUdTdHFgeDU8Jnw1TGVh
Vl48RmpLTWRPdTZgfjI8N1dZRmdVeHxfdGlCY29FXlIqcm9oRmR+fEgqY0JICnpnfW9fNiY5bG85
eTY3X2BgaCVVO0MoYVQrcVQkdEN4OWQhdj5ZOzsqJllPc1pCUHY9Sk5eSV8qdl50JW9YWjkoagp6
JiMqPTRUV2cycyM0RV8qLVRkJV5PYXF1eiFva2IpSUBVJlplflN9UnpNR0ZyZXwjaiZUZ0p9dmFl
PjF2bWBUa3UKemRrNFE4ZChfTmJDTlI0SXJkX2ByIVBPXj1aaGphaSgjcD0xQ2ZYfnZobkM0U2ZX
dFg4UUkjaThOODtacVdjWDAkCnpTP0RJKVd1Z0pUSCtoQzJPOz1NZG1oUD5yalF6NGxubjtRMz99
a2NEZ3RSIWJRKnN3Pm9NU2U+VFV0VkZMfHBuVAp6dHtxYTtmOWV6S1FaflJBSzVKVFlxPDZDcF9t
T3BDcFp0d08pb3lkdDwtcEY+bzBheGp5d189ZGx+MUBtPig9JmoKekR6Vio1LVk9azh4LVE4PD5W
Q2MyMzQmcXlwPyVHcD1qRSlgUGw4QmNybWgxUT9vPVVHbHN5b14oVHo9aVgmY091Cno4OWpsSyh1
JV9aS1pIV0YtWCllQzZBdndxZklPSEZmY2JldmpYS0g7Sj56ZFR6OD1TNXh5eVBvR28+JWo8RVp6
Wgp6Mlk1PldsbWE2YHI1Zzloc2tBbTUrVHpeYndpMkFHTDxGcWJ1SH5rb2BxLUxXPWF3R21GNEt1
bW85MCNKeVZCTSEKenxIKWRqN2BvWVdIb0FTYCNkfn5wTHZ3TW4rNGZ3YGhrfWEkX1FlXiQjUDB3
M0l2ZXxyYkpUPiNCSzA9WWtTZmxRCnoqdUdkdEZXI2U+RU5tVG9HclZuMTN+Pjs9ZzBXIyEoMnsm
c2dwd21BezVLSCl5UW5UbD5aWHwwfDJuTD5qK0s1PAp6dWhNPHUrODF1b3p2NUxxLT5JQml0P1Ih
ejkofG59PDFEO3chYzBPWFJ2WEBfeVNGfjF1cllHIWw9MURtTW10S3UKem80TktRQHlKPj96VGx6
ZkRqMXB1Wm4lYGYpNjAkQzdaZWQtZWZYQG5Kay0rRyo0RmFEOEBUcXlORDhyYkZsPWApCnpLMG89
KndZdFlPWi1YRCEpenR+VGtzQGhCaUprQ0hOZGMkKkIkWTltc2cxeWZrTEAhOWI1RS0jJihmUURg
VmJ1cwp6dWtJQWBBeiRySyNqO1FeR0c9ZzxGST5IUGBAbXJ7Mmx9diFDZHZJYnFIdzd4Z2p7JDRY
WSMhVUUoNFdgYE5SfDIKelhvciomPVQwVGhNRHpkaUJ6IXRAO3R2dEM4ZClMWTlmUzt9dmhYWX1G
N2crbiF+YCtASGhkYUJOaDxRYzdaKDB9CnpOTkc2KV9hY2x4NlZRVURmJiM2dkJrP01RKDV0dytJ
Q3dWRGYrbHJ+WHdiMk5gK3Y7JEA5UFUtelM7fGJIZWshaAp6QnxzUTU3byFNdFEqMjMreDZnLXBK
I1A3aj9LOEYhK0pIX2R4JnpAcGw7Zj5gU0koOX48ZmFAY2J9NGYyKUgqJiUKejkre0RIXyMocCZS
ZX5efXpGIVNVJkVlRyE8LVViTUJjRUBvQHE7bUAyI2ZleUgtbEtsX3dVbVJ0PSUqbHR5b0syCnpg
O3tQOVk/fHE+eHEheTNvJHlGWXkrWVVNZTlEVzhfd1YxTWVZbHNZJFZmP0M0dD9+cilqSlpXTyp8
endAKnR1agp6aiRAT3gra0g7JWYkZVEjZXIkZSV4QkctJjBhVVRyWExWRnNjc1lYRWk7eG1Nbzkh
eWI+K0k1VFpBc0J+SSpgS2cKemImYztZZSRhazMxbHY4b1UrMWBVKVVOb1FieT1Qbjkpc19ERlhT
JlledmU5dDA5Z2p9VyE4SG49dz1hRCZwbGJUCnpNQnQrNGlkeSR7STtgM25tQmVIK3BKdm5ObHJu
QEB2TTxjdWtzYUBfakcrKWEtTjZ6dEllX3s1VV80e1dvVUhCaAp6TGF3T3MtdlBIbT9KVntrJSpr
VUVlYUV8PmlGbX5vcmdsUER2IVhTbmN4SjdWMD87eWEyKD1CTHFAQjBDb2BuJHsKeiU1fX4hPmxG
JG9gWUhVViU9YkA7VzJvS05tWWotUyNjM0piaWIrKUMqdD51eW4jTTA9Y1NnUkkmSUlifT4jZiRp
Cnp0YVAtQUlxWVk+eDQtPCQ7bEp1SDkxR3EoI0oqXylCKnJycSExYClffERuJSRjK094bDspYz8/
JnJXI3xaQEV6UAp6YmN5UWwrdj5sfUJ+dG1AeTEqWVp6alpARkV+WjZpYk9PaC1KZHI+YlAmd3ko
eFc+cl9hUCVYOHlMaSpRTzZIXiYKenteOzNBPE40MDlRMGJ9bExSNnN8S2tYfVVuRXNweVQ+c0tT
WXZfdGx3d0E+N3FmRkB5K2Z0MGlKPmBIIUI8XmpJCnpaUmVmUk90YEdhdT19Z1IhfUVTQmVqMFQk
QlMoTW9UNEtyc2Q3VGwrZjJ4aXFnYmNVcGNPVzBlWXslRCFhcT82Nwp6Mip1MW1mY1ZMQXw3cUVs
NGQtb0A+JSFVVTUzP0A4bGdveGpTQHU4aGs1QElsayl3PDAydlJMQXlffF9Zb2B4TmwKendwPzcp
VzBYcUclM2tAMTxiPHJ1eGtNVz95Rjc3d09TZStecmhLaTFTT18pSj5qZUx8dn5FUytPTTFWNG1K
aUtICnpuNElBMjdoaDw2Sl9vdHsobm8pe1laNGpjNXcwWVc+QURjP0VqYTElQWF8PElgTWw4RjZ3
ZCFLczJKUEdMMCNWRwp6VWl9dGsmfElgSihoYThTTkVnMjRxa1Njc3tWRTlOY0pILW84cDItZStJ
MCtOUCV9PGAhUzd3ajsrb0pZamMjeUEKelhAajN1aWRCaVhVUmQyI2JvaHpwbz14MVNONmZObGd5
R05EI3xFVTs8SFUyJGd8UiM9NlB9flRaUUdZSVcoO0xsCnpPLSNCIVU2aHwpejFBXyphfTc2byRM
VmZKOHxQPThgdz4lYEBxeG9VdilualhMJCVBbi16e1h+aGNeRHZLN3c/ZQp6YFkhVXZ0dT51MEt+
Y3dXNFI+Kzk8c1NRWl8qfihJPmAhPlo9XzU8YC1YfTUyTUkpYCRkaTlaM0B8XytkbkZfRUIKeihf
NnEtSG0mOVYoOC0qX3Y/Y0d8PipTTF43ZGVRbD9BJHNpPXZpeT5wblhrO2g8JCMhYUBQMFBSfFdz
V00ofiVlCno5RFFiWlFUXks+THk0QUMheEttcFM1MW1gayVtVjthPkBMTmhGIT8zeXFjYVk4Y1hI
R28od1ZXKmIlTnE0PU4zJQp6dmNGXlgoJiNRZlJpPnJkdEAmXmk1OExWN1BWKlR4P2ROaSl2NG1z
d2hJX0N9OHNIKTVTYCRReVdOb0kwUElSQ1cKem1kZXY7bCY7UklPamZhNGNwcWwrISg+OUUjd2FU
P1lWYnVTKmIrNiZCWnUmJjU8JGM7bnl2fDdUQTVfckhPOTl8Cno4THMzajQ0ejU2IS16QTdWfEhQ
aWZzcCVVUmFJP0RJWHg5Z01YeDdkYlA/TkJiWnolTnlIN0kjQCtGMjMjMzQ9WAp6T28+MnJIKlBw
bW16fEtZaTAhPFdKNl5rPSZnQmFBT1g5JTI0LXA7fSloSkN4ZS1QJnFPOHJzTFJxc15aaz1VfVAK
emZtP3QpLWwhemY2QW8mTWx8QUZMQVRBcTRfM3EtVlFjTSR5R35VZ1pOITZ7MWZOYiVhRkF0PCFO
e3YqOEJAWHtpCnpzNHVMZVQ2RDIrLTB6KVIzO2d5Vk1yYzdoM3dVfCNxdUdAU2VGRm5SJX0lMTYt
fGA2Zyk+Q3Z8JCQqQUA/eCpjMAp6cj5mRChmbj5iMnYrQXdwRDNzZXo+WF8rK1dZIWRIaGBXKFVK
eUc8eU1SJDg+YHgjfVZpY04xcDsqUzh2MjBQSlUKejcwdXJzUilvXko/NismJl5+SnQ0UTFeTGhY
PSV6NVBwbDdBJUwkOXM0I2gjVlc9KjE4YF42b01pTlpDWXVPRUlPCnpVU2R7NV9CclctQyF1ZitI
M3JyfkclTEMyTTNPK1lMRGEleCkyKCt+eExxYzxHd2MzfkNvez8pUkRhR2QzWF9RTgp6YFJWMzNm
ZWZqYlRIcXYxdkU1PGN3KnR7JlM5Z3k/PjJkPyl3O3VLJnM+LWArSnlFQVopWlFrT29JdkJLS3FZ
VjsKemQtP3daJS1ZVGxJISsqPytpbSo/UkhBZnFJaSFyWGtIMDhDMj1pPXRKOGl1PihYckIoJGYp
PCFgMWJ6dmJvYFUlCnpnZHpfYSh1X2l4YiMmNGcoeH5qNDtzcihTKyhKfkZ5I1F1RDRZKD9jUVIz
RlNuUjVNUWhwKGtuV1hxK1htTGsrfAp6bVBoKVlXIX5BTHBWRT40QilVNUoqd19kTmZfaGQwNyNX
T3BtejdRQzZHOEFnXjdaNV5sLVdaUWIqVlNRZj9kYCMKenpSRUk3YjB3JCpjLUU5fjBOTDxlUGh0
QCY+elR4Skw1eilYMTBVMylffWNOTkQzYlJXPDR4Uik/KzNDOE1HdmVECno8O3RQdUJXQXQwe3Ux
MClhblNLMDB+MDx6WSUtbVUjRSlJcTI0ZVNycHcjczZHR0dsc0N3RHgkWTdIRVJEYU8qTQpJKCFl
ZTFLVnF7KDxeVFd5CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDkwYmE0MWYuLjQ3YjkyMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTMz
LDYgKzMzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5lIik7CiAKICAgICB0aGlzLmVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVG9wUGFuZSgpKTsKKyAgICB0aGlzLmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0TWVudS5iaW5k
KHRoaXMpLCB0cnVlKTsKICAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOwogCiAgICAgdGhp
cy5fc2lkZWJhckJhY2tncm91bmRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CkBAIC03OCw2ICs3OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVuY3Rp
b24oKQogICAgIHRoaXMuX2l0ZW1zR3JhcGhzRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9leHBh
bmRFbGVtZW50cyk7CiAKICAgICB0aGlzLl9yb290UmVjb3JkID0gdGhpcy5fY3JlYXRlUm9vdFJl
Y29yZCgpOworICAgIHRoaXMuX3Jhd1JlY29yZHMgPSBbXTsKICAgICB0aGlzLl9zZW5kUmVxdWVz
dFJlY29yZHMgPSB7fTsKICAgICB0aGlzLl9zY2hlZHVsZWRSZXNvdXJjZVJlcXVlc3RzID0ge307
CiAgICAgdGhpcy5fdGltZXJSZWNvcmRzID0ge307CkBAIC0xMDAsNiArMTAyLDggQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fdGltZVN0YW1wUmVj
b3JkcyA9IFtdOwogICAgIHRoaXMuX2V4cGFuZE9mZnNldCA9IDE1OwogCisgICAgdGhpcy5fY3Jl
YXRlRmlsZVNlbGVjdG9yKCk7CisKICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5FdmVudFR5cGVzLlRp
bWVsaW5lRXZlbnRSZWNvcmRlZCwgdGhpcy5fb25UaW1lbGluZUV2ZW50UmVjb3JkZWQsIHRoaXMp
OwogfQogCkBAIC0yMTcsNiArMjIxLDc1IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5yZWNvcmRzQ291bnRlci5jbGFzc05hbWUgPSAidGlt
ZWxpbmUtcmVjb3Jkcy1jb3VudGVyIjsKICAgICB9LAogCisgICAgX2NyZWF0ZUZpbGVTZWxlY3Rv
cjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1l
bnQpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZmlsZVNlbGVj
dG9yRWxlbWVudCk7CisKKyAgICAgICAgdmFyIGZpbGVTZWxlY3RvckVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnR5
cGUgPSAiZmlsZSI7CisgICAgICAgIGZpbGVTZWxlY3RvckVsZW1lbnQuc3R5bGUub3BhY2l0eSA9
IDA7CisgICAgICAgIGZpbGVTZWxlY3RvckVsZW1lbnQub25jaGFuZ2UgPSB0aGlzLl9pbXBvcnRG
cm9tRmlsZS5iaW5kKHRoaXMpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZmls
ZVNlbGVjdG9yRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQgPSBm
aWxlU2VsZWN0b3JFbGVtZW50OworICAgIH0sCisKKyAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9u
KGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rv
ci5Db250ZXh0TWVudSgpOworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiJkV4cG9ydCBUaW1lbGluZSBkYXRhLi4uIiksIHRoaXMuX2V4cG9ydFRv
RmlsZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIiZJbXBvcnQgVGltZWxpbmUgZGF0YS4uLiIpLCB0aGlzLl9maWxlU2Vs
ZWN0b3JFbGVtZW50LmNsaWNrLmJpbmQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCkpOworICAg
ICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKKyAgICB9LAorCisKKyAgICBfaW1wb3J0TmV4
dENodW5rOiBmdW5jdGlvbihkYXRhLCBpbmRleCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMjAgJiYgaW5kZXggPCBkYXRhLmxlbmd0aDsgKytpLCArK2luZGV4KQorICAgICAg
ICAgICAgdGhpcy5fYWRkUmVjb3JkVG9UaW1lbGluZShkYXRhW2luZGV4XSk7CisKKyAgICAgICAg
aWYgKGluZGV4ICE9PSBkYXRhLmxlbmd0aCkKKyAgICAgICAgICAgIHNldFRpbWVvdXQodGhpcy5f
aW1wb3J0TmV4dENodW5rLmJpbmQodGhpcywgZGF0YSwgaW5kZXgpLCAwKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGhpcy5faW1wb3J0Q29tcGxldGUoKTsKKyAgICB9LAorCisgICAgX2lt
cG9ydENvbXBsZXRlOiBmdW5jdGlvbigpCisgICAgeworICAgIH0sCisKKyAgICBfaW1wb3J0RnJv
bUZpbGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG9uTG9hZChlKSB7Cisg
ICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoZS50YXJnZXQucmVzdWx0KTsKKyAgICAg
ICAgICAgIHZhciB2ZXJzaW9uID0gZGF0YVswXTsKKyAgICAgICAgICAgIHRoaXMuX2ltcG9ydE5l
eHRDaHVuayhkYXRhLCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLnRvZ2dsZVRp
bWVsaW5lQnV0dG9uLnRvZ2dsZWQpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVN
YW5hZ2VyLnN0b3AoKTsKKworICAgICAgICB0aGlzLl9jbGVhclBhbmVsKCk7CisKKyAgICAgICAg
dmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICAgIHJlYWRlci5vbmxvYWQgPSBv
bkxvYWQuYmluZCh0aGlzKTsKKyAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQodGhpcy5fZmlsZVNl
bGVjdG9yRWxlbWVudC5maWxlc1swXSk7CisgICAgICAgIHRoaXMuX2NyZWF0ZUZpbGVTZWxlY3Rv
cigpOworICAgIH0sCisKKyAgICBfZXhwb3J0VG9GaWxlOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB2YXIgbm93PSBuZXcgRGF0ZSgpOworICAgICAgICB2YXIgZGF0ZSA9IFN0cmluZy5zcHJp
bnRmKCIlNGQtJTJkLSUyZC0lMmQtJTJkIiwgbm93LmdldEZ1bGxZZWFyKCksIG5vdy5nZXRNb250
aCgpICsgMSwgbm93LmdldERhdGUoKSwgbm93LmdldEhvdXJzKCksIG5vdy5nZXRNaW51dGVzKCkp
OworCisgICAgICAgIHZhciByZWNvcmRzID0gWydbJyArIEpTT04uc3RyaW5naWZ5KHdpbmRvdy5u
YXZpZ2F0b3IuYXBwVmVyc2lvbildOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X3Jhd1JlY29yZHMubGVuZ3RoIC0gMTsgKytpKQorICAgICAgICAgICAgcmVjb3Jkcy5wdXNoKEpT
T04uc3RyaW5naWZ5KHRoaXMuX3Jhd1JlY29yZHNbaV0pKTsKKyAgICAgICAgcmVjb3Jkcy5wdXNo
KEpTT04uc3RyaW5naWZ5KHRoaXMuX3Jhd1JlY29yZHNbdGhpcy5fcmF3UmVjb3Jkcy5sZW5ndGgg
LSAxXSkgKyAiXSIpOworCisgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zYXZlQXMoIlRp
bWVsaW5lUmF3RGF0YS0iICsgZGF0ZSArICIuanNvbiIsIHJlY29yZHMuam9pbigiLFxuIikpOwor
ICAgIH0sCisKICAgICBfdXBkYXRlUmVjb3Jkc0NvdW50ZXI6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ZXIudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIiVkIG9mICVkIGNhcHR1cmVkIHJlY29yZHMgYXJlIHZpc2libGUiLCB0aGlzLl9yb290
UmVjb3JkLl92aXNpYmxlUmVjb3Jkc0NvdW50LCB0aGlzLl9yb290UmVjb3JkLl9hbGxSZWNvcmRz
Q291bnQpOwpAQCAtMzE0LDYgKzM4Nyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl9jbGVhclBhbmVsKCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgdGhpcy5fcmF3UmVjb3Jkcy5wdXNoKHJlY29yZCk7
CiAgICAgICAgIHRoaXMuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIHRoaXMuX3Jv
b3RSZWNvcmQpOwogICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2goKTsKICAgICB9LApAQCAt
NDM1LDYgKzUwOSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICBfY2xlYXJQYW5lbDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fdGltZVN0
YW1wUmVjb3JkcyA9IFtdOworICAgICAgICB0aGlzLl9yYXdSZWNvcmRzID0gW107CiAgICAgICAg
IHRoaXMuX3NlbmRSZXF1ZXN0UmVjb3JkcyA9IHt9OwogICAgICAgICB0aGlzLl9zY2hlZHVsZWRS
ZXNvdXJjZVJlcXVlc3RzID0ge307CiAgICAgICAgIHRoaXMuX3RpbWVyUmVjb3JkcyA9IHt9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
Y3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmlu
ZGV4IDgwMzZjYWMuLjA4NjNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTM4NzIsNiArMzg3MiwxNCBAQCBib2R5LmluYWN0
aXZlIGxpLnNlbGVjdGVkIC5idWJibGUuc2VhcmNoLW1hdGNoZXMgewogICAgIC13ZWJraXQtbWFz
ay1wb3NpdGlvbjogLTEyOHB4IC0yNHB4OwogfQogCisuc2F2ZS1hcy1zdGF0dXMtYmFyLWl0ZW0g
LmdseXBoIHsKKyAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IC02NHB4IC00OHB4OworfQorCisu
bG9hZC1mcm9tLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGggeworICAgIC13ZWJraXQtbWFzay1wb3Np
dGlvbjogLTk2cHggLTQ4cHg7Cit9CisKIC50aW1lbGluZS1yZWNvcmRzLWNvdW50ZXIsIC5zdG9y
YWdlLWFwcGxpY2F0aW9uLWNhY2hlLXN0YXR1cywgLnN0b3JhZ2UtYXBwbGljYXRpb24tY2FjaGUt
Y29ubmVjdGl2aXR5IHsKICAgICBmb250LXNpemU6IDExcHg7CiAgICAgdGV4dC1zaGFkb3c6IHdo
aXRlIDAgMXB4IDA7Cg==
</data>
<flag name="review"
          id="96135"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101287</attachid>
            <date>2011-07-19 01:32:25 -0700</date>
            <delta_ts>2011-07-19 03:01:43 -0700</delta_ts>
            <desc>[patch] fifth version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11290</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNjE4ZDA5Yy4uYTNjMDkzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA3
LTE4ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgaW1wb3J0L2V4cG9ydCBmb3IgdGltZWxpbmUgZGF0YS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjAxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLmh0bWw6IEFkZGVkLgorCiAyMDExLTA3
LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBDaHJv
bWl1bSB0ZXN0IGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZTA0MGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGVzdHMgdGhlIFRpbWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFsaXR5LgorCitw
YXNzZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAyNjcxYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0idGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiBwZXJmb3JtQWN0aW9ucygpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworfQorCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwor
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5w
cm90b3R5cGUsICJfaW1wb3J0TmV4dENodW5rIiwgaW1wb3J0TmV4dENodW5rKTsKKyAgICBJbnNw
ZWN0b3JGcm9udGVuZEhvc3Quc2F2ZUFzID0gc2F2ZUFzOworICAgIHZhciBkYXRhID0gWworICAg
ICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44NDA4LCJkYXRhIjp7ImlkZW50aWZpZXIi
OjQzLCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9
LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MTgxOTkzNiwidG90
YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTE4
LjkzMjksImRhdGEiOnsiaWRlbnRpZmllciI6NDMsInN0YXR1c0NvZGUiOjIwMCwibWltZVR5cGUi
OiJ0ZXh0L2h0bWwifSwiY2hpbGRyZW4iOltdLCJlbmRUaW1lIjoxMzEwNzQ5ODU1MTE4Ljk2OCwi
dHlwZSI6IlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0
b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUx
MzYuMjQ1LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ0LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5v
cmcvY3NzL21haW4uY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VT
ZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEy
MH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM2LjY1NSwiZGF0YSI6eyJpZGVu
dGlmaWVyIjo0NSwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ncmVlbi5jc3MiLCJy
ZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhl
YXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFy
dFRpbWUiOjEzMTA3NDk4NTUxMzcuMDIzLCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ2LCJ1cmwiOiJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2JsdWUuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9
LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90
YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3
LjM0MiwiZGF0YSI6eyJpZGVudGlmaWVyIjo0NywidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3Jn
L2Nzcy95ZWxsb3cuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VT
ZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEy
MH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3LjY1NiwiZGF0YSI6eyJpZGVu
dGlmaWVyIjo0OCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9waW5rLmNzcyIsInJl
cXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVh
cFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0
VGltZSI6MTMxMDc0OTg1NTEzNy45ODksImRhdGEiOnsiaWRlbnRpZmllciI6NDksInVybCI6Imh0
dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvcHVycGxlLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQi
fSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRv
dGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEz
OC4zMDgsImRhdGEiOnsiaWRlbnRpZmllciI6NTAsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9y
Zy9jc3MvZ3JheS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNl
bmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIw
fV07CisKKyAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnRpbWVsaW5lLl9pbXBvcnROZXh0Q2h1bmso
ZGF0YSwgMCk7CisKKyAgICBmdW5jdGlvbiBpbXBvcnROZXh0Q2h1bmsoKQorICAgIHsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnBhbmVscy50aW1lbGluZS5fZXhwb3J0VG9GaWxlKCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc2F2ZUFzKG5hbWUsIHNhdmVEYXRhKQorICAgIHsKKyAgICAgICAgc2F2
ZURhdGEgPSBKU09OLnBhcnNlKHNhdmVEYXRhKTsKKyAgICAgICAgc2F2ZURhdGEuc2hpZnQoKTsg
Ly8gc3RyaXAgdmVyc2lvbiBpbmZvCisgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhKSA9
PSBKU09OLnN0cmluZ2lmeShzYXZlRGF0YSkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgicGFzc2VkIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJzYXZlZCBkYXRhIGlzIG5vdCBlcXVhbCB0byByZXN0b3JlZCIpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhlIFRp
bWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFsaXR5LgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggN2ZhNzM4MC4uNmQ5ZGI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDExLTA3LTE4ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgaW1wb3J0L2V4cG9ydCBmb3IgdGlt
ZWxpbmUgZGF0YS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY0NjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQuaHRtbAorCisgICAgICAg
ICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJvbnRlbmRN
ZW51UHJvdmlkZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5
cGUuX2NyZWF0ZUZpbGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUuX2NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZS5faW1wb3J0TmV4dENodW5rKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5faW1wb3J0RnJvbUZpbGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9leHBvcnRUb0ZpbGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9hZGRSZWNvcmRUb1Rp
bWVsaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5f
Y2xlYXJQYW5lbCk6CisKIDIwMTEtMDctMTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUkVHUkVTU0lPTig5MTIwOT8pOiBmYXN0L2Nzcy9jdXN0b20tZm9udC14
aGVpZ2h0Lmh0bWwgaXMgZmFpbGluZyBvbiBMZW9wYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9F
bmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNjJmNDk1OTAyNmI5NzAxMjAz
MGZiM2VjNTQ1NWI2NWE5YTNlNjE5Mi4uOGQ4NWEwNTk0Y2Y1YTljZWFkNmIwN2Q1MGQ1YTcxMmZk
NDM3MjQzZiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyMzcKemNtZG1Yb0I3ZFE8Xys4
NFBMN2FKJX5XSVhXWE5TR1Y4fn1FVmtsdXlVPGhIejFvQmZFYSk1TG1rWEIkd1ZNcWtaCm5CckBv
TXAlT3paUHxPeUhsXjk2VUpOYlo/WmxNfjNEPzxnQHd2bnBXbnQ9LWRVRjxCJAoKZGVsdGEgOQpS
Y21hRUttd0RUNTxfKzg0MHN0SE0xKiFsNQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMDA0ZTQ1Ny4uYWM5ZGNmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVi
b2FyZC5oIgogI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgorI2luY2x1ZGUgIlVzZXJH
ZXN0dXJlSW5kaWNhdG9yLmgiCiAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtOTEsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAg
ICAgewogICAgICAgICBpZiAobV9mcm9udGVuZEhvc3QpIHsKKyAgICAgICAgICAgIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IoRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSk7CiAgICAgICAgICAgICBpbnQgaXRlbU51bWJlciA9IGl0ZW0tPmFjdGlvbigpIC0gQ29u
dGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZzsKIAogICAgICAgICAgICAgU2NyaXB0RnVuY3Rpb25D
YWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
YW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qcwppbmRleCA5MGJhNDFmLi40YjUyNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0zMyw2ICszMyw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5Q
YW5lbC5jYWxsKHRoaXMsICJ0aW1lbGluZSIpOwogCiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX2NyZWF0ZVRvcFBhbmUoKSk7CisgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5fY29udGV4dE1lbnUuYmluZCh0aGlzKSwgdHJ1ZSk7
CiAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gMDsKIAogICAgIHRoaXMuX3NpZGViYXJCYWNr
Z3JvdW5kRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpAQCAtNzgsNiAr
NzksNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlz
Ll9pdGVtc0dyYXBoc0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZXhwYW5kRWxlbWVudHMpOwog
CiAgICAgdGhpcy5fcm9vdFJlY29yZCA9IHRoaXMuX2NyZWF0ZVJvb3RSZWNvcmQoKTsKKyAgICB0
aGlzLl9yYXdSZWNvcmRzID0gW107CiAgICAgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRzID0ge307
CiAgICAgdGhpcy5fc2NoZWR1bGVkUmVzb3VyY2VSZXF1ZXN0cyA9IHt9OwogICAgIHRoaXMuX3Rp
bWVyUmVjb3JkcyA9IHt9OwpAQCAtMTAwLDYgKzEwMiw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3RpbWVTdGFtcFJlY29yZHMgPSBbXTsKICAg
ICB0aGlzLl9leHBhbmRPZmZzZXQgPSAxNTsKIAorICAgIHRoaXMuX2NyZWF0ZUZpbGVTZWxlY3Rv
cigpOworCiAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIuRXZlbnRUeXBlcy5UaW1lbGluZUV2ZW50UmVj
b3JkZWQsIHRoaXMuX29uVGltZWxpbmVFdmVudFJlY29yZGVkLCB0aGlzKTsKIH0KIApAQCAtMjE3
LDYgKzIyMSw3MCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ZXIuY2xhc3NOYW1lID0gInRpbWVsaW5lLXJlY29yZHMt
Y291bnRlciI7CiAgICAgfSwKIAorICAgIF9jcmVhdGVGaWxlU2VsZWN0b3I6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50KQorICAgICAgICAg
ICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpOwor
CisgICAgICAgIHZhciBmaWxlU2VsZWN0b3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW5wdXQiKTsKKyAgICAgICAgZmlsZVNlbGVjdG9yRWxlbWVudC50eXBlID0gImZpbGUiOwor
ICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAwOworICAgICAgICBm
aWxlU2VsZWN0b3JFbGVtZW50Lm9uY2hhbmdlID0gdGhpcy5faW1wb3J0RnJvbUZpbGUuYmluZCh0
aGlzKTsKKyAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGZpbGVTZWxlY3RvckVsZW1l
bnQpOworICAgICAgICB0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50ID0gZmlsZVNlbGVjdG9yRWxl
bWVudDsKKyAgICB9LAorCisgICAgX2NvbnRleHRNZW51OiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUo
KTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IiZFeHBvcnQgVGltZWxpbmUgZGF0YS4uLiIpLCB0aGlzLl9leHBvcnRUb0ZpbGUuYmluZCh0aGlz
KSk7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCImSW1wb3J0IFRpbWVsaW5lIGRhdGEuLi4iKSwgdGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudC5j
bGljay5iaW5kKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpKTsKKyAgICAgICAgY29udGV4dE1l
bnUuc2hvdyhldmVudCk7CisgICAgfSwKKworCisgICAgX2ltcG9ydE5leHRDaHVuazogZnVuY3Rp
b24oZGF0YSwgaW5kZXgpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwICYm
IGluZGV4IDwgZGF0YS5sZW5ndGg7ICsraSwgKytpbmRleCkKKyAgICAgICAgICAgIHRoaXMuX2Fk
ZFJlY29yZFRvVGltZWxpbmUoZGF0YVtpbmRleF0pOworCisgICAgICAgIGlmIChpbmRleCAhPT0g
ZGF0YS5sZW5ndGgpCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuX2ltcG9ydE5leHRDaHVu
ay5iaW5kKHRoaXMsIGRhdGEsIGluZGV4KSwgMCk7CisgICAgfSwKKworICAgIF9pbXBvcnRGcm9t
RmlsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKGUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShlLnRhcmdldC5yZXN1bHQp
OworICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBkYXRhWzBdOworICAgICAgICAgICAgdGhpcy5f
aW1wb3J0TmV4dENodW5rKGRhdGEsIDEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMu
dG9nZ2xlVGltZWxpbmVCdXR0b24udG9nZ2xlZCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci50
aW1lbGluZU1hbmFnZXIuc3RvcCgpOworCisgICAgICAgIHRoaXMuX2NsZWFyUGFuZWwoKTsKKwor
ICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgcmVhZGVyLm9u
bG9hZCA9IG9uTG9hZC5iaW5kKHRoaXMpOworICAgICAgICByZWFkZXIucmVhZEFzVGV4dCh0aGlz
Ll9maWxlU2VsZWN0b3JFbGVtZW50LmZpbGVzWzBdKTsKKyAgICAgICAgdGhpcy5fY3JlYXRlRmls
ZVNlbGVjdG9yKCk7CisgICAgfSwKKworICAgIF9leHBvcnRUb0ZpbGU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHZhciBub3c9IG5ldyBEYXRlKCk7CisgICAgICAgIHZhciBkYXRlID0gU3Ry
aW5nLnNwcmludGYoIiU0ZCUyZCUyZFQlMmQlMmQiLCBub3cuZ2V0RnVsbFllYXIoKSwgbm93Lmdl
dE1vbnRoKCkgKyAxLCBub3cuZ2V0RGF0ZSgpLCBub3cuZ2V0SG91cnMoKSwgbm93LmdldE1pbnV0
ZXMoKSk7CisKKyAgICAgICAgdmFyIHJlY29yZHMgPSBbJ1snICsgSlNPTi5zdHJpbmdpZnkod2lu
ZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uKV07CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGhpcy5fcmF3UmVjb3Jkcy5sZW5ndGggLSAxOyArK2kpCisgICAgICAgICAgICByZWNvcmRzLnB1
c2goSlNPTi5zdHJpbmdpZnkodGhpcy5fcmF3UmVjb3Jkc1tpXSkpOworICAgICAgICByZWNvcmRz
LnB1c2goSlNPTi5zdHJpbmdpZnkodGhpcy5fcmF3UmVjb3Jkc1t0aGlzLl9yYXdSZWNvcmRzLmxl
bmd0aCAtIDFdKSArICJdIik7CisKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmVB
cygiVGltZWxpbmVSYXdEYXRhLSIgKyBkYXRlICsgIi5qc29uIiwgcmVjb3Jkcy5qb2luKCIsXG4i
KSk7CisgICAgfSwKKwogICAgIF91cGRhdGVSZWNvcmRzQ291bnRlcjogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgdGhpcy5yZWNvcmRzQ291bnRlci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiJWQgb2YgJWQgY2FwdHVyZWQgcmVjb3JkcyBhcmUgdmlzaWJsZSIsIHRoaXMu
X3Jvb3RSZWNvcmQuX3Zpc2libGVSZWNvcmRzQ291bnQsIHRoaXMuX3Jvb3RSZWNvcmQuX2FsbFJl
Y29yZHNDb3VudCk7CkBAIC0zMTQsNiArMzgyLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyUGFuZWwoKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICB0aGlzLl9yYXdSZWNvcmRzLnB1c2gocmVj
b3JkKTsKICAgICAgICAgdGhpcy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgdGhp
cy5fcm9vdFJlY29yZCk7CiAgICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaCgpOwogICAgIH0s
CkBAIC00MzUsNiArNTA0LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
ID0gewogICAgIF9jbGVhclBhbmVsOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl90
aW1lU3RhbXBSZWNvcmRzID0gW107CisgICAgICAgIHRoaXMuX3Jhd1JlY29yZHMgPSBbXTsKICAg
ICAgICAgdGhpcy5fc2VuZFJlcXVlc3RSZWNvcmRzID0ge307CiAgICAgICAgIHRoaXMuX3NjaGVk
dWxlZFJlc291cmNlUmVxdWVzdHMgPSB7fTsKICAgICAgICAgdGhpcy5fdGltZXJSZWNvcmRzID0g
e307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101294</attachid>
            <date>2011-07-19 03:01:43 -0700</date>
            <delta_ts>2011-07-19 05:46:11 -0700</delta_ts>
            <desc>[patch] fifth version with extracted model code.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12767</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNjE4ZDA5Yy4uZDQ0NDIyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA3
LTE5ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgaW1wb3J0L2V4cG9ydCBmb3IgdGltZWxpbmUgZGF0YS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjAxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLmh0bWw6IEFkZGVkLgorCiAyMDExLTA3
LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBDaHJv
bWl1bSB0ZXN0IGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZTA0MGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGVzdHMgdGhlIFRpbWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFsaXR5LgorCitw
YXNzZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDljNTY1NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0idGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiBwZXJmb3JtQWN0aW9ucygpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworfQorCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwor
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5w
cm90b3R5cGUsICJfaW1wb3J0TmV4dENodW5rIiwgaW1wb3J0TmV4dENodW5rKTsKKyAgICBJbnNw
ZWN0b3JGcm9udGVuZEhvc3Quc2F2ZUFzID0gc2F2ZUFzOworICAgIHZhciBkYXRhID0gWworICAg
ICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44NDA4LCJkYXRhIjp7ImlkZW50aWZpZXIi
OjQzLCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9
LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MTgxOTkzNiwidG90
YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTE4
LjkzMjksImRhdGEiOnsiaWRlbnRpZmllciI6NDMsInN0YXR1c0NvZGUiOjIwMCwibWltZVR5cGUi
OiJ0ZXh0L2h0bWwifSwiY2hpbGRyZW4iOltdLCJlbmRUaW1lIjoxMzEwNzQ5ODU1MTE4Ljk2OCwi
dHlwZSI6IlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0
b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUx
MzYuMjQ1LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ0LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5v
cmcvY3NzL21haW4uY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VT
ZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEy
MH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM2LjY1NSwiZGF0YSI6eyJpZGVu
dGlmaWVyIjo0NSwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ncmVlbi5jc3MiLCJy
ZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhl
YXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFy
dFRpbWUiOjEzMTA3NDk4NTUxMzcuMDIzLCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ2LCJ1cmwiOiJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2JsdWUuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9
LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90
YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3
LjM0MiwiZGF0YSI6eyJpZGVudGlmaWVyIjo0NywidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3Jn
L2Nzcy95ZWxsb3cuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VT
ZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEy
MH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3LjY1NiwiZGF0YSI6eyJpZGVu
dGlmaWVyIjo0OCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9waW5rLmNzcyIsInJl
cXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVh
cFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0
VGltZSI6MTMxMDc0OTg1NTEzNy45ODksImRhdGEiOnsiaWRlbnRpZmllciI6NDksInVybCI6Imh0
dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvcHVycGxlLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQi
fSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRv
dGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEz
OC4zMDgsImRhdGEiOnsiaWRlbnRpZmllciI6NTAsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9y
Zy9jc3MvZ3JheS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNl
bmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIw
fV07CisKKyAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnRpbWVsaW5lLl9tb2RlbC5faW1wb3J0TmV4
dENodW5rKGRhdGEsIDApOworCisgICAgZnVuY3Rpb24gaW1wb3J0TmV4dENodW5rKCkKKyAgICB7
CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMudGltZWxpbmUuX21vZGVsLl9leHBvcnRUb0Zp
bGUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzYXZlQXMobmFtZSwgc2F2ZURhdGEpCisgICAg
eworICAgICAgICBzYXZlRGF0YSA9IEpTT04ucGFyc2Uoc2F2ZURhdGEpOworICAgICAgICBzYXZl
RGF0YS5zaGlmdCgpOyAvLyBzdHJpcCB2ZXJzaW9uIGluZm8KKyAgICAgICAgaWYgKEpTT04uc3Ry
aW5naWZ5KGRhdGEpID09IEpTT04uc3RyaW5naWZ5KHNhdmVEYXRhKSkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwYXNzZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNhdmVkIGRhdGEgaXMgbm90IGVxdWFsIHRvIHJl
c3RvcmVkIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQor
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
CitUZXN0cyB0aGUgVGltZWxpbmUgc2F2ZS9sb2FkIGZ1bmN0aW9uYWxpdHkuCis8L3A+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZmE3MzgwLi4zNmZhMDhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDctMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBpbXBvcnQv
ZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC5o
dG1sCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcm9udGVuZE1lbnVQcm92aWRlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5fY3JlYXRlRmlsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fY29udGV4dE1lbnUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9leHBvcnRUb0ZpbGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9pbXBvcnRGcm9tRmlsZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX29uVGltZWxp
bmVFdmVudFJlY29yZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZS5fY2xlYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5wcm90b3R5cGUuX2FkZFJl
Y29yZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5wcm90b3R5cGUuX2lt
cG9ydE5leHRDaHVuayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5wcm90
b3R5cGUuX2ltcG9ydEZyb21GaWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLnByb3RvdHlwZS5faW1wb3J0RnJvbUZpbGUub25FcnJvcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5wcm90b3R5cGUuX2V4cG9ydFRvRmlsZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5wcm90b3R5cGUuX3Jlc2V0KToKKwogMjAxMS0wNy0x
OCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
KDkxMjA5Pyk6IGZhc3QvY3NzL2N1c3RvbS1mb250LXhoZWlnaHQuaHRtbCBpcyBmYWlsaW5nIG9u
IExlb3BhcmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcwppbmRleCA2MmY0OTU5MDI2Yjk3MDEyMDMwZmIzZWM1NDU1YjY1YTlhM2U2MTkyLi44
ZDg1YTA1OTRjZjVhOWNlYWQ2YjA3ZDUwZDVhNzEyZmQ0MzcyNDNmIDEwMDY0NApHSVQgYmluYXJ5
IHBhdGNoCmRlbHRhIDIzNwp6Y21kbVhvQjdkUTxfKzg0UEw3YUolfldJWFdYTlNHVjh+fUVWa2x1
eVU8aEh6MW9CZkVhKTVMbWtYQiR3Vk1xa1oKbkJyQG9NcCVPelpQfE95SGxeOTZVSk5iWj9abE1+
M0Q/PGdAd3ZucFdudD0tZFVGPEIkCgpkZWx0YSA5ClJjbWFFS213RFQ1PF8rODQwc3RITTEqIWw1
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmNwcAppbmRleCAwMDRlNDU3Li5hYzlkY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RnVuY3Rpb25DYWxsLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKIAogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC05
MSw2ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKENvbnRleHRNZW51SXRlbSogaXRlbSkKICAgICB7CiAgICAgICAgIGlmIChtX2Zyb250
ZW5kSG9zdCkgeworICAgICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGlj
YXRvcihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKICAgICAgICAgICAgIGludCBp
dGVtTnVtYmVyID0gaXRlbS0+YWN0aW9uKCkgLSBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFn
OwogCiAgICAgICAgICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0
b3IsICJjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDkwYmE0MWYuLjRjNzhm
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUGFuZWwuanMKQEAgLTMzLDYgKzMzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwg
PSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5l
Iik7CiAKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVG9wUGFuZSgp
KTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlz
Ll9jb250ZXh0TWVudS5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICB0aGlzLmVsZW1lbnQudGFiSW5k
ZXggPSAwOwogCiAgICAgdGhpcy5fc2lkZWJhckJhY2tncm91bmRFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC0xMDAsNiArMTAxLDkgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fdGltZVN0YW1wUmVjb3JkcyA9IFtd
OwogICAgIHRoaXMuX2V4cGFuZE9mZnNldCA9IDE1OwogCisgICAgdGhpcy5fY3JlYXRlRmlsZVNl
bGVjdG9yKCk7CisgICAgdGhpcy5fbW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9k
ZWwodGhpcyk7CisKICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5FdmVudFR5cGVzLlRpbWVsaW5lRXZl
bnRSZWNvcmRlZCwgdGhpcy5fb25UaW1lbGluZUV2ZW50UmVjb3JkZWQsIHRoaXMpOwogfQogCkBA
IC0yMTcsNiArMjIxLDQzIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5yZWNvcmRzQ291bnRlci5jbGFzc05hbWUgPSAidGltZWxpbmUtcmVj
b3Jkcy1jb3VudGVyIjsKICAgICB9LAogCisgICAgX2NyZWF0ZUZpbGVTZWxlY3RvcjogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpCisgICAg
ICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVu
dCk7CisKKyAgICAgICAgdmFyIGZpbGVTZWxlY3RvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbnB1dCIpOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnR5cGUgPSAiZmls
ZSI7CisgICAgICAgIGZpbGVTZWxlY3RvckVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IDA7CisgICAg
ICAgIGZpbGVTZWxlY3RvckVsZW1lbnQub25jaGFuZ2UgPSB0aGlzLl9pbXBvcnRGcm9tRmlsZS5i
aW5kKHRoaXMpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZmlsZVNlbGVjdG9y
RWxlbWVudCk7CisgICAgICAgIHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQgPSBmaWxlU2VsZWN0
b3JFbGVtZW50OworICAgIH0sCisKKyAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9uKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0
TWVudSgpOworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiJkV4cG9ydCBUaW1lbGluZSBkYXRhLi4uIiksIHRoaXMuX2V4cG9ydFRvRmlsZS5iaW5k
KHRoaXMpKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIiZJbXBvcnQgVGltZWxpbmUgZGF0YS4uLiIpLCB0aGlzLl9maWxlU2VsZWN0b3JFbGVt
ZW50LmNsaWNrLmJpbmQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCkpOworICAgICAgICBjb250
ZXh0TWVudS5zaG93KGV2ZW50KTsKKyAgICB9LAorCisgICAgX2V4cG9ydFRvRmlsZTogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fbW9kZWwuX2V4cG9ydFRvRmlsZSgpOworICAgIH0s
CisKKyAgICBfaW1wb3J0RnJvbUZpbGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLnRvZ2dsZVRpbWVsaW5lQnV0dG9uLnRvZ2dsZWQpCisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IudGltZWxpbmVNYW5hZ2VyLnN0b3AoKTsKKworICAgICAgICB0aGlzLl9jbGVhclBhbmVsKCk7
CisKKyAgICAgICAgdGhpcy5fbW9kZWwuX2ltcG9ydEZyb21GaWxlKHRoaXMuX2ZpbGVTZWxlY3Rv
ckVsZW1lbnQuZmlsZXNbMF0pOworICAgICAgICB0aGlzLl9jcmVhdGVGaWxlU2VsZWN0b3IoKTsK
KyAgICB9LAorCiAgICAgX3VwZGF0ZVJlY29yZHNDb3VudGVyOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLnJlY29yZHNDb3VudGVyLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCIlZCBvZiAlZCBjYXB0dXJlZCByZWNvcmRzIGFyZSB2aXNpYmxlIiwgdGhpcy5fcm9v
dFJlY29yZC5fdmlzaWJsZVJlY29yZHNDb3VudCwgdGhpcy5fcm9vdFJlY29yZC5fYWxsUmVjb3Jk
c0NvdW50KTsKQEAgLTMxNCw2ICszNTUsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fY2xlYXJQYW5lbCgpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CisgICAgICAgIHRoaXMuX21vZGVsLl9hZGRSZWNvcmQocmVjb3Jk
KTsKICAgICAgICAgdGhpcy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgdGhpcy5f
cm9vdFJlY29yZCk7CiAgICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaCgpOwogICAgIH0sCkBA
IC00NDQsNiArNDg2LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9hZGp1c3RTY3JvbGxQb3NpdGlvbigwKTsKICAgICAgICAgdGhpcy5f
cmVmcmVzaCgpOwogICAgICAgICB0aGlzLl9jbG9zZVJlY29yZERldGFpbHMoKTsKKyAgICAgICAg
dGhpcy5fbW9kZWwuX3Jlc2V0KCk7CiAgICAgfSwKIAogICAgIHNob3c6IGZ1bmN0aW9uKCkKQEAg
LTExNzIsMyArMTIxNSw3NCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVFeHBhbmRhYmxlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5yZW1v
dmVDaGlsZCh0aGlzLl9lbGVtZW50KTsKICAgICB9CiB9CisKK1dlYkluc3BlY3Rvci5UaW1lbGlu
ZU1vZGVsID0gZnVuY3Rpb24odGltZWxpbmVQYW5lbCkKK3sKKyAgICB0aGlzLl9wYW5lbCA9IHRp
bWVsaW5lUGFuZWw7CisgICAgdGhpcy5fcmVjb3JkcyA9IFtdOworfQorCitXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNb2RlbC5wcm90b3R5cGUgPSB7CisgICAgX2FkZFJlY29yZDogZnVuY3Rpb24ocmVj
b3JkKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHJlY29yZCk7CisgICAgfSwK
KworICAgIF9pbXBvcnROZXh0Q2h1bms6IGZ1bmN0aW9uKGRhdGEsIGluZGV4KQorICAgIHsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMCAmJiBpbmRleCA8IGRhdGEubGVuZ3RoOyArK2ks
ICsraW5kZXgpCisgICAgICAgICAgICB0aGlzLl9wYW5lbC5fYWRkUmVjb3JkVG9UaW1lbGluZShk
YXRhW2luZGV4XSk7CisKKyAgICAgICAgaWYgKGluZGV4ICE9PSBkYXRhLmxlbmd0aCkKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQodGhpcy5faW1wb3J0TmV4dENodW5rLmJpbmQodGhpcywgZGF0YSwg
aW5kZXgpLCAwKTsKKyAgICB9LAorCisgICAgX2ltcG9ydEZyb21GaWxlOiBmdW5jdGlvbihmaWxl
KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKGUpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShlLnRhcmdldC5yZXN1bHQpOworICAgICAgICAgICAg
dmFyIHZlcnNpb24gPSBkYXRhWzBdOworICAgICAgICAgICAgdGhpcy5faW1wb3J0TmV4dENodW5r
KGRhdGEsIDEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25FcnJvcihlKQorICAg
ICAgICB7CisgICAgICAgICAgICBzd2l0Y2goZXZ0LnRhcmdldC5lcnJvci5jb2RlKSB7CisgICAg
ICAgICAgICBjYXNlIGV2dC50YXJnZXQuZXJyb3IuTk9UX0ZPVU5EX0VSUjoKKyAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZXJyb3IoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCdUaW1lbGluZS5p
bXBvcnRGcm9tRmlsZTogRmlsZSAiJXMiIG5vdCBmb3VuZC4nLCBmaWxlLm5hbWUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBldnQudGFyZ2V0LmVycm9yLk5PVF9SRUFE
QUJMRV9FUlI6CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmVycm9yKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygnVGltZWxpbmUuaW1wb3J0RnJvbUZpbGU6IEZpbGUgIiVzIiBpcyBub3QgcmVh
ZGFibGUnLCBmaWxlLm5hbWUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBldnQudGFyZ2V0LmVycm9yLkFCT1JUX0VSUjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmVycm9yKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygnVGltZWxpbmUuaW1wb3J0RnJvbUZpbGU6IEFuIGVycm9yIG9j
Y3VycmVkIHJlYWRpbmcgdGhlIGZpbGUgIiVzIicsIGZpbGUubmFtZSkpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisKKyAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7Cisg
ICAgICAgIHJlYWRlci5vbmxvYWQgPSBvbkxvYWQuYmluZCh0aGlzKTsKKyAgICAgICAgcmVhZGVy
Lm9uZXJyb3IgPSBvbkVycm9yOworICAgICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTsKKyAg
ICB9LAorCisgICAgX2V4cG9ydFRvRmlsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFy
IG5vdz0gbmV3IERhdGUoKTsKKyAgICAgICAgdmFyIGRhdGUgPSBTdHJpbmcuc3ByaW50ZigiJTRk
JTJkJTJkVCUyZCUyZCIsIG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSArIDEsIG5v
dy5nZXREYXRlKCksIG5vdy5nZXRIb3VycygpLCBub3cuZ2V0TWludXRlcygpKTsKKworICAgICAg
ICB2YXIgcmVjb3JkcyA9IFsnWycgKyBKU09OLnN0cmluZ2lmeSh3aW5kb3cubmF2aWdhdG9yLmFw
cFZlcnNpb24pXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yZWNvcmRzLmxl
bmd0aCAtIDE7ICsraSkKKyAgICAgICAgICAgIHJlY29yZHMucHVzaChKU09OLnN0cmluZ2lmeSh0
aGlzLl9yZWNvcmRzW2ldKSk7CisgICAgICAgIHJlY29yZHMucHVzaChKU09OLnN0cmluZ2lmeSh0
aGlzLl9yZWNvcmRzW3RoaXMuX3JlY29yZHMubGVuZ3RoIC0gMV0pICsgIl0iKTsKKworICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2F2ZUFzKCJUaW1lbGluZVJhd0RhdGEtIiArIGRhdGUg
KyAiLmpzb24iLCByZWNvcmRzLmpvaW4oIixcbiIpKTsKKyAgICB9LAorCisgICAgX3Jlc2V0OiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9yZWNvcmRzID0gW107CisgICAgfQorfQo=
</data>
<flag name="review"
          id="96159"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101306</attachid>
            <date>2011-07-19 05:46:11 -0700</date>
            <delta_ts>2011-07-19 06:38:14 -0700</delta_ts>
            <desc>[patch] next version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>13825</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNjE4ZDA5Yy4uZDQ0NDIyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA3
LTE5ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgaW1wb3J0L2V4cG9ydCBmb3IgdGltZWxpbmUgZGF0YS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjAxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLmh0bWw6IEFkZGVkLgorCiAyMDExLTA3
LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBDaHJv
bWl1bSB0ZXN0IGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZTA0MGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGVzdHMgdGhlIFRpbWVsaW5lIHNhdmUvbG9hZCBmdW5jdGlvbmFsaXR5LgorCitw
YXNzZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc3NTUxMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1s
b2FkLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0idGltZWxpbmUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJ0aW1lbGluZSIpOwor
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5w
cm90b3R5cGUsICJfaW1wb3J0TmV4dENodW5rIiwgaW1wb3J0TmV4dENodW5rKTsKKyAgICBJbnNw
ZWN0b3JGcm9udGVuZEhvc3Quc2F2ZUFzID0gc2F2ZUFzOworICAgIHZhciBkYXRhID0gWworICAg
ICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NDMxNi44NDA4LCJkYXRhIjp7ImlkZW50aWZpZXIi
OjQzLCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9
LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MTgxOTkzNiwidG90
YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTE4
LjkzMjksImRhdGEiOnsiaWRlbnRpZmllciI6NDMsInN0YXR1c0NvZGUiOjIwMCwibWltZVR5cGUi
OiJ0ZXh0L2h0bWwifSwiY2hpbGRyZW4iOltdLCJlbmRUaW1lIjoxMzEwNzQ5ODU1MTE4Ljk2OCwi
dHlwZSI6IlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIiwidXNlZEhlYXBTaXplIjoxODE5OTM2LCJ0
b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFydFRpbWUiOjEzMTA3NDk4NTUx
MzYuMjQ1LCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ0LCJ1cmwiOiJodHRwOi8vd3d3LndlYmtpdC5v
cmcvY3NzL21haW4uY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VT
ZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEy
MH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM2LjY1NSwiZGF0YSI6eyJpZGVu
dGlmaWVyIjo0NSwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9ncmVlbi5jc3MiLCJy
ZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNlbmRSZXF1ZXN0IiwidXNlZEhl
YXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIwfSwKKyAgICAgICAgeyJzdGFy
dFRpbWUiOjEzMTA3NDk4NTUxMzcuMDIzLCJkYXRhIjp7ImlkZW50aWZpZXIiOjQ2LCJ1cmwiOiJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvY3NzL2JsdWUuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9
LCJ0eXBlIjoiUmVzb3VyY2VTZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90
YWxIZWFwU2l6ZSI6NzYyOTEyMH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3
LjM0MiwiZGF0YSI6eyJpZGVudGlmaWVyIjo0NywidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3Jn
L2Nzcy95ZWxsb3cuY3NzIiwicmVxdWVzdE1ldGhvZCI6IkdFVCJ9LCJ0eXBlIjoiUmVzb3VyY2VT
ZW5kUmVxdWVzdCIsInVzZWRIZWFwU2l6ZSI6MjM2NzE5MiwidG90YWxIZWFwU2l6ZSI6NzYyOTEy
MH0sCisgICAgICAgIHsic3RhcnRUaW1lIjoxMzEwNzQ5ODU1MTM3LjY1NiwiZGF0YSI6eyJpZGVu
dGlmaWVyIjo0OCwidXJsIjoiaHR0cDovL3d3dy53ZWJraXQub3JnL2Nzcy9waW5rLmNzcyIsInJl
cXVlc3RNZXRob2QiOiJHRVQifSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVh
cFNpemUiOjIzNjcxOTIsInRvdGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0
VGltZSI6MTMxMDc0OTg1NTEzNy45ODksImRhdGEiOnsiaWRlbnRpZmllciI6NDksInVybCI6Imh0
dHA6Ly93d3cud2Via2l0Lm9yZy9jc3MvcHVycGxlLmNzcyIsInJlcXVlc3RNZXRob2QiOiJHRVQi
fSwidHlwZSI6IlJlc291cmNlU2VuZFJlcXVlc3QiLCJ1c2VkSGVhcFNpemUiOjIzNjcxOTIsInRv
dGFsSGVhcFNpemUiOjc2MjkxMjB9LAorICAgICAgICB7InN0YXJ0VGltZSI6MTMxMDc0OTg1NTEz
OC4zMDgsImRhdGEiOnsiaWRlbnRpZmllciI6NTAsInVybCI6Imh0dHA6Ly93d3cud2Via2l0Lm9y
Zy9jc3MvZ3JheS5jc3MiLCJyZXF1ZXN0TWV0aG9kIjoiR0VUIn0sInR5cGUiOiJSZXNvdXJjZVNl
bmRSZXF1ZXN0IiwidXNlZEhlYXBTaXplIjoyMzY3MTkyLCJ0b3RhbEhlYXBTaXplIjo3NjI5MTIw
fV07CisKKyAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnRpbWVsaW5lLl9tb2RlbC5faW1wb3J0TmV4
dENodW5rKGRhdGEsIDApOworCisgICAgZnVuY3Rpb24gaW1wb3J0TmV4dENodW5rKCkKKyAgICB7
CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMudGltZWxpbmUuX21vZGVsLl9leHBvcnRUb0Zp
bGUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzYXZlQXMobmFtZSwgc2F2ZURhdGEpCisgICAg
eworICAgICAgICBzYXZlRGF0YSA9IEpTT04ucGFyc2Uoc2F2ZURhdGEpOworICAgICAgICBzYXZl
RGF0YS5zaGlmdCgpOyAvLyBzdHJpcCB2ZXJzaW9uIGluZm8KKyAgICAgICAgaWYgKEpTT04uc3Ry
aW5naWZ5KGRhdGEpID09IEpTT04uc3RyaW5naWZ5KHNhdmVEYXRhKSkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwYXNzZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNhdmVkIGRhdGEgaXMgbm90IGVxdWFsIHRvIHJl
c3RvcmVkIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQor
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
CitUZXN0cyB0aGUgVGltZWxpbmUgc2F2ZS9sb2FkIGZ1bmN0aW9uYWxpdHkuCis8L3A+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZmE3MzgwLi5kOTZlMTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDctMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBpbXBvcnQv
ZXhwb3J0IGZvciB0aW1lbGluZSBkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC5o
dG1sCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcm9udGVuZE1lbnVQcm92aWRlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5fY3JlYXRlRmlsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fY29udGV4dE1lbnUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9leHBvcnRUb0ZpbGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9pbXBvcnRGcm9tRmlsZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2FkZFJlY29y
ZFRvVGltZWxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlLl9jbGVhclBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnByb3RvdHlwZS5fYWRkUmVjb3Jk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnByb3RvdHlwZS5faW1wb3J0
TmV4dENodW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnByb3RvdHlw
ZS5faW1wb3J0RnJvbUZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwu
cHJvdG90eXBlLl9pbXBvcnRGcm9tRmlsZS5vbkVycm9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1vZGVsLnByb3RvdHlwZS5fZXhwb3J0VG9GaWxlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZU1vZGVsLnByb3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoKToKKwogMjAxMS0wNy0xOCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKDkx
MjA5Pyk6IGZhc3QvY3NzL2N1c3RvbS1mb250LXhoZWlnaHQuaHRtbCBpcyBmYWlsaW5nIG9uIExl
b3BhcmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwppbmRleCA2MmY0OTU5MDI2Yjk3MDEyMDMwZmIzZWM1NDU1YjY1YTlhM2U2MTkyLi45YThl
YmFiOWQyODEyNjI1YzVkNDE4MTJkYzU5MTQzMzFmMTYyNTYyIDEwMDY0NApHSVQgYmluYXJ5IHBh
dGNoCmRlbHRhIDc2Mwp6Y21kbVhufFo/JTxfKzg0UEw3YUp0eWczNFdYTlNHVjh+fUVWa2x1eVU8
aEh6MW9CZkVhKTVMbWtYQiR3Vk1xa1oKekJyP1A+bHJrN0c3eXoqdWdBems1UHt0T0JsXkRvMSFK
MmBLQSFxVXJDU3stLVRwMjFUYk9VKU5LLV9SKm5mQiFWCno8czZFN1Y4NnF7IVZNVEFgTXxKbjFC
JkpWTCZBemRWUkR6ZXMle2FHb2Rec1NRMjMrK0whZzhxMH59NmlQPDBCeAp6a1d5ayRXaGUmR2xP
Mn1KNUApVkYwZHBzLW9WMSskfDJ6bENySikyfTNVQFYlWWs7b0oxaURLQj08PEFVWXtUcUsKc1dK
bShXI2ZOMyRsaC1jaTImQjV7bE80RFdWUXgxaylBWSRSWT9VWWJFKkJ0TXwwIUQ7MENWNylTcFdi
NAoKZGVsdGEgOQpSY21kbitnbjhSLTxfKzg0MHN0Q3IxJUNobAoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMDA0ZTQ1Ny4u
YWM5ZGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgorI2lu
Y2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtOTEsNiArOTIsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0
ZW0qIGl0ZW0pCiAgICAgewogICAgICAgICBpZiAobV9mcm9udGVuZEhvc3QpIHsKKyAgICAgICAg
ICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IoRGVmaW5pdGVseVByb2Nl
c3NpbmdVc2VyR2VzdHVyZSk7CiAgICAgICAgICAgICBpbnQgaXRlbU51bWJlciA9IGl0ZW0tPmFj
dGlvbigpIC0gQ29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZzsKIAogICAgICAgICAgICAgU2Ny
aXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiY29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVQYW5lbC5qcwppbmRleCA5MGJhNDFmLi5jZDZkOGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0zMyw2
ICszMyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVuY3Rpb24oKQogICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJ0aW1lbGluZSIpOwogCiAgICAgdGhpcy5lbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVRvcFBhbmUoKSk7CisgICAgdGhpcy5lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5fY29udGV4dE1lbnUuYmluZCh0
aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gMDsKIAogICAgIHRoaXMu
X3NpZGViYXJCYWNrZ3JvdW5kRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwpAQCAtMTAwLDYgKzEwMSw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVuY3Rp
b24oKQogICAgIHRoaXMuX3RpbWVTdGFtcFJlY29yZHMgPSBbXTsKICAgICB0aGlzLl9leHBhbmRP
ZmZzZXQgPSAxNTsKIAorICAgIHRoaXMuX2NyZWF0ZUZpbGVTZWxlY3RvcigpOworICAgIHRoaXMu
X21vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsKHRoaXMpOworCiAgICAgV2Vi
SW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5U
aW1lbGluZU1hbmFnZXIuRXZlbnRUeXBlcy5UaW1lbGluZUV2ZW50UmVjb3JkZWQsIHRoaXMuX29u
VGltZWxpbmVFdmVudFJlY29yZGVkLCB0aGlzKTsKIH0KIApAQCAtMjE3LDYgKzIyMSw0MyBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMucmVj
b3Jkc0NvdW50ZXIuY2xhc3NOYW1lID0gInRpbWVsaW5lLXJlY29yZHMtY291bnRlciI7CiAgICAg
fSwKIAorICAgIF9jcmVhdGVGaWxlU2VsZWN0b3I6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IGlmICh0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5lbGVtZW50
LnJlbW92ZUNoaWxkKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpOworCisgICAgICAgIHZhciBm
aWxlU2VsZWN0b3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAg
ICAgICAgZmlsZVNlbGVjdG9yRWxlbWVudC50eXBlID0gImZpbGUiOworICAgICAgICBmaWxlU2Vs
ZWN0b3JFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAwOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVt
ZW50Lm9uY2hhbmdlID0gdGhpcy5faW1wb3J0RnJvbUZpbGUuYmluZCh0aGlzKTsKKyAgICAgICAg
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGZpbGVTZWxlY3RvckVsZW1lbnQpOworICAgICAgICB0
aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50ID0gZmlsZVNlbGVjdG9yRWxlbWVudDsKKyAgICB9LAor
CisgICAgX2NvbnRleHRNZW51OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBj
b250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUoKTsKKyAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiZFeHBvcnQgVGltZWxp
bmUgZGF0YVx1MjAyNiIpLCB0aGlzLl9leHBvcnRUb0ZpbGUuYmluZCh0aGlzKSk7CisgICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCImSW1wb3J0IFRp
bWVsaW5lIGRhdGFcdTIwMjYiKSwgdGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudC5jbGljay5iaW5k
KHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpKTsKKyAgICAgICAgY29udGV4dE1lbnUuc2hvdyhl
dmVudCk7CisgICAgfSwKKworICAgIF9leHBvcnRUb0ZpbGU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX21vZGVsLl9leHBvcnRUb0ZpbGUoKTsKKyAgICB9LAorCisgICAgX2ltcG9y
dEZyb21GaWxlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy50b2dnbGVUaW1l
bGluZUJ1dHRvbi50b2dnbGVkKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFu
YWdlci5zdG9wKCk7CisKKyAgICAgICAgdGhpcy5fY2xlYXJQYW5lbCgpOworCisgICAgICAgIHRo
aXMuX21vZGVsLl9pbXBvcnRGcm9tRmlsZSh0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50LmZpbGVz
WzBdKTsKKyAgICAgICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9yKCk7CisgICAgfSwKKwogICAg
IF91cGRhdGVSZWNvcmRzQ291bnRlcjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5y
ZWNvcmRzQ291bnRlci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgb2Yg
JWQgY2FwdHVyZWQgcmVjb3JkcyBhcmUgdmlzaWJsZSIsIHRoaXMuX3Jvb3RSZWNvcmQuX3Zpc2li
bGVSZWNvcmRzQ291bnQsIHRoaXMuX3Jvb3RSZWNvcmQuX2FsbFJlY29yZHNDb3VudCk7CkBAIC0z
MTQsNiArMzU1LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyUGFuZWwoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQorICAgICAgICB0aGlzLl9tb2RlbC5fYWRkUmVjb3JkKHJlY29yZCk7CiAgICAgICAgIHRo
aXMuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIHRoaXMuX3Jvb3RSZWNvcmQpOwog
ICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2goKTsKICAgICB9LApAQCAtNDQ0LDYgKzQ4Niw3
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fYWRqdXN0U2Nyb2xsUG9zaXRpb24oMCk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2goKTsKICAg
ICAgICAgdGhpcy5fY2xvc2VSZWNvcmREZXRhaWxzKCk7CisgICAgICAgIHRoaXMuX21vZGVsLl9y
ZXNldCgpOwogICAgIH0sCiAKICAgICBzaG93OiBmdW5jdGlvbigpCkBAIC0xMTcyLDMgKzEyMTUs
NzIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRXhwYW5kYWJsZUVsZW1lbnQucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5f
ZWxlbWVudCk7CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbCA9IGZ1bmN0
aW9uKHRpbWVsaW5lUGFuZWwpCit7CisgICAgdGhpcy5fcGFuZWwgPSB0aW1lbGluZVBhbmVsOwor
ICAgIHRoaXMuX3JlY29yZHMgPSBbXTsKK30KKworV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwu
cHJvdG90eXBlID0geworICAgIF9hZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3JlY29yZHMucHVzaChyZWNvcmQpOworICAgIH0sCisKKyAgICBfaW1wb3J0
TmV4dENodW5rOiBmdW5jdGlvbihkYXRhLCBpbmRleCkKKyAgICB7CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMjAgJiYgaW5kZXggPCBkYXRhLmxlbmd0aDsgKytpLCArK2luZGV4KQorICAg
ICAgICAgICAgdGhpcy5fcGFuZWwuX2FkZFJlY29yZFRvVGltZWxpbmUoZGF0YVtpbmRleF0pOwor
CisgICAgICAgIGlmIChpbmRleCAhPT0gZGF0YS5sZW5ndGgpCisgICAgICAgICAgICBzZXRUaW1l
b3V0KHRoaXMuX2ltcG9ydE5leHRDaHVuay5iaW5kKHRoaXMsIGRhdGEsIGluZGV4KSwgMCk7Cisg
ICAgfSwKKworICAgIF9pbXBvcnRGcm9tRmlsZTogZnVuY3Rpb24oZmlsZSkKKyAgICB7CisgICAg
ICAgIGZ1bmN0aW9uIG9uTG9hZChlKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgZGF0YSA9
IEpTT04ucGFyc2UoZS50YXJnZXQucmVzdWx0KTsKKyAgICAgICAgICAgIHZhciB2ZXJzaW9uID0g
ZGF0YVswXTsKKyAgICAgICAgICAgIHRoaXMuX2ltcG9ydE5leHRDaHVuayhkYXRhLCAxKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uRXJyb3IoZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgc3dpdGNoKGUudGFyZ2V0LmVycm9yLmNvZGUpIHsKKyAgICAgICAgICAgIGNhc2UgZS50
YXJnZXQuZXJyb3IuTk9UX0ZPVU5EX0VSUjoKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
bG9nKFdlYkluc3BlY3Rvci5VSVN0cmluZygnVGltZWxpbmUuaW1wb3J0RnJvbUZpbGU6IEZpbGUg
IiVzIiBub3QgZm91bmQuJywgZmlsZS5uYW1lKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgZS50YXJnZXQuZXJyb3IuTk9UX1JFQURBQkxFX0VSUjoKKyAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IubG9nKFdlYkluc3BlY3Rvci5VSVN0cmluZygnVGltZWxpbmUuaW1w
b3J0RnJvbUZpbGU6IEZpbGUgIiVzIiBpcyBub3QgcmVhZGFibGUnLCBmaWxlLm5hbWUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBlLnRhcmdldC5lcnJvci5BQk9SVF9F
UlI6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCdUaW1lbGlu
ZS5pbXBvcnRGcm9tRmlsZTogQW4gZXJyb3Igb2NjdXJyZWQgcmVhZGluZyB0aGUgZmlsZSAiJXMi
JywgZmlsZS5uYW1lKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2YXIg
cmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgcmVhZGVyLm9ubG9hZCA9IG9uTG9h
ZC5iaW5kKHRoaXMpOworICAgICAgICByZWFkZXIub25lcnJvciA9IG9uRXJyb3I7CisgICAgICAg
IHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpOworICAgIH0sCisKKyAgICBfZXhwb3J0VG9GaWxlOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgcmVjb3JkcyA9IFsnWycgKyBKU09OLnN0cmlu
Z2lmeSh3aW5kb3cubmF2aWdhdG9yLmFwcFZlcnNpb24pXTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0aGlzLl9yZWNvcmRzLmxlbmd0aCAtIDE7ICsraSkKKyAgICAgICAgICAgIHJlY29y
ZHMucHVzaChKU09OLnN0cmluZ2lmeSh0aGlzLl9yZWNvcmRzW2ldKSk7CisgICAgICAgIHJlY29y
ZHMucHVzaChKU09OLnN0cmluZ2lmeSh0aGlzLl9yZWNvcmRzW3RoaXMuX3JlY29yZHMubGVuZ3Ro
IC0gMV0pICsgIl0iKTsKKworICAgICAgICB2YXIgbm93PSBuZXcgRGF0ZSgpOworICAgICAgICBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Quc2F2ZUFzKCJUaW1lbGluZVJhd0RhdGEtIiArIG5vdy50b1JG
QzMzMzkoKSArICIuanNvbiIsIHJlY29yZHMuam9pbigiLFxuIikpOworICAgIH0sCisKKyAgICBf
cmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlY29yZHMgPSBbXTsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0
aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVz
LmpzCmluZGV4IGVmZjU1ZTkuLjYzODgxMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzCkBAIC02ODgsNiArNjg4LDIzIEBAIE51bWJlci5j
b25zdHJhaW4gPSBmdW5jdGlvbihudW0sIG1pbiwgbWF4KQogICAgIHJldHVybiBudW07CiB9CiAK
K0RhdGUucHJvdG90eXBlLnRvUkZDMzMzOSA9IGZ1bmN0aW9uKCkKK3sKKyAgICBmdW5jdGlvbiBs
ZWFkWmVybyh4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHggPiA5ID8geCA6ICcwJyArIHgKKyAg
ICB9CisgICAgdmFyIG9mZnNldCA9IE1hdGguYWJzKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKSk7
CisgICAgdmFyIG9mZnNldFN0cmluZyA9IE1hdGguZmxvb3Iob2Zmc2V0IC8gNjApICsgJzonICsg
bGVhZFplcm8ob2Zmc2V0ICUgNjApOworICAgIHJldHVybiB0aGlzLmdldEZ1bGxZZWFyKCkgKyAn
LScgKworICAgICAgICAgICBsZWFkWmVybyh0aGlzLmdldE1vbnRoKCkgKyAxKSArICctJyArCisg
ICAgICAgICAgIGxlYWRaZXJvKHRoaXMuZ2V0RGF0ZSgpKSArICdUJyArCisgICAgICAgICAgIGxl
YWRaZXJvKHRoaXMuZ2V0SG91cnMoKSkgKyAnOicgKworICAgICAgICAgICBsZWFkWmVybyh0aGlz
LmdldE1pbnV0ZXMoKSkgKyAnOicgKworICAgICAgICAgICBsZWFkWmVybyh0aGlzLmdldFNlY29u
ZHMoKSkgKworICAgICAgICAgICAoIW9mZnNldCA/ICJaIiA6ICh0aGlzLmdldFRpbWV6b25lT2Zm
c2V0KCkgPiAwID8gJy0nIDogJysnKSArIG9mZnNldFN0cmluZyk7Cit9CisKIEhUTUxUZXh0QXJl
YUVsZW1lbnQucHJvdG90eXBlLm1vdmVDdXJzb3JUb0VuZCA9IGZ1bmN0aW9uKCkKIHsKICAgICB2
YXIgbGVuZ3RoID0gdGhpcy52YWx1ZS5sZW5ndGg7Cg==
</data>
<flag name="review"
          id="96172"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>