<?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>61533</bug_id>
          
          <creation_ts>2011-05-26 07:56:23 -0700</creation_ts>
          <short_desc>Web Inspector: [Chromium] cpu-profiler-profiling layout test is flaky on Linux Debug</short_desc>
          <delta_ts>2011-06-15 23:35:41 -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="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cmarcelo</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>410441</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-05-26 07:56:23 -0700</bug_when>
    <thetext>http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20chromium.org&amp;tests=inspector%2Fprofiler%2Fcpu-profiler-profiling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414746</commentid>
    <comment_count>1</comment_count>
      <attachid>95880</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 02:57:23 -0700</bug_when>
    <thetext>Created attachment 95880
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414747</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-03 03:00:21 -0700</bug_when>
    <thetext>Attachment 95880 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/insp...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebPage/WebInspector.h:59:  The parameter name &quot;enabled&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414773</commentid>
    <comment_count>3</comment_count>
      <attachid>95886</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 04:28:49 -0700</bug_when>
    <thetext>Created attachment 95886
fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414815</commentid>
    <comment_count>4</comment_count>
      <attachid>95900</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 05:44:40 -0700</bug_when>
    <thetext>Created attachment 95900
brush up changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414818</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-03 05:48:55 -0700</bug_when>
    <thetext>Attachment 95900 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/insp...&quot; exit_code: 1

Source/WebKit2/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit2/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit2/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
Tools/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
Tools/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Tools/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:3:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:11:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:12:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 16 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414819</commentid>
    <comment_count>6</comment_count>
      <attachid>95886</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-03 05:50:50 -0700</bug_when>
    <thetext>Comment on attachment 95886
fix style

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

&gt; LayoutTests/ChangeLog:10
&gt; +        * inspector/profiler/cpu-profiler-profiling-fast.html: Added.

I&apos;d rather rename it to cpu-profiler-profiling-without-frontend, otherwise the names assumes that other test is too slow which means that it should be fixed.

&gt; LayoutTests/inspector/profiler/cpu-profiler-profiling-fast.html:56
&gt; +    for (var i = 0; i &lt; indentLevel; ++i)

Why not pass indent space directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414823</commentid>
    <comment_count>7</comment_count>
      <attachid>95902</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 05:56:39 -0700</bug_when>
    <thetext>Created attachment 95902
fix tabs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414833</commentid>
    <comment_count>8</comment_count>
      <attachid>95905</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 06:15:15 -0700</bug_when>
    <thetext>Created attachment 95905
comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414834</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 06:16:53 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 95886 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95886&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:10
&gt; &gt; +        * inspector/profiler/cpu-profiler-profiling-fast.html: Added.
&gt; 
&gt; I&apos;d rather rename it to cpu-profiler-profiling-without-frontend, otherwise the names assumes that other test is too slow which means that it should be fixed.
&gt; 

Renamed.
Well, almost all inspector&apos;s test are slow in debug builds

&gt; &gt; LayoutTests/inspector/profiler/cpu-profiler-profiling-fast.html:56
&gt; &gt; +    for (var i = 0; i &lt; indentLevel; ++i)
&gt; 
&gt; Why not pass indent space directly?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414841</commentid>
    <comment_count>10</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 06:30:59 -0700</bug_when>
    <thetext>Manually committed http://trac.webkit.org/changeset/88010


2011-06-03  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Yury Semikhatsky.

        Web Inspector: [Chromium] cpu-profiler-profiling layout test is flaky on Linux Debug.
        https://bugs.webkit.org/show_bug.cgi?id=61533

        Skip cpu-profiler-profiling in debug, implement a fast headless alternative.

        * inspector/profiler/cpu-profiler-profiling-without-inspector-expected.txt: Added.
        * inspector/profiler/cpu-profiler-profiling-without-inspector.html: Added.
        * platform/chromium/test_expectations.txt:

2011-06-03  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Yury Semikhatsky.

        Web Inspector: [Chromium] cpu-profiler-profiling layout test is flaky on Linux Debug.
        https://bugs.webkit.org/show_bug.cgi?id=61533

        Skip cpu-profiler-profiling in debug, implement a fast headless alternative.

        * public/WebDevToolsAgent.h:
        * src/WebDevToolsAgentImpl.cpp:
        (WebKit::WebDevToolsAgentImpl::setJavaScriptProfilingEnabled):
        * src/WebDevToolsAgentImpl.h:

2011-06-03  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Yury Semikhatsky.

        Web Inspector: [Chromium] cpu-profiler-profiling layout test is flaky on Linux Debug.
        https://bugs.webkit.org/show_bug.cgi?id=61533

        Skip cpu-profiler-profiling in debug, implement a fast headless alternative.

        * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
        (DRTDevToolsAgent::setJavaScriptProfilingEnabled):
        * DumpRenderTree/chromium/DRTDevToolsAgent.h:
        * DumpRenderTree/chromium/LayoutTestController.cpp:
        (LayoutTestController::LayoutTestController):
        (LayoutTestController::setJavaScriptProfilingEnabled):
        * DumpRenderTree/chromium/LayoutTestController.h:
        * DumpRenderTree/wx/LayoutTestControllerWx.cpp:
        (LayoutTestController::setJavaScriptProfilingEnabled):
        * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
        (WTR::LayoutTestController::setJavaScriptProfilingEnabled):
        * WebKitTestRunner/InjectedBundle/LayoutTestController.h:

2011-06-03  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Yury Semikhatsky.

        Web Inspector: [Chromium] cpu-profiler-profiling layout test is flaky on Linux Debug.
        https://bugs.webkit.org/show_bug.cgi?id=61533

        Skip cpu-profiler-profiling in debug, implement a fast headless alternative.

        * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
        (WKBundleInspectorSetJavaScriptProfilingEnabled):
        * WebProcess/InjectedBundle/API/c/WKBundleInspector.h:
        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::setJavaScriptProfilingEnabled):
        * WebProcess/WebPage/WebInspector.h:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415114</commentid>
    <comment_count>11</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-03 13:06:52 -0700</bug_when>
    <thetext>Reopening. According to the flakiness dashboard, the new test crashes from time to time as well (but runs fast):

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector%2Fprofiler%2Fcpu-profiler-profiling.html%2Cinspector%2Fprofiler%2Fcpu-profiler-profiling-without-inspector.html&amp;group=%40ToT%20-%20chromium.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418856</commentid>
    <comment_count>12</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-10 13:06:34 -0700</bug_when>
    <thetext>We have found a bug in the VM. It had been fixed: http://code.google.com/p/v8/source/detail?r=8259
Now locally tests doesn&apos;t crash anymore. Need to wait until the next VM roll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421799</commentid>
    <comment_count>13</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-06-15 23:35:41 -0700</bug_when>
    <thetext>According to the dashboard, tests are no more crashing:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20chromium.org&amp;tests=inspector%2Fprofiler%2Fcpu-profiler-profiling.html%2Cinspector%2Fprofiler%2Fcpu-profiler-profiling-without-inspector.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95880</attachid>
            <date>2011-06-03 02:57:23 -0700</date>
            <delta_ts>2011-06-03 04:28:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch-61533</filename>
            <type>text/plain</type>
            <size>18355</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YWNmZDU5Li4zZDdmNjdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYt
MDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTa2lw
IGNwdS1wcm9maWxlci1wcm9maWxpbmcgaW4gZGVidWcsCisgICAgICAgIGltcGxlbWVudCBhIGZh
c3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2Nw
dS1wcm9maWxlci1wcm9maWxpbmctZmFzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWZhc3QuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Ogor
CiAyMDExLTA2LTAyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5n
LWZhc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMz
ZWY3NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
Y3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K1Rlc3RzIHRoYXQgQ1BVIHByb2ZpbGluZyB3b3Jrcy4KK0RvZXNuJ3Qgb3BlbiBJbnNwZWN0b3Is
IHVzZXMgY29uc29sZS5wcm9maWxlLi4uLgorCisKK0ZvdW5kIHBhZ2VGdW5jdGlvbgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2Zp
bGluZy1mYXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2Zp
bGVyLXByb2ZpbGluZy1mYXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjcwZGI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWZhc3QuaHRtbApAQCAtMCwwICsxLDkwIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKK30KKwor
ZnVuY3Rpb24gcGFnZUZ1bmN0aW9uKCkKK3sKKyAgICBjb25zb2xlLnByb2ZpbGUoIm91dGVyIik7
CisgICAgY29uc29sZS5wcm9maWxlKCJpbm5lciIpOyAgLy8gW0Nocm9taXVtXSBNYWtlIHN1cmUg
d2UgY2FwdHVyZSB0aGUgY3VycmVudCBjYWxsc3RhY2suCisgICAgY29uc29sZS5wcm9maWxlRW5k
KCJvdXRlciIpOworICAgIGNvbnNvbGUucHJvZmlsZUVuZCgiaW5uZXIiKTsKK30KKworZnVuY3Rp
b24gc3RhcnRUZXN0KCkKK3sKKyAgICBwYWdlRnVuY3Rpb24oKTsKKyAgICBwcmludFJlc3VsdCgp
OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcHJpbnRSZXN1bHQoKQor
eworICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Cisg
ICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7
CisKKyAgICB2YXIgcHJvZmlsZXMgPSBjb25zb2xlLnByb2ZpbGVzOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb2ZpbGUgPSBw
cm9maWxlc1tpXTsKKyAgICAgICAgaWYgKHByb2ZpbGUudGl0bGUgIT09ICJpbm5lciIpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9ICJwYWdlRnVuY3Rp
b24iOworICAgICAgICBpZiAoZmluZEZ1bmN0aW9uSW5Qcm9maWxlKHByb2ZpbGUuaGVhZCwgZnVu
Y3Rpb25OYW1lKSkKKyAgICAgICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIkZvdW5kICIgKyBmdW5jdGlvbk5hbWUpKTsKKyAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIhISEgTm90IGZvdW5kICIgKyBmdW5jdGlvbk5hbWUpKTsKKyAgICAgICAgICAgIHByZUVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlxuXG4iKSk7CisgICAg
ICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZS5o
ZWFkLCAwKTsKKyAgICAgICAgfQorICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJlRWxlbWVudCk7Cit9CisKK2Z1bmN0aW9u
IHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVFbGVtZW50LCBub2RlLCBpbmRlbnRMZXZl
bCkKK3sKKyAgICBpZiAoIW5vZGUudmlzaWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IHNwYWNlID0gIiI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRlbnRMZXZlbDsgKytpKQor
ICAgICAgICBzcGFjZSArPSAiICAgIgorCisgICAgKytpbmRlbnRMZXZlbDsKKworICAgIHZhciBs
aW5lID0gc3BhY2UgKyBub2RlLmZ1bmN0aW9uTmFtZSArICIgKGxpbmUgIiArIG5vZGUubGluZU51
bWJlciArICIpXG4iOworICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobGluZSkpOworCisgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICBwcmlu
dFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgY2hpbGRyZW5baV0sIGluZGVudExl
dmVsKTsKK30KKworZnVuY3Rpb24gZmluZEZ1bmN0aW9uSW5Qcm9maWxlKG5vZGUsIGZ1bmN0aW9u
TmFtZSkKK3sKKyAgICBpZiAobm9kZS5mdW5jdGlvbk5hbWUgPT09IGZ1bmN0aW9uTmFtZSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICBpZiAo
ZmluZEZ1bmN0aW9uSW5Qcm9maWxlKGNoaWxkcmVuW2ldLCBmdW5jdGlvbk5hbWUpKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOyAgICAKK30KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCBD
UFUgcHJvZmlsaW5nIHdvcmtzLjxicj4KK0RvZXNuJ3Qgb3BlbiBJbnNwZWN0b3IsIHVzZXMgPGI+
Y29uc29sZS5wcm9maWxlLi4uPC9iPi4KKworPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBjYmFkZjk4Li5jOWE0NGM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0zOTQ0LDcgKzM5NDQsOCBAQCBCVUdXSzYxNTE5IFdJTiBMSU5VWCA6IGluc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgPSBURVhUIFRJTUVPVVQgUEFTUwogQlVHQ1I4NDAzMSBN
QUMgTElOVVggOiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZGVsZXRlLXJlbW92
YWwuaHRtbCA9IFRJTUVPVVQgUEFTUwogQlVHQ1I4NDAzMiBXSU4gOiBmYXN0L2RvbS9vYmplY3Qt
cGx1Z2luLWhpZGVzLXByb3BlcnRpZXMuaHRtbCA9IFRJTUVPVVQgUEFTUwogCi1CVUdXSzYxNTMz
IExJTlVYIDogaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmcuaHRtbCA9
IENSQVNIIFRJTUVPVVQgUEFTUworLy8gV29ya3Mgc2xvd2x5LCB3ZSBoYXZlIGFuIGVxdWl2YWxl
bnQgdGVzdCB0aGF0IGRvZXNuJ3Qgb3BlbiBJbnNwZWN0b3IgYW5kIHJ1bnMgZmFzdC4KK1dPTlRG
SVggTElOVVggREVCVUcgU0tJUCA6IGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJv
ZmlsaW5nLmh0bWwgPSBDUkFTSCBUSU1FT1VUIFBBU1MKIAogQlVHQ1I4NDA5MyBWSVNUQSA6IGh0
dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC0yMDAtcmVmcmVzaC0yLXNlY29uZHMucGwgPSBUSU1F
T1VUIFBBU1MKIEJVR0NSODQwOTUgVklTVEEgOiBzdmcvY3VzdG9tL3VzZS1kZXRhY2guc3ZnID0g
VElNRU9VVCBQQVNTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDhkNWQxZjcuLjY3N2Yw
Y2QgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYt
MDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTa2lw
IGNwdS1wcm9maWxlci1wcm9maWxpbmcgaW4gZGVidWcsCisgICAgICAgIGltcGxlbWVudCBhIGZh
c3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisgICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdl
bnQuaDoKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oOgorCiAyMDExLTA2LTAy
ICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRGV2VG9vbHNBZ2VudC5oCmluZGV4IDAzMzAzZjcuLjJlZGI5MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKQEAgLTYyLDYgKzYy
LDcgQEAgcHVibGljOgogCiAgICAgLy8gRXhwb3NlZCBmb3IgTGF5b3V0VGVzdENvbnRyb2xsZXIu
CiAgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNv
bnN0IFdlYlN0cmluZyYgc2NyaXB0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgPSAwOwogCiAgICAgLy8gQXN5bmNocm9u
b3VzbHkgZXhlY3V0ZXMgZGVidWdnZXIgY29tbWFuZCBpbiB0aGUgcmVuZGVyIHRocmVhZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cAppbmRleCA2OGZhNjE4Li4zOGE4YjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC0zMTIsNiArMzEyLDE1IEBAIHZv
aWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxs
SWQsIGNvbnN0IFdlYlN0cmluZyYKICAgICBpYy0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChj
YWxsSWQsIHNjcmlwdCk7CiB9CiAKK3ZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBJbnNwZWN0b3JDb250
cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIoKTsKKyAgICBpZiAoZW5hYmxlZCkKKyAg
ICAgICAgaWMtPmVuYWJsZVByb2ZpbGVyKCk7CisgICAgZWxzZQorICAgICAgICBpYy0+ZGlzYWJs
ZVByb2ZpbGVyKCk7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgSW5zcGVjdG9yQ29udHJvbGxl
ciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCAzM2NhMjMyLi43YzFhOTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmgKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE9u
SW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZpcnR1YWwg
dm9pZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CiAgICAgdmlydHVh
bCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmlu
ZyYgc2NyaXB0KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFJ1bnRpbWVQcm9wZXJ0eShjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODk1ZDM0MC4uYTM4M2VlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTA2LTAz
ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2tpcCBj
cHUtcHJvZmlsZXItcHJvZmlsaW5nIGluIGRlYnVnLAorICAgICAgICBpbXBsZW1lbnQgYSBmYXN0
IGhlYWRsZXNzIGFsdGVybmF0aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjE1MzMKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV0tCdW5kbGVJbnNwZWN0
b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisKIDIwMTEtMDYtMDIgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCmluZGV4IGFlNjlhNTMuLmE2
OTllYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCkBAIC01NSw2
ICs1NSwxMSBAQCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdL
QnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgbAogICAgIHJldHVybiB0b0ltcGwoaW5z
cGVjdG9yUmVmKS0+ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNhbGxJRCwgdG9JbXBsKHNjcmlwdCkt
PnN0cmluZygpKTsKIH0KIAordm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFi
bGVkKQoreworICAgIHRvSW1wbChpbnNwZWN0b3JSZWYpLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9m
aWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFi
bGVkKQogewogICAgIGlmIChlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rv
ci5oCmluZGV4IGUzMmZkZjIuLjU5M2Q5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5z
cGVjdG9yLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0
b3JTaG93KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZUluc3BlY3RvckNsb3NlKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiAK
IFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdL
QnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgbG9uZyBjYWxsSUQsIFdLU3RyaW5nUmVmIHNj
cmlwdCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVk
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFnZVByb2ZpbGluZ0VuYWJs
ZWQoV0tCdW5kbGVJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBib29sIGVuYWJsZWQpOwogCiAjaWZk
ZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5jcHAKaW5kZXggMWYxOWYzMS4uMTZjM2IzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0Niw2
ICsxNDYsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnN0b3BKYXZhU2NyaXB0RGVidWdnaW5nKCkK
ICNlbmRpZgogfQogCit2b2lkIFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQor
ICAgIGlmIChlbmFibGVkKQorICAgICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNv
bnRyb2xsZXIoKS0+ZW5hYmxlUHJvZmlsZXIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fcGFnZS0+
Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNhYmxlUHJvZmlsZXIoKTsgICAg
ICAgIAorI2VuZGlmCit9CisKIHZvaWQgV2ViSW5zcGVjdG9yOjpzdGFydEphdmFTY3JpcHRQcm9m
aWxpbmcoKQogewogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IGYxNzMzNTUu
LjdhZGJkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBldmFsdWF0
ZVNjcmlwdEZvclRlc3QobG9uZyBjYWxsSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KTsKIAorICAg
IHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKICAgICB2
b2lkIHN0YXJ0UGFnZVByb2ZpbGluZygpOwogICAgIHZvaWQgc3RvcFBhZ2VQcm9maWxpbmcoKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZj
M2NmNWIuLjE4MDdmNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wNi0wMyAgTWlraGFpbCBOYWdhbm92ICA8
bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNraXAgY3B1LXByb2ZpbGVyLXByb2ZpbGlu
ZyBpbiBkZWJ1ZywKKyAgICAgICAgaW1wbGVtZW50IGEgZmFzdCBoZWFkbGVzcyBhbHRlcm5hdGl2
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNTMz
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNw
cDoKKyAgICAgICAgKERSVERldlRvb2xzQWdlbnQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50
Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9s
bGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkxheW91dFRl
c3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgor
CiAyMDExLTA2LTAyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwCmluZGV4IDYxZTcyNmEuLjg0Y2M2NjkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQu
Y3BwCkBAIC0xMjcsNiArMTI3LDE1IEBAIHZvaWQgRFJURGV2VG9vbHNBZ2VudDo6ZnJvbnRlbmRM
b2FkZWQoKQogICAgIHBvc3RUYXNrKG5ldyBEZWxheWVkRnJvbnRlbmRMb2FkZWRUYXNrKHRoaXMp
KTsKIH0KIAorYm9vbCBEUlREZXZUb29sc0FnZW50OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChib29sIGVuYWJsZWQpCit7CisgICAgV2ViRGV2VG9vbHNBZ2VudCogYWdlbnQgPSB3ZWJE
ZXZUb29sc0FnZW50KCk7CisgICAgaWYgKCFhZ2VudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGFnZW50LT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChlbmFibGVkKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBEUlREZXZUb29sc0FnZW50OjpzZXRUaW1lbGluZVByb2Zp
bGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIFdlYkRldlRvb2xzQWdlbnQqIGFnZW50
ID0gd2ViRGV2VG9vbHNBZ2VudCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vRFJURGV2VG9vbHNBZ2VudC5oCmluZGV4IGE5NzNmODEuLjRhZWNjODQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmgKQEAgLTcwLDYg
KzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZnJvbnRlbmRMb2FkZWQoKTsKIAogICAgIGJvb2wg
ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJRCwgY29uc3Qgc3RkOjpzdHJpbmcmIHNj
cmlwdCk7CisgICAgYm9vbCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAg
ICBib29sIHNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICBUYXNrTGlzdCog
dGFza0xpc3QoKSB7IHJldHVybiAmbV90YXNrTGlzdDsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOTVi
NzA1OC4uZjk4YzM3NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTU3LDYgKzE1Nyw3IEBAIExheW91dFRl
c3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAg
IGJpbmRNZXRob2QoInNldEdlb2xvY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRJY29u
RGF0YWJhc2VFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VF
bmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
KTsKKyAgICBiaW5kTWV0aG9kKCJzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOwogICAgIGJp
bmRNZXRob2QoInNldE1pbmltdW1UaW1lckludGVydmFsIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNlT3JpZW50
YXRpb24pOwogICAgIGJpbmRNZXRob2QoInNldE1vY2tHZW9sb2NhdGlvbkVycm9yIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik7CkBAIC0xNjMwLDYgKzE2
MzEsMTQgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9nRXJyb3JUb0NvbnNvbGUoY29u
c3Qgc3RkOjpzdHJpbmcmIHRleHQpCiAgICAgICAgIFdlYlN0cmluZygpLCAwKTsKIH0KIAordm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAg
ICByZXN1bHQtPnNldE51bGwoKTsKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEgfHwgIWFy
Z3VtZW50c1swXS5pc0Jvb2woKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc2hlbGwtPmRydERl
dlRvb2xzQWdlbnQoKS0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYXJndW1lbnRzWzBd
LnRvQm9vbGVhbigpKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBW
YXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBm
MmQ2ODQ3Li44YTM4N2M1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTMyMyw2ICszMjMsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGdlb2xvY2F0aW9uIHBlcm1pc3Npb25zIHJlcXVlc3Rz
IHBlbmRpbmcuCiAgICAgdm9pZCBudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0cyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICAvLyBB
bGxvd3MgbGF5b3V0IHRlc3RzIHRvIHN0YXJ0IEphdmFTY3JpcHQgcHJvZmlsaW5nLgorICAgIHZv
aWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOworCiAgICAgLy8gQWxsb3dzIGxheW91dCB0ZXN0cyB0byBzdGFydCBUaW1l
bGluZSBwcm9maWxpbmcuCiAgICAgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IDNkYmNiOWEuLmVj
N2RmZmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwCkBAIC00NTAsNiArNDUwLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnJlbW92ZUFsbFZpc2l0ZWRMaW5rcygpCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
LgogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA4N2U0OTEwLi45Mzc3MGQ4IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcApAQCAtNDkyLDYgKzQ5MiwxMSBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBKU1N0cmluZ1JlZiBz
Y3JpcAogICAgIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdLQnVuZGxl
UGFnZUdldEluc3BlY3RvcihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkp
LCBjYWxsSUQsIHNjcmlwdFdLLmdldCgpKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIFdL
QnVuZGxlSW5zcGVjdG9yU2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoV0tCdW5kbGVQYWdl
R2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSksIGVu
YWJsZWQpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRUaW1lbGluZVByb2Zp
bGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFn
ZVByb2ZpbGluZ0VuYWJsZWQoV0tCdW5kbGVQYWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSksIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCmluZGV4IGU2MzE0NTkuLjQwNjJkM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAg
LTE2MSw2ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKCk7CiAg
ICAgdm9pZCBjbG9zZVdlYkluc3BlY3RvcigpOwogICAgIHZvaWQgZXZhbHVhdGVJbldlYkluc3Bl
Y3Rvcihsb25nIGNhbGxJZCwgSlNTdHJpbmdSZWYgc2NyaXB0KTsKKyAgICB2b2lkIHNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGltZWxpbmVQcm9maWxp
bmdFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBzZXRQT1NJWExvY2FsZShKU1N0cmluZ1JlZik7
Cg==
</data>
<flag name="commit-queue"
          id="89463"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95886</attachid>
            <date>2011-06-03 04:28:49 -0700</date>
            <delta_ts>2011-06-03 05:56:39 -0700</delta_ts>
            <desc>fix style</desc>
            <filename>patch-61533</filename>
            <type>text/plain</type>
            <size>18347</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YWNmZDU5Li4zZDdmNjdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYt
MDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTa2lw
IGNwdS1wcm9maWxlci1wcm9maWxpbmcgaW4gZGVidWcsCisgICAgICAgIGltcGxlbWVudCBhIGZh
c3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2Nw
dS1wcm9maWxlci1wcm9maWxpbmctZmFzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWZhc3QuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Ogor
CiAyMDExLTA2LTAyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5n
LWZhc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMz
ZWY3NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
Y3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K1Rlc3RzIHRoYXQgQ1BVIHByb2ZpbGluZyB3b3Jrcy4KK0RvZXNuJ3Qgb3BlbiBJbnNwZWN0b3Is
IHVzZXMgY29uc29sZS5wcm9maWxlLi4uLgorCisKK0ZvdW5kIHBhZ2VGdW5jdGlvbgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2Zp
bGluZy1mYXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2Zp
bGVyLXByb2ZpbGluZy1mYXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjcwZGI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWZhc3QuaHRtbApAQCAtMCwwICsxLDkwIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKK30KKwor
ZnVuY3Rpb24gcGFnZUZ1bmN0aW9uKCkKK3sKKyAgICBjb25zb2xlLnByb2ZpbGUoIm91dGVyIik7
CisgICAgY29uc29sZS5wcm9maWxlKCJpbm5lciIpOyAgLy8gW0Nocm9taXVtXSBNYWtlIHN1cmUg
d2UgY2FwdHVyZSB0aGUgY3VycmVudCBjYWxsc3RhY2suCisgICAgY29uc29sZS5wcm9maWxlRW5k
KCJvdXRlciIpOworICAgIGNvbnNvbGUucHJvZmlsZUVuZCgiaW5uZXIiKTsKK30KKworZnVuY3Rp
b24gc3RhcnRUZXN0KCkKK3sKKyAgICBwYWdlRnVuY3Rpb24oKTsKKyAgICBwcmludFJlc3VsdCgp
OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcHJpbnRSZXN1bHQoKQor
eworICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Cisg
ICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7
CisKKyAgICB2YXIgcHJvZmlsZXMgPSBjb25zb2xlLnByb2ZpbGVzOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb2ZpbGUgPSBw
cm9maWxlc1tpXTsKKyAgICAgICAgaWYgKHByb2ZpbGUudGl0bGUgIT09ICJpbm5lciIpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9ICJwYWdlRnVuY3Rp
b24iOworICAgICAgICBpZiAoZmluZEZ1bmN0aW9uSW5Qcm9maWxlKHByb2ZpbGUuaGVhZCwgZnVu
Y3Rpb25OYW1lKSkKKyAgICAgICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIkZvdW5kICIgKyBmdW5jdGlvbk5hbWUpKTsKKyAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIhISEgTm90IGZvdW5kICIgKyBmdW5jdGlvbk5hbWUpKTsKKyAgICAgICAgICAgIHByZUVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlxuXG4iKSk7CisgICAg
ICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZS5o
ZWFkLCAwKTsKKyAgICAgICAgfQorICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJlRWxlbWVudCk7Cit9CisKK2Z1bmN0aW9u
IHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVFbGVtZW50LCBub2RlLCBpbmRlbnRMZXZl
bCkKK3sKKyAgICBpZiAoIW5vZGUudmlzaWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFy
IHNwYWNlID0gIiI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRlbnRMZXZlbDsgKytpKQor
ICAgICAgICBzcGFjZSArPSAiICAgIgorCisgICAgKytpbmRlbnRMZXZlbDsKKworICAgIHZhciBs
aW5lID0gc3BhY2UgKyBub2RlLmZ1bmN0aW9uTmFtZSArICIgKGxpbmUgIiArIG5vZGUubGluZU51
bWJlciArICIpXG4iOworICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobGluZSkpOworCisgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICBwcmlu
dFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgY2hpbGRyZW5baV0sIGluZGVudExl
dmVsKTsKK30KKworZnVuY3Rpb24gZmluZEZ1bmN0aW9uSW5Qcm9maWxlKG5vZGUsIGZ1bmN0aW9u
TmFtZSkKK3sKKyAgICBpZiAobm9kZS5mdW5jdGlvbk5hbWUgPT09IGZ1bmN0aW9uTmFtZSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICBpZiAo
ZmluZEZ1bmN0aW9uSW5Qcm9maWxlKGNoaWxkcmVuW2ldLCBmdW5jdGlvbk5hbWUpKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOyAgICAKK30KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCBD
UFUgcHJvZmlsaW5nIHdvcmtzLjxicj4KK0RvZXNuJ3Qgb3BlbiBJbnNwZWN0b3IsIHVzZXMgPGI+
Y29uc29sZS5wcm9maWxlLi4uPC9iPi4KKworPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBjYmFkZjk4Li5jOWE0NGM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0zOTQ0LDcgKzM5NDQsOCBAQCBCVUdXSzYxNTE5IFdJTiBMSU5VWCA6IGluc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgPSBURVhUIFRJTUVPVVQgUEFTUwogQlVHQ1I4NDAzMSBN
QUMgTElOVVggOiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZGVsZXRlLXJlbW92
YWwuaHRtbCA9IFRJTUVPVVQgUEFTUwogQlVHQ1I4NDAzMiBXSU4gOiBmYXN0L2RvbS9vYmplY3Qt
cGx1Z2luLWhpZGVzLXByb3BlcnRpZXMuaHRtbCA9IFRJTUVPVVQgUEFTUwogCi1CVUdXSzYxNTMz
IExJTlVYIDogaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmcuaHRtbCA9
IENSQVNIIFRJTUVPVVQgUEFTUworLy8gV29ya3Mgc2xvd2x5LCB3ZSBoYXZlIGFuIGVxdWl2YWxl
bnQgdGVzdCB0aGF0IGRvZXNuJ3Qgb3BlbiBJbnNwZWN0b3IgYW5kIHJ1bnMgZmFzdC4KK1dPTlRG
SVggTElOVVggREVCVUcgU0tJUCA6IGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJv
ZmlsaW5nLmh0bWwgPSBDUkFTSCBUSU1FT1VUIFBBU1MKIAogQlVHQ1I4NDA5MyBWSVNUQSA6IGh0
dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC0yMDAtcmVmcmVzaC0yLXNlY29uZHMucGwgPSBUSU1F
T1VUIFBBU1MKIEJVR0NSODQwOTUgVklTVEEgOiBzdmcvY3VzdG9tL3VzZS1kZXRhY2guc3ZnID0g
VElNRU9VVCBQQVNTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDhkNWQxZjcuLjY3N2Yw
Y2QgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYt
MDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTa2lw
IGNwdS1wcm9maWxlci1wcm9maWxpbmcgaW4gZGVidWcsCisgICAgICAgIGltcGxlbWVudCBhIGZh
c3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisgICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdl
bnQuaDoKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oOgorCiAyMDExLTA2LTAy
ICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRGV2VG9vbHNBZ2VudC5oCmluZGV4IDAzMzAzZjcuLjJlZGI5MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKQEAgLTYyLDYgKzYy
LDcgQEAgcHVibGljOgogCiAgICAgLy8gRXhwb3NlZCBmb3IgTGF5b3V0VGVzdENvbnRyb2xsZXIu
CiAgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNv
bnN0IFdlYlN0cmluZyYgc2NyaXB0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgPSAwOwogCiAgICAgLy8gQXN5bmNocm9u
b3VzbHkgZXhlY3V0ZXMgZGVidWdnZXIgY29tbWFuZCBpbiB0aGUgcmVuZGVyIHRocmVhZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cAppbmRleCA2OGZhNjE4Li4zOGE4YjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC0zMTIsNiArMzEyLDE1IEBAIHZv
aWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxs
SWQsIGNvbnN0IFdlYlN0cmluZyYKICAgICBpYy0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChj
YWxsSWQsIHNjcmlwdCk7CiB9CiAKK3ZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBJbnNwZWN0b3JDb250
cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIoKTsKKyAgICBpZiAoZW5hYmxlZCkKKyAg
ICAgICAgaWMtPmVuYWJsZVByb2ZpbGVyKCk7CisgICAgZWxzZQorICAgICAgICBpYy0+ZGlzYWJs
ZVByb2ZpbGVyKCk7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgSW5zcGVjdG9yQ29udHJvbGxl
ciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCAzM2NhMjMyLi43YzFhOTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmgKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE9u
SW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZpcnR1YWwg
dm9pZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CiAgICAgdmlydHVh
bCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmlu
ZyYgc2NyaXB0KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFJ1bnRpbWVQcm9wZXJ0eShjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODk1ZDM0MC4uYTM4M2VlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTA2LTAz
ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2tpcCBj
cHUtcHJvZmlsZXItcHJvZmlsaW5nIGluIGRlYnVnLAorICAgICAgICBpbXBsZW1lbnQgYSBmYXN0
IGhlYWRsZXNzIGFsdGVybmF0aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjE1MzMKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV0tCdW5kbGVJbnNwZWN0
b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisKIDIwMTEtMDYtMDIgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCmluZGV4IGFlNjlhNTMuLmE2
OTllYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCkBAIC01NSw2
ICs1NSwxMSBAQCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdL
QnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgbAogICAgIHJldHVybiB0b0ltcGwoaW5z
cGVjdG9yUmVmKS0+ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNhbGxJRCwgdG9JbXBsKHNjcmlwdCkt
PnN0cmluZygpKTsKIH0KIAordm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFi
bGVkKQoreworICAgIHRvSW1wbChpbnNwZWN0b3JSZWYpLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9m
aWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFi
bGVkKQogewogICAgIGlmIChlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rv
ci5oCmluZGV4IGUzMmZkZjIuLjU5M2Q5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5z
cGVjdG9yLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0
b3JTaG93KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZUluc3BlY3RvckNsb3NlKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiAK
IFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdL
QnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgbG9uZyBjYWxsSUQsIFdLU3RyaW5nUmVmIHNj
cmlwdCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVk
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFnZVByb2ZpbGluZ0VuYWJs
ZWQoV0tCdW5kbGVJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBib29sIGVuYWJsZWQpOwogCiAjaWZk
ZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5jcHAKaW5kZXggMWYxOWYzMS4uMTZjM2IzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0Niw2
ICsxNDYsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnN0b3BKYXZhU2NyaXB0RGVidWdnaW5nKCkK
ICNlbmRpZgogfQogCit2b2lkIFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQor
ICAgIGlmIChlbmFibGVkKQorICAgICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNv
bnRyb2xsZXIoKS0+ZW5hYmxlUHJvZmlsZXIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fcGFnZS0+
Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNhYmxlUHJvZmlsZXIoKTsgICAg
ICAgIAorI2VuZGlmCit9CisKIHZvaWQgV2ViSW5zcGVjdG9yOjpzdGFydEphdmFTY3JpcHRQcm9m
aWxpbmcoKQogewogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IGYxNzMzNTUu
LmI0YTc2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBldmFsdWF0
ZVNjcmlwdEZvclRlc3QobG9uZyBjYWxsSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KTsKIAorICAg
IHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzdGFy
dFBhZ2VQcm9maWxpbmcoKTsKICAgICB2b2lkIHN0b3BQYWdlUHJvZmlsaW5nKCk7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YzNjZjViLi4x
ODA3ZjY5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDYtMDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBTa2lwIGNwdS1wcm9maWxlci1wcm9maWxpbmcgaW4gZGVi
dWcsCisgICAgICAgIGltcGxlbWVudCBhIGZhc3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHA6CisgICAg
ICAgIChEUlREZXZUb29sc0FnZW50OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJX
eC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMS0w
Ni0wMiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlREZXZUb29sc0FnZW50LmNwcAppbmRleCA2MWU3MjZhLi44NGNjNjY5IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcApAQCAt
MTI3LDYgKzEyNywxNSBAQCB2b2lkIERSVERldlRvb2xzQWdlbnQ6OmZyb250ZW5kTG9hZGVkKCkK
ICAgICBwb3N0VGFzayhuZXcgRGVsYXllZEZyb250ZW5kTG9hZGVkVGFzayh0aGlzKSk7CiB9CiAK
K2Jvb2wgRFJURGV2VG9vbHNBZ2VudDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQoreworICAgIFdlYkRldlRvb2xzQWdlbnQqIGFnZW50ID0gd2ViRGV2VG9vbHNB
Z2VudCgpOworICAgIGlmICghYWdlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhZ2Vu
dC0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5hYmxlZCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIGJvb2wgRFJURGV2VG9vbHNBZ2VudDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBXZWJEZXZUb29sc0FnZW50KiBhZ2VudCA9IHdlYkRl
dlRvb2xzQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0RSVERldlRvb2xzQWdlbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERl
dlRvb2xzQWdlbnQuaAppbmRleCBhOTczZjgxLi40YWVjYzg0IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCkBAIC03MCw2ICs3MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGZyb250ZW5kTG9hZGVkKCk7CiAKICAgICBib29sIGV2YWx1YXRl
SW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzY3JpcHQpOwor
ICAgIGJvb2wgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBz
ZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgVGFza0xpc3QqIHRhc2tMaXN0
KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDk1YjcwNTguLmY5
OGMzNzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1Nyw2ICsxNTcsNyBAQCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0
aG9kKCJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEdlb2xvY2F0aW9uUGVybWlzc2lvbik7CiAgICAgYmluZE1ldGhvZCgic2V0SWNvbkRhdGFiYXNl
RW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZCk7
CiAgICAgYmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCk7CisgICAg
YmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9k
KCJzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWlu
aW11bVRpbWVySW50ZXJ2YWwpOwogICAgIGJpbmRNZXRob2QoInNldE1vY2tEZXZpY2VPcmllbnRh
dGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKTsK
ICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOwpAQCAtMTYzMCw2ICsxNjMxLDE0IEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvZ0Vycm9yVG9Db25zb2xlKGNvbnN0IHN0ZDo6
c3RyaW5nJiB0ZXh0KQogICAgICAgICBXZWJTdHJpbmcoKSwgMCk7CiB9CiAKK3ZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0
LT5zZXROdWxsKCk7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNb
MF0uaXNCb29sKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX3NoZWxsLT5kcnREZXZUb29sc0Fn
ZW50KCktPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGFyZ3VtZW50c1swXS50b0Jvb2xl
YW4oKSk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRpbWVsaW5lUHJvZmls
aW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggZjJkNjg0Ny4u
OGEzODdjNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCkBAIC0zMjMsNiArMzIzLDkgQEAgcHVibGljOgogICAgIC8vIEdl
dHMgdGhlIG51bWJlciBvZiBnZW9sb2NhdGlvbiBwZXJtaXNzaW9ucyByZXF1ZXN0cyBwZW5kaW5n
LgogICAgIHZvaWQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgLy8gQWxsb3dzIGxh
eW91dCB0ZXN0cyB0byBzdGFydCBKYXZhU2NyaXB0IHByb2ZpbGluZy4KKyAgICB2b2lkIHNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKKwogICAgIC8vIEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gc3RhcnQgVGltZWxpbmUgcHJv
ZmlsaW5nLgogICAgIHZvaWQgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCAzZGJjYjlhLi5lYzdkZmZlIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcApAQCAtNDUwLDYgKzQ1MCwxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1v
dmVBbGxWaXNpdGVkTGlua3MoKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KIAor
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQoreworCit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRp
bWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggODdlNDkxMC4uOTM3NzBkOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTQ5Miw2ICs0OTIsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJRCwgSlNTdHJpbmdSZWYgc2NyaXAKICAg
ICBXS0J1bmRsZUluc3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZVBhZ2VHZXRJ
bnNwZWN0b3IoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKSwgY2FsbElE
LCBzY3JpcHRXSy5nZXQoKSk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXS0J1bmRsZUlu
c3BlY3RvclNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlUGFnZUdldEluc3Bl
Y3RvcihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpLCBlbmFibGVkKTsK
K30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxp
bmdFbmFibGVkKFdLQnVuZGxlUGFnZUdldEluc3BlY3RvcihJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkucGFnZSgpLT5wYWdlKCkpLCBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRl
eCBlNjMxNDU5Li40MDYyZDNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xNjEsNiAr
MTYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd1dlYkluc3BlY3RvcigpOwogICAgIHZvaWQg
Y2xvc2VXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9u
ZyBjYWxsSWQsIEpTU3RyaW5nUmVmIHNjcmlwdCk7CisgICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxl
ZChib29sKTsKIAogICAgIHZvaWQgc2V0UE9TSVhMb2NhbGUoSlNTdHJpbmdSZWYpOwo=
</data>
<flag name="commit-queue"
          id="89469"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95900</attachid>
            <date>2011-06-03 05:44:40 -0700</date>
            <delta_ts>2011-06-03 05:56:39 -0700</delta_ts>
            <desc>brush up changelog</desc>
            <filename>patch-61533</filename>
            <type>text/plain</type>
            <size>18528</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YWNmZDU5Li40MzMxZTc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYt
MDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworCVJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisJV2ViIEluc3BlY3RvcjogW0Nocm9taXVtXSBjcHUtcHJv
ZmlsZXItcHJvZmlsaW5nIGxheW91dCB0ZXN0IGlzIGZsYWt5IG9uIExpbnV4IERlYnVnLgorCWh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisJU2tpcCBjcHUt
cHJvZmlsZXItcHJvZmlsaW5nIGluIGRlYnVnLCBpbXBsZW1lbnQgYSBmYXN0IGhlYWRsZXNzIGFs
dGVybmF0aXZlLgorCisJKiBpbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGlu
Zy1mYXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisJKiBpbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXBy
b2ZpbGVyLXByb2ZpbGluZy1mYXN0Lmh0bWw6IEFkZGVkLgorCSogcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDExLTA2LTAyICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXBy
b2ZpbGluZy1mYXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWZhc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZWY3NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3RzIHRoYXQgQ1BVIHByb2ZpbGluZyB3b3Jrcy4K
K0RvZXNuJ3Qgb3BlbiBJbnNwZWN0b3IsIHVzZXMgY29uc29sZS5wcm9maWxlLi4uLgorCisKK0Zv
dW5kIHBhZ2VGdW5jdGlvbgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcwZGI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWZhc3Qu
aHRtbApAQCAtMCwwICsxLDkwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKK30KKworZnVuY3Rpb24gcGFnZUZ1bmN0aW9uKCkKK3sKKyAgICBj
b25zb2xlLnByb2ZpbGUoIm91dGVyIik7CisgICAgY29uc29sZS5wcm9maWxlKCJpbm5lciIpOyAg
Ly8gW0Nocm9taXVtXSBNYWtlIHN1cmUgd2UgY2FwdHVyZSB0aGUgY3VycmVudCBjYWxsc3RhY2su
CisgICAgY29uc29sZS5wcm9maWxlRW5kKCJvdXRlciIpOworICAgIGNvbnNvbGUucHJvZmlsZUVu
ZCgiaW5uZXIiKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBwYWdlRnVuY3Rp
b24oKTsKKyAgICBwcmludFJlc3VsdCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwor
ZnVuY3Rpb24gcHJpbnRSZXN1bHQoKQoreworICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgicHJlIik7CisgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7CisKKyAgICB2YXIgcHJvZmlsZXMgPSBjb25zb2xlLnBy
b2ZpbGVzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgdmFyIHByb2ZpbGUgPSBwcm9maWxlc1tpXTsKKyAgICAgICAgaWYgKHByb2ZpbGUu
dGl0bGUgIT09ICJpbm5lciIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIGZ1
bmN0aW9uTmFtZSA9ICJwYWdlRnVuY3Rpb24iOworICAgICAgICBpZiAoZmluZEZ1bmN0aW9uSW5Q
cm9maWxlKHByb2ZpbGUuaGVhZCwgZnVuY3Rpb25OYW1lKSkKKyAgICAgICAgICAgIHByZUVsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkZvdW5kICIgKyBmdW5jdGlv
bk5hbWUpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIhISEgTm90IGZvdW5kICIgKyBmdW5jdGlvbk5h
bWUpKTsKKyAgICAgICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlxuXG4iKSk7CisgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRp
bWUocHJlRWxlbWVudCwgcHJvZmlsZS5oZWFkLCAwKTsKKyAgICAgICAgfQorICAgICAgICBwcmVF
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKKyAgICB9
CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJl
RWxlbWVudCk7Cit9CisKK2Z1bmN0aW9uIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVF
bGVtZW50LCBub2RlLCBpbmRlbnRMZXZlbCkKK3sKKyAgICBpZiAoIW5vZGUudmlzaWJsZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgdmFyIHNwYWNlID0gIiI7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBpbmRlbnRMZXZlbDsgKytpKQorICAgICAgICBzcGFjZSArPSAiICAgIgorCisgICAgKytp
bmRlbnRMZXZlbDsKKworICAgIHZhciBsaW5lID0gc3BhY2UgKyBub2RlLmZ1bmN0aW9uTmFtZSAr
ICIgKGxpbmUgIiArIG5vZGUubGluZU51bWJlciArICIpXG4iOworICAgIHByZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOworCisgICAgdmFyIGNoaWxk
cmVuID0gbm9kZS5jaGlsZHJlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxl
bmd0aDsgKytpKQorICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVu
dCwgY2hpbGRyZW5baV0sIGluZGVudExldmVsKTsKK30KKworZnVuY3Rpb24gZmluZEZ1bmN0aW9u
SW5Qcm9maWxlKG5vZGUsIGZ1bmN0aW9uTmFtZSkKK3sKKyAgICBpZiAobm9kZS5mdW5jdGlvbk5h
bWUgPT09IGZ1bmN0aW9uTmFtZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgdmFyIGNoaWxk
cmVuID0gbm9kZS5jaGlsZHJlbjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxl
bmd0aDsgKytpKQorICAgICAgICBpZiAoZmluZEZ1bmN0aW9uSW5Qcm9maWxlKGNoaWxkcmVuW2ld
LCBmdW5jdGlvbk5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZh
bHNlOyAgICAKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVz
dCgpIj4KKzxwPgorVGVzdHMgdGhhdCBDUFUgcHJvZmlsaW5nIHdvcmtzLjxicj4KK0RvZXNuJ3Qg
b3BlbiBJbnNwZWN0b3IsIHVzZXMgPGI+Y29uc29sZS5wcm9maWxlLi4uPC9iPi4KKworPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBjYmFk
Zjk4Li5jOWE0NGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zOTQ0LDcgKzM5NDQsOCBAQCBCVUdXSzYxNTE5IFdJ
TiBMSU5VWCA6IGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgPSBURVhUIFRJ
TUVPVVQgUEFTUwogQlVHQ1I4NDAzMSBNQUMgTElOVVggOiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbCA9IFRJTUVPVVQgUEFTUwogQlVHQ1I4NDAz
MiBXSU4gOiBmYXN0L2RvbS9vYmplY3QtcGx1Z2luLWhpZGVzLXByb3BlcnRpZXMuaHRtbCA9IFRJ
TUVPVVQgUEFTUwogCi1CVUdXSzYxNTMzIExJTlVYIDogaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1w
cm9maWxlci1wcm9maWxpbmcuaHRtbCA9IENSQVNIIFRJTUVPVVQgUEFTUworLy8gV29ya3Mgc2xv
d2x5LCB3ZSBoYXZlIGFuIGVxdWl2YWxlbnQgdGVzdCB0aGF0IGRvZXNuJ3Qgb3BlbiBJbnNwZWN0
b3IgYW5kIHJ1bnMgZmFzdC4KK1dPTlRGSVggTElOVVggREVCVUcgU0tJUCA6IGluc3BlY3Rvci9w
cm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLmh0bWwgPSBDUkFTSCBUSU1FT1VUIFBBU1MK
IAogQlVHQ1I4NDA5MyBWSVNUQSA6IGh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC0yMDAtcmVm
cmVzaC0yLXNlY29uZHMucGwgPSBUSU1FT1VUIFBBU1MKIEJVR0NSODQwOTUgVklTVEEgOiBzdmcv
Y3VzdG9tL3VzZS1kZXRhY2guc3ZnID0gVElNRU9VVCBQQVNTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDhkNWQxZjcuLjZkZjMzMzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCVdl
YiBJbnNwZWN0b3I6IFtDaHJvbWl1bV0gY3B1LXByb2ZpbGVyLXByb2ZpbGluZyBsYXlvdXQgdGVz
dCBpcyBmbGFreSBvbiBMaW51eCBEZWJ1Zy4KKwlodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjE1MzMKKworCVNraXAgY3B1LXByb2ZpbGVyLXByb2ZpbGluZyBpbiBkZWJ1
ZywgaW1wbGVtZW50IGEgZmFzdCBoZWFkbGVzcyBhbHRlcm5hdGl2ZS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJEZXZUb29sc0FnZW50Lmg6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudElt
cGwuaDoKKwogMjAxMS0wNi0wMiAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAppbmRleCAwMzMwM2Y3Li4yZWRi
OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29s
c0FnZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNB
Z2VudC5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEV4cG9zZWQgZm9yIExh
eW91dFRlc3RDb250cm9sbGVyLgogICAgIHZpcnR1YWwgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVj
dG9yKGxvbmcgY2FsbElkLCBjb25zdCBXZWJTdHJpbmcmIHNjcmlwdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpID0gMDsK
IAogICAgIC8vIEFzeW5jaHJvbm91c2x5IGV4ZWN1dGVzIGRlYnVnZ2VyIGNvbW1hbmQgaW4gdGhl
IHJlbmRlciB0aHJlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggNjhmYTYxOC4uMzhhOGI4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAt
MzEyLDYgKzMxMiwxNSBAQCB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpldmFsdWF0ZUluV2Vi
SW5zcGVjdG9yKGxvbmcgY2FsbElkLCBjb25zdCBXZWJTdHJpbmcmCiAgICAgaWMtPmV2YWx1YXRl
Rm9yVGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOwogfQogCit2b2lkIFdlYkRldlRvb2xz
QWdlbnRJbXBsOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7
CisgICAgSW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCk7Cisg
ICAgaWYgKGVuYWJsZWQpCisgICAgICAgIGljLT5lbmFibGVQcm9maWxlcigpOworICAgIGVsc2UK
KyAgICAgICAgaWMtPmRpc2FibGVQcm9maWxlcigpOworfQorCiB2b2lkIFdlYkRldlRvb2xzQWdl
bnRJbXBsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAg
IEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9yQ29udHJvbGxlcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKaW5kZXgg
MzNjYTIzMi4uN2MxYTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGV2VG9vbHNBZ2VudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5oCkBAIC03Niw2ICs3Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmQoY29uc3QgV2ViU3RyaW5nJiBtZXNz
YWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdEVsZW1lbnRBdChjb25zdCBXZWJQb2ludCYg
cG9pbnQpOwogICAgIHZpcnR1YWwgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2Fs
bElkLCBjb25zdCBXZWJTdHJpbmcmIHNjcmlwdCk7CisgICAgdmlydHVhbCB2b2lkIHNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSdW50aW1l
UHJvcGVydHkoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDg5NWQzNDAuLmQyNDVhODA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTEtMDYtMDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCVdlYiBJbnNw
ZWN0b3I6IFtDaHJvbWl1bV0gY3B1LXByb2ZpbGVyLXByb2ZpbGluZyBsYXlvdXQgdGVzdCBpcyBm
bGFreSBvbiBMaW51eCBEZWJ1Zy4KKwlodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjE1MzMKKworCVNraXAgY3B1LXByb2ZpbGVyLXByb2ZpbGluZyBpbiBkZWJ1ZywgaW1w
bGVtZW50IGEgZmFzdCBoZWFkbGVzcyBhbHRlcm5hdGl2ZS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwOgorICAgICAgICAo
V0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisKIDIwMTEtMDYtMDIg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYXJrIFJvd2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCmlu
ZGV4IGFlNjlhNTMuLmE2OTllYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0
b3IuY3BwCkBAIC01NSw2ICs1NSwxMSBAQCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVT
Y3JpcHRGb3JUZXN0KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgbAogICAgIHJl
dHVybiB0b0ltcGwoaW5zcGVjdG9yUmVmKS0+ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNhbGxJRCwg
dG9JbXBsKHNjcmlwdCktPnN0cmluZygpKTsKIH0KIAordm9pZCBXS0J1bmRsZUluc3BlY3RvclNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rv
clJlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChpbnNwZWN0b3JSZWYpLT5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBXS0J1bmRsZUluc3Bl
Y3RvclNldFBhZ2VQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rv
clJlZiwgYm9vbCBlbmFibGVkKQogewogICAgIGlmIChlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3Bl
Y3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUluc3BlY3Rvci5oCmluZGV4IGUzMmZkZjIuLjU5M2Q5MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNw
ZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVJbnNwZWN0b3JTaG93KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiBX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvckNsb3NlKFdLQnVuZGxlSW5zcGVjdG9yUmVm
IGluc3BlY3Rvcik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVT
Y3JpcHRGb3JUZXN0KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgbG9uZyBjYWxsSUQs
IFdLU3RyaW5nUmVmIHNjcmlwdCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rv
ciwgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFn
ZVByb2ZpbGluZ0VuYWJsZWQoV0tCdW5kbGVJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBib29sIGVu
YWJsZWQpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggMWYxOWYzMS4uMTZjM2IzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHAKQEAgLTE0Niw2ICsxNDYsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnN0b3BKYXZhU2Ny
aXB0RGVidWdnaW5nKCkKICNlbmRpZgogfQogCit2b2lkIFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKQorICAgIGlmIChlbmFibGVkKQorICAgICAgICBtX3BhZ2UtPmNvcmVQYWdl
KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZW5hYmxlUHJvZmlsZXIoKTsKKyAgICBlbHNlCisg
ICAgICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNhYmxl
UHJvZmlsZXIoKTsgICAgICAgIAorI2VuZGlmCit9CisKIHZvaWQgV2ViSW5zcGVjdG9yOjpzdGFy
dEphdmFTY3JpcHRQcm9maWxpbmcoKQogewogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5o
CmluZGV4IGYxNzMzNTUuLmI0YTc2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBldmFsdWF0ZVNjcmlwdEZvclRlc3QobG9uZyBjYWxsSUQsIGNvbnN0IFN0cmluZyYg
c2NyaXB0KTsKIAorICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7
CiAgICAgdm9pZCBzdGFydFBhZ2VQcm9maWxpbmcoKTsKICAgICB2b2lkIHN0b3BQYWdlUHJvZmls
aW5nKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA2YzNjZjViLi4zMmZhZmZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDYtMDMgIE1pa2hhaWwgTmFn
YW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworCVdlYiBJbnNwZWN0b3I6IFtDaHJvbWl1bV0gY3B1LXByb2ZpbGVyLXBy
b2ZpbGluZyBsYXlvdXQgdGVzdCBpcyBmbGFreSBvbiBMaW51eCBEZWJ1Zy4KKwlodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MzMKKworCVNraXAgY3B1LXByb2ZpbGVy
LXByb2ZpbGluZyBpbiBkZWJ1ZywgaW1wbGVtZW50IGEgZmFzdCBoZWFkbGVzcyBhbHRlcm5hdGl2
ZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQu
Y3BwOgorICAgICAgICAoRFJURGV2VG9vbHNBZ2VudDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdl
bnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRy
b2xsZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6TGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmg6
CisKIDIwMTEtMDYtMDIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAKaW5kZXggNjFlNzI2YS4uODRjYzY2OSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2Vu
dC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2Vu
dC5jcHAKQEAgLTEyNyw2ICsxMjcsMTUgQEAgdm9pZCBEUlREZXZUb29sc0FnZW50Ojpmcm9udGVu
ZExvYWRlZCgpCiAgICAgcG9zdFRhc2sobmV3IERlbGF5ZWRGcm9udGVuZExvYWRlZFRhc2sodGhp
cykpOwogfQogCitib29sIERSVERldlRvb2xzQWdlbnQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXZWJEZXZUb29sc0FnZW50KiBhZ2VudCA9IHdl
YkRldlRvb2xzQWdlbnQoKTsKKyAgICBpZiAoIWFnZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgYWdlbnQtPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGVuYWJsZWQpOworICAg
IHJldHVybiB0cnVlOworfQorCiBib29sIERSVERldlRvb2xzQWdlbnQ6OnNldFRpbWVsaW5lUHJv
ZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV2ViRGV2VG9vbHNBZ2VudCogYWdl
bnQgPSB3ZWJEZXZUb29sc0FnZW50KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlREZXZUb29sc0FnZW50LmgKaW5kZXggYTk3M2Y4MS4uNGFlY2M4NCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaApAQCAtNzAs
NiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmcm9udGVuZExvYWRlZCgpOwogCiAgICAgYm9v
bCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBjb25zdCBzdGQ6OnN0cmluZyYg
c2NyaXB0KTsKKyAgICBib29sIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwog
ICAgIGJvb2wgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIFRhc2tMaXN0
KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA5
NWI3MDU4Li5mOThjMzc2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNTcsNiArMTU3LDcgQEAgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAg
ICAgYmluZE1ldGhvZCgic2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24pOwogICAgIGJpbmRNZXRob2QoInNldElj
b25EYXRhYmFzZUVuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFz
ZUVuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQpOworICAgIGJpbmRNZXRob2QoInNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk7CiAgICAg
YmluZE1ldGhvZCgic2V0TWluaW11bVRpbWVySW50ZXJ2YWwiLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrRGV2
aWNlT3JpZW50YXRpb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tEZXZpY2VPcmll
bnRhdGlvbik7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTsKQEAgLTE2MzAsNiAr
MTYzMSwxNCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpsb2dFcnJvclRvQ29uc29sZShj
b25zdCBzdGQ6OnN0cmluZyYgdGV4dCkKICAgICAgICAgV2ViU3RyaW5nKCksIDApOwogfQogCit2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQorewor
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAh
YXJndW1lbnRzWzBdLmlzQm9vbCgpKQorICAgICAgICByZXR1cm47CisgICAgbV9zaGVsbC0+ZHJ0
RGV2VG9vbHNBZ2VudCgpLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChhcmd1bWVudHNb
MF0udG9Cb29sZWFuKCkpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRUaW1l
bGluZVByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4
IGYyZDY4NDcuLjhhMzg3YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzIzLDYgKzMyMyw5IEBAIHB1YmxpYzoK
ICAgICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZ2VvbG9jYXRpb24gcGVybWlzc2lvbnMgcmVxdWVz
dHMgcGVuZGluZy4KICAgICB2b2lkIG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIC8v
IEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gc3RhcnQgSmF2YVNjcmlwdCBwcm9maWxpbmcuCisgICAg
dm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CisKICAgICAvLyBBbGxvd3MgbGF5b3V0IHRlc3RzIHRvIHN0YXJ0IFRp
bWVsaW5lIHByb2ZpbGluZy4KICAgICB2b2lkIHNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggM2RiY2I5YS4u
ZWM3ZGZmZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAKQEAgLTQ1MCw2ICs0NTAsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCkKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRo
aXMuCiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDg3ZTQ5MTAuLjkzNzcwZDggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC00OTIsNiArNDkyLDExIEBAIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQsIEpTU3RyaW5nUmVm
IHNjcmlwCiAgICAgV0tCdW5kbGVJbnNwZWN0b3JFdmFsdWF0ZVNjcmlwdEZvclRlc3QoV0tCdW5k
bGVQYWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2Uo
KSksIGNhbGxJRCwgc2NyaXB0V0suZ2V0KCkpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAg
V0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZVBh
Z2VHZXRJbnNwZWN0b3IoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKSwg
ZW5hYmxlZCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRpbWVsaW5lUHJv
ZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV0tCdW5kbGVJbnNwZWN0b3JTZXRQ
YWdlUHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZVBhZ2VHZXRJbnNwZWN0b3IoSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKSwgZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9s
bGVyLmgKaW5kZXggZTYzMTQ1OS4uNDA2MmQzYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApA
QCAtMTYxLDYgKzE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsK
ICAgICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBldmFsdWF0ZUluV2ViSW5z
cGVjdG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBzY3JpcHQpOworICAgIHZvaWQgc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRUaW1lbGluZVByb2Zp
bGluZ0VuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIHNldFBPU0lYTG9jYWxlKEpTU3RyaW5nUmVm
KTsK
</data>
<flag name="commit-queue"
          id="89486"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95902</attachid>
            <date>2011-06-03 05:56:39 -0700</date>
            <delta_ts>2011-06-03 06:15:15 -0700</delta_ts>
            <desc>fix tabs</desc>
            <filename>patch-61533</filename>
            <type>text/plain</type>
            <size>18639</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YWNmZDU5Li5mMTVlMjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYt
MDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2hy
b21pdW1dIGNwdS1wcm9maWxlci1wcm9maWxpbmcgbGF5b3V0IHRlc3QgaXMgZmxha3kgb24gTGlu
dXggRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTUzMworCisgICAgICAgIFNraXAgY3B1LXByb2ZpbGVyLXByb2ZpbGluZyBpbiBkZWJ1Zywg
aW1wbGVtZW50IGEgZmFzdCBoZWFkbGVzcyBhbHRlcm5hdGl2ZS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLWZhc3QtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGlu
Zy1mYXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dDoKKwogMjAxMS0wNi0wMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmct
ZmFzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXBy
b2ZpbGVyLXByb2ZpbGluZy1mYXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zM2VmNzQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctZmFzdC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2IEBACitUZXN0cyB0aGF0IENQVSBwcm9maWxpbmcgd29ya3MuCitEb2Vzbid0
IG9wZW4gSW5zcGVjdG9yLCB1c2VzIGNvbnNvbGUucHJvZmlsZS4uLi4KKworCitGb3VuZCBwYWdl
RnVuY3Rpb24KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2Nw
dS1wcm9maWxlci1wcm9maWxpbmctZmFzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctZmFzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmY3MGRiOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy1mYXN0Lmh0bWwKQEAg
LTAsMCArMSw5MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIHBhZ2VGdW5jdGlvbigpCit7CisgICAgY29uc29sZS5w
cm9maWxlKCJvdXRlciIpOworICAgIGNvbnNvbGUucHJvZmlsZSgiaW5uZXIiKTsgIC8vIFtDaHJv
bWl1bV0gTWFrZSBzdXJlIHdlIGNhcHR1cmUgdGhlIGN1cnJlbnQgY2FsbHN0YWNrLgorICAgIGNv
bnNvbGUucHJvZmlsZUVuZCgib3V0ZXIiKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQoImlubmVy
Iik7Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgcGFnZUZ1bmN0aW9uKCk7Cisg
ICAgcHJpbnRSZXN1bHQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IHByaW50UmVzdWx0KCkKK3sKKyAgICB2YXIgcHJlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInByZSIpOworICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlxuIikpOworCisgICAgdmFyIHByb2ZpbGVzID0gY29uc29sZS5wcm9maWxlczsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
IHZhciBwcm9maWxlID0gcHJvZmlsZXNbaV07CisgICAgICAgIGlmIChwcm9maWxlLnRpdGxlICE9
PSAiaW5uZXIiKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciBmdW5jdGlvbk5h
bWUgPSAicGFnZUZ1bmN0aW9uIjsKKyAgICAgICAgaWYgKGZpbmRGdW5jdGlvbkluUHJvZmlsZShw
cm9maWxlLmhlYWQsIGZ1bmN0aW9uTmFtZSkpCisgICAgICAgICAgICBwcmVFbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJGb3VuZCAiICsgZnVuY3Rpb25OYW1lKSk7
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiISEhIE5vdCBmb3VuZCAiICsgZnVuY3Rpb25OYW1lKSk7Cisg
ICAgICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJcblxuIikpOworICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lKHByZUVs
ZW1lbnQsIHByb2ZpbGUuaGVhZCwgMCk7CisgICAgICAgIH0KKyAgICAgICAgcHJlRWxlbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7CisgICAgfQorCisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQp
OworfQorCitmdW5jdGlvbiBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwg
bm9kZSwgaW5kZW50TGV2ZWwpCit7CisgICAgaWYgKCFub2RlLnZpc2libGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIHZhciBzcGFjZSA9ICIiOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5k
ZW50TGV2ZWw7ICsraSkKKyAgICAgICAgc3BhY2UgKz0gIiAgICIKKworICAgICsraW5kZW50TGV2
ZWw7CisKKyAgICB2YXIgbGluZSA9IHNwYWNlICsgbm9kZS5mdW5jdGlvbk5hbWUgKyAiIChsaW5l
ICIgKyBub2RlLmxpbmVOdW1iZXIgKyAiKVxuIjsKKyAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxpbmUpKTsKKworICAgIHZhciBjaGlsZHJlbiA9IG5v
ZGUuY2hpbGRyZW47CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsr
aSkKKyAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lKHByZUVsZW1lbnQsIGNoaWxk
cmVuW2ldLCBpbmRlbnRMZXZlbCk7Cit9CisKK2Z1bmN0aW9uIGZpbmRGdW5jdGlvbkluUHJvZmls
ZShub2RlLCBmdW5jdGlvbk5hbWUpCit7CisgICAgaWYgKG5vZGUuZnVuY3Rpb25OYW1lID09PSBm
dW5jdGlvbk5hbWUpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHZhciBjaGlsZHJlbiA9IG5v
ZGUuY2hpbGRyZW47CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsr
aSkKKyAgICAgICAgaWYgKGZpbmRGdW5jdGlvbkluUHJvZmlsZShjaGlsZHJlbltpXSwgZnVuY3Rp
b25OYW1lKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsgICAg
Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Cis8
cD4KK1Rlc3RzIHRoYXQgQ1BVIHByb2ZpbGluZyB3b3Jrcy48YnI+CitEb2Vzbid0IG9wZW4gSW5z
cGVjdG9yLCB1c2VzIDxiPmNvbnNvbGUucHJvZmlsZS4uLjwvYj4uCisKKzxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Cis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggY2JhZGY5OC4uYzlh
NDRjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dApAQCAtMzk0NCw3ICszOTQ0LDggQEAgQlVHV0s2MTUxOSBXSU4gTElOVVgg
OiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sID0gVEVYVCBUSU1FT1VUIFBB
U1MKIEJVR0NSODQwMzEgTUFDIExJTlVYIDogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9y
YWdlL2RlbGV0ZS1yZW1vdmFsLmh0bWwgPSBUSU1FT1VUIFBBU1MKIEJVR0NSODQwMzIgV0lOIDog
ZmFzdC9kb20vb2JqZWN0LXBsdWdpbi1oaWRlcy1wcm9wZXJ0aWVzLmh0bWwgPSBUSU1FT1VUIFBB
U1MKIAotQlVHV0s2MTUzMyBMSU5VWCA6IGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXIt
cHJvZmlsaW5nLmh0bWwgPSBDUkFTSCBUSU1FT1VUIFBBU1MKKy8vIFdvcmtzIHNsb3dseSwgd2Ug
aGF2ZSBhbiBlcXVpdmFsZW50IHRlc3QgdGhhdCBkb2Vzbid0IG9wZW4gSW5zcGVjdG9yIGFuZCBy
dW5zIGZhc3QuCitXT05URklYIExJTlVYIERFQlVHIFNLSVAgOiBpbnNwZWN0b3IvcHJvZmlsZXIv
Y3B1LXByb2ZpbGVyLXByb2ZpbGluZy5odG1sID0gQ1JBU0ggVElNRU9VVCBQQVNTCiAKIEJVR0NS
ODQwOTMgVklTVEEgOiBodHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtMjAwLXJlZnJlc2gtMi1z
ZWNvbmRzLnBsID0gVElNRU9VVCBQQVNTCiBCVUdDUjg0MDk1IFZJU1RBIDogc3ZnL2N1c3RvbS91
c2UtZGV0YWNoLnN2ZyA9IFRJTUVPVVQgUEFTUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA4ZDVkMWY3Li45OGE0NDhhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDExLTA2LTAzICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogW0Nocm9taXVtXSBjcHUtcHJvZmlsZXItcHJvZmlsaW5nIGxheW91dCB0ZXN0
IGlzIGZsYWt5IG9uIExpbnV4IERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MzMKKworICAgICAgICBTa2lwIGNwdS1wcm9maWxlci1wcm9m
aWxpbmcgaW4gZGVidWcsIGltcGxlbWVudCBhIGZhc3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oOgorICAgICAgICAqIHNyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJ
bXBsOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICogc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmg6CisKIDIwMTEtMDYtMDIgIEFhcm9uIENvbHdlbGwgIDxhY29sd2Vs
bEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKaW5kZXgg
MDMzMDNmNy4uMmVkYjkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRGV2VG9vbHNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkRldlRvb2xzQWdlbnQuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBF
eHBvc2VkIGZvciBMYXlvdXRUZXN0Q29udHJvbGxlci4KICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVh
dGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJiBzY3JpcHQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKSA9IDA7CiAKICAgICAvLyBBc3luY2hyb25vdXNseSBleGVjdXRlcyBkZWJ1Z2dlciBj
b21tYW5kIGluIHRoZSByZW5kZXIgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4IDY4ZmE2MTguLjM4YThiOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50
SW1wbC5jcHAKQEAgLTMxMiw2ICszMTIsMTUgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6
ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJgogICAg
IGljLT5ldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNhbGxJZCwgc2NyaXB0KTsKIH0KIAordm9p
ZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQoreworICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9yQ29u
dHJvbGxlcigpOworICAgIGlmIChlbmFibGVkKQorICAgICAgICBpYy0+ZW5hYmxlUHJvZmlsZXIo
KTsKKyAgICBlbHNlCisgICAgICAgIGljLT5kaXNhYmxlUHJvZmlsZXIoKTsKK30KKwogdm9pZCBX
ZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xs
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50
SW1wbC5oCmluZGV4IDMzY2EyMzIuLjdjMWE5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaApAQCAtNzYsNiArNzYsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdl
YlN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RFbGVtZW50QXQoY29u
c3QgV2ViUG9pbnQmIHBvaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGVJbldlYkluc3Bl
Y3Rvcihsb25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJiBzY3JpcHQpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UnVudGltZVByb3BlcnR5KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3Ry
aW5nJiB2YWx1ZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxl
ZChib29sIGVuYWJsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4OTVkMzQwLi41Y2I0MTUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdh
bm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2hyb21pdW1dIGNwdS1wcm9maWxlci1wcm9maWxp
bmcgbGF5b3V0IHRlc3QgaXMgZmxha3kgb24gTGludXggRGVidWcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisgICAgICAgIFNraXAgY3B1
LXByb2ZpbGVyLXByb2ZpbGluZyBpbiBkZWJ1ZywgaW1wbGVtZW50IGEgZmFzdCBoZWFkbGVzcyBh
bHRlcm5hdGl2ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmg6CisKIDIwMTEtMDYtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCmluZGV4IGFlNjlhNTMuLmE2OTllYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCkBAIC01NSw2ICs1NSwxMSBA
QCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdLQnVuZGxlSW5z
cGVjdG9yUmVmIGluc3BlY3RvclJlZiwgbAogICAgIHJldHVybiB0b0ltcGwoaW5zcGVjdG9yUmVm
KS0+ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNhbGxJRCwgdG9JbXBsKHNjcmlwdCktPnN0cmluZygp
KTsKIH0KIAordm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFibGVkKQorewor
ICAgIHRvSW1wbChpbnNwZWN0b3JSZWYpLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChl
bmFibGVkKTsKK30KKwogdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxpbmdFbmFi
bGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFibGVkKQogewog
ICAgIGlmIChlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCmluZGV4
IGUzMmZkZjIuLjU5M2Q5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgK
QEAgLTQ0LDYgKzQ0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JTaG93KFdL
QnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUlu
c3BlY3RvckNsb3NlKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiAKIFdLX0VYUE9S
VCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdLQnVuZGxlSW5z
cGVjdG9yUmVmIGluc3BlY3RvciwgbG9uZyBjYWxsSUQsIFdLU3RyaW5nUmVmIHNjcmlwdCk7CitX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVkKTsKIFdLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFnZVByb2ZpbGluZ0VuYWJsZWQoV0tCdW5k
bGVJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBib29sIGVuYWJsZWQpOwogCiAjaWZkZWYgX19jcGx1
c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHAKaW5kZXggMWYxOWYzMS4uMTZjM2IzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0Niw2ICsxNDYsMTYg
QEAgdm9pZCBXZWJJbnNwZWN0b3I6OnN0b3BKYXZhU2NyaXB0RGVidWdnaW5nKCkKICNlbmRpZgog
fQogCit2b2lkIFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQoreworI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgIGlmIChl
bmFibGVkKQorICAgICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KS0+ZW5hYmxlUHJvZmlsZXIoKTsKKyAgICBlbHNlCisgICAgICAgIG1fcGFnZS0+Y29yZVBhZ2Uo
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNhYmxlUHJvZmlsZXIoKTsgICAgICAgIAorI2Vu
ZGlmCit9CisKIHZvaWQgV2ViSW5zcGVjdG9yOjpzdGFydEphdmFTY3JpcHRQcm9maWxpbmcoKQog
ewogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IGYxNzMzNTUuLmI0YTc2YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBldmFsdWF0ZVNjcmlwdEZv
clRlc3QobG9uZyBjYWxsSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KTsKIAorICAgIHZvaWQgc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzdGFydFBhZ2VQcm9m
aWxpbmcoKTsKICAgICB2b2lkIHN0b3BQYWdlUHJvZmlsaW5nKCk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YzNjZjViLi4yNzY4ODNmIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTEtMDYtMDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBbQ2hyb21pdW1dIGNwdS1wcm9maWxlci1wcm9maWxpbmcgbGF5b3V0IHRl
c3QgaXMgZmxha3kgb24gTGludXggRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzMworCisgICAgICAgIFNraXAgY3B1LXByb2ZpbGVyLXBy
b2ZpbGluZyBpbiBkZWJ1ZywgaW1wbGVtZW50IGEgZmFzdCBoZWFkbGVzcyBhbHRlcm5hdGl2ZS4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3Bw
OgorICAgICAgICAoRFJURGV2VG9vbHNBZ2VudDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xs
ZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6TGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisK
IDIwMTEtMDYtMDIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAKaW5kZXggNjFlNzI2YS4uODRjYzY2OSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5j
cHAKQEAgLTEyNyw2ICsxMjcsMTUgQEAgdm9pZCBEUlREZXZUb29sc0FnZW50Ojpmcm9udGVuZExv
YWRlZCgpCiAgICAgcG9zdFRhc2sobmV3IERlbGF5ZWRGcm9udGVuZExvYWRlZFRhc2sodGhpcykp
OwogfQogCitib29sIERSVERldlRvb2xzQWdlbnQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXZWJEZXZUb29sc0FnZW50KiBhZ2VudCA9IHdlYkRl
dlRvb2xzQWdlbnQoKTsKKyAgICBpZiAoIWFnZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgYWdlbnQtPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGVuYWJsZWQpOworICAgIHJl
dHVybiB0cnVlOworfQorCiBib29sIERSVERldlRvb2xzQWdlbnQ6OnNldFRpbWVsaW5lUHJvZmls
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV2ViRGV2VG9vbHNBZ2VudCogYWdlbnQg
PSB3ZWJEZXZUb29sc0FnZW50KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlREZXZUb29sc0FnZW50LmgKaW5kZXggYTk3M2Y4MS4uNGFlY2M4NCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaApAQCAtNzAsNiAr
NzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmcm9udGVuZExvYWRlZCgpOwogCiAgICAgYm9vbCBl
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBjb25zdCBzdGQ6OnN0cmluZyYgc2Ny
aXB0KTsKKyAgICBib29sIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAg
IGJvb2wgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIFRhc2tMaXN0KiB0
YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA5NWI3
MDU4Li5mOThjMzc2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNTcsNiArMTU3LDcgQEAgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAg
YmluZE1ldGhvZCgic2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24pOwogICAgIGJpbmRNZXRob2QoInNldEljb25E
YXRhYmFzZUVuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVu
YWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQp
OworICAgIGJpbmRNZXRob2QoInNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk7CiAgICAgYmlu
ZE1ldGhvZCgic2V0TWluaW11bVRpbWVySW50ZXJ2YWwiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldE1pbmltdW1UaW1lckludGVydmFsKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrRGV2aWNl
T3JpZW50YXRpb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tEZXZpY2VPcmllbnRh
dGlvbik7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTsKQEAgLTE2MzAsNiArMTYz
MSwxNCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpsb2dFcnJvclRvQ29uc29sZShjb25z
dCBzdGQ6OnN0cmluZyYgdGV4dCkKICAgICAgICAgV2ViU3RyaW5nKCksIDApOwogfQogCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAg
IHJlc3VsdC0+c2V0TnVsbCgpOworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJn
dW1lbnRzWzBdLmlzQm9vbCgpKQorICAgICAgICByZXR1cm47CisgICAgbV9zaGVsbC0+ZHJ0RGV2
VG9vbHNBZ2VudCgpLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChhcmd1bWVudHNbMF0u
dG9Cb29sZWFuKCkpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRUaW1lbGlu
ZVByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGYy
ZDY4NDcuLjhhMzg3YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzIzLDYgKzMyMyw5IEBAIHB1YmxpYzoKICAg
ICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZ2VvbG9jYXRpb24gcGVybWlzc2lvbnMgcmVxdWVzdHMg
cGVuZGluZy4KICAgICB2b2lkIG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIC8vIEFs
bG93cyBsYXlvdXQgdGVzdHMgdG8gc3RhcnQgSmF2YVNjcmlwdCBwcm9maWxpbmcuCisgICAgdm9p
ZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CisKICAgICAvLyBBbGxvd3MgbGF5b3V0IHRlc3RzIHRvIHN0YXJ0IFRpbWVs
aW5lIHByb2ZpbGluZy4KICAgICB2b2lkIHNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggM2RiY2I5YS4uZWM3
ZGZmZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRy
b2xsZXJXeC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRy
b2xsZXJXeC5jcHAKQEAgLTQ1MCw2ICs0NTAsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCkKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMu
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDg3ZTQ5MTAuLjkzNzcwZDggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCkBAIC00OTIsNiArNDkyLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQsIEpTU3RyaW5nUmVmIHNj
cmlwCiAgICAgV0tCdW5kbGVJbnNwZWN0b3JFdmFsdWF0ZVNjcmlwdEZvclRlc3QoV0tCdW5kbGVQ
YWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSks
IGNhbGxJRCwgc2NyaXB0V0suZ2V0KCkpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgV0tC
dW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZVBhZ2VH
ZXRJbnNwZWN0b3IoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKSwgZW5h
YmxlZCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRpbWVsaW5lUHJvZmls
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV0tCdW5kbGVJbnNwZWN0b3JTZXRQYWdl
UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZVBhZ2VHZXRJbnNwZWN0b3IoSW5qZWN0ZWRCdW5kbGU6
OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKSwgZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVy
LmgKaW5kZXggZTYzMTQ1OS4uNDA2MmQzYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAt
MTYxLDYgKzE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAg
ICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVj
dG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBzY3JpcHQpOworICAgIHZvaWQgc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGlu
Z0VuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIHNldFBPU0lYTG9jYWxlKEpTU3RyaW5nUmVmKTsK
</data>
<flag name="commit-queue"
          id="89489"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95905</attachid>
            <date>2011-06-03 06:15:15 -0700</date>
            <delta_ts>2011-06-03 06:16:57 -0700</delta_ts>
            <desc>comments addressed</desc>
            <filename>patch-61533</filename>
            <type>text/plain</type>
            <size>18628</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YWNmZDU5Li43NmU3ZTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYt
MDMgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2hy
b21pdW1dIGNwdS1wcm9maWxlci1wcm9maWxpbmcgbGF5b3V0IHRlc3QgaXMgZmxha3kgb24gTGlu
dXggRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTUzMworCisgICAgICAgIFNraXAgY3B1LXByb2ZpbGVyLXByb2ZpbGluZyBpbiBkZWJ1Zywg
aW1wbGVtZW50IGEgZmFzdCBoZWFkbGVzcyBhbHRlcm5hdGl2ZS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9m
aWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDExLTA2LTAyICBL
ZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13
aXRob3V0LWluc3BlY3Rvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMzNlZjc0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3RzIHRoYXQgQ1BVIHByb2ZpbGluZyB3b3Jrcy4K
K0RvZXNuJ3Qgb3BlbiBJbnNwZWN0b3IsIHVzZXMgY29uc29sZS5wcm9maWxlLi4uLgorCisKK0Zv
dW5kIHBhZ2VGdW5jdGlvbgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91
dC1pbnNwZWN0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGYy
MWI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2Nw
dS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbApAQCAtMCwwICsxLDg0
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
K30KKworZnVuY3Rpb24gcGFnZUZ1bmN0aW9uKCkKK3sKKyAgICBjb25zb2xlLnByb2ZpbGUoIm91
dGVyIik7CisgICAgY29uc29sZS5wcm9maWxlKCJpbm5lciIpOyAgLy8gW0Nocm9taXVtXSBNYWtl
IHN1cmUgd2UgY2FwdHVyZSB0aGUgY3VycmVudCBjYWxsc3RhY2suCisgICAgY29uc29sZS5wcm9m
aWxlRW5kKCJvdXRlciIpOworICAgIGNvbnNvbGUucHJvZmlsZUVuZCgiaW5uZXIiKTsKK30KKwor
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBwYWdlRnVuY3Rpb24oKTsKKyAgICBwcmludFJl
c3VsdCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gcHJpbnRSZXN1
bHQoKQoreworICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJl
Iik7CisgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
XG4iKSk7CisKKyAgICB2YXIgcHJvZmlsZXMgPSBjb25zb2xlLnByb2ZpbGVzOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb2Zp
bGUgPSBwcm9maWxlc1tpXTsKKyAgICAgICAgaWYgKHByb2ZpbGUudGl0bGUgIT09ICJpbm5lciIp
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9ICJwYWdl
RnVuY3Rpb24iOworICAgICAgICBpZiAoZmluZEZ1bmN0aW9uSW5Qcm9maWxlKHByb2ZpbGUuaGVh
ZCwgZnVuY3Rpb25OYW1lKSkKKyAgICAgICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIkZvdW5kICIgKyBmdW5jdGlvbk5hbWUpKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCIhISEgTm90IGZvdW5kICIgKyBmdW5jdGlvbk5hbWUpKTsKKyAgICAgICAgICAg
IHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlxuXG4iKSk7
CisgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJv
ZmlsZS5oZWFkLCAiIik7CisgICAgICAgIH0KKyAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7CisgICAgfQorCisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQpOworfQorCitm
dW5jdGlvbiBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgbm9kZSwgc3Bh
Y2UpCit7CisgICAgaWYgKCFub2RlLnZpc2libGUpCisgICAgICAgIHJldHVybjsKKworICAgIHZh
ciBsaW5lID0gc3BhY2UgKyBub2RlLmZ1bmN0aW9uTmFtZSArICIgKGxpbmUgIiArIG5vZGUubGlu
ZU51bWJlciArICIpXG4iOworICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUobGluZSkpOworCisgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgY2hpbGRyZW5baV0sIHNwYWNl
ICsgIiAgICIpOworfQorCitmdW5jdGlvbiBmaW5kRnVuY3Rpb25JblByb2ZpbGUobm9kZSwgZnVu
Y3Rpb25OYW1lKQoreworICAgIGlmIChub2RlLmZ1bmN0aW9uTmFtZSA9PT0gZnVuY3Rpb25OYW1l
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB2YXIgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVu
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAg
IGlmIChmaW5kRnVuY3Rpb25JblByb2ZpbGUoY2hpbGRyZW5baV0sIGZ1bmN0aW9uTmFtZSkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7ICAgIAorfQorCis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgorPHA+CitUZXN0cyB0
aGF0IENQVSBwcm9maWxpbmcgd29ya3MuPGJyPgorRG9lc24ndCBvcGVuIEluc3BlY3RvciwgdXNl
cyA8Yj5jb25zb2xlLnByb2ZpbGUuLi48L2I+LgorCis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgor
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGNiYWRmOTguLmM5YTQ0YzcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQKQEAgLTM5NDQsNyArMzk0NCw4IEBAIEJVR1dLNjE1MTkgV0lOIExJTlVYIDogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCA9IFRFWFQgVElNRU9VVCBQQVNTCiBCVUdDUjg0
MDMxIE1BQyBMSU5VWCA6IHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9kZWxldGUt
cmVtb3ZhbC5odG1sID0gVElNRU9VVCBQQVNTCiBCVUdDUjg0MDMyIFdJTiA6IGZhc3QvZG9tL29i
amVjdC1wbHVnaW4taGlkZXMtcHJvcGVydGllcy5odG1sID0gVElNRU9VVCBQQVNTCiAKLUJVR1dL
NjE1MzMgTElOVVggOiBpbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy5o
dG1sID0gQ1JBU0ggVElNRU9VVCBQQVNTCisvLyBXb3JrcyBzbG93bHksIHdlIGhhdmUgYW4gZXF1
aXZhbGVudCB0ZXN0IHRoYXQgZG9lc24ndCBvcGVuIEluc3BlY3RvciBhbmQgcnVucyBmYXN0Lgor
V09OVEZJWCBMSU5VWCBERUJVRyBTS0lQIDogaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxl
ci1wcm9maWxpbmcuaHRtbCA9IENSQVNIIFRJTUVPVVQgUEFTUwogCiBCVUdDUjg0MDkzIFZJU1RB
IDogaHR0cC90ZXN0cy9oaXN0b3J5L3JlZGlyZWN0LTIwMC1yZWZyZXNoLTItc2Vjb25kcy5wbCA9
IFRJTUVPVVQgUEFTUwogQlVHQ1I4NDA5NSBWSVNUQSA6IHN2Zy9jdXN0b20vdXNlLWRldGFjaC5z
dmcgPSBUSU1FT1VUIFBBU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOGQ1ZDFmNy4u
OThhNDQ4YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
MS0wNi0wMyAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFtDaHJvbWl1bV0gY3B1LXByb2ZpbGVyLXByb2ZpbGluZyBsYXlvdXQgdGVzdCBpcyBmbGFreSBv
biBMaW51eCBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYxNTMzCisKKyAgICAgICAgU2tpcCBjcHUtcHJvZmlsZXItcHJvZmlsaW5nIGluIGRl
YnVnLCBpbXBsZW1lbnQgYSBmYXN0IGhlYWRsZXNzIGFsdGVybmF0aXZlLgorCisgICAgICAgICog
cHVibGljL1dlYkRldlRvb2xzQWdlbnQuaDoKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2Vu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50
SW1wbC5oOgorCiAyMDExLTA2LTAyICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCmluZGV4IDAzMzAzZjcuLjJl
ZGI5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRv
b2xzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29s
c0FnZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogCiAgICAgLy8gRXhwb3NlZCBmb3Ig
TGF5b3V0VGVzdENvbnRyb2xsZXIuCiAgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNw
ZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmluZyYgc2NyaXB0KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgPSAw
OwogCiAgICAgLy8gQXN5bmNocm9ub3VzbHkgZXhlY3V0ZXMgZGVidWdnZXIgY29tbWFuZCBpbiB0
aGUgcmVuZGVyIHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA2OGZhNjE4Li4zOGE4YjhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBA
IC0zMTIsNiArMzEyLDE1IEBAIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmV2YWx1YXRlSW5X
ZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmluZyYKICAgICBpYy0+ZXZhbHVh
dGVGb3JUZXN0SW5Gcm9udGVuZChjYWxsSWQsIHNjcmlwdCk7CiB9CiAKK3ZvaWQgV2ViRGV2VG9v
bHNBZ2VudEltcGw6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
K3sKKyAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIoKTsK
KyAgICBpZiAoZW5hYmxlZCkKKyAgICAgICAgaWMtPmVuYWJsZVByb2ZpbGVyKCk7CisgICAgZWxz
ZQorICAgICAgICBpYy0+ZGlzYWJsZVByb2ZpbGVyKCk7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNB
Z2VudEltcGw6OnNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAg
ICAgSW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRl
eCAzM2NhMjMyLi43YzFhOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1l
c3NhZ2UpOwogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50
JiBwb2ludCk7CiAgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBj
YWxsSWQsIGNvbnN0IFdlYlN0cmluZyYgc2NyaXB0KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFJ1bnRp
bWVQcm9wZXJ0eShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFi
bGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggODk1ZDM0MC4uNWNiNDE1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDExLTA2LTAzICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogW0Nocm9taXVtXSBjcHUtcHJvZmlsZXItcHJvZmlsaW5nIGxheW91dCB0
ZXN0IGlzIGZsYWt5IG9uIExpbnV4IERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MzMKKworICAgICAgICBTa2lwIGNwdS1wcm9maWxlci1w
cm9maWxpbmcgaW4gZGVidWcsIGltcGxlbWVudCBhIGZhc3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5z
cGVjdG9yLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlSW5zcGVjdG9yU2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVJbnNwZWN0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5oOgorCiAyMDExLTA2LTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSW5zcGVjdG9yLmNwcAppbmRleCBhZTY5YTUzLi5hNjk5ZWFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5z
cGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcApAQCAtNTUsNiArNTUsMTEgQEAgdm9pZCBXS0J1
bmRsZUluc3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBp
bnNwZWN0b3JSZWYsIGwKICAgICByZXR1cm4gdG9JbXBsKGluc3BlY3RvclJlZiktPmV2YWx1YXRl
U2NyaXB0Rm9yVGVzdChjYWxsSUQsIHRvSW1wbChzY3JpcHQpLT5zdHJpbmcoKSk7CiB9CiAKK3Zv
aWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRs
ZUluc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwo
aW5zcGVjdG9yUmVmKS0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5hYmxlZCk7Cit9
CisKIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRQYWdlUHJvZmlsaW5nRW5hYmxlZChXS0J1bmRs
ZUluc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAoZW5h
YmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAppbmRleCBlMzJmZGYyLi41
OTNkOTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCkBAIC00NCw2ICs0
NCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2hvdyhXS0J1bmRsZUluc3Bl
Y3RvclJlZiBpbnNwZWN0b3IpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JDbG9z
ZShXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZUluc3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBp
bnNwZWN0b3IsIGxvbmcgY2FsbElELCBXS1N0cmluZ1JlZiBzY3JpcHQpOworV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRs
ZUluc3BlY3RvclJlZiBpbnNwZWN0b3IsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9y
UmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmlu
ZGV4IDFmMTlmMzEuLjE2YzNiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0xNDYsNiArMTQ2LDE2IEBAIHZvaWQgV2Vi
SW5zcGVjdG9yOjpzdG9wSmF2YVNjcmlwdERlYnVnZ2luZygpCiAjZW5kaWYKIH0KIAordm9pZCBX
ZWJJbnNwZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
K3sKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICBpZiAoZW5hYmxlZCkKKyAg
ICAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmVuYWJsZVBy
b2ZpbGVyKCk7CisgICAgZWxzZQorICAgICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+ZGlzYWJsZVByb2ZpbGVyKCk7ICAgICAgICAKKyNlbmRpZgorfQorCiB2
b2lkIFdlYkluc3BlY3Rvcjo6c3RhcnRKYXZhU2NyaXB0UHJvZmlsaW5nKCkKIHsKICNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCBmMTczMzU1Li5iNGE3NmI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC01Niw2
ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGxvbmcg
Y2FsbElELCBjb25zdCBTdHJpbmcmIHNjcmlwdCk7CiAKKyAgICB2b2lkIHNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc3RhcnRQYWdlUHJvZmlsaW5nKCk7CiAg
ICAgdm9pZCBzdG9wUGFnZVByb2ZpbGluZygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmMzY2Y1Yi4uMjc2ODgzZiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDExLTA2LTAzICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW0Nocm9taXVtXSBjcHUtcHJvZmlsZXItcHJvZmlsaW5nIGxheW91dCB0ZXN0IGlzIGZsYWt5
IG9uIExpbnV4IERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjE1MzMKKworICAgICAgICBTa2lwIGNwdS1wcm9maWxlci1wcm9maWxpbmcgaW4g
ZGVidWcsIGltcGxlbWVudCBhIGZhc3QgaGVhZGxlc3MgYWx0ZXJuYXRpdmUuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcDoKKyAgICAgICAg
KERSVERldlRvb2xzQWdlbnQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50Lmg6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorCiAyMDExLTA2LTAy
ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlREZXZUb29sc0FnZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RS
VERldlRvb2xzQWdlbnQuY3BwCmluZGV4IDYxZTcyNmEuLjg0Y2M2NjkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwCkBAIC0xMjcs
NiArMTI3LDE1IEBAIHZvaWQgRFJURGV2VG9vbHNBZ2VudDo6ZnJvbnRlbmRMb2FkZWQoKQogICAg
IHBvc3RUYXNrKG5ldyBEZWxheWVkRnJvbnRlbmRMb2FkZWRUYXNrKHRoaXMpKTsKIH0KIAorYm9v
bCBEUlREZXZUb29sc0FnZW50OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCit7CisgICAgV2ViRGV2VG9vbHNBZ2VudCogYWdlbnQgPSB3ZWJEZXZUb29sc0FnZW50
KCk7CisgICAgaWYgKCFhZ2VudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGFnZW50LT5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChlbmFibGVkKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogYm9vbCBEUlREZXZUb29sc0FnZW50OjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewogICAgIFdlYkRldlRvb2xzQWdlbnQqIGFnZW50ID0gd2ViRGV2VG9v
bHNBZ2VudCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJU
RGV2VG9vbHNBZ2VudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9v
bHNBZ2VudC5oCmluZGV4IGE5NzNmODEuLjRhZWNjODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZnJvbnRlbmRMb2FkZWQoKTsKIAogICAgIGJvb2wgZXZhbHVhdGVJbldl
Ykluc3BlY3Rvcihsb25nIGNhbGxJRCwgY29uc3Qgc3RkOjpzdHJpbmcmIHNjcmlwdCk7CisgICAg
Ym9vbCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICBib29sIHNldFRp
bWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICBUYXNrTGlzdCogdGFza0xpc3QoKSB7
IHJldHVybiAmbV90YXNrTGlzdDsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOTViNzA1OC4uZjk4YzM3
NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcApAQCAtMTU3LDYgKzE1Nyw3IEBAIExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2Qo
InNldEdlb2xvY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRJY29uRGF0YWJhc2VFbmFi
bGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKTsKICAg
ICBiaW5kTWV0aG9kKCJzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKTsKKyAgICBiaW5k
TWV0aG9kKCJzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNl
dE1pbmltdW1UaW1lckludGVydmFsIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNaW5pbXVt
VGltZXJJbnRlcnZhbCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9yaWVudGF0aW9u
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOwogICAg
IGJpbmRNZXRob2QoInNldE1vY2tHZW9sb2NhdGlvbkVycm9yIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik7CkBAIC0xNjMwLDYgKzE2MzEsMTQgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9nRXJyb3JUb0NvbnNvbGUoY29uc3Qgc3RkOjpzdHJp
bmcmIHRleHQpCiAgICAgICAgIFdlYlN0cmluZygpLCAwKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNl
dE51bGwoKTsKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEgfHwgIWFyZ3VtZW50c1swXS5p
c0Jvb2woKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc2hlbGwtPmRydERldlRvb2xzQWdlbnQo
KS0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigp
KTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxpbmVQcm9maWxpbmdF
bmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1
bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBmMmQ2ODQ3Li44YTM4
N2M1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmgKQEAgLTMyMyw2ICszMjMsOSBAQCBwdWJsaWM6CiAgICAgLy8gR2V0cyB0
aGUgbnVtYmVyIG9mIGdlb2xvY2F0aW9uIHBlcm1pc3Npb25zIHJlcXVlc3RzIHBlbmRpbmcuCiAg
ICAgdm9pZCBudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICAvLyBBbGxvd3MgbGF5b3V0
IHRlc3RzIHRvIHN0YXJ0IEphdmFTY3JpcHQgcHJvZmlsaW5nLgorICAgIHZvaWQgc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OworCiAgICAgLy8gQWxsb3dzIGxheW91dCB0ZXN0cyB0byBzdGFydCBUaW1lbGluZSBwcm9maWxp
bmcuCiAgICAgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4
L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IDNkYmNiOWEuLmVjN2RmZmUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
CkBAIC00NTAsNiArNDUwLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZUFs
bFZpc2l0ZWRMaW5rcygpCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogfQogCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29s
IGVuYWJsZWQpCit7CisKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCA4N2U0OTEwLi45Mzc3MGQ4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcApAQCAtNDkyLDYgKzQ5MiwxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpldmFs
dWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBKU1N0cmluZ1JlZiBzY3JpcAogICAgIFdL
QnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdLQnVuZGxlUGFnZUdldEluc3Bl
Y3RvcihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpLCBjYWxsSUQsIHNj
cmlwdFdLLmdldCgpKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIFdLQnVuZGxlSW5zcGVj
dG9yU2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoV0tCdW5kbGVQYWdlR2V0SW5zcGVjdG9y
KEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSksIGVuYWJsZWQpOworfQor
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewogICAgIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFnZVByb2ZpbGluZ0Vu
YWJsZWQoV0tCdW5kbGVQYWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5w
YWdlKCktPnBhZ2UoKSksIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGU2
MzE0NTkuLjQwNjJkM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE2MSw2ICsxNjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBjbG9z
ZVdlYkluc3BlY3RvcigpOwogICAgIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNh
bGxJZCwgSlNTdHJpbmdSZWYgc2NyaXB0KTsKKyAgICB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJv
b2wpOwogCiAgICAgdm9pZCBzZXRQT1NJWExvY2FsZShKU1N0cmluZ1JlZik7Cg==
</data>
<flag name="review"
          id="89494"
          type_id="1"
          status="+"
          setter="yurys"
    />
    <flag name="commit-queue"
          id="89495"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
      

    </bug>

</bugzilla>