<?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>78113</bug_id>
          
          <creation_ts>2012-02-08 06:41:08 -0800</creation_ts>
          <short_desc>Web Inspector: heap snapshot: implement Distance column in Object&apos;s retaining tree.</short_desc>
          <delta_ts>2012-02-11 01:26:39 -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>
          
          <blocked>78411</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>552082</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-02-08 06:41:08 -0800</bug_when>
    <thetext>%subj%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552091</commentid>
    <comment_count>1</comment_count>
      <attachid>126076</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-02-08 06:53:51 -0800</bug_when>
    <thetext>Created attachment 126076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552097</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-02-08 07:10:50 -0800</bug_when>
    <thetext>I&apos;m not sure that we need to see this column in the UI. It doesn&apos;t provide much additional information about the retainers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552100</commentid>
    <comment_count>3</comment_count>
      <attachid>126076</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-02-08 07:13:30 -0800</bug_when>
    <thetext>Comment on attachment 126076
Patch

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

&gt; Source/WebCore/inspector/front-end/DetailedHeapshotGridNodes.js:436
&gt; +            distanceToWindow: [&quot;distanceToWindow&quot;, sortAscending, &quot;_name&quot;, true]

Please make sure sorting by the distance column works if there are expanded entries. r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552141</commentid>
    <comment_count>4</comment_count>
      <attachid>126087</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-02-08 08:33:30 -0800</bug_when>
    <thetext>Created attachment 126087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552167</commentid>
    <comment_count>5</comment_count>
      <attachid>126087</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-02-08 08:56:07 -0800</bug_when>
    <thetext>Comment on attachment 126087
Patch

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

&gt; Source/WebCore/inspector/front-end/HeapSnapshot.js:946
&gt; +        this._distancesToWindow = new Array(this.nodeCount);

Use {} instead of array?

&gt; Source/WebCore/inspector/front-end/HeapSnapshot.js:969
&gt; +            var node = list[index++]; // shift generates too much garbage.

Why not just use shift here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552285</commentid>
    <comment_count>6</comment_count>
      <attachid>126087</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-02-08 10:50:16 -0800</bug_when>
    <thetext>Comment on attachment 126087
Patch

Clearing flags on attachment: 126087

Committed r107106: &lt;http://trac.webkit.org/changeset/107106&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552286</commentid>
    <comment_count>7</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-02-08 10:50:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552963</commentid>
    <comment_count>8</comment_count>
      <attachid>126087</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-02-09 01:42:59 -0800</bug_when>
    <thetext>Comment on attachment 126087
Patch

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

&gt; Source/WebCore/inspector/front-end/HeapSnapshot.js:978
&gt; +                if (typeof this._distancesToWindow[childNode.nodeIndex] !== &quot;undefined&quot;)

Drive-by: &quot;if (childNode.nodeIndex in this._distancesToWindow)&quot; is shorter</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126076</attachid>
            <date>2012-02-08 06:53:51 -0800</date>
            <delta_ts>2012-02-08 08:33:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78113-20120208185350.patch</filename>
            <type>text/plain</type>
            <size>15394</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBiNTdiNTFiNjI3MzRl
MTk5MDcwMWVjMWI3YjViZTE4M2NhOTE0NS4uNjY1MDZlZDVlNWVjNGVlZmI3MTBjOTViYTk0ZjEx
Y2JlZDI2NTZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTA4ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBoZWFwIHNuYXBzaG90OiBpbXBsZW1lbnQgRGlzdGFuY2UgY29sdW1uIGluIE9iamVjdCdz
IHJldGFpbmluZyB0cmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzgxMTMKKworICAgICAgICBSZXRhaW5pbmcgcGF0aCBsaXN0IHdhcyByZXBsYWNl
ZCB3aXRoIFJldGFpbmluZyB0cmVlIHNvbWUgdGltZSBhZ28uCisgICAgICAgIEJ1dCBpdCB3YXMg
bm90IHNvIHVzZWZ1bCB3aGVuIHdlIHdhbnQgdG8gdHJhY2sgdGhlIHJldGFpbmluZyBwYXRoIGZy
b20gYW4gb2JqZWN0IHRvIGEgRE9NIFdpbmRvdyBub2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxl
ZEhlYXBzaG90R3JpZE5vZGVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dE9iamVjdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE9iamVjdE5v
ZGUucHJvdG90eXBlLmNvbXBhcmF0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdE9iamVjdE5vZGUucHJvdG90eXBlLl9lbmhhbmNlRGF0YSk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RDb250YWlubWVudERhdGFHcmlkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RSZXRhaW5tZW50RGF0YUdyaWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdFJldGFpbm1lbnREYXRhR3JpZC5wcm90b3R5cGUuX3NvcnRGaWVsZHMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJldGFpbmVyRWRnZS5wcm90b3R5cGUuc2V0IGVk
Z2VJbmRleCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5
cGUuZ2V0IGRpc3RhbmNlVG9XaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdC5wcm90b3R5cGUuX2J1aWxkUmV0YWluZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3QucHJvdG90eXBlLl9jYWxjdWxhdGVPYmplY3RUb1dpbmRvd0Rpc3RhbmNlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlLl9iZnMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXIucHJvdG90eXBlLl9z
ZXJpYWxpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlk
ZXIucHJvdG90eXBlLnNvcnQuY29tcGFyZUVkZ2VGaWVsZE5hbWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXIucHJvdG90eXBlLnNvcnQuY29tcGFyZU5v
ZGVGaWVsZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RWRnZXNQcm92aWRl
ci5wcm90b3R5cGUuc29ydC5jb21wYXJlRWRnZUFuZE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXIucHJvdG90eXBlLnNvcnQuY29tcGFyZU5vZGVB
bmRFZGdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlc1Byb3ZpZGVy
LnByb3RvdHlwZS5zb3J0LmNvbXBhcmVOb2RlQW5kTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90RWRnZXNQcm92aWRlci5wcm90b3R5cGUuc29ydCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZXNQcm92aWRlci5wcm90b3R5cGUuX3NlcmlhbGl6
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWFwUHJvZmlsZXIuY3NzOgorICAg
ICAgICAoLmRldGFpbGVkLWhlYXBzaG90LXZpZXcgLmRhdGEtZ3JpZCB0ZC5kaXN0YW5jZVRvV2lu
ZG93LWNvbHVtbik6CisKIDIwMTItMDItMDggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29n
bGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRvIG5vdCBjbGVhciBlbnRpcmUgdHJl
ZSBtYXAgdXBvbiBsYXN0IGVsZW1lbnQgZGVsZXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9kZXMuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RHcmlkTm9k
ZXMuanMKaW5kZXggOWZjMWVjZTgzMGY3YTMyODg0OWY4YjY5YjIyZTZjNTJhN2ZhYjI1Mi4uNWFh
YTUzMWU0ZmU4MDNmODFmNzUxYTk1MTY0NjIxNzQ2MmE5ODkxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hv
dEdyaWROb2Rlcy5qcwpAQCAtMzcxLDYgKzM3MSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3RPYmplY3ROb2RlID0gZnVuY3Rpb24odHJlZSwgaXNGcm9tQmFzZVNuYXBzaG90LCBlZGdlLCBw
CiAgICAgdGhpcy5fcmVmZXJlbmNlTmFtZSA9IGVkZ2UubmFtZTsKICAgICB0aGlzLl9yZWZlcmVu
Y2VUeXBlID0gZWRnZS50eXBlOwogICAgIHRoaXMuX3Byb3BlcnR5QWNjZXNzb3IgPSBlZGdlLnBy
b3BlcnR5QWNjZXNzb3I7CisgICAgdGhpcy5fZGlzdGFuY2VUb1dpbmRvdyA9IGVkZ2UuZGlzdGFu
Y2VUb1dpbmRvdzsKICAgICB0aGlzLnNob3dSZXRhaW5pbmdFZGdlcyA9IHRyZWUuc2hvd1JldGFp
bmluZ0VkZ2VzOwogICAgIHRoaXMuX2lzRnJvbUJhc2VTbmFwc2hvdCA9IGlzRnJvbUJhc2VTbmFw
c2hvdDsKICAgICB0aGlzLl9wcm92aWRlciA9IHRoaXMuX2NyZWF0ZVByb3ZpZGVyKCFpc0Zyb21C
YXNlU25hcHNob3QgPyB0cmVlLnNuYXBzaG90IDogdHJlZS5iYXNlU25hcHNob3QsIGVkZ2Uubm9k
ZUluZGV4LCB0cmVlKTsKQEAgLTQzMSw3ICs0MzIsOCBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90T2JqZWN0Tm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBvYmplY3Q6IFsiIWVkZ2VO
YW1lIiwgc29ydEFzY2VuZGluZywgInJldGFpbmVkU2l6ZSIsIGZhbHNlXSwKICAgICAgICAgICAg
IGNvdW50OiBbIiFlZGdlTmFtZSIsIHRydWUsICJyZXRhaW5lZFNpemUiLCBmYWxzZV0sCiAgICAg
ICAgICAgICBzaGFsbG93U2l6ZTogWyJzZWxmU2l6ZSIsIHNvcnRBc2NlbmRpbmcsICIhZWRnZU5h
bWUiLCB0cnVlXSwKLSAgICAgICAgICAgIHJldGFpbmVkU2l6ZTogWyJyZXRhaW5lZFNpemUiLCBz
b3J0QXNjZW5kaW5nLCAiIWVkZ2VOYW1lIiwgdHJ1ZV0KKyAgICAgICAgICAgIHJldGFpbmVkU2l6
ZTogWyJyZXRhaW5lZFNpemUiLCBzb3J0QXNjZW5kaW5nLCAiIWVkZ2VOYW1lIiwgdHJ1ZV0sCisg
ICAgICAgICAgICBkaXN0YW5jZVRvV2luZG93OiBbImRpc3RhbmNlVG9XaW5kb3ciLCBzb3J0QXNj
ZW5kaW5nLCAiX25hbWUiLCB0cnVlXQogICAgICAgICB9W3NvcnRDb2x1bW5JZGVudGlmaWVyXSB8
fCBbIiFlZGdlTmFtZSIsIHRydWUsICJyZXRhaW5lZFNpemUiLCBmYWxzZV07CiAgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RmlsdGVyZWRPcmRlcmVkSXRlcmF0b3IucHJv
dG90eXBlLmNyZWF0ZUNvbXBhcmF0b3Ioc29ydEZpZWxkcyk7CiAgICAgfSwKQEAgLTQ2MCw2ICs0
NjIsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90T2JqZWN0Tm9kZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgIH0KICAgICAgICAgZGF0YVsib2JqZWN0Il0ubmFtZUNsYXNzID0gbmFtZUNsYXNz
OwogICAgICAgICBkYXRhWyJvYmplY3QiXS5uYW1lID0gbmFtZTsKKyAgICAgICAgZGF0YVsiZGlz
dGFuY2VUb1dpbmRvdyJdID0gdGhpcy5fZGlzdGFuY2VUb1dpbmRvdzsKICAgICAgICAgcmV0dXJu
IGRhdGE7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKaW5kZXggMDNiY2E0NmZiYjUwMzA3
ODhiMjA3NGEwYTcyMmJmNzVmNDc5NGJjOS4uMDVjMWE3ZDE0MzgwYzk4N2EzOGZmNTFhMDJiOTEx
ZmNkYzVlYTdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCkBAIC0xMTIsOSArMTEyLDkgQEAgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFNvcnRhYmxlRGF0YUdyaWQucHJvdG90eXBlID0gewogCiBX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3JpZC5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZTsKIAotV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdENvbnRhaW5tZW50RGF0YUdyaWQgPSBmdW5jdGlvbigpCitXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90Q29udGFpbm1lbnREYXRhR3JpZCA9IGZ1bmN0aW9uKGNvbHVtbnMpCiB7Ci0g
ICAgdmFyIGNvbHVtbnMgPSB7CisgICAgY29sdW1ucyA9IGNvbHVtbnMgfHwgewogICAgICAgICBv
YmplY3Q6IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiT2JqZWN0IiksIGRpc2Nsb3N1
cmU6IHRydWUsIHNvcnRhYmxlOiB0cnVlIH0sCiAgICAgICAgIHNoYWxsb3dTaXplOiB7IHRpdGxl
OiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNoYWxsb3cgU2l6ZSIpLCB3aWR0aDogIjEyMHB4Iiwg
c29ydGFibGU6IHRydWUgfSwKICAgICAgICAgcmV0YWluZWRTaXplOiB7IHRpdGxlOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlJldGFpbmVkIFNpemUiKSwgd2lkdGg6ICIxMjBweCIsIHNvcnRhYmxl
OiB0cnVlLCBzb3J0OiAiZGVzY2VuZGluZyIgfQpAQCAtMTgzLDEwICsxODMsMjcgQEAgV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdENvbnRhaW5tZW50RGF0YUdyaWQucHJvdG90eXBlLl9fcHJvdG9f
XyA9IFdlYkluc3BlY3Rvci4KIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RSZXRhaW5tZW50RGF0
YUdyaWQgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhpcy5zaG93UmV0YWluaW5nRWRnZXMgPSB0cnVl
OwotICAgIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RDb250YWlubWVudERhdGFHcmlkLmNhbGwo
dGhpcyk7CisgICAgdmFyIGNvbHVtbnMgPSB7CisgICAgICAgIG9iamVjdDogeyB0aXRsZTogV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJPYmplY3QiKSwgZGlzY2xvc3VyZTogdHJ1ZSwgc29ydGFibGU6
IHRydWUgfSwKKyAgICAgICAgc2hhbGxvd1NpemU6IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2hhbGxvdyBTaXplIiksIHdpZHRoOiAiMTIwcHgiLCBzb3J0YWJsZTogdHJ1ZSB9LAor
ICAgICAgICByZXRhaW5lZFNpemU6IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmV0
YWluZWQgU2l6ZSIpLCB3aWR0aDogIjEyMHB4Iiwgc29ydGFibGU6IHRydWUgfSwKKyAgICAgICAg
ZGlzdGFuY2VUb1dpbmRvdzogeyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEaXN0YW5j
ZSIpLCB3aWR0aDogIjgwcHgiLCBzb3J0YWJsZTogdHJ1ZSwgc29ydDogImFzY2VuZGluZyIgfQor
ICAgIH07CisgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdENvbnRhaW5tZW50RGF0YUdyaWQu
Y2FsbCh0aGlzLCBjb2x1bW5zKTsKIH0KIAogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJldGFp
bm1lbnREYXRhR3JpZC5wcm90b3R5cGUgPSB7CisgICAgX3NvcnRGaWVsZHM6IGZ1bmN0aW9uKHNv
cnRDb2x1bW4sIHNvcnRBc2NlbmRpbmcpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgb2JqZWN0OiBbIl9uYW1lIiwgc29ydEFzY2VuZGluZywgIl9jb3VudCIsIGZhbHNlXSwK
KyAgICAgICAgICAgIGNvdW50OiBbIl9jb3VudCIsIHNvcnRBc2NlbmRpbmcsICJfbmFtZSIsIHRy
dWVdLAorICAgICAgICAgICAgc2hhbGxvd1NpemU6IFsiX3NoYWxsb3dTaXplIiwgc29ydEFzY2Vu
ZGluZywgIl9uYW1lIiwgdHJ1ZV0sCisgICAgICAgICAgICByZXRhaW5lZFNpemU6IFsiX3JldGFp
bmVkU2l6ZSIsIHNvcnRBc2NlbmRpbmcsICJfbmFtZSIsIHRydWVdLAorICAgICAgICAgICAgZGlz
dGFuY2VUb1dpbmRvdzogWyJfZGlzdGFuY2VUb1dpbmRvdyIsIHNvcnRBc2NlbmRpbmcsICJfbmFt
ZSIsIHRydWVdCisgICAgICAgIH1bc29ydENvbHVtbl07CisgICAgfSwKKwogICAgIHJlc2V0OiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLnJlbW92ZUNoaWxkcmVuKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzCmluZGV4
IDA5OTZhZGM0ZDlmMWQwMGFlZWQzZGZhMDYwYmYzZGUyMzA0ZmNkNTUuLmVkYjkzNGM5NTljMDU2
MDZiM2RmNzE4ODcwZGY2OGM4NzhjYmY5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzCkBAIC00NDAsNiArNDQwLDE0IEBAIFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlID0gewogICAgICAg
ICB9CiAgICAgfSwKIAorICAgIHNldCBlZGdlSW5kZXgoZWRnZUluZGV4KQorICAgIHsKKyAgICAg
ICAgdmFyIGdsb2JhbEVkZ2VJbmRleCA9IHRoaXMuX3JldGFpbmVycy5pdGVtKGVkZ2VJbmRleCk7
CisgICAgICAgIHRoaXMuX25vZGVJbmRleCA9IHRoaXMuX3NuYXBzaG90Ll9maW5kTmVhcmVzdE5v
ZGVJbmRleChnbG9iYWxFZGdlSW5kZXgpOworICAgICAgICBkZWxldGUgdGhpcy5fZWRnZTsKKyAg
ICAgICAgZGVsZXRlIHRoaXMuX25vZGU7CisgICAgfSwKKwogICAgIF9zZXR1cEVkZ2U6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBnbG9iYWxFZGdlSW5kZXggPSB0aGlzLl9yZXRhaW5l
cnMuaXRlbSh0aGlzLl9yZXRhaW5lckluZGV4KTsKQEAgLTUxMSw2ICs1MTksMTEgQEAgV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gISEo
ZmxhZ3MgJiB0aGlzLl9zbmFwc2hvdC5fbm9kZUZsYWdzLmNhbkJlUXVlcmllZCk7CiAgICAgfSwK
IAorICAgIGdldCBkaXN0YW5jZVRvV2luZG93KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9zbmFwc2hvdC5fZGlzdGFuY2VzVG9XaW5kb3dbdGhpcy5ub2RlSW5kZXhdOworICAgIH0sCisK
ICAgICBnZXQgY2xhc3NOYW1lKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7
CkBAIC03MzEsNiArNzQ0LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBkZXRhY2hlZERPTVRyZWVOb2RlOiAyLAogICAgICAgICB9OwogCisg
ICAgICAgIHRoaXMuX2Rpc3RhbmNlc1RvV2luZG93ID0gW107CiAgICAgICAgIHRoaXMuX21hcmtJ
bnZpc2libGVFZGdlcygpOwogICAgIH0sCiAKQEAgLTkxNyw2ICs5MzEsNDkgQEAgV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICBkYXRh
Q2FsbGJhY2soaW5kZXhDYWxsYmFjayhyZXRJbmRleCksIG5vZGUubm9kZUluZGV4ICsgdGhpcy5f
Zmlyc3RFZGdlT2Zmc2V0ICsgZWRnZS5lZGdlSW5kZXgpOwogICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2NhbGN1bGF0ZU9iamVj
dFRvV2luZG93RGlzdGFuY2UoKTsKKyAgICB9LAorCisgICAgX2NhbGN1bGF0ZU9iamVjdFRvV2lu
ZG93RGlzdGFuY2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Rpc3RhbmNlc1Rv
V2luZG93ID0gbmV3IEFycmF5KHRoaXMubm9kZUNvdW50KTsKKworICAgICAgICAvLyBiZnMgZm9y
IERPTVdpbmRvdyByb290cworICAgICAgICB2YXIgbGlzdCA9IFtdOworICAgICAgICBmb3IgKHZh
ciBpdGVyID0gdGhpcy5yb290Tm9kZS5lZGdlczsgaXRlci5oYXNOZXh0KCk7IGl0ZXIubmV4dCgp
KSB7CisgICAgICAgICAgICBpZiAoaXRlci5lZGdlLm5vZGUuaXNET01XaW5kb3cpIHsKKyAgICAg
ICAgICAgICAgICBsaXN0LnB1c2goaXRlci5lZGdlLm5vZGUpOworICAgICAgICAgICAgICAgIHRo
aXMuX2Rpc3RhbmNlc1RvV2luZG93W2l0ZXIuZWRnZS5ub2RlLm5vZGVJbmRleF0gPSAwOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRoaXMuX2JmcyhsaXN0KTsKKworICAgICAg
ICAvLyBiZnMgZm9yIHJvb3QKKyAgICAgICAgbGlzdCA9IFtdOworICAgICAgICBsaXN0LnB1c2go
dGhpcy5yb290Tm9kZSk7CisgICAgICAgIHRoaXMuX2Rpc3RhbmNlc1RvV2luZG93W3RoaXMucm9v
dE5vZGUubm9kZUluZGV4XSA9IDA7CisgICAgICAgIHRoaXMuX2JmcyhsaXN0KTsKKyAgICB9LAor
CisgICAgX2JmczogZnVuY3Rpb24obGlzdCkKKyAgICB7CisgICAgICAgIHZhciBpbmRleCA9IDA7
CisgICAgICAgIHdoaWxlIChpbmRleCA8IGxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIg
bm9kZSA9IGxpc3RbaW5kZXgrK107IC8vIHNoaWZ0IGdlbmVyYXRlcyB0b28gbXVjaCBnYXJiYWdl
LgorICAgICAgICAgICAgaWYgKGluZGV4ID4gMTAwMDAwKSB7CisgICAgICAgICAgICAgICAgbGlz
dCA9IGxpc3Quc2xpY2UoaW5kZXgpOworICAgICAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHZhciBkaXN0YW5jZSA9IHRoaXMuX2Rpc3RhbmNlc1RvV2lu
ZG93W25vZGUubm9kZUluZGV4XSArIDE7CisgICAgICAgICAgICBmb3IgKHZhciBpdGVyID0gbm9k
ZS5lZGdlczsgaXRlci5oYXNOZXh0KCk7IGl0ZXIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAg
dmFyIGVkZ2UgPSBpdGVyLmVkZ2U7CisgICAgICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9IGVk
Z2Uubm9kZTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2Rpc3RhbmNlc1RvV2lu
ZG93W2NoaWxkTm9kZS5ub2RlSW5kZXhdICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgdGhpcy5fZGlzdGFuY2VzVG9XaW5kb3db
Y2hpbGROb2RlLm5vZGVJbmRleF0gPSBkaXN0YW5jZTsKKyAgICAgICAgICAgICAgICBsaXN0LnB1
c2goY2hpbGROb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0sCiAKICAgICBf
YnVpbGRBZ2dyZWdhdGVzOiBmdW5jdGlvbihmaWx0ZXIpCkBAIC0xMzUyLDcgKzE0MDksMTQgQEAg
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXIgPSBmdW5jdGlvbihzbmFwc2hv
dCwgbm9kZUluZGV4LCBmaWx0ZXIsIGkKIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlc1By
b3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICBfc2VyaWFsaXplOiBmdW5jdGlvbihlZGdlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHtuYW1lOiBlZGdlLm5hbWUsIHByb3BlcnR5QWNjZXNzb3I6IGVk
Z2UudG9TdHJpbmcoKSwgbm9kZTogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJvdmlk
ZXIucHJvdG90eXBlLl9zZXJpYWxpemUoZWRnZS5ub2RlKSwgbm9kZUluZGV4OiBlZGdlLm5vZGVJ
bmRleCwgdHlwZTogZWRnZS50eXBlfTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIG5h
bWU6IGVkZ2UubmFtZSwKKyAgICAgICAgICAgIHByb3BlcnR5QWNjZXNzb3I6IGVkZ2UudG9TdHJp
bmcoKSwKKyAgICAgICAgICAgIG5vZGU6IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rlc1By
b3ZpZGVyLnByb3RvdHlwZS5fc2VyaWFsaXplKGVkZ2Uubm9kZSksCisgICAgICAgICAgICBub2Rl
SW5kZXg6IGVkZ2Uubm9kZUluZGV4LAorICAgICAgICAgICAgdHlwZTogZWRnZS50eXBlLAorICAg
ICAgICAgICAgZGlzdGFuY2VUb1dpbmRvdzogZWRnZS5ub2RlLmRpc3RhbmNlVG9XaW5kb3cKKyAg
ICAgICAgfTsKICAgICB9LAogCiAgICAgc29ydDogZnVuY3Rpb24oY29tcGFyYXRvciwgbGVmdEJv
dW5kLCByaWdodEJvdW5kLCBjb3VudCkKQEAgLTEzNjcsNyArMTQzMSw3IEBAIFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RFZGdlc1Byb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5v
ZGVBID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2RlKHRoaXMuc25hcHNob3QpOwog
ICAgICAgICB2YXIgbm9kZUIgPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUodGhp
cy5zbmFwc2hvdCk7CiAKLSAgICAgICAgZnVuY3Rpb24gc29ydEJ5RWRnZUZpZWxkTmFtZShhc2Nl
bmRpbmcsIGluZGV4QSwgaW5kZXhCKQorICAgICAgICBmdW5jdGlvbiBjb21wYXJlRWRnZUZpZWxk
TmFtZShhc2NlbmRpbmcsIGluZGV4QSwgaW5kZXhCKQogICAgICAgICB7CiAgICAgICAgICAgICBl
ZGdlQS5lZGdlSW5kZXggPSBpbmRleEE7CiAgICAgICAgICAgICBlZGdlQi5lZGdlSW5kZXggPSBp
bmRleEI7CkBAIC0xMzgwLDQ1ICsxNDQ0LDQ3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RF
ZGdlc1Byb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiBhc2NlbmRpbmcg
PyByZXN1bHQgOiAtcmVzdWx0OwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gc29ydEJ5
Tm9kZUZpZWxkKGZpZWxkTmFtZSwgYXNjZW5kaW5nLCBpbmRleEEsIGluZGV4QikKKyAgICAgICAg
ZnVuY3Rpb24gY29tcGFyZU5vZGVGaWVsZChmaWVsZE5hbWUsIGFzY2VuZGluZywgaW5kZXhBLCBp
bmRleEIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGVkZ2VBLmVkZ2VJbmRleCA9IGluZGV4QTsK
LSAgICAgICAgICAgIGVkZ2VCLmVkZ2VJbmRleCA9IGluZGV4QjsKICAgICAgICAgICAgIG5vZGVB
Lm5vZGVJbmRleCA9IGVkZ2VBLm5vZGVJbmRleDsKLSAgICAgICAgICAgIG5vZGVCLm5vZGVJbmRl
eCA9IGVkZ2VCLm5vZGVJbmRleDsKICAgICAgICAgICAgIHZhciB2YWx1ZUEgPSBub2RlQVtmaWVs
ZE5hbWVdOworCisgICAgICAgICAgICBlZGdlQi5lZGdlSW5kZXggPSBpbmRleEI7CisgICAgICAg
ICAgICBub2RlQi5ub2RlSW5kZXggPSBlZGdlQi5ub2RlSW5kZXg7CiAgICAgICAgICAgICB2YXIg
dmFsdWVCID0gbm9kZUJbZmllbGROYW1lXTsKKwogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHZh
bHVlQSA8IHZhbHVlQiA/IC0xIDogKHZhbHVlQSA+IHZhbHVlQiA/IDEgOiAwKTsKICAgICAgICAg
ICAgIHJldHVybiBhc2NlbmRpbmcgPyByZXN1bHQgOiAtcmVzdWx0OwogICAgICAgICB9CiAKLSAg
ICAgICAgZnVuY3Rpb24gc29ydEJ5RWRnZUFuZE5vZGUoaW5kZXhBLCBpbmRleEIpIHsKLSAgICAg
ICAgICAgIHZhciByZXN1bHQgPSBzb3J0QnlFZGdlRmllbGROYW1lKGFzY2VuZGluZzEsIGluZGV4
QSwgaW5kZXhCKTsKKyAgICAgICAgZnVuY3Rpb24gY29tcGFyZUVkZ2VBbmROb2RlKGluZGV4QSwg
aW5kZXhCKSB7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gY29tcGFyZUVkZ2VGaWVsZE5hbWUo
YXNjZW5kaW5nMSwgaW5kZXhBLCBpbmRleEIpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0g
MCkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBzb3J0QnlOb2RlRmllbGQoZmllbGROYW1lMiwg
YXNjZW5kaW5nMiwgaW5kZXhBLCBpbmRleEIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNv
bXBhcmVOb2RlRmllbGQoZmllbGROYW1lMiwgYXNjZW5kaW5nMiwgaW5kZXhBLCBpbmRleEIpOwog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9u
IHNvcnRCeU5vZGVBbmRFZGdlKGluZGV4QSwgaW5kZXhCKSB7Ci0gICAgICAgICAgICB2YXIgcmVz
dWx0ID0gc29ydEJ5Tm9kZUZpZWxkKGZpZWxkTmFtZTEsIGFzY2VuZGluZzEsIGluZGV4QSwgaW5k
ZXhCKTsKKyAgICAgICAgZnVuY3Rpb24gY29tcGFyZU5vZGVBbmRFZGdlKGluZGV4QSwgaW5kZXhC
KSB7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gY29tcGFyZU5vZGVGaWVsZChmaWVsZE5hbWUx
LCBhc2NlbmRpbmcxLCBpbmRleEEsIGluZGV4Qik7CiAgICAgICAgICAgICBpZiAocmVzdWx0ID09
PSAwKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNvcnRCeUVkZ2VGaWVsZE5hbWUoYXNjZW5k
aW5nMiwgaW5kZXhBLCBpbmRleEIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBhcmVF
ZGdlRmllbGROYW1lKGFzY2VuZGluZzIsIGluZGV4QSwgaW5kZXhCKTsKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBzb3J0QnlOb2RlQW5k
Tm9kZShpbmRleEEsIGluZGV4QikgewotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHNvcnRCeU5v
ZGVGaWVsZChmaWVsZE5hbWUxLCBhc2NlbmRpbmcxLCBpbmRleEEsIGluZGV4Qik7CisgICAgICAg
IGZ1bmN0aW9uIGNvbXBhcmVOb2RlQW5kTm9kZShpbmRleEEsIGluZGV4QikgeworICAgICAgICAg
ICAgdmFyIHJlc3VsdCA9IGNvbXBhcmVOb2RlRmllbGQoZmllbGROYW1lMSwgYXNjZW5kaW5nMSwg
aW5kZXhBLCBpbmRleEIpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gMCkKLSAgICAgICAg
ICAgICAgICByZXN1bHQgPSBzb3J0QnlOb2RlRmllbGQoZmllbGROYW1lMiwgYXNjZW5kaW5nMiwg
aW5kZXhBLCBpbmRleEIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBhcmVOb2RlRmll
bGQoZmllbGROYW1lMiwgYXNjZW5kaW5nMiwgaW5kZXhBLCBpbmRleEIpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChmaWVsZE5hbWUxID09PSAi
IWVkZ2VOYW1lIikKLSAgICAgICAgICAgIHRoaXMuX2l0ZXJhdGlvbk9yZGVyLnNvcnRSYW5nZShz
b3J0QnlFZGdlQW5kTm9kZSwgbGVmdEJvdW5kLCByaWdodEJvdW5kLCBjb3VudCk7CisgICAgICAg
ICAgICB0aGlzLl9pdGVyYXRpb25PcmRlci5zb3J0UmFuZ2UoY29tcGFyZUVkZ2VBbmROb2RlLCBs
ZWZ0Qm91bmQsIHJpZ2h0Qm91bmQsIGNvdW50KTsKICAgICAgICAgZWxzZSBpZiAoZmllbGROYW1l
MiA9PT0gIiFlZGdlTmFtZSIpCi0gICAgICAgICAgICB0aGlzLl9pdGVyYXRpb25PcmRlci5zb3J0
UmFuZ2Uoc29ydEJ5Tm9kZUFuZEVkZ2UsIGxlZnRCb3VuZCwgcmlnaHRCb3VuZCwgY291bnQpOwor
ICAgICAgICAgICAgdGhpcy5faXRlcmF0aW9uT3JkZXIuc29ydFJhbmdlKGNvbXBhcmVOb2RlQW5k
RWRnZSwgbGVmdEJvdW5kLCByaWdodEJvdW5kLCBjb3VudCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRoaXMuX2l0ZXJhdGlvbk9yZGVyLnNvcnRSYW5nZShzb3J0QnlOb2RlQW5kTm9kZSwg
bGVmdEJvdW5kLCByaWdodEJvdW5kLCBjb3VudCk7CisgICAgICAgICAgICB0aGlzLl9pdGVyYXRp
b25PcmRlci5zb3J0UmFuZ2UoY29tcGFyZU5vZGVBbmROb2RlLCBsZWZ0Qm91bmQsIHJpZ2h0Qm91
bmQsIGNvdW50KTsKICAgICB9CiB9OwogCkBAIC0xNDMzLDcgKzE0OTksMTUgQEAgV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXIgPSBmdW5jdGlvbihzbmFwc2hvdCwgZmlsdGVy
LCBub2RlSW5kZXhlcykKIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rlc1Byb3ZpZGVyLnBy
b3RvdHlwZSA9IHsKICAgICBfc2VyaWFsaXplOiBmdW5jdGlvbihub2RlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHtpZDogbm9kZS5pZCwgbmFtZTogbm9kZS5uYW1lLCBub2RlSW5kZXg6IG5vZGUu
bm9kZUluZGV4LCByZXRhaW5lZFNpemU6IG5vZGUucmV0YWluZWRTaXplLCBzZWxmU2l6ZTogbm9k
ZS5zZWxmU2l6ZSwgdHlwZTogbm9kZS50eXBlLCBmbGFnczogbm9kZS5mbGFnc307CisgICAgICAg
IHJldHVybiB7CisgICAgICAgICAgICBpZDogbm9kZS5pZCwKKyAgICAgICAgICAgIG5hbWU6IG5v
ZGUubmFtZSwKKyAgICAgICAgICAgIG5vZGVJbmRleDogbm9kZS5ub2RlSW5kZXgsCisgICAgICAg
ICAgICByZXRhaW5lZFNpemU6IG5vZGUucmV0YWluZWRTaXplLAorICAgICAgICAgICAgc2VsZlNp
emU6IG5vZGUuc2VsZlNpemUsCisgICAgICAgICAgICB0eXBlOiBub2RlLnR5cGUsCisgICAgICAg
ICAgICBmbGFnczogbm9kZS5mbGFncworICAgICAgICB9OwogICAgIH0sCiAKICAgICBzb3J0OiBm
dW5jdGlvbihjb21wYXJhdG9yLCBsZWZ0Qm91bmQsIHJpZ2h0Qm91bmQsIGNvdW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWFwUHJvZmlsZXIuY3Nz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWFwUHJvZmlsZXIuY3NzCmlu
ZGV4IDY0M2ZlN2VjYmI1ZGE0YTMwNDg1MWJiNThkNWRhYmU3N2UxMDFhYmMuLjdmMjAyOTZjMWFj
YjkwMTBlZDk3ZTE4YTlmOTU5MGY1NTJiYmFhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaGVhcFByb2ZpbGVyLmNzcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3MKQEAgLTExNSw2ICsxMTUsMTAg
QEAgYm9keS5pbmFjdGl2ZSAuaGVhcC1zbmFwc2hvdC1zaWRlYmFyLXRyZWUtaXRlbS53YWl0LnNl
bGVjdGVkIC5pY29uIHsKICAgICB0ZXh0LWFsaWduOiByaWdodDsKIH0KIAorLmRldGFpbGVkLWhl
YXBzaG90LXZpZXcgLmRhdGEtZ3JpZCB0ZC5kaXN0YW5jZVRvV2luZG93LWNvbHVtbiB7CisgICAg
dGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKIC5kZXRhaWxlZC1oZWFwc2hvdC12aWV3IC5kYXRhLWdy
aWQgc3Bhbi5wZXJjZW50LWNvbHVtbiB7CiAgICAgY29sb3I6IGdyZXk7CiAgICAgd2lkdGg6IDQy
cHg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126087</attachid>
            <date>2012-02-08 08:33:30 -0800</date>
            <delta_ts>2012-02-09 01:42:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78113-20120208203327.patch</filename>
            <type>text/plain</type>
            <size>17791</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBiNTdiNTFiNjI3MzRl
MTk5MDcwMWVjMWI3YjViZTE4M2NhOTE0NS4uNTM1NDM5Yjk1NDljODQyN2YzZGY0MDQ1NjhjMGU2
YjZjZjExZDI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAyLTA4ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBoZWFwIHNuYXBzaG90OiBpbXBsZW1lbnQgRGlzdGFuY2UgY29sdW1uIGluIE9iamVjdCdz
IHJldGFpbmluZyB0cmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzgxMTMKKworICAgICAgICBSZXRhaW5pbmcgcGF0aCBsaXN0IHdhcyByZXBsYWNl
ZCB3aXRoIFJldGFpbmluZyB0cmVlIHNvbWUgdGltZSBhZ28uCisgICAgICAgIEJ1dCBpdCB3YXMg
bm90IHNvIHVzZWZ1bCB3aGVuIHdlIHdhbnQgdG8gdHJhY2sgdGhlIHJldGFpbmluZyBwYXRoIGZy
b20gYW4gb2JqZWN0IHRvIGEgRE9NIFdpbmRvdyBub2RlLgorCisgICAgICAgIERyaXZlIGJ5IGZp
eDogc29ydCBkb2Vzbid0IHdvcmsgaW4gcmV0YWluaW5nIHRyZWUgcGFuZWwuCisgICAgICAgIERy
aXZlIGJ5IGZpeDogc2F2ZS9sb2FkIGNoaWxkIG5vZGVzIGRvZXNuJ3Qgd29yayBmb3IgdGhlIHJl
dGFpbmluZyB0cmVlIHBhbmVsLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5v
ZGVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE9iamVjdE5vZGUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE9iamVjdE5vZGUucHJvdG90eXBlLl9j
aGlsZEhhc2hGb3JFbnRpdHkpOiBzYXZlL2xvYWQgY2hpbGRyZW4gZml4CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90T2JqZWN0Tm9kZS5wcm90b3R5cGUuX2NoaWxkSGFzaEZvck5v
ZGUpOiBzYXZlL2xvYWQgY2hpbGRyZW4gZml4CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90T2JqZWN0Tm9kZS5wcm90b3R5cGUuY29tcGFyYXRvcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90T2JqZWN0Tm9kZS5wcm90b3R5cGUuX2VuaGFuY2VEYXRhKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdENvbnRhaW5tZW50RGF0YUdyaWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJldGFpbm1lbnREYXRhR3JpZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UmV0YWlubWVudERhdGFHcmlkLnByb3RvdHlw
ZS5fc29ydEZpZWxkcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNo
b3QuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnBy
b3RvdHlwZS5zZXQgcmV0YWluZXJJbmRleCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlwZS5zZXQgZWRnZUluZGV4KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlLmdldCBfbm9kZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlw
ZS5nZXQgX2VkZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUucHJv
dG90eXBlLmdldCBkaXN0YW5jZVRvV2luZG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3QucHJvdG90eXBlLl9pbml0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25h
cHNob3QucHJvdG90eXBlLl9idWlsZFJldGFpbmVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90LnByb3RvdHlwZS5fY2FsY3VsYXRlT2JqZWN0VG9XaW5kb3dEaXN0YW5jZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5fYmZzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlc1Byb3ZpZGVyLnByb3RvdHlwZS5f
c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlc1Byb3Zp
ZGVyLnByb3RvdHlwZS5zb3J0LmNvbXBhcmVFZGdlRmllbGROYW1lKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RFZGdlc1Byb3ZpZGVyLnByb3RvdHlwZS5zb3J0LmNvbXBhcmVO
b2RlRmllbGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlk
ZXIucHJvdG90eXBlLnNvcnQuY29tcGFyZUVkZ2VBbmROb2RlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RFZGdlc1Byb3ZpZGVyLnByb3RvdHlwZS5zb3J0LmNvbXBhcmVOb2Rl
QW5kRWRnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RWRnZXNQcm92aWRl
ci5wcm90b3R5cGUuc29ydC5jb21wYXJlTm9kZUFuZE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXIucHJvdG90eXBlLnNvcnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXIucHJvdG90eXBlLl9zZXJpYWxp
emUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaGVhcFByb2ZpbGVyLmNzczoKKyAg
ICAgICAgKC5kZXRhaWxlZC1oZWFwc2hvdC12aWV3IC5kYXRhLWdyaWQgdGQuZGlzdGFuY2VUb1dp
bmRvdy1jb2x1bW4pOgorCiAyMDEyLTAyLTA4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29v
Z2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkbyBub3QgY2xlYXIgZW50aXJlIHRy
ZWUgbWFwIHVwb24gbGFzdCBlbGVtZW50IGRlbGV0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5vZGVzLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90R3JpZE5v
ZGVzLmpzCmluZGV4IDlmYzFlY2U4MzBmN2EzMjg4NDlmOGI2OWIyMmU2YzUyYTdmYWIyNTIuLmY4
ZmFmNTkzYTE3N2YyYjc2MTcxZThkN2FjZTExMzEwODE1ZTJhODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdEdyaWROb2Rlcy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNo
b3RHcmlkTm9kZXMuanMKQEAgLTM3MSw2ICszNzEsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90T2JqZWN0Tm9kZSA9IGZ1bmN0aW9uKHRyZWUsIGlzRnJvbUJhc2VTbmFwc2hvdCwgZWRnZSwg
cAogICAgIHRoaXMuX3JlZmVyZW5jZU5hbWUgPSBlZGdlLm5hbWU7CiAgICAgdGhpcy5fcmVmZXJl
bmNlVHlwZSA9IGVkZ2UudHlwZTsKICAgICB0aGlzLl9wcm9wZXJ0eUFjY2Vzc29yID0gZWRnZS5w
cm9wZXJ0eUFjY2Vzc29yOworICAgIHRoaXMuX2Rpc3RhbmNlVG9XaW5kb3cgPSBlZGdlLmRpc3Rh
bmNlVG9XaW5kb3c7CiAgICAgdGhpcy5zaG93UmV0YWluaW5nRWRnZXMgPSB0cmVlLnNob3dSZXRh
aW5pbmdFZGdlczsKICAgICB0aGlzLl9pc0Zyb21CYXNlU25hcHNob3QgPSBpc0Zyb21CYXNlU25h
cHNob3Q7CiAgICAgdGhpcy5fcHJvdmlkZXIgPSB0aGlzLl9jcmVhdGVQcm92aWRlcighaXNGcm9t
QmFzZVNuYXBzaG90ID8gdHJlZS5zbmFwc2hvdCA6IHRyZWUuYmFzZVNuYXBzaG90LCBlZGdlLm5v
ZGVJbmRleCwgdHJlZSk7CkBAIC00MTUsMTIgKzQxNiwxNCBAQCBXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90T2JqZWN0Tm9kZS5wcm90b3R5cGUgPSB7CiAKICAgICBfY2hpbGRIYXNoRm9yRW50aXR5
OiBmdW5jdGlvbihlZGdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGVkZ2UudHlwZSArICIjIiAr
IGVkZ2UubmFtZTsKKyAgICAgICAgdmFyIHByZWZpeCA9IHRoaXMuc2hvd1JldGFpbmluZ0VkZ2Vz
ID8gZWRnZS5ub2RlLmlkICsgIiMiIDogIiI7CisgICAgICAgIHJldHVybiBwcmVmaXggKyBlZGdl
LnR5cGUgKyAiIyIgKyBlZGdlLm5hbWU7CiAgICAgfSwKIAogICAgIF9jaGlsZEhhc2hGb3JOb2Rl
OiBmdW5jdGlvbihjaGlsZE5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gY2hpbGROb2RlLl9y
ZWZlcmVuY2VUeXBlICsgIiMiICsgY2hpbGROb2RlLl9yZWZlcmVuY2VOYW1lOworICAgICAgICB2
YXIgcHJlZml4ID0gdGhpcy5zaG93UmV0YWluaW5nRWRnZXMgPyBjaGlsZE5vZGUuc25hcHNob3RO
b2RlSWQgKyAiIyIgOiAiIjsKKyAgICAgICAgcmV0dXJuIHByZWZpeCArIGNoaWxkTm9kZS5fcmVm
ZXJlbmNlVHlwZSArICIjIiArIGNoaWxkTm9kZS5fcmVmZXJlbmNlTmFtZTsKICAgICB9LAogCiAg
ICAgY29tcGFyYXRvcjogZnVuY3Rpb24oKQpAQCAtNDMxLDcgKzQzNCw4IEBAIFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RPYmplY3ROb2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIG9iamVj
dDogWyIhZWRnZU5hbWUiLCBzb3J0QXNjZW5kaW5nLCAicmV0YWluZWRTaXplIiwgZmFsc2VdLAog
ICAgICAgICAgICAgY291bnQ6IFsiIWVkZ2VOYW1lIiwgdHJ1ZSwgInJldGFpbmVkU2l6ZSIsIGZh
bHNlXSwKICAgICAgICAgICAgIHNoYWxsb3dTaXplOiBbInNlbGZTaXplIiwgc29ydEFzY2VuZGlu
ZywgIiFlZGdlTmFtZSIsIHRydWVdLAotICAgICAgICAgICAgcmV0YWluZWRTaXplOiBbInJldGFp
bmVkU2l6ZSIsIHNvcnRBc2NlbmRpbmcsICIhZWRnZU5hbWUiLCB0cnVlXQorICAgICAgICAgICAg
cmV0YWluZWRTaXplOiBbInJldGFpbmVkU2l6ZSIsIHNvcnRBc2NlbmRpbmcsICIhZWRnZU5hbWUi
LCB0cnVlXSwKKyAgICAgICAgICAgIGRpc3RhbmNlVG9XaW5kb3c6IFsiZGlzdGFuY2VUb1dpbmRv
dyIsIHNvcnRBc2NlbmRpbmcsICJfbmFtZSIsIHRydWVdCiAgICAgICAgIH1bc29ydENvbHVtbklk
ZW50aWZpZXJdIHx8IFsiIWVkZ2VOYW1lIiwgdHJ1ZSwgInJldGFpbmVkU2l6ZSIsIGZhbHNlXTsK
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RGaWx0ZXJlZE9yZGVyZWRJ
dGVyYXRvci5wcm90b3R5cGUuY3JlYXRlQ29tcGFyYXRvcihzb3J0RmllbGRzKTsKICAgICB9LApA
QCAtNDYwLDYgKzQ2NCw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RPYmplY3ROb2RlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgICAgICBkYXRhWyJvYmplY3QiXS5uYW1lQ2xhc3Mg
PSBuYW1lQ2xhc3M7CiAgICAgICAgIGRhdGFbIm9iamVjdCJdLm5hbWUgPSBuYW1lOworICAgICAg
ICBkYXRhWyJkaXN0YW5jZVRvV2luZG93Il0gPSB0aGlzLl9kaXN0YW5jZVRvV2luZG93OwogICAg
ICAgICByZXR1cm4gZGF0YTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwppbmRleCAwM2Jj
YTQ2ZmJiNTAzMDc4OGIyMDc0YTBhNzIyYmY3NWY0Nzk0YmM5Li4wNWMxYTdkMTQzODBjOTg3YTM4
ZmY1MWEwMmI5MTFmY2RjNWVhN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKQEAgLTExMiw5ICsx
MTIsOSBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3JpZC5wcm90b3R5
cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RTb3J0YWJsZURhdGFHcmlkLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlOwogCi1XZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90Q29udGFpbm1lbnREYXRhR3JpZCA9IGZ1bmN0aW9uKCkKK1dl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RDb250YWlubWVudERhdGFHcmlkID0gZnVuY3Rpb24oY29s
dW1ucykKIHsKLSAgICB2YXIgY29sdW1ucyA9IHsKKyAgICBjb2x1bW5zID0gY29sdW1ucyB8fCB7
CiAgICAgICAgIG9iamVjdDogeyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPYmplY3Qi
KSwgZGlzY2xvc3VyZTogdHJ1ZSwgc29ydGFibGU6IHRydWUgfSwKICAgICAgICAgc2hhbGxvd1Np
emU6IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hhbGxvdyBTaXplIiksIHdpZHRo
OiAiMTIwcHgiLCBzb3J0YWJsZTogdHJ1ZSB9LAogICAgICAgICByZXRhaW5lZFNpemU6IHsgdGl0
bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmV0YWluZWQgU2l6ZSIpLCB3aWR0aDogIjEyMHB4
Iiwgc29ydGFibGU6IHRydWUsIHNvcnQ6ICJkZXNjZW5kaW5nIiB9CkBAIC0xODMsMTAgKzE4Mywy
NyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q29udGFpbm1lbnREYXRhR3JpZC5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLgogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJl
dGFpbm1lbnREYXRhR3JpZCA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLnNob3dSZXRhaW5pbmdF
ZGdlcyA9IHRydWU7Ci0gICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdENvbnRhaW5tZW50RGF0
YUdyaWQuY2FsbCh0aGlzKTsKKyAgICB2YXIgY29sdW1ucyA9IHsKKyAgICAgICAgb2JqZWN0OiB7
IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9iamVjdCIpLCBkaXNjbG9zdXJlOiB0cnVl
LCBzb3J0YWJsZTogdHJ1ZSB9LAorICAgICAgICBzaGFsbG93U2l6ZTogeyB0aXRsZTogV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTaGFsbG93IFNpemUiKSwgd2lkdGg6ICIxMjBweCIsIHNvcnRhYmxl
OiB0cnVlIH0sCisgICAgICAgIHJldGFpbmVkU2l6ZTogeyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJSZXRhaW5lZCBTaXplIiksIHdpZHRoOiAiMTIwcHgiLCBzb3J0YWJsZTogdHJ1ZSB9
LAorICAgICAgICBkaXN0YW5jZVRvV2luZG93OiB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkRpc3RhbmNlIiksIHdpZHRoOiAiODBweCIsIHNvcnRhYmxlOiB0cnVlLCBzb3J0OiAiYXNj
ZW5kaW5nIiB9CisgICAgfTsKKyAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q29udGFpbm1l
bnREYXRhR3JpZC5jYWxsKHRoaXMsIGNvbHVtbnMpOwogfQogCiBXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90UmV0YWlubWVudERhdGFHcmlkLnByb3RvdHlwZSA9IHsKKyAgICBfc29ydEZpZWxkczog
ZnVuY3Rpb24oc29ydENvbHVtbiwgc29ydEFzY2VuZGluZykKKyAgICB7CisgICAgICAgIHJldHVy
biB7CisgICAgICAgICAgICBvYmplY3Q6IFsiX25hbWUiLCBzb3J0QXNjZW5kaW5nLCAiX2NvdW50
IiwgZmFsc2VdLAorICAgICAgICAgICAgY291bnQ6IFsiX2NvdW50Iiwgc29ydEFzY2VuZGluZywg
Il9uYW1lIiwgdHJ1ZV0sCisgICAgICAgICAgICBzaGFsbG93U2l6ZTogWyJfc2hhbGxvd1NpemUi
LCBzb3J0QXNjZW5kaW5nLCAiX25hbWUiLCB0cnVlXSwKKyAgICAgICAgICAgIHJldGFpbmVkU2l6
ZTogWyJfcmV0YWluZWRTaXplIiwgc29ydEFzY2VuZGluZywgIl9uYW1lIiwgdHJ1ZV0sCisgICAg
ICAgICAgICBkaXN0YW5jZVRvV2luZG93OiBbIl9kaXN0YW5jZVRvV2luZG93Iiwgc29ydEFzY2Vu
ZGluZywgIl9uYW1lIiwgdHJ1ZV0KKyAgICAgICAgfVtzb3J0Q29sdW1uXTsKKyAgICB9LAorCiAg
ICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRyZW4o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNu
YXBzaG90LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNo
b3QuanMKaW5kZXggMDk5NmFkYzRkOWYxZDAwYWVlZDNkZmEwNjBiZjNkZTIzMDRmY2Q1NS4uMDg0
YWQwZTI4ZjEzZjQzMjEzODk4MDMyOWE2OGMwZjg2NjI1NzhlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKQEAgLTQzNiwxNyAr
NDM2LDMyIEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBl
ID0gewogICAgIHsKICAgICAgICAgaWYgKG5ld0luZGV4ICE9PSB0aGlzLl9yZXRhaW5lckluZGV4
KSB7CiAgICAgICAgICAgICB0aGlzLl9yZXRhaW5lckluZGV4ID0gbmV3SW5kZXg7Ci0gICAgICAg
ICAgICB0aGlzLl9zZXR1cEVkZ2UoKTsKKyAgICAgICAgICAgIHRoaXMuZWRnZUluZGV4ID0gbmV3
SW5kZXg7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgX3NldHVwRWRnZTogZnVuY3Rpb24oKQor
ICAgIHNldCBlZGdlSW5kZXgoZWRnZUluZGV4KQogICAgIHsKLSAgICAgICAgdmFyIGdsb2JhbEVk
Z2VJbmRleCA9IHRoaXMuX3JldGFpbmVycy5pdGVtKHRoaXMuX3JldGFpbmVySW5kZXgpOwotICAg
ICAgICB0aGlzLl9ub2RlSW5kZXggPSB0aGlzLl9zbmFwc2hvdC5fZmluZE5lYXJlc3ROb2RlSW5k
ZXgoZ2xvYmFsRWRnZUluZGV4KTsKLSAgICAgICAgdGhpcy5fbm9kZSA9IG5ldyBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90Tm9kZSh0aGlzLl9zbmFwc2hvdCwgdGhpcy5fbm9kZUluZGV4KTsKLSAg
ICAgICAgdmFyIGVkZ2VJbmRleCA9IGdsb2JhbEVkZ2VJbmRleCAtIHRoaXMuX25vZGVJbmRleCAt
IHRoaXMuX3NuYXBzaG90Ll9maXJzdEVkZ2VPZmZzZXQ7Ci0gICAgICAgIHRoaXMuX2VkZ2UgPSBu
ZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2UodGhpcy5fc25hcHNob3QsIHRoaXMuX25v
ZGUucmF3RWRnZXMsIGVkZ2VJbmRleCk7CisgICAgICAgIHRoaXMuX2dsb2JhbEVkZ2VJbmRleCA9
IHRoaXMuX3JldGFpbmVycy5pdGVtKGVkZ2VJbmRleCk7CisgICAgICAgIHRoaXMuX25vZGVJbmRl
eCA9IHRoaXMuX3NuYXBzaG90Ll9maW5kTmVhcmVzdE5vZGVJbmRleCh0aGlzLl9nbG9iYWxFZGdl
SW5kZXgpOworICAgICAgICBkZWxldGUgdGhpcy5fZWRnZUluc3RhbmNlOworICAgICAgICBkZWxl
dGUgdGhpcy5fbm9kZUluc3RhbmNlOworICAgIH0sCisKKyAgICBnZXQgX25vZGUoKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLl9ub2RlSW5zdGFuY2UpCisgICAgICAgICAgICB0aGlzLl9ub2Rl
SW5zdGFuY2UgPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUodGhpcy5fc25hcHNo
b3QsIHRoaXMuX25vZGVJbmRleCk7CisgICAgICAgIHJldHVybiB0aGlzLl9ub2RlSW5zdGFuY2U7
CisgICAgfSwKKworICAgIGdldCBfZWRnZSgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Vk
Z2VJbnN0YW5jZSkgeworICAgICAgICAgICAgdmFyIGVkZ2VJbmRleCA9IHRoaXMuX2dsb2JhbEVk
Z2VJbmRleCAtIHRoaXMuX25vZGVJbmRleCAtIHRoaXMuX3NuYXBzaG90Ll9maXJzdEVkZ2VPZmZz
ZXQ7CisgICAgICAgICAgICB0aGlzLl9lZGdlSW5zdGFuY2UgPSBuZXcgV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdEVkZ2UodGhpcy5fc25hcHNob3QsIHRoaXMuX25vZGUucmF3RWRnZXMsIGVkZ2VJ
bmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX2VkZ2VJbnN0YW5jZTsKICAg
ICB9LAogCiAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkKQEAgLTUxMSw2ICs1MjYsMTEgQEAgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
ISEoZmxhZ3MgJiB0aGlzLl9zbmFwc2hvdC5fbm9kZUZsYWdzLmNhbkJlUXVlcmllZCk7CiAgICAg
fSwKIAorICAgIGdldCBkaXN0YW5jZVRvV2luZG93KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9zbmFwc2hvdC5fZGlzdGFuY2VzVG9XaW5kb3dbdGhpcy5ub2RlSW5kZXhdOworICAgIH0s
CisKICAgICBnZXQgY2xhc3NOYW1lKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAodGhpcy50eXBl
KSB7CkBAIC03MzEsNiArNzUxLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICBkZXRhY2hlZERPTVRyZWVOb2RlOiAyLAogICAgICAgICB9Owog
CisgICAgICAgIHRoaXMuX2Rpc3RhbmNlc1RvV2luZG93ID0gW107CiAgICAgICAgIHRoaXMuX21h
cmtJbnZpc2libGVFZGdlcygpOwogICAgIH0sCiAKQEAgLTkxNyw2ICs5MzgsNDkgQEAgV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICBk
YXRhQ2FsbGJhY2soaW5kZXhDYWxsYmFjayhyZXRJbmRleCksIG5vZGUubm9kZUluZGV4ICsgdGhp
cy5fZmlyc3RFZGdlT2Zmc2V0ICsgZWRnZS5lZGdlSW5kZXgpOwogICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2NhbGN1bGF0ZU9i
amVjdFRvV2luZG93RGlzdGFuY2UoKTsKKyAgICB9LAorCisgICAgX2NhbGN1bGF0ZU9iamVjdFRv
V2luZG93RGlzdGFuY2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Rpc3RhbmNl
c1RvV2luZG93ID0gbmV3IEFycmF5KHRoaXMubm9kZUNvdW50KTsKKworICAgICAgICAvLyBiZnMg
Zm9yIERPTVdpbmRvdyByb290cworICAgICAgICB2YXIgbGlzdCA9IFtdOworICAgICAgICBmb3Ig
KHZhciBpdGVyID0gdGhpcy5yb290Tm9kZS5lZGdlczsgaXRlci5oYXNOZXh0KCk7IGl0ZXIubmV4
dCgpKSB7CisgICAgICAgICAgICBpZiAoaXRlci5lZGdlLm5vZGUuaXNET01XaW5kb3cpIHsKKyAg
ICAgICAgICAgICAgICBsaXN0LnB1c2goaXRlci5lZGdlLm5vZGUpOworICAgICAgICAgICAgICAg
IHRoaXMuX2Rpc3RhbmNlc1RvV2luZG93W2l0ZXIuZWRnZS5ub2RlLm5vZGVJbmRleF0gPSAwOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRoaXMuX2JmcyhsaXN0KTsKKworICAg
ICAgICAvLyBiZnMgZm9yIHJvb3QKKyAgICAgICAgbGlzdCA9IFtdOworICAgICAgICBsaXN0LnB1
c2godGhpcy5yb290Tm9kZSk7CisgICAgICAgIHRoaXMuX2Rpc3RhbmNlc1RvV2luZG93W3RoaXMu
cm9vdE5vZGUubm9kZUluZGV4XSA9IDA7CisgICAgICAgIHRoaXMuX2JmcyhsaXN0KTsKKyAgICB9
LAorCisgICAgX2JmczogZnVuY3Rpb24obGlzdCkKKyAgICB7CisgICAgICAgIHZhciBpbmRleCA9
IDA7CisgICAgICAgIHdoaWxlIChpbmRleCA8IGxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICB2
YXIgbm9kZSA9IGxpc3RbaW5kZXgrK107IC8vIHNoaWZ0IGdlbmVyYXRlcyB0b28gbXVjaCBnYXJi
YWdlLgorICAgICAgICAgICAgaWYgKGluZGV4ID4gMTAwMDAwKSB7CisgICAgICAgICAgICAgICAg
bGlzdCA9IGxpc3Quc2xpY2UoaW5kZXgpOworICAgICAgICAgICAgICAgIGluZGV4ID0gMDsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBkaXN0YW5jZSA9IHRoaXMuX2Rpc3RhbmNlc1Rv
V2luZG93W25vZGUubm9kZUluZGV4XSArIDE7CisgICAgICAgICAgICBmb3IgKHZhciBpdGVyID0g
bm9kZS5lZGdlczsgaXRlci5oYXNOZXh0KCk7IGl0ZXIubmV4dCgpKSB7CisgICAgICAgICAgICAg
ICAgdmFyIGVkZ2UgPSBpdGVyLmVkZ2U7CisgICAgICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9
IGVkZ2Uubm9kZTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2Rpc3RhbmNlc1Rv
V2luZG93W2NoaWxkTm9kZS5ub2RlSW5kZXhdICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgdGhpcy5fZGlzdGFuY2VzVG9XaW5k
b3dbY2hpbGROb2RlLm5vZGVJbmRleF0gPSBkaXN0YW5jZTsKKyAgICAgICAgICAgICAgICBsaXN0
LnB1c2goY2hpbGROb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0sCiAKICAg
ICBfYnVpbGRBZ2dyZWdhdGVzOiBmdW5jdGlvbihmaWx0ZXIpCkBAIC0xMzUyLDcgKzE0MTYsMTQg
QEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXIgPSBmdW5jdGlvbihzbmFw
c2hvdCwgbm9kZUluZGV4LCBmaWx0ZXIsIGkKIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdl
c1Byb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICBfc2VyaWFsaXplOiBmdW5jdGlvbihlZGdlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHtuYW1lOiBlZGdlLm5hbWUsIHByb3BlcnR5QWNjZXNzb3I6
IGVkZ2UudG9TdHJpbmcoKSwgbm9kZTogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJv
dmlkZXIucHJvdG90eXBlLl9zZXJpYWxpemUoZWRnZS5ub2RlKSwgbm9kZUluZGV4OiBlZGdlLm5v
ZGVJbmRleCwgdHlwZTogZWRnZS50eXBlfTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
IG5hbWU6IGVkZ2UubmFtZSwKKyAgICAgICAgICAgIHByb3BlcnR5QWNjZXNzb3I6IGVkZ2UudG9T
dHJpbmcoKSwKKyAgICAgICAgICAgIG5vZGU6IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rl
c1Byb3ZpZGVyLnByb3RvdHlwZS5fc2VyaWFsaXplKGVkZ2Uubm9kZSksCisgICAgICAgICAgICBu
b2RlSW5kZXg6IGVkZ2Uubm9kZUluZGV4LAorICAgICAgICAgICAgdHlwZTogZWRnZS50eXBlLAor
ICAgICAgICAgICAgZGlzdGFuY2VUb1dpbmRvdzogZWRnZS5ub2RlLmRpc3RhbmNlVG9XaW5kb3cK
KyAgICAgICAgfTsKICAgICB9LAogCiAgICAgc29ydDogZnVuY3Rpb24oY29tcGFyYXRvciwgbGVm
dEJvdW5kLCByaWdodEJvdW5kLCBjb3VudCkKQEAgLTEzNjcsNyArMTQzOCw3IEBAIFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RFZGdlc1Byb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IG5vZGVBID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2RlKHRoaXMuc25hcHNob3Qp
OwogICAgICAgICB2YXIgbm9kZUIgPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUo
dGhpcy5zbmFwc2hvdCk7CiAKLSAgICAgICAgZnVuY3Rpb24gc29ydEJ5RWRnZUZpZWxkTmFtZShh
c2NlbmRpbmcsIGluZGV4QSwgaW5kZXhCKQorICAgICAgICBmdW5jdGlvbiBjb21wYXJlRWRnZUZp
ZWxkTmFtZShhc2NlbmRpbmcsIGluZGV4QSwgaW5kZXhCKQogICAgICAgICB7CiAgICAgICAgICAg
ICBlZGdlQS5lZGdlSW5kZXggPSBpbmRleEE7CiAgICAgICAgICAgICBlZGdlQi5lZGdlSW5kZXgg
PSBpbmRleEI7CkBAIC0xMzgwLDQ1ICsxNDUxLDQ3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3RFZGdlc1Byb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiBhc2NlbmRp
bmcgPyByZXN1bHQgOiAtcmVzdWx0OwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gc29y
dEJ5Tm9kZUZpZWxkKGZpZWxkTmFtZSwgYXNjZW5kaW5nLCBpbmRleEEsIGluZGV4QikKKyAgICAg
ICAgZnVuY3Rpb24gY29tcGFyZU5vZGVGaWVsZChmaWVsZE5hbWUsIGFzY2VuZGluZywgaW5kZXhB
LCBpbmRleEIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGVkZ2VBLmVkZ2VJbmRleCA9IGluZGV4
QTsKLSAgICAgICAgICAgIGVkZ2VCLmVkZ2VJbmRleCA9IGluZGV4QjsKICAgICAgICAgICAgIG5v
ZGVBLm5vZGVJbmRleCA9IGVkZ2VBLm5vZGVJbmRleDsKLSAgICAgICAgICAgIG5vZGVCLm5vZGVJ
bmRleCA9IGVkZ2VCLm5vZGVJbmRleDsKICAgICAgICAgICAgIHZhciB2YWx1ZUEgPSBub2RlQVtm
aWVsZE5hbWVdOworCisgICAgICAgICAgICBlZGdlQi5lZGdlSW5kZXggPSBpbmRleEI7CisgICAg
ICAgICAgICBub2RlQi5ub2RlSW5kZXggPSBlZGdlQi5ub2RlSW5kZXg7CiAgICAgICAgICAgICB2
YXIgdmFsdWVCID0gbm9kZUJbZmllbGROYW1lXTsKKwogICAgICAgICAgICAgdmFyIHJlc3VsdCA9
IHZhbHVlQSA8IHZhbHVlQiA/IC0xIDogKHZhbHVlQSA+IHZhbHVlQiA/IDEgOiAwKTsKICAgICAg
ICAgICAgIHJldHVybiBhc2NlbmRpbmcgPyByZXN1bHQgOiAtcmVzdWx0OwogICAgICAgICB9CiAK
LSAgICAgICAgZnVuY3Rpb24gc29ydEJ5RWRnZUFuZE5vZGUoaW5kZXhBLCBpbmRleEIpIHsKLSAg
ICAgICAgICAgIHZhciByZXN1bHQgPSBzb3J0QnlFZGdlRmllbGROYW1lKGFzY2VuZGluZzEsIGlu
ZGV4QSwgaW5kZXhCKTsKKyAgICAgICAgZnVuY3Rpb24gY29tcGFyZUVkZ2VBbmROb2RlKGluZGV4
QSwgaW5kZXhCKSB7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gY29tcGFyZUVkZ2VGaWVsZE5h
bWUoYXNjZW5kaW5nMSwgaW5kZXhBLCBpbmRleEIpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCA9
PT0gMCkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBzb3J0QnlOb2RlRmllbGQoZmllbGROYW1l
MiwgYXNjZW5kaW5nMiwgaW5kZXhBLCBpbmRleEIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9
IGNvbXBhcmVOb2RlRmllbGQoZmllbGROYW1lMiwgYXNjZW5kaW5nMiwgaW5kZXhBLCBpbmRleEIp
OwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0
aW9uIHNvcnRCeU5vZGVBbmRFZGdlKGluZGV4QSwgaW5kZXhCKSB7Ci0gICAgICAgICAgICB2YXIg
cmVzdWx0ID0gc29ydEJ5Tm9kZUZpZWxkKGZpZWxkTmFtZTEsIGFzY2VuZGluZzEsIGluZGV4QSwg
aW5kZXhCKTsKKyAgICAgICAgZnVuY3Rpb24gY29tcGFyZU5vZGVBbmRFZGdlKGluZGV4QSwgaW5k
ZXhCKSB7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gY29tcGFyZU5vZGVGaWVsZChmaWVsZE5h
bWUxLCBhc2NlbmRpbmcxLCBpbmRleEEsIGluZGV4Qik7CiAgICAgICAgICAgICBpZiAocmVzdWx0
ID09PSAwKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNvcnRCeUVkZ2VGaWVsZE5hbWUoYXNj
ZW5kaW5nMiwgaW5kZXhBLCBpbmRleEIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBh
cmVFZGdlRmllbGROYW1lKGFzY2VuZGluZzIsIGluZGV4QSwgaW5kZXhCKTsKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBzb3J0QnlOb2Rl
QW5kTm9kZShpbmRleEEsIGluZGV4QikgewotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHNvcnRC
eU5vZGVGaWVsZChmaWVsZE5hbWUxLCBhc2NlbmRpbmcxLCBpbmRleEEsIGluZGV4Qik7CisgICAg
ICAgIGZ1bmN0aW9uIGNvbXBhcmVOb2RlQW5kTm9kZShpbmRleEEsIGluZGV4QikgeworICAgICAg
ICAgICAgdmFyIHJlc3VsdCA9IGNvbXBhcmVOb2RlRmllbGQoZmllbGROYW1lMSwgYXNjZW5kaW5n
MSwgaW5kZXhBLCBpbmRleEIpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gMCkKLSAgICAg
ICAgICAgICAgICByZXN1bHQgPSBzb3J0QnlOb2RlRmllbGQoZmllbGROYW1lMiwgYXNjZW5kaW5n
MiwgaW5kZXhBLCBpbmRleEIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBhcmVOb2Rl
RmllbGQoZmllbGROYW1lMiwgYXNjZW5kaW5nMiwgaW5kZXhBLCBpbmRleEIpOwogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChmaWVsZE5hbWUxID09
PSAiIWVkZ2VOYW1lIikKLSAgICAgICAgICAgIHRoaXMuX2l0ZXJhdGlvbk9yZGVyLnNvcnRSYW5n
ZShzb3J0QnlFZGdlQW5kTm9kZSwgbGVmdEJvdW5kLCByaWdodEJvdW5kLCBjb3VudCk7CisgICAg
ICAgICAgICB0aGlzLl9pdGVyYXRpb25PcmRlci5zb3J0UmFuZ2UoY29tcGFyZUVkZ2VBbmROb2Rl
LCBsZWZ0Qm91bmQsIHJpZ2h0Qm91bmQsIGNvdW50KTsKICAgICAgICAgZWxzZSBpZiAoZmllbGRO
YW1lMiA9PT0gIiFlZGdlTmFtZSIpCi0gICAgICAgICAgICB0aGlzLl9pdGVyYXRpb25PcmRlci5z
b3J0UmFuZ2Uoc29ydEJ5Tm9kZUFuZEVkZ2UsIGxlZnRCb3VuZCwgcmlnaHRCb3VuZCwgY291bnQp
OworICAgICAgICAgICAgdGhpcy5faXRlcmF0aW9uT3JkZXIuc29ydFJhbmdlKGNvbXBhcmVOb2Rl
QW5kRWRnZSwgbGVmdEJvdW5kLCByaWdodEJvdW5kLCBjb3VudCk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHRoaXMuX2l0ZXJhdGlvbk9yZGVyLnNvcnRSYW5nZShzb3J0QnlOb2RlQW5kTm9k
ZSwgbGVmdEJvdW5kLCByaWdodEJvdW5kLCBjb3VudCk7CisgICAgICAgICAgICB0aGlzLl9pdGVy
YXRpb25PcmRlci5zb3J0UmFuZ2UoY29tcGFyZU5vZGVBbmROb2RlLCBsZWZ0Qm91bmQsIHJpZ2h0
Qm91bmQsIGNvdW50KTsKICAgICB9CiB9OwogCkBAIC0xNDMzLDcgKzE1MDYsMTUgQEAgV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXIgPSBmdW5jdGlvbihzbmFwc2hvdCwgZmls
dGVyLCBub2RlSW5kZXhlcykKIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rlc1Byb3ZpZGVy
LnByb3RvdHlwZSA9IHsKICAgICBfc2VyaWFsaXplOiBmdW5jdGlvbihub2RlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHtpZDogbm9kZS5pZCwgbmFtZTogbm9kZS5uYW1lLCBub2RlSW5kZXg6IG5v
ZGUubm9kZUluZGV4LCByZXRhaW5lZFNpemU6IG5vZGUucmV0YWluZWRTaXplLCBzZWxmU2l6ZTog
bm9kZS5zZWxmU2l6ZSwgdHlwZTogbm9kZS50eXBlLCBmbGFnczogbm9kZS5mbGFnc307CisgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICBpZDogbm9kZS5pZCwKKyAgICAgICAgICAgIG5hbWU6
IG5vZGUubmFtZSwKKyAgICAgICAgICAgIG5vZGVJbmRleDogbm9kZS5ub2RlSW5kZXgsCisgICAg
ICAgICAgICByZXRhaW5lZFNpemU6IG5vZGUucmV0YWluZWRTaXplLAorICAgICAgICAgICAgc2Vs
ZlNpemU6IG5vZGUuc2VsZlNpemUsCisgICAgICAgICAgICB0eXBlOiBub2RlLnR5cGUsCisgICAg
ICAgICAgICBmbGFnczogbm9kZS5mbGFncworICAgICAgICB9OwogICAgIH0sCiAKICAgICBzb3J0
OiBmdW5jdGlvbihjb21wYXJhdG9yLCBsZWZ0Qm91bmQsIHJpZ2h0Qm91bmQsIGNvdW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWFwUHJvZmlsZXIu
Y3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWFwUHJvZmlsZXIuY3Nz
CmluZGV4IDY0M2ZlN2VjYmI1ZGE0YTMwNDg1MWJiNThkNWRhYmU3N2UxMDFhYmMuLjdmMjAyOTZj
MWFjYjkwMTBlZDk3ZTE4YTlmOTU5MGY1NTJiYmFhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVhcFByb2ZpbGVyLmNzcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3MKQEAgLTExNSw2ICsxMTUs
MTAgQEAgYm9keS5pbmFjdGl2ZSAuaGVhcC1zbmFwc2hvdC1zaWRlYmFyLXRyZWUtaXRlbS53YWl0
LnNlbGVjdGVkIC5pY29uIHsKICAgICB0ZXh0LWFsaWduOiByaWdodDsKIH0KIAorLmRldGFpbGVk
LWhlYXBzaG90LXZpZXcgLmRhdGEtZ3JpZCB0ZC5kaXN0YW5jZVRvV2luZG93LWNvbHVtbiB7Cisg
ICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKIC5kZXRhaWxlZC1oZWFwc2hvdC12aWV3IC5kYXRh
LWdyaWQgc3Bhbi5wZXJjZW50LWNvbHVtbiB7CiAgICAgY29sb3I6IGdyZXk7CiAgICAgd2lkdGg6
IDQycHg7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>