<?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>111162</bug_id>
          
          <creation_ts>2013-03-01 04:33:26 -0800</creation_ts>
          <short_desc>Web Inspector: implement Flame Chart for CPU profiler</short_desc>
          <delta_ts>2013-03-04 04:41:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>845057</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-01 04:33:26 -0800</bug_when>
    <thetext>Flame Chart may give to the developer a better clue what is going on with the performance without expanding the entire tree.

http://dtrace.org/blogs/brendan/2011/12/16/flame-graphs/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845060</commentid>
    <comment_count>1</comment_count>
      <attachid>190933</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-01 04:35:00 -0800</bug_when>
    <thetext>Created attachment 190933
screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845061</commentid>
    <comment_count>2</comment_count>
      <attachid>190934</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-01 04:37:34 -0800</bug_when>
    <thetext>Created attachment 190934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845071</commentid>
    <comment_count>3</comment_count>
      <attachid>190938</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-01 04:49:57 -0800</bug_when>
    <thetext>Created attachment 190938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846161</commentid>
    <comment_count>4</comment_count>
      <attachid>190938</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-03 22:56:17 -0800</bug_when>
    <thetext>Comment on attachment 190938
Patch

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

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:65
&gt; +    } else {

style: no braces for one-line block.

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:101
&gt; +WebInspector.FlameChart = function(cpuProfileView)

Why not move it into its own file?

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:107
&gt; +    this._canvas = document.createElement(&quot;canvas&quot;);

this._canvas = this.element.createChild(&quot;canvas&quot;);

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:183
&gt; +    draw: function(height, width)

It is usually width, heigh (in reverse order).

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:194
&gt; +        this._color = initialColor;

Consider using WebInspector.Color

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:211
&gt; +    _forEach: function(callback)

Please rename _forEach -&gt; _forEachNode

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:227
&gt; +                    nodes = nodes.concat(node.children);

This way the nodes will appear in reverse order, won&apos;t they?

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:241
&gt; +     * @param {!ProfilerAgent.CPUProfileNode} node

color annotation is missing, also I&apos;d rename it to rgbColor

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:900
&gt; +

Revert this?

&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:934
&gt; +//@ sourceURL=http://localhost/inspector/front-end/CPUProfileView.js

Remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846322</commentid>
    <comment_count>5</comment_count>
      <attachid>191199</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-04 04:00:22 -0800</bug_when>
    <thetext>Created attachment 191199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846323</commentid>
    <comment_count>6</comment_count>
      <attachid>190938</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-04 04:02:57 -0800</bug_when>
    <thetext>Comment on attachment 190938
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:194
&gt;&gt; +        this._color = initialColor;
&gt; 
&gt; Consider using WebInspector.Color

done

&gt;&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:211
&gt;&gt; +    _forEach: function(callback)
&gt; 
&gt; Please rename _forEach -&gt; _forEachNode

done

&gt;&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:227
&gt;&gt; +                    nodes = nodes.concat(node.children);
&gt; 
&gt; This way the nodes will appear in reverse order, won&apos;t they?

It is not a problem because children have no order.

&gt;&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:241
&gt;&gt; +     * @param {!ProfilerAgent.CPUProfileNode} node
&gt; 
&gt; color annotation is missing, also I&apos;d rename it to rgbColor

done: hslColor

&gt;&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:900
&gt;&gt; +
&gt; 
&gt; Revert this?

done

&gt;&gt; Source/WebCore/inspector/front-end/CPUProfileView.js:934
&gt;&gt; +//@ sourceURL=http://localhost/inspector/front-end/CPUProfileView.js
&gt; 
&gt; Remove this.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846324</commentid>
    <comment_count>7</comment_count>
      <attachid>191200</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-04 04:04:40 -0800</bug_when>
    <thetext>Created attachment 191200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846338</commentid>
    <comment_count>8</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-04 04:41:57 -0800</bug_when>
    <thetext>Committed r144618: &lt;http://trac.webkit.org/changeset/144618&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>190933</attachid>
            <date>2013-03-01 04:35:00 -0800</date>
            <delta_ts>2013-03-01 04:35:00 -0800</delta_ts>
            <desc>screenshot</desc>
            <filename>Screenshot from 2013-03-01 16:30:39.png</filename>
            <type>image/png</type>
            <size>17576</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">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
vafl4RsrK3dff1/zDa2D0xmx5LEuAAAgFoQTAAAgFoQTAAAgFoQTAAAgFoQTAAAgFoQTAAAgFoQT
AAAgFoQTAAAgFmzCCDDAhBtmLC32Rt0FB1s26jTfZRJOV+3jTvy9M8bX9d57YPB64RQgnAAMsO2Z
7e2fezjqLo7P5ddd2tzxxZOZYe4nB/zqP+XaS1ofbji5pgbZoj1/11d+tbLSNuq2aSPHR9UPcKhV
4c3vhzcrKyvDuPY9/+mFct9R39s79omPKG7/ZcvD91dW7r7+1uYb5h565IK2VS9s/fWA965a+hET
Zl9rWdxRWblm6iXty+L14+4M57EuAAAgFoQTAAAgFoQTAAAgFoQTAAAgFoQTAAAgFoQTAAAgFoQT
AAAgFoQTAAAgFqpy+d9GcuLMc5vuuOOOSE4NAAAMvzVr1hw5AtghHmCAbc+U2j/3WtRdHJ/Lr0s0
d4w7mRnmfnLAps5Trh3Z+vCok2tqkC3a81pfuVRZaRs1btrIRFT9AIf6Uet3fnz/g5WVtid/8t3p
v3uh/PpR39s7dsGM9gE/iK65ZOSCaaWWh3sqi3dfPyXs2/b9XwzY5X3lgoXtPw0vbN07YMJV0z/i
LNlyy+I9A84ydWT7siP9uOtNv9lye2ZAD1+b0HzPhCNdDCfBY10AAEAsCCcAAEAsCCcAAEAsCCcA
AEAsCCcAAEAsCCcAAEAsCCcAAEAsCCcAAEAs2CEeAAAYDnaIBzg+29Lp9ttvj7qL43P5tdc2P/zw
ycwwd8aMypdTrrmmtb395JoaZIvCbX3h+cpKW/jJtDAzqn6AQ/2o9Ykf3/+Lykrbkwu+O/3CF8rl
o763d+zYGY8M+EF0zYXXLJjQ3jLwZ9vd14ewb9v3f7GtsrhywfT2J/7tC79+bsCES4szmj85YMKJ
1y6oX9Ryf8uA4pRr2luP9OOut7enpeXGAT3cfV9zc+tRr4gT47EuAAAgFoQTAAAgFoQTAAAgFoQT
AAAgFoQTAAAgFoQTAAAgFoQTAAAgFoQTAAAgFuwQDwAADAc7xAMcn23pbe23x2tz9KO6/NrLmx9u
PpkZ5s54oPLllGsubW3/4sk1NcgWhVV94deVlbawYFqYEFU/wKF+1Praj+9/vbLS9uQV361b9EJ4
4ajv7Q29Mx4Z8IPomgsvXXDFlS0diwervWsumbpgwj0t9w/Yc/6aKZe2tx7px11v7y9bWu6vrNx9
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
76Q4UY/EJu4AAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190934</attachid>
            <date>2013-03-01 04:37:34 -0800</date>
            <delta_ts>2013-03-01 04:49:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111162-20130301163345.patch</filename>
            <type>text/plain</type>
            <size>11462</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFhOGFhZTUwN2U0MzE2
OTk5YWRhODAwY2FiOTJmZTI2MzI0MTg2NC4uZDE1ZWU0YmJmYjk4YTViZjcyNjFkMjZkZGQ4OTk5
NDdhYjgxOTQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAzLTAxICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBpbXBsZW1lbnQgRmxhbWUgQ2hhcnQgZm9yIENQVSBwcm9maWxlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTE2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGFuIGluaXRpYWwgaW1w
bGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXAgaXMgdG8gcHJvdmlkZQorICAgICAgICBmdW5jdGlv
biBuYW1lcyBhbmQgb3RoZXIgc3RhdHMgYWJvdXQgdGhlIGhvdmVyZWQgaXRlbS4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2Zp
bGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBlLl9vbk1vdXNlTW92ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuZmluZE5vZGVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX2Nvb3JkaW5hdGVzVG9O
b2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5vblJlc2l6
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX3Jvb3ROb2Rl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuZHJhdyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX2RyYXdOb2RlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5fZm9yRWFjaCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX2RyYXdCYXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9nZXRDUFVQcm9maWxlQ2FsbGJh
Y2spOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZmxh
bWVDaGFydC5jc3M6IEFkZGVkLgorICAgICAgICAoLmZsYW1lLWNoYXJ0KToKKwogMjAxMy0wMi0y
NiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBS
ZW1vdmUgRXZlbnQ6OmRhdGFUcmFuc2ZlckF0dHJHZXR0ZXJDdXN0b20oKSBhbmQgRXZlbnQ6OnZh
bHVlQXR0clNldHRlckN1c3RvbSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDRmYTIyN2U3MDhmYzM1
NDEzMzRkNjkwMjBhYzU4NjI4OGJjZTY2NS4uODZmYjk4MGM4NGYxZTg5MzA3NzhmMWMwMzdlZDZk
ZWYyM2Q0YmEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTM0OCw2ICs1MzQ4LDcgQEAKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RhdGFHcmlkLmNzcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzcycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3NzJywKKyAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2ZsYW1lQ2hhcnQuY3NzJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3MnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5kZXhlZERCVmlld3MuY3NzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1BVUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVWaWV3LmpzCmluZGV4IGMyNjc5NmVjYWZm
YWM0MzkyYzI5MTk2MzE5MjU0ZjcyZTFhYTM3MDQuLmQ0ZDAxOGEwYTU3ZWY4M2NmMDY4NzZmODJi
ZTk3YjYwNmI1NDAzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ1BVUHJvZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9DUFVQcm9maWxlVmlldy5qcwpAQCAtNTMsNyArNTMsMTggQEAgV2ViSW5zcGVjdG9y
LkNQVVByb2ZpbGVWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLmRhdGFHcmlkID0g
bmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zKTsKICAgICB0aGlzLmRhdGFHcmlkLmFk
ZEV2ZW50TGlzdGVuZXIoInNvcnRpbmcgY2hhbmdlZCIsIHRoaXMuX3NvcnRQcm9maWxlLCB0aGlz
KTsKICAgICB0aGlzLmRhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3du
IiwgdGhpcy5fbW91c2VEb3duSW5EYXRhR3JpZC5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICB0aGlz
LmRhdGFHcmlkLnNob3codGhpcy5lbGVtZW50KTsKKworICAgIGlmIChXZWJJbnNwZWN0b3IuZXhw
ZXJpbWVudHNTZXR0aW5ncy5jcHVGbGFtZUNoYXJ0LmlzRW5hYmxlZCgpKSB7CisgICAgICAgIHRo
aXMuX3NwbGl0VmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuU3BsaXRWaWV3KGZhbHNlLCAiZmxhbWVD
aGFydFNwbGl0TG9jYXRpb24iKTsKKyAgICAgICAgdGhpcy5fc3BsaXRWaWV3LnNob3codGhpcy5l
bGVtZW50KTsKKworICAgICAgICB0aGlzLmRhdGFHcmlkLnNob3codGhpcy5fc3BsaXRWaWV3LmZp
cnN0RWxlbWVudCgpKTsKKworICAgICAgICB0aGlzLmZsYW1lQ2hhcnQgPSBuZXcgV2ViSW5zcGVj
dG9yLkZsYW1lQ2hhcnQodGhpcyk7CisgICAgICAgIHRoaXMuZmxhbWVDaGFydC5zaG93KHRoaXMu
X3NwbGl0Vmlldy5zZWNvbmRFbGVtZW50KCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMu
ZGF0YUdyaWQuc2hvdyh0aGlzLmVsZW1lbnQpOworICAgIH0KIAogICAgIHRoaXMudmlld1NlbGVj
dENvbWJvQm94ID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJDb21ib0JveCh0aGlzLl9jaGFu
Z2VWaWV3LmJpbmQodGhpcykpOwogCkBAIC04NCw2ICs5NSwxNzIgQEAgV2ViSW5zcGVjdG9yLkNQ
VVByb2ZpbGVWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICBQcm9maWxlckFnZW50LmdldENQ
VVByb2ZpbGUodGhpcy5wcm9maWxlLnVpZCwgdGhpcy5fZ2V0Q1BVUHJvZmlsZUNhbGxiYWNrLmJp
bmQodGhpcykpOwogfQogCisvKioKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVW
aWV3fSB2aWV3CisgKi8KK1dlYkluc3BlY3Rvci5GbGFtZUNoYXJ0ID0gZnVuY3Rpb24oY3B1UHJv
ZmlsZVZpZXcpCit7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKKyAgICB0aGlz
LnJlZ2lzdGVyUmVxdWlyZWRDU1MoImZsYW1lQ2hhcnQuY3NzIik7CisKKyAgICB0aGlzLmVsZW1l
bnQuY2xhc3NOYW1lID0gImZsYW1lLWNoYXJ0IjsKKyAgICB0aGlzLl9jYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5fY2FudmFzKTsKKyAgICB0aGlzLl9jcHVQcm9maWxlVmlldyA9IGNwdVByb2ZpbGVWaWV3
OworICAgIHRoaXMuX3hTY2FsZUZhY3RvciA9IDAuMDsKKyAgICB0aGlzLl95U2NhbGVGYWN0b3Ig
PSAxMDsKKyAgICB0aGlzLl9taW5XaWR0aCA9IDM7CisKKyAgICB0aGlzLmVsZW1lbnQub25tb3Vz
ZW1vdmUgPSB0aGlzLl9vbk1vdXNlTW92ZS5iaW5kKHRoaXMpOworfQorCitXZWJJbnNwZWN0b3Iu
RmxhbWVDaGFydC5wcm90b3R5cGUgPSB7CisgICAgX29uTW91c2VNb3ZlOiBmdW5jdGlvbihlKQor
ICAgIHsKKyAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9jb29yZGluYXRlc1RvTm9kZShlLm9mZnNl
dFgsIGUub2Zmc2V0WSk7CisgICAgICAgIGlmIChub2RlICE9PSB0aGlzLl9oaWdobGlnaHRlZE5v
ZGUpIHsKKyAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkTm9kZSA9IG5vZGU7CisgICAgICAg
ICAgICB0aGlzLnVwZGF0ZSgpOworICAgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEBwYXJhbSB7IW51bWJlcn0geAorICAgICAqIEBwYXJhbSB7IW51bWJlcn0geQorICAgICAqLwor
ICAgIF9jb29yZGluYXRlc1RvTm9kZTogZnVuY3Rpb24oeCwgeSkKKyAgICB7CisgICAgICAgIHZh
ciBjdXJzb3JPZmZzZXQgPSB4IC8gdGhpcy5feFNjYWxlRmFjdG9yOworICAgICAgICB2YXIgY3Vy
c29yTGV2ZWwgPSAodGhpcy5fY2FudmFzLmhlaWdodCAtIHkpIC8gdGhpcy5feVNjYWxlRmFjdG9y
OworICAgICAgICB0aGlzLl9oaWdobGlnaHRlZE5vZGUgPSBudWxsOworICAgICAgICB0aGlzLl9j
b2xvciA9IDB4Nzc3OworICAgICAgICB2YXIgY3Vyc29yTm9kZTsKKworICAgICAgICBmdW5jdGlv
biBmaW5kTm9kZUNhbGxiYWNrKG9mZnNldCwgbGV2ZWwsIG5vZGUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmIChjdXJzb3JMZXZlbCA+IGxldmVsICYmIGN1cnNvckxldmVsIDwgbGV2ZWwgKyAx
ICYmIGN1cnNvck9mZnNldCA+IG9mZnNldCAmJiBjdXJzb3JPZmZzZXQgPCBvZmZzZXQgKyBub2Rl
LnRvdGFsVGltZSkKKyAgICAgICAgICAgICAgICBjdXJzb3JOb2RlID0gbm9kZTsKKyAgICAgICAg
fQorICAgICAgICB0aGlzLl9mb3JFYWNoKGZpbmROb2RlQ2FsbGJhY2suYmluZCh0aGlzKSk7Cisg
ICAgICAgIHJldHVybiBjdXJzb3JOb2RlOworICAgIH0sCisKKyAgICBvblJlc2l6ZTogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgdGhpcy5kcmF3KHRoaXMuZWxlbWVudC5jbGllbnRIZWlnaHQs
IHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBy
ZXR1cm4ge0FycmF5LjwhUHJvZmlsZXJBZ2VudC5DUFVQcm9maWxlTm9kZT4gfQorICAgICAqLwor
ICAgIF9yb290Tm9kZXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9yb290
Tm9kZXNBcnJheSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb290Tm9kZXNBcnJheS5zbGlj
ZSgpOworCisgICAgICAgIHZhciBwcm9maWxlSGVhZCA9IHRoaXMuX2NwdVByb2ZpbGVWaWV3LnBy
b2ZpbGVIZWFkOworICAgICAgICBpZiAoIXByb2ZpbGVIZWFkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGw7CisgICAgICAgIHZhciB0b3RhbFRpbWUgPSAwOworICAgICAgICB2YXIgbm9kZXMgPSBb
XTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlSGVhZC5jaGlsZHJlbi5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgdmFyIG5vZGUgPSBwcm9maWxlSGVhZC5jaGlsZHJlbltp
XTsKKyAgICAgICAgICAgIGlmIChub2RlLmZ1bmN0aW9uTmFtZSA9PT0gIihwcm9ncmFtKSIgfHwg
bm9kZS5mdW5jdGlvbk5hbWUgPT09ICIoaWRsZSkiKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgdG90YWxUaW1lICs9IG5vZGUudG90YWxUaW1lOworICAgICAgICAgICAg
bm9kZXMucHVzaChub2RlKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3Jvb3ROb2Rlc0Fy
cmF5ID0gbm9kZXM7CisgICAgICAgIHRoaXMuX3RvdGFsVGltZSA9IHRvdGFsVGltZTsKKyAgICAg
ICAgcmV0dXJuIG5vZGVzLnNsaWNlKCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7IW51bWJlcn0gaGVpZ2h0CisgICAgICogQHBhcmFtIHshbnVtYmVyfSB3aWR0aAorICAgICAq
LworICAgIGRyYXc6IGZ1bmN0aW9uKGhlaWdodCwgd2lkdGgpCisgICAgeworICAgICAgICBpZiAo
IXRoaXMuX3Jvb3ROb2RlcygpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBt
YXJnaW4gPSAwOworICAgICAgICB0aGlzLl9jYW52YXMuaGVpZ2h0ID0gaGVpZ2h0IC0gbWFyZ2lu
OworICAgICAgICB0aGlzLl9jYW52YXMud2lkdGggPSB3aWR0aCAtIG1hcmdpbjsKKworICAgICAg
ICB0aGlzLl94U2NhbGVGYWN0b3IgPSB3aWR0aCAvIHRoaXMuX3RvdGFsVGltZTsKKyAgICAgICAg
dmFyIGluaXRpYWxDb2xvciA9IDB4Nzc3OworICAgICAgICB0aGlzLl9jb2xvciA9IGluaXRpYWxD
b2xvcjsKKworICAgICAgICB0aGlzLl9jb250ZXh0ID0gdGhpcy5fY2FudmFzLmdldENvbnRleHQo
IjJkIik7CisKKyAgICAgICAgdGhpcy5fZm9yRWFjaCh0aGlzLl9kcmF3Tm9kZS5iaW5kKHRoaXMp
KTsKKyAgICB9LAorCisgICAgX2RyYXdOb2RlOiBmdW5jdGlvbihvZmZzZXQsIGxldmVsLCBub2Rl
KQorICAgIHsKKyAgICAgICAgdmFyIGNvbG9yID0gdGhpcy5fY29sb3I7CisgICAgICAgIHZhciBo
aWdobGlnaHRDb2xvck9mZnNldCA9IDB4ODg4OworICAgICAgICBpZiAodGhpcy5faGlnaGxpZ2h0
ZWROb2RlICYmIHRoaXMuX2hpZ2hsaWdodGVkTm9kZS5VSUQgPT09IG5vZGUuVUlEKQorICAgICAg
ICAgICAgY29sb3IgKz0gaGlnaGxpZ2h0Q29sb3JPZmZzZXQ7CisgICAgICAgIHRoaXMuX2RyYXdC
YXIodGhpcy5fY29udGV4dCwgb2Zmc2V0LCBsZXZlbCwgbm9kZSwgY29sb3IpOworICAgICAgICB0
aGlzLl9jb2xvciAtPSA1OworICAgIH0sCisKKyAgICBfZm9yRWFjaDogZnVuY3Rpb24oY2FsbGJh
Y2spCisgICAgeworICAgICAgICB2YXIgbm9kZXMgPSB0aGlzLl9yb290Tm9kZXMoKTsKKyAgICAg
ICAgdmFyIGxldmVsT2Zmc2V0cyA9IC8qKiBAdHlwZSB7QXJyYXkuPCFudW1iZXI+fSAqLyBbMF07
CisgICAgICAgIHZhciBsZXZlbEV4aXRJbmRleGVzID0gWzBdOworCisgICAgICAgIHdoaWxlIChu
b2Rlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciBsZXZlbCA9IGxldmVsT2Zmc2V0cy5sZW5n
dGggLSAxOworICAgICAgICAgICAgdmFyIG5vZGUgPSBub2Rlcy5wb3AoKTsKKyAgICAgICAgICAg
IGlmIChub2RlLnRvdGFsVGltZSAqIHRoaXMuX3hTY2FsZUZhY3RvciA+IHRoaXMuX21pbldpZHRo
KSB7CisgICAgICAgICAgICAgICAgdmFyIG9mZnNldCA9IGxldmVsT2Zmc2V0c1tsZXZlbF07Cisg
ICAgICAgICAgICAgICAgY2FsbGJhY2sob2Zmc2V0LCBsZXZlbCwgbm9kZSk7CisgICAgICAgICAg
ICAgICAgbGV2ZWxPZmZzZXRzW2xldmVsXSArPSBub2RlLnRvdGFsVGltZTsKKyAgICAgICAgICAg
ICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV2
ZWxFeGl0SW5kZXhlcy5wdXNoKG5vZGVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGxl
dmVsT2Zmc2V0cy5wdXNoKG9mZnNldCArIG5vZGUuc2VsZlRpbWUgLyAyKTsKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZXMgPSBub2Rlcy5jb25jYXQobm9kZS5jaGlsZHJlbik7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKG5vZGVzLmxlbmd0aCA9
PT0gbGV2ZWxFeGl0SW5kZXhlc1tsZXZlbEV4aXRJbmRleGVzLmxlbmd0aCAtIDFdKSB7CisgICAg
ICAgICAgICAgICAgbGV2ZWxPZmZzZXRzLnBvcCgpOworICAgICAgICAgICAgICAgIGxldmVsRXhp
dEluZGV4ZXMucG9wKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQKKyAgICAgKiBAcGFyYW0ge251bWJl
cn0gb2Zmc2V0CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxldmVsCisgICAgICogQHBhcmFtIHsh
UHJvZmlsZXJBZ2VudC5DUFVQcm9maWxlTm9kZX0gbm9kZQorICAgICAqLworICAgIF9kcmF3QmFy
OiBmdW5jdGlvbihjb250ZXh0LCBvZmZzZXQsIGxldmVsLCBub2RlLCBjb2xvcikKKyAgICB7Cisg
ICAgICAgIHZhciB3aWR0aCA9IG5vZGUudG90YWxUaW1lICogdGhpcy5feFNjYWxlRmFjdG9yOwor
ICAgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5feVNjYWxlRmFjdG9yOworICAgICAgICB2YXIgeCA9
IG9mZnNldCAqIHRoaXMuX3hTY2FsZUZhY3RvcjsKKyAgICAgICAgdmFyIHkgPSB0aGlzLl9jYW52
YXMuaGVpZ2h0IC0gbGV2ZWwgKiB0aGlzLl95U2NhbGVGYWN0b3IgLSBoZWlnaHQ7CisgICAgICAg
IGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAgICAgIGNvbnRleHQucmVjdCh4LCB5LCB3aWR0aCAt
IDEsIGhlaWdodCAtIDEpOworICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICcjJyArIGNvbG9y
LnRvU3RyaW5nKDE2KTsKKyAgICAgICAgY29udGV4dC5maWxsKCk7CisgICAgfSwKKworICAgIHVw
ZGF0ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5kcmF3KHRoaXMuZWxlbWVudC5j
bGllbnRIZWlnaHQsIHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aCk7CisgICAgfSwKKworICAgIF9f
cHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCit9OworCisKIFdlYkluc3BlY3Rv
ci5DUFVQcm9maWxlVmlldy5fVHlwZVRyZWUgPSAiVHJlZSI7CiBXZWJJbnNwZWN0b3IuQ1BVUHJv
ZmlsZVZpZXcuX1R5cGVIZWF2eSA9ICJIZWF2eSI7CiAKQEAgLTEwOSw2ICsyODYsOCBAQCBXZWJJ
bnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9hc3Np
Z25QYXJlbnRzSW5Qcm9maWxlKCk7CiAgICAgICAgIHRoaXMuX2NoYW5nZVZpZXcoKTsKICAgICAg
ICAgdGhpcy5fdXBkYXRlUGVyY2VudEJ1dHRvbigpOworICAgICAgICBpZiAodGhpcy5mbGFtZUNo
YXJ0KQorICAgICAgICAgICAgdGhpcy5mbGFtZUNoYXJ0LnVwZGF0ZSgpOwogICAgIH0sCiAKICAg
ICBnZXQgc3RhdHVzQmFySXRlbXMoKQpAQCAtNzE4LDYgKzg5Nyw3IEBAIFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3Iu
UHJvZmlsZVR5cGUucHJvdG90eXBlCiB9CiAKKwogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0KQEAgLTc1MCwzICs5MzAsNSBAQCBX
ZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAKICAgICBfX3Byb3Rv
X186IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlwZQogfQorCisvL0Agc291cmNl
VVJMPWh0dHA6Ly9sb2NhbGhvc3QvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmlldy5q
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5k
ZXggMWU1ZTI4NzU1MTg0Mzc4MDhmNThiYzExZDY0MWRjNGFiMTEyMjE1YS4uNTYxMmFhZjY2MTgw
ZTQyMDdlMDQ1ZDBmZmUyYjU5MTliMTIwMjFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCkBAIC0yMTUsNiArMjE1LDcgQEAgV2ViSW5zcGVj
dG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5maWxlU3lzdGVt
UHJvamVjdCA9IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoImZpbGVTeXN0ZW1Qcm9qZWN0IiwgIkZp
bGUgc3lzdGVtIGZvbGRlcnMgaW4gU291cmNlcyBQYW5lbCIpOwogICAgIHRoaXMuc2hvd1doaXRl
c3BhY2VJbkVkaXRvciA9IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoInNob3dXaGl0ZXNwYWNlSW5F
ZGl0b3IiLCAiU2hvdyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW4gZWRpdG9yIik7CiAgICAgdGhp
cy50ZXh0RWRpdG9yU21hcnRCcmFjZXMgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJ0ZXh0RWRp
dG9yU21hcnRCcmFjZXMiLCAiRW5hYmxlIHNtYXJ0IGJyYWNlcyBpbiB0ZXh0IGVkaXRvciIpOwor
ICAgIHRoaXMuY3B1RmxhbWVDaGFydCA9IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoImNwdUZsYW1l
Q2hhcnQiLCAiU2hvdyBGbGFtZSBDaGFydCBpbiBDUFUgUHJvZmlsZXIiKTsKIAogICAgIHRoaXMu
X2NsZWFuVXBTZXR0aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1dlYktpdC5xcmMKaW5kZXggMWRlZWYzMTA3ZTRlMWY4MjA0MzU4Y2ViYjk1NGY4Mjg4Mjgz
NmM4Zi4uNTlkYzQyZjJmNWQyZjE3YWIxM2UxNWI2YTZhMmI2NDg5NDEyN2IxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMjQzLDYgKzI0
Myw3IEBACiAgICAgPGZpbGU+ZGlhbG9nLmNzczwvZmlsZT4KICAgICA8ZmlsZT5lbGVtZW50c1Bh
bmVsLmNzczwvZmlsZT4KICAgICA8ZmlsZT5maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3Nz
PC9maWxlPgorICAgIDxmaWxlPmZsYW1lQ2hhcnQuY3NzPC9maWxlPgogICAgIDxmaWxlPmhlYXBQ
cm9maWxlci5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+aGVscFNjcmVlbi5jc3M8L2ZpbGU+CiAgICAg
PGZpbGU+aW5kZXhlZERCVmlld3MuY3NzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9mbGFtZUNoYXJ0LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvZmxhbWVDaGFydC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc3NmE2NDk0ZDA3
MmY0MTY1ODQ5OWQ1ZjI0OWQ2Nzk3OGYwNDI0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZmxhbWVDaGFydC5jc3MKQEAgLTAsMCArMSw0IEBA
CisuZmxhbWUtY2hhcnQgeworICAgIGhlaWdodDogMTAwJTsKKyAgICBvdmVyZmxvdzogaGlkZGVu
OworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190938</attachid>
            <date>2013-03-01 04:49:57 -0800</date>
            <delta_ts>2013-03-04 04:02:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111162-20130301164608.patch</filename>
            <type>text/plain</type>
            <size>11430</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVmNWU1ZjU4M2Q5Nzdm
OTlhMTcyYzJhZGU3NDNjYTUyNDc1NWQ0MC4uNTlkMGU4M2NhNDc4NzY1MmRkNWVlYzE1OTU1Nzc0
YmViOTI0NmVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAzLTAxICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBpbXBsZW1lbnQgRmxhbWUgQ2hhcnQgZm9yIENQVSBwcm9maWxlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTE2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGFuIGluaXRpYWwgaW1w
bGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXAgaXMgdG8gcHJvdmlkZQorICAgICAgICBmdW5jdGlv
biBuYW1lcyBhbmQgb3RoZXIgc3RhdHMgYWJvdXQgdGhlIGhvdmVyZWQgaXRlbS4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2Zp
bGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBlLl9vbk1vdXNlTW92ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuZmluZE5vZGVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX2Nvb3JkaW5hdGVzVG9O
b2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5vblJlc2l6
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX3Jvb3ROb2Rl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuZHJhdyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX2RyYXdOb2RlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5fZm9yRWFjaCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX2RyYXdCYXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9nZXRDUFVQcm9maWxlQ2FsbGJh
Y2spOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZmxh
bWVDaGFydC5jc3M6IEFkZGVkLgorICAgICAgICAoLmZsYW1lLWNoYXJ0KToKKwogMjAxMy0wMy0w
MSAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3Vw
cG9ydCBwYWRkaW5nLCBtYXJnaW4gYW5kIGJvcmRlciBmb3IgaW50ZXJuYWwgVUEgY3VlIHN0eWxp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxMTEzMDcwMTQ2OTE2MmIwZjY5MzJmODY0YjgzMjg4OWE1
NTE0OGNhLi5mNGYxY2U1ZTRkOWEwMmUyODMzZjkzMTVmZmFiY2FkMTZmMDFkOTRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC01MzYwLDYgKzUzNjAsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvZGF0YUdyaWQuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L2VsZW1lbnRzUGFuZWwuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2Zp
bHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5jc3MnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvZmxhbWVDaGFydC5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvaGVhcFByb2ZpbGVyLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9o
ZWxwU2NyZWVuLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbmRleGVk
REJWaWV3cy5jc3MnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9DUFVQcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ1BVUHJvZmlsZVZpZXcuanMKaW5kZXggYzI2Nzk2ZWNhZmZhYzQzOTJjMjkxOTYzMTkyNTRm
NzJlMWFhMzcwNC4uZDRkMDE4YTBhNTdlZjgzY2YwNjg3NmY4MmJlOTdiNjA2YjU0MDNmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmll
dy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVW
aWV3LmpzCkBAIC01Myw3ICs1MywxOCBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcgPSBm
dW5jdGlvbihwcm9maWxlKQogICAgIHRoaXMuZGF0YUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLkRh
dGFHcmlkKGNvbHVtbnMpOwogICAgIHRoaXMuZGF0YUdyaWQuYWRkRXZlbnRMaXN0ZW5lcigic29y
dGluZyBjaGFuZ2VkIiwgdGhpcy5fc29ydFByb2ZpbGUsIHRoaXMpOwogICAgIHRoaXMuZGF0YUdy
aWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9tb3VzZURvd25J
bkRhdGFHcmlkLmJpbmQodGhpcyksIHRydWUpOwotICAgIHRoaXMuZGF0YUdyaWQuc2hvdyh0aGlz
LmVsZW1lbnQpOworCisgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLmNw
dUZsYW1lQ2hhcnQuaXNFbmFibGVkKCkpIHsKKyAgICAgICAgdGhpcy5fc3BsaXRWaWV3ID0gbmV3
IFdlYkluc3BlY3Rvci5TcGxpdFZpZXcoZmFsc2UsICJmbGFtZUNoYXJ0U3BsaXRMb2NhdGlvbiIp
OworICAgICAgICB0aGlzLl9zcGxpdFZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOworCisgICAgICAg
IHRoaXMuZGF0YUdyaWQuc2hvdyh0aGlzLl9zcGxpdFZpZXcuZmlyc3RFbGVtZW50KCkpOworCisg
ICAgICAgIHRoaXMuZmxhbWVDaGFydCA9IG5ldyBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydCh0aGlz
KTsKKyAgICAgICAgdGhpcy5mbGFtZUNoYXJ0LnNob3codGhpcy5fc3BsaXRWaWV3LnNlY29uZEVs
ZW1lbnQoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5kYXRhR3JpZC5zaG93KHRoaXMu
ZWxlbWVudCk7CisgICAgfQogCiAgICAgdGhpcy52aWV3U2VsZWN0Q29tYm9Cb3ggPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckNvbWJvQm94KHRoaXMuX2NoYW5nZVZpZXcuYmluZCh0aGlzKSk7
CiAKQEAgLTg0LDYgKzk1LDE3MiBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcgPSBmdW5j
dGlvbihwcm9maWxlKQogICAgIFByb2ZpbGVyQWdlbnQuZ2V0Q1BVUHJvZmlsZSh0aGlzLnByb2Zp
bGUudWlkLCB0aGlzLl9nZXRDUFVQcm9maWxlQ2FsbGJhY2suYmluZCh0aGlzKSk7CiB9CiAKKy8q
KgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXd9IHZpZXcKKyAqLworV2Vi
SW5zcGVjdG9yLkZsYW1lQ2hhcnQgPSBmdW5jdGlvbihjcHVQcm9maWxlVmlldykKK3sKKyAgICBX
ZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENT
UygiZmxhbWVDaGFydC5jc3MiKTsKKworICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAiZmxh
bWUtY2hhcnQiOworICAgIHRoaXMuX2NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNh
bnZhcyIpOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jYW52YXMpOworICAg
IHRoaXMuX2NwdVByb2ZpbGVWaWV3ID0gY3B1UHJvZmlsZVZpZXc7CisgICAgdGhpcy5feFNjYWxl
RmFjdG9yID0gMC4wOworICAgIHRoaXMuX3lTY2FsZUZhY3RvciA9IDEwOworICAgIHRoaXMuX21p
bldpZHRoID0gMzsKKworICAgIHRoaXMuZWxlbWVudC5vbm1vdXNlbW92ZSA9IHRoaXMuX29uTW91
c2VNb3ZlLmJpbmQodGhpcyk7Cit9CisKK1dlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlw
ZSA9IHsKKyAgICBfb25Nb3VzZU1vdmU6IGZ1bmN0aW9uKGUpCisgICAgeworICAgICAgICB2YXIg
bm9kZSA9IHRoaXMuX2Nvb3JkaW5hdGVzVG9Ob2RlKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTsKKyAg
ICAgICAgaWYgKG5vZGUgIT09IHRoaXMuX2hpZ2hsaWdodGVkTm9kZSkgeworICAgICAgICAgICAg
dGhpcy5faGlnaGxpZ2h0ZWROb2RlID0gbm9kZTsKKyAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7
CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHshbnVtYmVyfSB4
CisgICAgICogQHBhcmFtIHshbnVtYmVyfSB5CisgICAgICovCisgICAgX2Nvb3JkaW5hdGVzVG9O
b2RlOiBmdW5jdGlvbih4LCB5KQorICAgIHsKKyAgICAgICAgdmFyIGN1cnNvck9mZnNldCA9IHgg
LyB0aGlzLl94U2NhbGVGYWN0b3I7CisgICAgICAgIHZhciBjdXJzb3JMZXZlbCA9ICh0aGlzLl9j
YW52YXMuaGVpZ2h0IC0geSkgLyB0aGlzLl95U2NhbGVGYWN0b3I7CisgICAgICAgIHRoaXMuX2hp
Z2hsaWdodGVkTm9kZSA9IG51bGw7CisgICAgICAgIHRoaXMuX2NvbG9yID0gMHg3Nzc7CisgICAg
ICAgIHZhciBjdXJzb3JOb2RlOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmROb2RlQ2FsbGJhY2so
b2Zmc2V0LCBsZXZlbCwgbm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGN1cnNvckxl
dmVsID4gbGV2ZWwgJiYgY3Vyc29yTGV2ZWwgPCBsZXZlbCArIDEgJiYgY3Vyc29yT2Zmc2V0ID4g
b2Zmc2V0ICYmIGN1cnNvck9mZnNldCA8IG9mZnNldCArIG5vZGUudG90YWxUaW1lKQorICAgICAg
ICAgICAgICAgIGN1cnNvck5vZGUgPSBub2RlOworICAgICAgICB9CisgICAgICAgIHRoaXMuX2Zv
ckVhY2goZmluZE5vZGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgcmV0dXJuIGN1cnNv
ck5vZGU7CisgICAgfSwKKworICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB0aGlzLmRyYXcodGhpcy5lbGVtZW50LmNsaWVudEhlaWdodCwgdGhpcy5lbGVtZW50LmNsaWVu
dFdpZHRoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPCFQcm9m
aWxlckFnZW50LkNQVVByb2ZpbGVOb2RlPiB9CisgICAgICovCisgICAgX3Jvb3ROb2RlczogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3Jvb3ROb2Rlc0FycmF5KQorICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX3Jvb3ROb2Rlc0FycmF5LnNsaWNlKCk7CisKKyAgICAgICAgdmFy
IHByb2ZpbGVIZWFkID0gdGhpcy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhlYWQ7CisgICAgICAg
IGlmICghcHJvZmlsZUhlYWQpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgdmFy
IHRvdGFsVGltZSA9IDA7CisgICAgICAgIHZhciBub2RlcyA9IFtdOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHByb2ZpbGVIZWFkLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAg
ICAgICB2YXIgbm9kZSA9IHByb2ZpbGVIZWFkLmNoaWxkcmVuW2ldOworICAgICAgICAgICAgaWYg
KG5vZGUuZnVuY3Rpb25OYW1lID09PSAiKHByb2dyYW0pIiB8fCBub2RlLmZ1bmN0aW9uTmFtZSA9
PT0gIihpZGxlKSIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB0b3Rh
bFRpbWUgKz0gbm9kZS50b3RhbFRpbWU7CisgICAgICAgICAgICBub2Rlcy5wdXNoKG5vZGUpOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fcm9vdE5vZGVzQXJyYXkgPSBub2RlczsKKyAgICAg
ICAgdGhpcy5fdG90YWxUaW1lID0gdG90YWxUaW1lOworICAgICAgICByZXR1cm4gbm9kZXMuc2xp
Y2UoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHshbnVtYmVyfSBoZWlnaHQK
KyAgICAgKiBAcGFyYW0geyFudW1iZXJ9IHdpZHRoCisgICAgICovCisgICAgZHJhdzogZnVuY3Rp
b24oaGVpZ2h0LCB3aWR0aCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fcm9vdE5vZGVzKCkp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIG1hcmdpbiA9IDA7CisgICAgICAg
IHRoaXMuX2NhbnZhcy5oZWlnaHQgPSBoZWlnaHQgLSBtYXJnaW47CisgICAgICAgIHRoaXMuX2Nh
bnZhcy53aWR0aCA9IHdpZHRoIC0gbWFyZ2luOworCisgICAgICAgIHRoaXMuX3hTY2FsZUZhY3Rv
ciA9IHdpZHRoIC8gdGhpcy5fdG90YWxUaW1lOworICAgICAgICB2YXIgaW5pdGlhbENvbG9yID0g
MHg3Nzc7CisgICAgICAgIHRoaXMuX2NvbG9yID0gaW5pdGlhbENvbG9yOworCisgICAgICAgIHRo
aXMuX2NvbnRleHQgPSB0aGlzLl9jYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKworICAgICAgICB0
aGlzLl9mb3JFYWNoKHRoaXMuX2RyYXdOb2RlLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBf
ZHJhd05vZGU6IGZ1bmN0aW9uKG9mZnNldCwgbGV2ZWwsIG5vZGUpCisgICAgeworICAgICAgICB2
YXIgY29sb3IgPSB0aGlzLl9jb2xvcjsKKyAgICAgICAgdmFyIGhpZ2hsaWdodENvbG9yT2Zmc2V0
ID0gMHg4ODg7CisgICAgICAgIGlmICh0aGlzLl9oaWdobGlnaHRlZE5vZGUgJiYgdGhpcy5faGln
aGxpZ2h0ZWROb2RlLlVJRCA9PT0gbm9kZS5VSUQpCisgICAgICAgICAgICBjb2xvciArPSBoaWdo
bGlnaHRDb2xvck9mZnNldDsKKyAgICAgICAgdGhpcy5fZHJhd0Jhcih0aGlzLl9jb250ZXh0LCBv
ZmZzZXQsIGxldmVsLCBub2RlLCBjb2xvcik7CisgICAgICAgIHRoaXMuX2NvbG9yIC09IDU7Cisg
ICAgfSwKKworICAgIF9mb3JFYWNoOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAg
IHZhciBub2RlcyA9IHRoaXMuX3Jvb3ROb2RlcygpOworICAgICAgICB2YXIgbGV2ZWxPZmZzZXRz
ID0gLyoqIEB0eXBlIHtBcnJheS48IW51bWJlcj59ICovIFswXTsKKyAgICAgICAgdmFyIGxldmVs
RXhpdEluZGV4ZXMgPSBbMF07CisKKyAgICAgICAgd2hpbGUgKG5vZGVzLmxlbmd0aCkgeworICAg
ICAgICAgICAgdmFyIGxldmVsID0gbGV2ZWxPZmZzZXRzLmxlbmd0aCAtIDE7CisgICAgICAgICAg
ICB2YXIgbm9kZSA9IG5vZGVzLnBvcCgpOworICAgICAgICAgICAgaWYgKG5vZGUudG90YWxUaW1l
ICogdGhpcy5feFNjYWxlRmFjdG9yID4gdGhpcy5fbWluV2lkdGgpIHsKKyAgICAgICAgICAgICAg
ICB2YXIgb2Zmc2V0ID0gbGV2ZWxPZmZzZXRzW2xldmVsXTsKKyAgICAgICAgICAgICAgICBjYWxs
YmFjayhvZmZzZXQsIGxldmVsLCBub2RlKTsKKyAgICAgICAgICAgICAgICBsZXZlbE9mZnNldHNb
bGV2ZWxdICs9IG5vZGUudG90YWxUaW1lOworICAgICAgICAgICAgICAgIGlmIChub2RlLmNoaWxk
cmVuLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBsZXZlbEV4aXRJbmRleGVzLnB1c2go
bm9kZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgbGV2ZWxPZmZzZXRzLnB1c2gob2Zm
c2V0ICsgbm9kZS5zZWxmVGltZSAvIDIpOworICAgICAgICAgICAgICAgICAgICBub2RlcyA9IG5v
ZGVzLmNvbmNhdChub2RlLmNoaWxkcmVuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICB3aGlsZSAobm9kZXMubGVuZ3RoID09PSBsZXZlbEV4aXRJbmRleGVz
W2xldmVsRXhpdEluZGV4ZXMubGVuZ3RoIC0gMV0pIHsKKyAgICAgICAgICAgICAgICBsZXZlbE9m
ZnNldHMucG9wKCk7CisgICAgICAgICAgICAgICAgbGV2ZWxFeGl0SW5kZXhlcy5wb3AoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e09iamVjdH0gY29udGV4dAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQKKyAgICAgKiBA
cGFyYW0ge251bWJlcn0gbGV2ZWwKKyAgICAgKiBAcGFyYW0geyFQcm9maWxlckFnZW50LkNQVVBy
b2ZpbGVOb2RlfSBub2RlCisgICAgICovCisgICAgX2RyYXdCYXI6IGZ1bmN0aW9uKGNvbnRleHQs
IG9mZnNldCwgbGV2ZWwsIG5vZGUsIGNvbG9yKQorICAgIHsKKyAgICAgICAgdmFyIHdpZHRoID0g
bm9kZS50b3RhbFRpbWUgKiB0aGlzLl94U2NhbGVGYWN0b3I7CisgICAgICAgIHZhciBoZWlnaHQg
PSB0aGlzLl95U2NhbGVGYWN0b3I7CisgICAgICAgIHZhciB4ID0gb2Zmc2V0ICogdGhpcy5feFNj
YWxlRmFjdG9yOworICAgICAgICB2YXIgeSA9IHRoaXMuX2NhbnZhcy5oZWlnaHQgLSBsZXZlbCAq
IHRoaXMuX3lTY2FsZUZhY3RvciAtIGhlaWdodDsKKyAgICAgICAgY29udGV4dC5iZWdpblBhdGgo
KTsKKyAgICAgICAgY29udGV4dC5yZWN0KHgsIHksIHdpZHRoIC0gMSwgaGVpZ2h0IC0gMSk7Cisg
ICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJyMnICsgY29sb3IudG9TdHJpbmcoMTYpOworICAg
ICAgICBjb250ZXh0LmZpbGwoKTsKKyAgICB9LAorCisgICAgdXBkYXRlOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB0aGlzLmRyYXcodGhpcy5lbGVtZW50LmNsaWVudEhlaWdodCwgdGhpcy5l
bGVtZW50LmNsaWVudFdpZHRoKTsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUKK307CisKKwogV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3Ll9U
eXBlVHJlZSA9ICJUcmVlIjsKIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5fVHlwZUhlYXZ5
ID0gIkhlYXZ5IjsKIApAQCAtMTA5LDYgKzI4Niw4IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxl
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2Fzc2lnblBhcmVudHNJblByb2ZpbGUo
KTsKICAgICAgICAgdGhpcy5fY2hhbmdlVmlldygpOwogICAgICAgICB0aGlzLl91cGRhdGVQZXJj
ZW50QnV0dG9uKCk7CisgICAgICAgIGlmICh0aGlzLmZsYW1lQ2hhcnQpCisgICAgICAgICAgICB0
aGlzLmZsYW1lQ2hhcnQudXBkYXRlKCk7CiAgICAgfSwKIAogICAgIGdldCBzdGF0dXNCYXJJdGVt
cygpCkBAIC03MTgsNiArODk3LDcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3Rv
dHlwZSA9IHsKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5wcm90b3R5
cGUKIH0KIAorCiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rv
ci5Qcm9maWxlSGVhZGVyfQpAQCAtNzUwLDMgKzkzMCw1IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9m
aWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlBy
b2ZpbGVIZWFkZXIucHJvdG90eXBlCiB9CisKKy8vQCBzb3VyY2VVUkw9aHR0cDovL2xvY2FsaG9z
dC9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVWaWV3LmpzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwppbmRleCBhZDY5ODVkYTMyNmViMTcw
NTEyZTgxM2Q3NDY4ZTA3NWNhNGJlNjRlLi44NjZhMGNhYmJjMWRiNDRlNWYyOTViMmRkNzk5OWU5
ZTgxZjNiODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0
dGluZ3MuanMKQEAgLTIxNiw2ICsyMTYsNyBAQCBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0
aW5ncyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgPSB0aGlz
Ll9jcmVhdGVFeHBlcmltZW50KCJzaG93V2hpdGVzcGFjZUluRWRpdG9yIiwgIlNob3cgd2hpdGVz
cGFjZSBjaGFyYWN0ZXJzIGluIGVkaXRvciIpOwogICAgIHRoaXMudGV4dEVkaXRvclNtYXJ0QnJh
Y2VzID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgidGV4dEVkaXRvclNtYXJ0QnJhY2VzIiwgIkVu
YWJsZSBzbWFydCBicmFjZXMgaW4gdGV4dCBlZGl0b3IiKTsKICAgICB0aGlzLnNlcGFyYXRlUHJv
ZmlsZXJzID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgic2VwYXJhdGVQcm9maWxlcnMiLCAiU2Vw
YXJhdGUgcHJvZmlsZXIgdG9vbHMiKTsKKyAgICB0aGlzLmNwdUZsYW1lQ2hhcnQgPSB0aGlzLl9j
cmVhdGVFeHBlcmltZW50KCJjcHVGbGFtZUNoYXJ0IiwgIlNob3cgRmxhbWUgQ2hhcnQgaW4gQ1BV
IFByb2ZpbGVyIik7CiAKICAgICB0aGlzLl9jbGVhblVwU2V0dGluZygpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IDM1YWJlMmI2Njgz
YWIwMDYxZTYwOTkyN2RiN2Q5ZTliNDAxMmI3NGIuLmQwNzJkYjBhZjk3MjJkMTRhODE0YTUwMDNk
Njg0MWRkYjY4YzIxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMKQEAgLTI0NCw2ICsyNDQsNyBAQAogICAgIDxmaWxlPmRpYWxvZy5jc3M8L2Zp
bGU+CiAgICAgPGZpbGU+ZWxlbWVudHNQYW5lbC5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+ZmlsdGVy
ZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmNzczwvZmlsZT4KKyAgICA8ZmlsZT5mbGFtZUNoYXJ0LmNz
czwvZmlsZT4KICAgICA8ZmlsZT5oZWFwUHJvZmlsZXIuY3NzPC9maWxlPgogICAgIDxmaWxlPmhl
bHBTY3JlZW4uY3NzPC9maWxlPgogICAgIDxmaWxlPmluZGV4ZWREQlZpZXdzLmNzczwvZmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZmxhbWVDaGFy
dC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZsYW1lQ2hhcnQuY3Nz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY3NzZhNjQ5NGQwNzJmNDE2NTg0OTlkNWYyNDlkNjc5NzhmMDQyNDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZsYW1l
Q2hhcnQuY3NzCkBAIC0wLDAgKzEsNCBAQAorLmZsYW1lLWNoYXJ0IHsKKyAgICBoZWlnaHQ6IDEw
MCU7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191199</attachid>
            <date>2013-03-04 04:00:22 -0800</date>
            <delta_ts>2013-03-04 04:04:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111162-20130304155630.patch</filename>
            <type>text/plain</type>
            <size>17859</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWJmOTVkYmYxNGI1MGJl
Mzg2MjZlZmFmOGVkYmU5MzJjOThhODU1YS4uZDJkMjIwNmRiYmU0ZGQwOTZiZDUzN2Y3YjQ2Y2Vk
ZmFhZWVjZTY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAzLTA0ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBpbXBsZW1lbnQgRmxhbWUgQ2hhcnQgZm9yIENQVSBwcm9maWxlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTE2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGFuIGluaXRpYWwgaW1w
bGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXAgaXMgdG8gcHJvdmlkZQorICAgICAgICBmdW5jdGlv
biBuYW1lcyBhbmQgb3RoZXIgc3RhdHMgYWJvdXQgdGhlIGhvdmVyZWQgaXRlbS4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9DUFVQcm9maWxlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmll
dy5wcm90b3R5cGUuX2dldENQVVByb2ZpbGVDYWxsYmFjayk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9GbGFtZUNoYXJ0LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
bGFtZUNoYXJ0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5f
b25Nb3VzZU1vdmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBl
LmZpbmROb2RlQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJv
dG90eXBlLl9jb29yZGluYXRlc1RvTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVD
aGFydC5wcm90b3R5cGUub25SZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hh
cnQucHJvdG90eXBlLl9yb290Tm9kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hh
cnQucHJvdG90eXBlLmRyYXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJv
dG90eXBlLl9kcmF3Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90
b3R5cGUuX2ZvckVhY2hOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnBy
b3RvdHlwZS5fZHJhd0Jhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90
b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL2ZsYW1lQ2hhcnQuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5mbGFtZS1jaGFydCk6CisK
IDIwMTMtMDMtMDQgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBBY2UgZWRpdG9yIGV4cGVyaW1lbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBhNzFmZTQ3NGZhMzc0YzI1NDE5MmRlNDI5ZjYxODQ3NjgyYTBhMjU5Li45
MTM5ZTdiZmIxNTEzMjVjNzhhOGNhMTE1YjBjNmZiOGNjZjM3YWFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC01NDQ4LDYgKzU0NDgsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
ZGF0YUdyaWQuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRz
UGFuZWwuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2ZpbHRlcmVkSXRl
bVNlbGVjdGlvbkRpYWxvZy5jc3MnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
ZmxhbWVDaGFydC5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVhcFBy
b2ZpbGVyLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVu
LmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbmRleGVkREJWaWV3cy5j
c3MnLApAQCAtNTUzNiw2ICs1NTM3LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0JvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9DU1NTZWxlY3RvclByb2ZpbGVWaWV3LmpzJywKKyAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvSGVhcFNuYXBzaG90LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdERhdGFHcmlkcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlYzQyNjQzOWNhOTRmNjFkYmU3ODlkMzdk
OTg4ZTBkZjk3MzVmNzJhLi5mYTE4YmQ2NzJlYzZiNTcyYzNkOWM4OGQ3YTMzZGU3NTI5NjkzZjA3
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NzcyMTgsNiArNzcyMTgsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcRmxhbWVDaGFydC5qcyIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3Bl
Y3Rvclxmcm9udC1lbmRcRm9udFZpZXcuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBjMmJmN2Zm
MGI4NjZkODdiYjkyNThkOThjY2Q2OTlhOTU4MTBkMmZlLi40NGFjYjkxZTQ4ZGNlMDkxNTlkMjc2
YTBlMzUyMWRkYmU0MjFlYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KIDxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHht
bG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMi
PgogICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgogICAgIDxQcm9q
ZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z1N1ZmZpeHxXaW4zMiI+CkBAIC0xMDk1MCw2
ICsxMDk1MCw3IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxG
aWxlVXRpbHMuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9
Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzIiAv
PgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcRmxhbWVDaGFydC5q
cyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXEZvbnRWaWV3
LmpzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcR29Ub0xp
bmVEaWFsb2cuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxIYW5kbGVyUmVnaXN0cnkuanMiIC8+CkBAIC0xMTEyNyw0ICsxMTEyOCw0IEBACiAgIDxJbXBv
cnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CiAg
IDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgIDwvSW1wb3J0R3JvdXA+
Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCmluZGV4IDJiMzc0YWRiMDY1YzNlYjE4N2Y4NzZlODAxZDNlMWMzMmM2NTBjODguLjA0
OWI3YmM2MzQwYmI1MTM1Nzg5OWVhMWM5ZjJiMGYzNTJjMzcxMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAg
LTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pgor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDxQcm9qZWN0IFRvb2xzVmVy
c2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIv
bXNidWlsZC8yMDAzIj4KICAgPEl0ZW1Hcm91cD4KICAgICA8RmlsdGVyIEluY2x1ZGU9IkRlcml2
ZWRTb3VyY2VzIj4KQEAgLTE0NjM1LDYgKzE0NjM1LDkgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcZnJvbnQtZW5kXEZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcyI+CiAg
ICAgICA8RmlsdGVyPmluc3BlY3Rvclxmcm9udC1lbmQ8L0ZpbHRlcj4KICAgICA8L05vbmU+Cisg
ICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxGbGFtZUNoYXJ0LmpzIj4K
KyAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yXGZyb250LWVuZDwvRmlsdGVyPgorICAgIDwvTm9uZT4K
ICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXEZvbnRWaWV3LmpzIj4K
ICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yXGZyb250LWVuZDwvRmlsdGVyPgogICAgIDwvTm9uZT4K
QEAgLTE1MjcwLDQgKzE1MjczLDQgQEAKICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+
CiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCBlOTllMzc3MTYzOWNmODI0MTI0Yzgx
N2E3NTc1ZWVkZDJmODk4MDFkLi5jZGM3MGM5N2UwZjA2OTAyM2M0OTM1ZWJmNWRiMDZhNThiMGVh
YTI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1l
bmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5
CkBAIC0zMzcsNiArMzM3LDcgQEAgbW9kdWxlcyA9IFsKICAgICAgICAgICAgICJCb3R0b21VcFBy
b2ZpbGVEYXRhR3JpZFRyZWUuanMiLAogICAgICAgICAgICAgIkNQVVByb2ZpbGVWaWV3LmpzIiwK
ICAgICAgICAgICAgICJDU1NTZWxlY3RvclByb2ZpbGVWaWV3LmpzIiwKKyAgICAgICAgICAgICJG
bGFtZUNoYXJ0LmpzIiwKICAgICAgICAgICAgICJIZWFwU25hcHNob3QuanMiLAogICAgICAgICAg
ICAgIkhlYXBTbmFwc2hvdERhdGFHcmlkcy5qcyIsCiAgICAgICAgICAgICAiSGVhcFNuYXBzaG90
R3JpZE5vZGVzLmpzIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ1BVUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NQVVByb2ZpbGVWaWV3LmpzCmluZGV4IGMyNjc5NmVjYWZmYWM0MzkyYzI5MTk2MzE5MjU0
ZjcyZTFhYTM3MDQuLjhlOTc1NDMyZjhkOGE4ZWY3NjQ3OTAzY2JmODlhNDA1ZWJhYmE2MzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1BVUHJvZmlsZVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxl
Vmlldy5qcwpAQCAtNTMsNyArNTMsMTcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3ID0g
ZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLmRhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5E
YXRhR3JpZChjb2x1bW5zKTsKICAgICB0aGlzLmRhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoInNv
cnRpbmcgY2hhbmdlZCIsIHRoaXMuX3NvcnRQcm9maWxlLCB0aGlzKTsKICAgICB0aGlzLmRhdGFH
cmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3du
SW5EYXRhR3JpZC5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICB0aGlzLmRhdGFHcmlkLnNob3codGhp
cy5lbGVtZW50KTsKKworICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5j
cHVGbGFtZUNoYXJ0LmlzRW5hYmxlZCgpKSB7CisgICAgICAgIHRoaXMuX3NwbGl0VmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuU3BsaXRWaWV3KGZhbHNlLCAiZmxhbWVDaGFydFNwbGl0TG9jYXRpb24i
KTsKKyAgICAgICAgdGhpcy5fc3BsaXRWaWV3LnNob3codGhpcy5lbGVtZW50KTsKKworICAgICAg
ICB0aGlzLmRhdGFHcmlkLnNob3codGhpcy5fc3BsaXRWaWV3LmZpcnN0RWxlbWVudCgpKTsKKwor
ICAgICAgICB0aGlzLmZsYW1lQ2hhcnQgPSBuZXcgV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQodGhp
cyk7CisgICAgICAgIHRoaXMuZmxhbWVDaGFydC5zaG93KHRoaXMuX3NwbGl0Vmlldy5zZWNvbmRF
bGVtZW50KCkpOworICAgIH0gZWxzZQorICAgICAgICB0aGlzLmRhdGFHcmlkLnNob3codGhpcy5l
bGVtZW50KTsKIAogICAgIHRoaXMudmlld1NlbGVjdENvbWJvQm94ID0gbmV3IFdlYkluc3BlY3Rv
ci5TdGF0dXNCYXJDb21ib0JveCh0aGlzLl9jaGFuZ2VWaWV3LmJpbmQodGhpcykpOwogCkBAIC04
NCw2ICs5NCw4IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldyA9IGZ1bmN0aW9uKHByb2Zp
bGUpCiAgICAgUHJvZmlsZXJBZ2VudC5nZXRDUFVQcm9maWxlKHRoaXMucHJvZmlsZS51aWQsIHRo
aXMuX2dldENQVVByb2ZpbGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKIH0KIAorCisKIFdlYkluc3Bl
Y3Rvci5DUFVQcm9maWxlVmlldy5fVHlwZVRyZWUgPSAiVHJlZSI7CiBXZWJJbnNwZWN0b3IuQ1BV
UHJvZmlsZVZpZXcuX1R5cGVIZWF2eSA9ICJIZWF2eSI7CiAKQEAgLTEwOSw2ICsxMjEsOCBAQCBX
ZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9h
c3NpZ25QYXJlbnRzSW5Qcm9maWxlKCk7CiAgICAgICAgIHRoaXMuX2NoYW5nZVZpZXcoKTsKICAg
ICAgICAgdGhpcy5fdXBkYXRlUGVyY2VudEJ1dHRvbigpOworICAgICAgICBpZiAodGhpcy5mbGFt
ZUNoYXJ0KQorICAgICAgICAgICAgdGhpcy5mbGFtZUNoYXJ0LnVwZGF0ZSgpOwogICAgIH0sCiAK
ICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQpAQCAtNzE4LDYgKzczMiw3IEBAIFdlYkluc3BlY3Rv
ci5DUFVQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0
b3IuUHJvZmlsZVR5cGUucHJvdG90eXBlCiB9CiAKKwogLyoqCiAgKiBAY29uc3RydWN0b3IKICAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0KQEAgLTc1MCwzICs3NjUsNSBA
QCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAKICAgICBfX3By
b3RvX186IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlwZQogfQorCitpbXBvcnRT
Y3JpcHQoIkZsYW1lQ2hhcnQuanMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRmxhbWVDaGFydC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRmxhbWVDaGFydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzIzN2FhOTIzZjc3MWNjOWUyOGZj
NTRmYzMwM2JjNDE4MTk0ODkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9GbGFtZUNoYXJ0LmpzCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3fSBjcHVQcm9maWxlVmlldworICovCitXZWJJbnNw
ZWN0b3IuRmxhbWVDaGFydCA9IGZ1bmN0aW9uKGNwdVByb2ZpbGVWaWV3KQoreworICAgIFdlYklu
c3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NTKCJm
bGFtZUNoYXJ0LmNzcyIpOworCisgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJmbGFtZS1j
aGFydCI7CisgICAgdGhpcy5fY2FudmFzID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJjYW52
YXMiKTsKKyAgICB0aGlzLl9jcHVQcm9maWxlVmlldyA9IGNwdVByb2ZpbGVWaWV3OworICAgIHRo
aXMuX3hTY2FsZUZhY3RvciA9IDAuMDsKKyAgICB0aGlzLl95U2NhbGVGYWN0b3IgPSAxMDsKKyAg
ICB0aGlzLl9taW5XaWR0aCA9IDM7CisgICAgdGhpcy5lbGVtZW50Lm9ubW91c2Vtb3ZlID0gdGhp
cy5fb25Nb3VzZU1vdmUuYmluZCh0aGlzKTsKK30KKworV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQu
cHJvdG90eXBlID0geworICAgIF9vbk1vdXNlTW92ZTogZnVuY3Rpb24oZSkKKyAgICB7CisgICAg
ICAgIHZhciBub2RlID0gdGhpcy5fY29vcmRpbmF0ZXNUb05vZGUoZS5vZmZzZXRYLCBlLm9mZnNl
dFkpOworICAgICAgICBpZiAobm9kZSAhPT0gdGhpcy5faGlnaGxpZ2h0ZWROb2RlKSB7CisgICAg
ICAgICAgICB0aGlzLl9oaWdobGlnaHRlZE5vZGUgPSBub2RlOworICAgICAgICAgICAgdGhpcy51
cGRhdGUoKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0geyFu
dW1iZXJ9IHgKKyAgICAgKiBAcGFyYW0geyFudW1iZXJ9IHkKKyAgICAgKi8KKyAgICBfY29vcmRp
bmF0ZXNUb05vZGU6IGZ1bmN0aW9uKHgsIHkpCisgICAgeworICAgICAgICB2YXIgY3Vyc29yT2Zm
c2V0ID0geCAvIHRoaXMuX3hTY2FsZUZhY3RvcjsKKyAgICAgICAgdmFyIGN1cnNvckxldmVsID0g
KHRoaXMuX2NhbnZhcy5oZWlnaHQgLSB5KSAvIHRoaXMuX3lTY2FsZUZhY3RvcjsKKyAgICAgICAg
dGhpcy5faGlnaGxpZ2h0ZWROb2RlID0gbnVsbDsKKyAgICAgICAgdmFyIGN1cnNvck5vZGU7CisK
KyAgICAgICAgZnVuY3Rpb24gZmluZE5vZGVDYWxsYmFjayhvZmZzZXQsIGxldmVsLCBub2RlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoY3Vyc29yTGV2ZWwgPiBsZXZlbCAmJiBjdXJzb3JM
ZXZlbCA8IGxldmVsICsgMSAmJiBjdXJzb3JPZmZzZXQgPiBvZmZzZXQgJiYgY3Vyc29yT2Zmc2V0
IDwgb2Zmc2V0ICsgbm9kZS50b3RhbFRpbWUpCisgICAgICAgICAgICAgICAgY3Vyc29yTm9kZSA9
IG5vZGU7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fZm9yRWFjaE5vZGUoZmluZE5vZGVDYWxs
YmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgcmV0dXJuIGN1cnNvck5vZGU7CisgICAgfSwKKwor
ICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmRyYXcodGhpcy5l
bGVtZW50LmNsaWVudFdpZHRoLCB0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0KTsKKyAgICB9LAor
CisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPCFQcm9maWxlckFnZW50LkNQVVByb2Zp
bGVOb2RlPiB9CisgICAgICovCisgICAgX3Jvb3ROb2RlczogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX3Jvb3ROb2Rlc0FycmF5KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X3Jvb3ROb2Rlc0FycmF5LnNsaWNlKCk7CisKKyAgICAgICAgdmFyIHByb2ZpbGVIZWFkID0gdGhp
cy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhlYWQ7CisgICAgICAgIGlmICghcHJvZmlsZUhlYWQp
CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgdmFyIHRvdGFsVGltZSA9IDA7Cisg
ICAgICAgIHZhciBub2RlcyA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2Zp
bGVIZWFkLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgbm9kZSA9IHBy
b2ZpbGVIZWFkLmNoaWxkcmVuW2ldOworICAgICAgICAgICAgaWYgKG5vZGUuZnVuY3Rpb25OYW1l
ID09PSAiKHByb2dyYW0pIiB8fCBub2RlLmZ1bmN0aW9uTmFtZSA9PT0gIihpZGxlKSIpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB0b3RhbFRpbWUgKz0gbm9kZS50b3Rh
bFRpbWU7CisgICAgICAgICAgICBub2Rlcy5wdXNoKG5vZGUpOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5fcm9vdE5vZGVzQXJyYXkgPSBub2RlczsKKyAgICAgICAgdGhpcy5fdG90YWxUaW1l
ID0gdG90YWxUaW1lOworICAgICAgICByZXR1cm4gbm9kZXMuc2xpY2UoKTsKKyAgICB9LAorCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHshbnVtYmVyfSBoZWlnaHQKKyAgICAgKiBAcGFyYW0geyFu
dW1iZXJ9IHdpZHRoCisgICAgICovCisgICAgZHJhdzogZnVuY3Rpb24od2lkdGgsIGhlaWdodCkK
KyAgICB7CisgICAgICAgIGlmICghdGhpcy5fcm9vdE5vZGVzKCkpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgdmFyIG1hcmdpbiA9IDA7CisgICAgICAgIHRoaXMuX2NhbnZhcy5oZWln
aHQgPSBoZWlnaHQgLSBtYXJnaW47CisgICAgICAgIHRoaXMuX2NhbnZhcy53aWR0aCA9IHdpZHRo
IC0gbWFyZ2luOworCisgICAgICAgIHRoaXMuX3hTY2FsZUZhY3RvciA9IHdpZHRoIC8gdGhpcy5f
dG90YWxUaW1lOworICAgICAgICB0aGlzLl9jb2xvckluZGV4ID0gMDsKKworICAgICAgICB0aGlz
Ll9jb250ZXh0ID0gdGhpcy5fY2FudmFzLmdldENvbnRleHQoIjJkIik7CisKKyAgICAgICAgdGhp
cy5fZm9yRWFjaE5vZGUodGhpcy5fZHJhd05vZGUuYmluZCh0aGlzKSk7CisgICAgfSwKKworICAg
IF9kcmF3Tm9kZTogZnVuY3Rpb24ob2Zmc2V0LCBsZXZlbCwgbm9kZSkKKyAgICB7CisgICAgICAg
ICsrdGhpcy5fY29sb3JJbmRleDsKKyAgICAgICAgdmFyIGh1ZSA9ICh0aGlzLl9jb2xvckluZGV4
ICogMiArIDExICogKHRoaXMuX2NvbG9ySW5kZXggJSAyKSkgJSAzNjA7CisgICAgICAgIHZhciBs
aWdodG5lc3MgPSAodGhpcy5faGlnaGxpZ2h0ZWROb2RlICYmIHRoaXMuX2hpZ2hsaWdodGVkTm9k
ZS5VSUQgPT09IG5vZGUuVUlEKSA/IDMzIDogNjc7CisgICAgICAgIHZhciBjb2xvciA9IFdlYklu
c3BlY3Rvci5Db2xvci5wYXJzZSgiaHNsKCIgKyBodWUgKyAiLCAxMDAlLCAiICsgbGlnaHRuZXNz
ICsgIiUpIik7CisgICAgICAgIHRoaXMuX2RyYXdCYXIodGhpcy5fY29udGV4dCwgb2Zmc2V0LCBs
ZXZlbCwgbm9kZSwgY29sb3IpOworICAgIH0sCisKKyAgICBfZm9yRWFjaE5vZGU6IGZ1bmN0aW9u
KGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIG5vZGVzID0gdGhpcy5fcm9vdE5vZGVzKCk7
CisgICAgICAgIHZhciBsZXZlbE9mZnNldHMgPSAvKiogQHR5cGUge0FycmF5LjwhbnVtYmVyPn0g
Ki8gWzBdOworICAgICAgICB2YXIgbGV2ZWxFeGl0SW5kZXhlcyA9IFswXTsKKworICAgICAgICB3
aGlsZSAobm9kZXMubGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIgbGV2ZWwgPSBsZXZlbE9mZnNl
dHMubGVuZ3RoIC0gMTsKKyAgICAgICAgICAgIHZhciBub2RlID0gbm9kZXMucG9wKCk7CisgICAg
ICAgICAgICBpZiAobm9kZS50b3RhbFRpbWUgKiB0aGlzLl94U2NhbGVGYWN0b3IgPiB0aGlzLl9t
aW5XaWR0aCkgeworICAgICAgICAgICAgICAgIHZhciBvZmZzZXQgPSBsZXZlbE9mZnNldHNbbGV2
ZWxdOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKG9mZnNldCwgbGV2ZWwsIG5vZGUpOworICAg
ICAgICAgICAgICAgIGxldmVsT2Zmc2V0c1tsZXZlbF0gKz0gbm9kZS50b3RhbFRpbWU7CisgICAg
ICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAg
ICAgIGxldmVsRXhpdEluZGV4ZXMucHVzaChub2Rlcy5sZW5ndGgpOworICAgICAgICAgICAgICAg
ICAgICBsZXZlbE9mZnNldHMucHVzaChvZmZzZXQgKyBub2RlLnNlbGZUaW1lIC8gMik7CisgICAg
ICAgICAgICAgICAgICAgIG5vZGVzID0gbm9kZXMuY29uY2F0KG5vZGUuY2hpbGRyZW4pOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChub2Rlcy5s
ZW5ndGggPT09IGxldmVsRXhpdEluZGV4ZXNbbGV2ZWxFeGl0SW5kZXhlcy5sZW5ndGggLSAxXSkg
eworICAgICAgICAgICAgICAgIGxldmVsT2Zmc2V0cy5wb3AoKTsKKyAgICAgICAgICAgICAgICBs
ZXZlbEV4aXRJbmRleGVzLnBvcCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwK
KworICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0CisgICAgICogQHBhcmFt
IHtudW1iZXJ9IG9mZnNldAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsZXZlbAorICAgICAqIEBw
YXJhbSB7IVByb2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZU5vZGV9IG5vZGUKKyAgICAgKiBAcGFyYW0g
eyFXZWJJbnNwZWN0b3IuQ29sb3J9IGhzbENvbG9yCisgICAgICovCisgICAgX2RyYXdCYXI6IGZ1
bmN0aW9uKGNvbnRleHQsIG9mZnNldCwgbGV2ZWwsIG5vZGUsIGhzbENvbG9yKQorICAgIHsKKyAg
ICAgICAgdmFyIHdpZHRoID0gbm9kZS50b3RhbFRpbWUgKiB0aGlzLl94U2NhbGVGYWN0b3I7Cisg
ICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLl95U2NhbGVGYWN0b3I7CisgICAgICAgIHZhciB4ID0g
b2Zmc2V0ICogdGhpcy5feFNjYWxlRmFjdG9yOworICAgICAgICB2YXIgeSA9IHRoaXMuX2NhbnZh
cy5oZWlnaHQgLSBsZXZlbCAqIHRoaXMuX3lTY2FsZUZhY3RvciAtIGhlaWdodDsKKyAgICAgICAg
Y29udGV4dC5iZWdpblBhdGgoKTsKKyAgICAgICAgY29udGV4dC5yZWN0KHgsIHksIHdpZHRoIC0g
MSwgaGVpZ2h0IC0gMSk7CisgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gaHNsQ29sb3IudG9T
dHJpbmcoInJnYiIpOworICAgICAgICBjb250ZXh0LmZpbGwoKTsKKyAgICB9LAorCisgICAgdXBk
YXRlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmRyYXcodGhpcy5lbGVtZW50LmNs
aWVudFdpZHRoLCB0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0KTsKKyAgICB9LAorCisgICAgX19w
cm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwppbmRleCBjNjk0Yjg5ODgyMzk3OGYw
ZTdlYWY4NjI3YzBhOGEyMjQ0ZmQ2ZGYzLi40ZWRmYTlkZGU1YmFjZWQyYjA3Yjk3ZjcxYThjMDBj
ZmU5ZDM5M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0
dGluZ3MuanMKQEAgLTIxNyw2ICsyMTcsNyBAQCBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0
aW5ncyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgPSB0aGlz
Ll9jcmVhdGVFeHBlcmltZW50KCJzaG93V2hpdGVzcGFjZUluRWRpdG9yIiwgIlNob3cgd2hpdGVz
cGFjZSBjaGFyYWN0ZXJzIGluIGVkaXRvciIpOwogICAgIHRoaXMudGV4dEVkaXRvclNtYXJ0QnJh
Y2VzID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgidGV4dEVkaXRvclNtYXJ0QnJhY2VzIiwgIkVu
YWJsZSBzbWFydCBicmFjZXMgaW4gdGV4dCBlZGl0b3IiKTsKICAgICB0aGlzLnNlcGFyYXRlUHJv
ZmlsZXJzID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgic2VwYXJhdGVQcm9maWxlcnMiLCAiU2Vw
YXJhdGUgcHJvZmlsZXIgdG9vbHMiKTsKKyAgICB0aGlzLmNwdUZsYW1lQ2hhcnQgPSB0aGlzLl9j
cmVhdGVFeHBlcmltZW50KCJjcHVGbGFtZUNoYXJ0IiwgIlNob3cgRmxhbWUgQ2hhcnQgaW4gQ1BV
IFByb2ZpbGVyIik7CiAKICAgICB0aGlzLl9jbGVhblVwU2V0dGluZygpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IDM1YWJlMmI2Njgz
YWIwMDYxZTYwOTkyN2RiN2Q5ZTliNDAxMmI3NGIuLjBiNmVjYTg5YTYwYzljMTE5ZGQ2NGU5NWY3
NGE4NWU2ZDdjMTlhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMKQEAgLTgzLDYgKzgzLDcgQEAKICAgICA8ZmlsZT5GaWxlU3lzdGVtUHJvamVj
dERlbGVnYXRlLmpzPC9maWxlPgogICAgIDxmaWxlPkZpbGVVdGlscy5qczwvZmlsZT4KICAgICA8
ZmlsZT5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanM8L2ZpbGU+CisgICAgPGZpbGU+Rmxh
bWVDaGFydC5qczwvZmlsZT4KICAgICA8ZmlsZT5Gb250Vmlldy5qczwvZmlsZT4KICAgICA8Zmls
ZT5Hb1RvTGluZURpYWxvZy5qczwvZmlsZT4KICAgICA8ZmlsZT5IQVJFbnRyeS5qczwvZmlsZT4K
QEAgLTI0NCw2ICsyNDUsNyBAQAogICAgIDxmaWxlPmRpYWxvZy5jc3M8L2ZpbGU+CiAgICAgPGZp
bGU+ZWxlbWVudHNQYW5lbC5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+ZmlsdGVyZWRJdGVtU2VsZWN0
aW9uRGlhbG9nLmNzczwvZmlsZT4KKyAgICA8ZmlsZT5mbGFtZUNoYXJ0LmNzczwvZmlsZT4KICAg
ICA8ZmlsZT5oZWFwUHJvZmlsZXIuY3NzPC9maWxlPgogICAgIDxmaWxlPmhlbHBTY3JlZW4uY3Nz
PC9maWxlPgogICAgIDxmaWxlPmluZGV4ZWREQlZpZXdzLmNzczwvZmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZmxhbWVDaGFydC5jc3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZsYW1lQ2hhcnQuY3NzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY3NzZhNjQ5NGQwNzJmNDE2NTg0OTlkNWYyNDlkNjc5NzhmMDQyNDcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZsYW1lQ2hhcnQuY3NzCkBA
IC0wLDAgKzEsNCBAQAorLmZsYW1lLWNoYXJ0IHsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgb3Zl
cmZsb3c6IGhpZGRlbjsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191200</attachid>
            <date>2013-03-04 04:04:40 -0800</date>
            <delta_ts>2013-03-04 04:29:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111162-20130304160047.patch</filename>
            <type>text/plain</type>
            <size>17406</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWJmOTVkYmYxNGI1MGJl
Mzg2MjZlZmFmOGVkYmU5MzJjOThhODU1YS4uZDJkMjIwNmRiYmU0ZGQwOTZiZDUzN2Y3YjQ2Y2Vk
ZmFhZWVjZTY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAzLTA0ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBpbXBsZW1lbnQgRmxhbWUgQ2hhcnQgZm9yIENQVSBwcm9maWxlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTE2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGFuIGluaXRpYWwgaW1w
bGVtZW50YXRpb24uIFRoZSBuZXh0IHN0ZXAgaXMgdG8gcHJvdmlkZQorICAgICAgICBmdW5jdGlv
biBuYW1lcyBhbmQgb3RoZXIgc3RhdHMgYWJvdXQgdGhlIGhvdmVyZWQgaXRlbS4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9DUFVQcm9maWxlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmll
dy5wcm90b3R5cGUuX2dldENQVVByb2ZpbGVDYWxsYmFjayk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9GbGFtZUNoYXJ0LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
bGFtZUNoYXJ0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5f
b25Nb3VzZU1vdmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBl
LmZpbmROb2RlQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJv
dG90eXBlLl9jb29yZGluYXRlc1RvTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVD
aGFydC5wcm90b3R5cGUub25SZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hh
cnQucHJvdG90eXBlLl9yb290Tm9kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hh
cnQucHJvdG90eXBlLmRyYXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJv
dG90eXBlLl9kcmF3Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90
b3R5cGUuX2ZvckVhY2hOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnBy
b3RvdHlwZS5fZHJhd0Jhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90
b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL2ZsYW1lQ2hhcnQuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5mbGFtZS1jaGFydCk6CisK
IDIwMTMtMDMtMDQgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBBY2UgZWRpdG9yIGV4cGVyaW1lbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBhNzFmZTQ3NGZhMzc0YzI1NDE5MmRlNDI5ZjYxODQ3NjgyYTBhMjU5Li45
MTM5ZTdiZmIxNTEzMjVjNzhhOGNhMTE1YjBjNmZiOGNjZjM3YWFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC01NDQ4LDYgKzU0NDgsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
ZGF0YUdyaWQuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRz
UGFuZWwuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2ZpbHRlcmVkSXRl
bVNlbGVjdGlvbkRpYWxvZy5jc3MnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
ZmxhbWVDaGFydC5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaGVhcFBy
b2ZpbGVyLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVu
LmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbmRleGVkREJWaWV3cy5j
c3MnLApAQCAtNTUzNiw2ICs1NTM3LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0JvdHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9DU1NTZWxlY3RvclByb2ZpbGVWaWV3LmpzJywKKyAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvSGVhcFNuYXBzaG90LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdERhdGFHcmlkcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlYzQyNjQzOWNhOTRmNjFkYmU3ODlkMzdk
OTg4ZTBkZjk3MzVmNzJhLi5mYTE4YmQ2NzJlYzZiNTcyYzNkOWM4OGQ3YTMzZGU3NTI5NjkzZjA3
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NzcyMTgsNiArNzcyMTgsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcRmxhbWVDaGFydC5qcyIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3Bl
Y3Rvclxmcm9udC1lbmRcRm9udFZpZXcuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBjMmJmN2Zm
MGI4NjZkODdiYjkyNThkOThjY2Q2OTlhOTU4MTBkMmZlLi40NGFjYjkxZTQ4ZGNlMDkxNTlkMjc2
YTBlMzUyMWRkYmU0MjFlYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KIDxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHht
bG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMi
PgogICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgogICAgIDxQcm9q
ZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z1N1ZmZpeHxXaW4zMiI+CkBAIC0xMDk1MCw2
ICsxMDk1MCw3IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxG
aWxlVXRpbHMuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxmaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9
Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzIiAv
PgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcRmxhbWVDaGFydC5q
cyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXEZvbnRWaWV3
LmpzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcR29Ub0xp
bmVEaWFsb2cuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVu
ZFxIYW5kbGVyUmVnaXN0cnkuanMiIC8+CkBAIC0xMTEyNyw0ICsxMTEyOCw0IEBACiAgIDxJbXBv
cnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CiAg
IDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgIDwvSW1wb3J0R3JvdXA+
Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCmluZGV4IDJiMzc0YWRiMDY1YzNlYjE4N2Y4NzZlODAxZDNlMWMzMmM2NTBjODguLjA0
OWI3YmM2MzQwYmI1MTM1Nzg5OWVhMWM5ZjJiMGYzNTJjMzcxMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAg
LTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pgor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDxQcm9qZWN0IFRvb2xzVmVy
c2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIv
bXNidWlsZC8yMDAzIj4KICAgPEl0ZW1Hcm91cD4KICAgICA8RmlsdGVyIEluY2x1ZGU9IkRlcml2
ZWRTb3VyY2VzIj4KQEAgLTE0NjM1LDYgKzE0NjM1LDkgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcZnJvbnQtZW5kXEZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcyI+CiAg
ICAgICA8RmlsdGVyPmluc3BlY3Rvclxmcm9udC1lbmQ8L0ZpbHRlcj4KICAgICA8L05vbmU+Cisg
ICAgPE5vbmUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxGbGFtZUNoYXJ0LmpzIj4K
KyAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yXGZyb250LWVuZDwvRmlsdGVyPgorICAgIDwvTm9uZT4K
ICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXEZvbnRWaWV3LmpzIj4K
ICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yXGZyb250LWVuZDwvRmlsdGVyPgogICAgIDwvTm9uZT4K
QEAgLTE1MjcwLDQgKzE1MjczLDQgQEAKICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+
CiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCBlOTllMzc3MTYzOWNmODI0MTI0Yzgx
N2E3NTc1ZWVkZDJmODk4MDFkLi5jZGM3MGM5N2UwZjA2OTAyM2M0OTM1ZWJmNWRiMDZhNThiMGVh
YTI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1l
bmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5
CkBAIC0zMzcsNiArMzM3LDcgQEAgbW9kdWxlcyA9IFsKICAgICAgICAgICAgICJCb3R0b21VcFBy
b2ZpbGVEYXRhR3JpZFRyZWUuanMiLAogICAgICAgICAgICAgIkNQVVByb2ZpbGVWaWV3LmpzIiwK
ICAgICAgICAgICAgICJDU1NTZWxlY3RvclByb2ZpbGVWaWV3LmpzIiwKKyAgICAgICAgICAgICJG
bGFtZUNoYXJ0LmpzIiwKICAgICAgICAgICAgICJIZWFwU25hcHNob3QuanMiLAogICAgICAgICAg
ICAgIkhlYXBTbmFwc2hvdERhdGFHcmlkcy5qcyIsCiAgICAgICAgICAgICAiSGVhcFNuYXBzaG90
R3JpZE5vZGVzLmpzIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ1BVUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NQVVByb2ZpbGVWaWV3LmpzCmluZGV4IGMyNjc5NmVjYWZmYWM0MzkyYzI5MTk2MzE5MjU0
ZjcyZTFhYTM3MDQuLjI3ODhhM2Q5YzIzYzg3ZDkzZGQwZjFhMzVlOGFiMTMxNDg3MGRmMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1BVUHJvZmlsZVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxl
Vmlldy5qcwpAQCAtNTMsNyArNTMsMTcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3ID0g
ZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLmRhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5E
YXRhR3JpZChjb2x1bW5zKTsKICAgICB0aGlzLmRhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoInNv
cnRpbmcgY2hhbmdlZCIsIHRoaXMuX3NvcnRQcm9maWxlLCB0aGlzKTsKICAgICB0aGlzLmRhdGFH
cmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3du
SW5EYXRhR3JpZC5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICB0aGlzLmRhdGFHcmlkLnNob3codGhp
cy5lbGVtZW50KTsKKworICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5j
cHVGbGFtZUNoYXJ0LmlzRW5hYmxlZCgpKSB7CisgICAgICAgIHRoaXMuX3NwbGl0VmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuU3BsaXRWaWV3KGZhbHNlLCAiZmxhbWVDaGFydFNwbGl0TG9jYXRpb24i
KTsKKyAgICAgICAgdGhpcy5fc3BsaXRWaWV3LnNob3codGhpcy5lbGVtZW50KTsKKworICAgICAg
ICB0aGlzLmRhdGFHcmlkLnNob3codGhpcy5fc3BsaXRWaWV3LmZpcnN0RWxlbWVudCgpKTsKKwor
ICAgICAgICB0aGlzLmZsYW1lQ2hhcnQgPSBuZXcgV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQodGhp
cyk7CisgICAgICAgIHRoaXMuZmxhbWVDaGFydC5zaG93KHRoaXMuX3NwbGl0Vmlldy5zZWNvbmRF
bGVtZW50KCkpOworICAgIH0gZWxzZQorICAgICAgICB0aGlzLmRhdGFHcmlkLnNob3codGhpcy5l
bGVtZW50KTsKIAogICAgIHRoaXMudmlld1NlbGVjdENvbWJvQm94ID0gbmV3IFdlYkluc3BlY3Rv
ci5TdGF0dXNCYXJDb21ib0JveCh0aGlzLl9jaGFuZ2VWaWV3LmJpbmQodGhpcykpOwogCkBAIC0x
MDksNiArMTE5LDggQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fYXNzaWduUGFyZW50c0luUHJvZmlsZSgpOwogICAgICAgICB0aGlzLl9j
aGFuZ2VWaWV3KCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVBlcmNlbnRCdXR0b24oKTsKKyAgICAg
ICAgaWYgKHRoaXMuZmxhbWVDaGFydCkKKyAgICAgICAgICAgIHRoaXMuZmxhbWVDaGFydC51cGRh
dGUoKTsKICAgICB9LAogCiAgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKQEAgLTc1MCwzICs3NjIs
NSBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAKICAgICBf
X3Byb3RvX186IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlwZQogfQorCitpbXBv
cnRTY3JpcHQoIkZsYW1lQ2hhcnQuanMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmxhbWVDaGFydC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRmxhbWVDaGFydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzIzN2FhOTIzZjc3MWNjOWUy
OGZjNTRmYzMwM2JjNDE4MTk0ODkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9GbGFtZUNoYXJ0LmpzCkBAIC0wLDAgKzEsMTkyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisg
KiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KKyAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3fSBjcHVQcm9maWxlVmlldworICovCitXZWJJ
bnNwZWN0b3IuRmxhbWVDaGFydCA9IGZ1bmN0aW9uKGNwdVByb2ZpbGVWaWV3KQoreworICAgIFdl
Ykluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CisgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NT
KCJmbGFtZUNoYXJ0LmNzcyIpOworCisgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJmbGFt
ZS1jaGFydCI7CisgICAgdGhpcy5fY2FudmFzID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJj
YW52YXMiKTsKKyAgICB0aGlzLl9jcHVQcm9maWxlVmlldyA9IGNwdVByb2ZpbGVWaWV3OworICAg
IHRoaXMuX3hTY2FsZUZhY3RvciA9IDAuMDsKKyAgICB0aGlzLl95U2NhbGVGYWN0b3IgPSAxMDsK
KyAgICB0aGlzLl9taW5XaWR0aCA9IDM7CisgICAgdGhpcy5lbGVtZW50Lm9ubW91c2Vtb3ZlID0g
dGhpcy5fb25Nb3VzZU1vdmUuYmluZCh0aGlzKTsKK30KKworV2ViSW5zcGVjdG9yLkZsYW1lQ2hh
cnQucHJvdG90eXBlID0geworICAgIF9vbk1vdXNlTW92ZTogZnVuY3Rpb24oZSkKKyAgICB7Cisg
ICAgICAgIHZhciBub2RlID0gdGhpcy5fY29vcmRpbmF0ZXNUb05vZGUoZS5vZmZzZXRYLCBlLm9m
ZnNldFkpOworICAgICAgICBpZiAobm9kZSAhPT0gdGhpcy5faGlnaGxpZ2h0ZWROb2RlKSB7Cisg
ICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRlZE5vZGUgPSBub2RlOworICAgICAgICAgICAgdGhp
cy51cGRhdGUoKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
eyFudW1iZXJ9IHgKKyAgICAgKiBAcGFyYW0geyFudW1iZXJ9IHkKKyAgICAgKi8KKyAgICBfY29v
cmRpbmF0ZXNUb05vZGU6IGZ1bmN0aW9uKHgsIHkpCisgICAgeworICAgICAgICB2YXIgY3Vyc29y
T2Zmc2V0ID0geCAvIHRoaXMuX3hTY2FsZUZhY3RvcjsKKyAgICAgICAgdmFyIGN1cnNvckxldmVs
ID0gKHRoaXMuX2NhbnZhcy5oZWlnaHQgLSB5KSAvIHRoaXMuX3lTY2FsZUZhY3RvcjsKKyAgICAg
ICAgdGhpcy5faGlnaGxpZ2h0ZWROb2RlID0gbnVsbDsKKyAgICAgICAgdmFyIGN1cnNvck5vZGU7
CisKKyAgICAgICAgZnVuY3Rpb24gZmluZE5vZGVDYWxsYmFjayhvZmZzZXQsIGxldmVsLCBub2Rl
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY3Vyc29yTGV2ZWwgPiBsZXZlbCAmJiBjdXJz
b3JMZXZlbCA8IGxldmVsICsgMSAmJiBjdXJzb3JPZmZzZXQgPiBvZmZzZXQgJiYgY3Vyc29yT2Zm
c2V0IDwgb2Zmc2V0ICsgbm9kZS50b3RhbFRpbWUpCisgICAgICAgICAgICAgICAgY3Vyc29yTm9k
ZSA9IG5vZGU7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fZm9yRWFjaE5vZGUoZmluZE5vZGVD
YWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgcmV0dXJuIGN1cnNvck5vZGU7CisgICAgfSwK
KworICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmRyYXcodGhp
cy5lbGVtZW50LmNsaWVudFdpZHRoLCB0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0KTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPCFQcm9maWxlckFnZW50LkNQVVBy
b2ZpbGVOb2RlPiB9CisgICAgICovCisgICAgX3Jvb3ROb2RlczogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX3Jvb3ROb2Rlc0FycmF5KQorICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX3Jvb3ROb2Rlc0FycmF5LnNsaWNlKCk7CisKKyAgICAgICAgdmFyIHByb2ZpbGVIZWFkID0g
dGhpcy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhlYWQ7CisgICAgICAgIGlmICghcHJvZmlsZUhl
YWQpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgdmFyIHRvdGFsVGltZSA9IDA7
CisgICAgICAgIHZhciBub2RlcyA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBy
b2ZpbGVIZWFkLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgbm9kZSA9
IHByb2ZpbGVIZWFkLmNoaWxkcmVuW2ldOworICAgICAgICAgICAgaWYgKG5vZGUuZnVuY3Rpb25O
YW1lID09PSAiKHByb2dyYW0pIiB8fCBub2RlLmZ1bmN0aW9uTmFtZSA9PT0gIihpZGxlKSIpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB0b3RhbFRpbWUgKz0gbm9kZS50
b3RhbFRpbWU7CisgICAgICAgICAgICBub2Rlcy5wdXNoKG5vZGUpOworICAgICAgICB9CisKKyAg
ICAgICAgdGhpcy5fcm9vdE5vZGVzQXJyYXkgPSBub2RlczsKKyAgICAgICAgdGhpcy5fdG90YWxU
aW1lID0gdG90YWxUaW1lOworICAgICAgICByZXR1cm4gbm9kZXMuc2xpY2UoKTsKKyAgICB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHshbnVtYmVyfSBoZWlnaHQKKyAgICAgKiBAcGFyYW0g
eyFudW1iZXJ9IHdpZHRoCisgICAgICovCisgICAgZHJhdzogZnVuY3Rpb24od2lkdGgsIGhlaWdo
dCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fcm9vdE5vZGVzKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgdmFyIG1hcmdpbiA9IDA7CisgICAgICAgIHRoaXMuX2NhbnZhcy5o
ZWlnaHQgPSBoZWlnaHQgLSBtYXJnaW47CisgICAgICAgIHRoaXMuX2NhbnZhcy53aWR0aCA9IHdp
ZHRoIC0gbWFyZ2luOworCisgICAgICAgIHRoaXMuX3hTY2FsZUZhY3RvciA9IHdpZHRoIC8gdGhp
cy5fdG90YWxUaW1lOworICAgICAgICB0aGlzLl9jb2xvckluZGV4ID0gMDsKKworICAgICAgICB0
aGlzLl9jb250ZXh0ID0gdGhpcy5fY2FudmFzLmdldENvbnRleHQoIjJkIik7CisKKyAgICAgICAg
dGhpcy5fZm9yRWFjaE5vZGUodGhpcy5fZHJhd05vZGUuYmluZCh0aGlzKSk7CisgICAgfSwKKwor
ICAgIF9kcmF3Tm9kZTogZnVuY3Rpb24ob2Zmc2V0LCBsZXZlbCwgbm9kZSkKKyAgICB7CisgICAg
ICAgICsrdGhpcy5fY29sb3JJbmRleDsKKyAgICAgICAgdmFyIGh1ZSA9ICh0aGlzLl9jb2xvcklu
ZGV4ICogMiArIDExICogKHRoaXMuX2NvbG9ySW5kZXggJSAyKSkgJSAzNjA7CisgICAgICAgIHZh
ciBsaWdodG5lc3MgPSAodGhpcy5faGlnaGxpZ2h0ZWROb2RlICYmIHRoaXMuX2hpZ2hsaWdodGVk
Tm9kZS5VSUQgPT09IG5vZGUuVUlEKSA/IDMzIDogNjc7CisgICAgICAgIHZhciBjb2xvciA9IFdl
Ykluc3BlY3Rvci5Db2xvci5wYXJzZSgiaHNsKCIgKyBodWUgKyAiLCAxMDAlLCAiICsgbGlnaHRu
ZXNzICsgIiUpIik7CisgICAgICAgIHRoaXMuX2RyYXdCYXIodGhpcy5fY29udGV4dCwgb2Zmc2V0
LCBsZXZlbCwgbm9kZSwgY29sb3IpOworICAgIH0sCisKKyAgICBfZm9yRWFjaE5vZGU6IGZ1bmN0
aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIG5vZGVzID0gdGhpcy5fcm9vdE5vZGVz
KCk7CisgICAgICAgIHZhciBsZXZlbE9mZnNldHMgPSAvKiogQHR5cGUge0FycmF5LjwhbnVtYmVy
Pn0gKi8gWzBdOworICAgICAgICB2YXIgbGV2ZWxFeGl0SW5kZXhlcyA9IFswXTsKKworICAgICAg
ICB3aGlsZSAobm9kZXMubGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIgbGV2ZWwgPSBsZXZlbE9m
ZnNldHMubGVuZ3RoIC0gMTsKKyAgICAgICAgICAgIHZhciBub2RlID0gbm9kZXMucG9wKCk7Cisg
ICAgICAgICAgICBpZiAobm9kZS50b3RhbFRpbWUgKiB0aGlzLl94U2NhbGVGYWN0b3IgPiB0aGlz
Ll9taW5XaWR0aCkgeworICAgICAgICAgICAgICAgIHZhciBvZmZzZXQgPSBsZXZlbE9mZnNldHNb
bGV2ZWxdOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKG9mZnNldCwgbGV2ZWwsIG5vZGUpOwor
ICAgICAgICAgICAgICAgIGxldmVsT2Zmc2V0c1tsZXZlbF0gKz0gbm9kZS50b3RhbFRpbWU7Cisg
ICAgICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAgICAgICAg
ICAgICAgIGxldmVsRXhpdEluZGV4ZXMucHVzaChub2Rlcy5sZW5ndGgpOworICAgICAgICAgICAg
ICAgICAgICBsZXZlbE9mZnNldHMucHVzaChvZmZzZXQgKyBub2RlLnNlbGZUaW1lIC8gMik7Cisg
ICAgICAgICAgICAgICAgICAgIG5vZGVzID0gbm9kZXMuY29uY2F0KG5vZGUuY2hpbGRyZW4pOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChub2Rl
cy5sZW5ndGggPT09IGxldmVsRXhpdEluZGV4ZXNbbGV2ZWxFeGl0SW5kZXhlcy5sZW5ndGggLSAx
XSkgeworICAgICAgICAgICAgICAgIGxldmVsT2Zmc2V0cy5wb3AoKTsKKyAgICAgICAgICAgICAg
ICBsZXZlbEV4aXRJbmRleGVzLnBvcCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0CisgICAgICogQHBh
cmFtIHtudW1iZXJ9IG9mZnNldAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsZXZlbAorICAgICAq
IEBwYXJhbSB7IVByb2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZU5vZGV9IG5vZGUKKyAgICAgKiBAcGFy
YW0geyFXZWJJbnNwZWN0b3IuQ29sb3J9IGhzbENvbG9yCisgICAgICovCisgICAgX2RyYXdCYXI6
IGZ1bmN0aW9uKGNvbnRleHQsIG9mZnNldCwgbGV2ZWwsIG5vZGUsIGhzbENvbG9yKQorICAgIHsK
KyAgICAgICAgdmFyIHdpZHRoID0gbm9kZS50b3RhbFRpbWUgKiB0aGlzLl94U2NhbGVGYWN0b3I7
CisgICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLl95U2NhbGVGYWN0b3I7CisgICAgICAgIHZhciB4
ID0gb2Zmc2V0ICogdGhpcy5feFNjYWxlRmFjdG9yOworICAgICAgICB2YXIgeSA9IHRoaXMuX2Nh
bnZhcy5oZWlnaHQgLSBsZXZlbCAqIHRoaXMuX3lTY2FsZUZhY3RvciAtIGhlaWdodDsKKyAgICAg
ICAgY29udGV4dC5iZWdpblBhdGgoKTsKKyAgICAgICAgY29udGV4dC5yZWN0KHgsIHksIHdpZHRo
IC0gMSwgaGVpZ2h0IC0gMSk7CisgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gaHNsQ29sb3Iu
dG9TdHJpbmcoInJnYiIpOworICAgICAgICBjb250ZXh0LmZpbGwoKTsKKyAgICB9LAorCisgICAg
dXBkYXRlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmRyYXcodGhpcy5lbGVtZW50
LmNsaWVudFdpZHRoLCB0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0KTsKKyAgICB9LAorCisgICAg
X19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwppbmRleCBjNjk0Yjg5ODgyMzk3
OGYwZTdlYWY4NjI3YzBhOGEyMjQ0ZmQ2ZGYzLi40ZWRmYTlkZGU1YmFjZWQyYjA3Yjk3ZjcxYThj
MDBjZmU5ZDM5M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3MuanMKQEAgLTIxNyw2ICsyMTcsNyBAQCBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNT
ZXR0aW5ncyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnNob3dXaGl0ZXNwYWNlSW5FZGl0b3IgPSB0
aGlzLl9jcmVhdGVFeHBlcmltZW50KCJzaG93V2hpdGVzcGFjZUluRWRpdG9yIiwgIlNob3cgd2hp
dGVzcGFjZSBjaGFyYWN0ZXJzIGluIGVkaXRvciIpOwogICAgIHRoaXMudGV4dEVkaXRvclNtYXJ0
QnJhY2VzID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgidGV4dEVkaXRvclNtYXJ0QnJhY2VzIiwg
IkVuYWJsZSBzbWFydCBicmFjZXMgaW4gdGV4dCBlZGl0b3IiKTsKICAgICB0aGlzLnNlcGFyYXRl
UHJvZmlsZXJzID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgic2VwYXJhdGVQcm9maWxlcnMiLCAi
U2VwYXJhdGUgcHJvZmlsZXIgdG9vbHMiKTsKKyAgICB0aGlzLmNwdUZsYW1lQ2hhcnQgPSB0aGlz
Ll9jcmVhdGVFeHBlcmltZW50KCJjcHVGbGFtZUNoYXJ0IiwgIlNob3cgRmxhbWUgQ2hhcnQgaW4g
Q1BVIFByb2ZpbGVyIik7CiAKICAgICB0aGlzLl9jbGVhblVwU2V0dGluZygpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IDM1YWJlMmI2
NjgzYWIwMDYxZTYwOTkyN2RiN2Q5ZTliNDAxMmI3NGIuLjBiNmVjYTg5YTYwYzljMTE5ZGQ2NGU5
NWY3NGE4NWU2ZDdjMTlhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1dlYktpdC5xcmMKQEAgLTgzLDYgKzgzLDcgQEAKICAgICA8ZmlsZT5GaWxlU3lzdGVtUHJv
amVjdERlbGVnYXRlLmpzPC9maWxlPgogICAgIDxmaWxlPkZpbGVVdGlscy5qczwvZmlsZT4KICAg
ICA8ZmlsZT5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanM8L2ZpbGU+CisgICAgPGZpbGU+
RmxhbWVDaGFydC5qczwvZmlsZT4KICAgICA8ZmlsZT5Gb250Vmlldy5qczwvZmlsZT4KICAgICA8
ZmlsZT5Hb1RvTGluZURpYWxvZy5qczwvZmlsZT4KICAgICA8ZmlsZT5IQVJFbnRyeS5qczwvZmls
ZT4KQEAgLTI0NCw2ICsyNDUsNyBAQAogICAgIDxmaWxlPmRpYWxvZy5jc3M8L2ZpbGU+CiAgICAg
PGZpbGU+ZWxlbWVudHNQYW5lbC5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+ZmlsdGVyZWRJdGVtU2Vs
ZWN0aW9uRGlhbG9nLmNzczwvZmlsZT4KKyAgICA8ZmlsZT5mbGFtZUNoYXJ0LmNzczwvZmlsZT4K
ICAgICA8ZmlsZT5oZWFwUHJvZmlsZXIuY3NzPC9maWxlPgogICAgIDxmaWxlPmhlbHBTY3JlZW4u
Y3NzPC9maWxlPgogICAgIDxmaWxlPmluZGV4ZWREQlZpZXdzLmNzczwvZmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZmxhbWVDaGFydC5jc3MgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZsYW1lQ2hhcnQuY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3NzZhNjQ5NGQwNzJmNDE2NTg0OTlkNWYyNDlkNjc5NzhmMDQyNDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZsYW1lQ2hhcnQuY3Nz
CkBAIC0wLDAgKzEsNCBAQAorLmZsYW1lLWNoYXJ0IHsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAg
b3ZlcmZsb3c6IGhpZGRlbjsKK30K
</data>
<flag name="review"
          id="212102"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>