<?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>61282</bug_id>
          
          <creation_ts>2011-05-23 06:55:52 -0700</creation_ts>
          <short_desc>Web Inspector: extreme lagging when searching for &quot;img[src*=&quot;</short_desc>
          <delta_ts>2011-05-25 07:05:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</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>407940</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-23 06:55:52 -0700</bug_when>
    <thetext>1. Open Web Inspector (tab &apos;elements&apos;) on any page
2. In the search field, type &quot;img[src*=abc]
3. Notice that after typing the *, the devtools hang for about a minute

Upstreaming http://code.google.com/p/chromium/issues/detail?id=80513

The underlying cause is the presence of AdBlock which inserts extremely long CSS style blocks into &lt;head&gt;, so this issue will occur on any page with long &lt;style&gt; or &lt;script&gt; blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407979</commentid>
    <comment_count>1</comment_count>
      <attachid>94429</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-23 08:09:13 -0700</bug_when>
    <thetext>Created attachment 94429
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407995</commentid>
    <comment_count>2</comment_count>
      <attachid>94431</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-23 08:56:57 -0700</bug_when>
    <thetext>Created attachment 94431
[PATCH] Fixed search result highlights for dynamic nodes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408006</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-23 09:12:31 -0700</bug_when>
    <thetext>Another case exhibiting the lag issue:

1. Navigate to google.com
2. Open inspector using Ctrl+Shift+I
3. Go to Elements tab(if not there) and type google search
4. Hit enter and hold for 5 seconds. Inspector hangs and doesn&apos;t respond anymore.

Upstreaming http://code.google.com/p/chromium/issues/detail?id=82295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408789</commentid>
    <comment_count>4</comment_count>
      <attachid>94431</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-24 05:58:58 -0700</bug_when>
    <thetext>Comment on attachment 94431
[PATCH] Fixed search result highlights for dynamic nodes

Would be great if we could get rid of the node highlight delta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409616</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-05-25 07:05:08 -0700</bug_when>
    <thetext>Committed r87294: &lt;http://trac.webkit.org/changeset/87294&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94429</attachid>
            <date>2011-05-23 08:09:13 -0700</date>
            <delta_ts>2011-05-23 08:56:57 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>elementstreedom.patch</filename>
            <type>text/plain</type>
            <size>24341</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGY2NjcwZDcxNmM5YTM4NWFkNzhmYzA1YjQ5YWUyNWVmYWZhYTM1ODkKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gTWF5IDIz
IDE3OjE4OjMwIDIwMTEgKzA0MDAKCiAgICBNYWtlIHVzZSBvZiBET00sIG5vdCBpbm5lckhUTUwK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNDNjNmQwYS4uNjdjYWFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDExLTA1LTIzICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZXh0cmVtZSBsYWdnaW5nIHdoZW4gc2VhcmNoaW5nIGZvciAiaW1nW3NyYyo9Igor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyODIKKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZzogRWxlbWVudHNU
cmVlRWxlbWVudCBET00gaXMgbWFuaXB1bGF0ZWQgZGlyZWN0bHkKKyAgICAgICAgd2hlbiBidWls
dCBhbmQgc2VhcmNoLWhpZ2hsaWdodGVkLCByYXRoZXIgdGhhbiB0aHJvdWdoIGlubmVySFRNTC4K
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3ludGF4SGlnaGxpZ2h0ZXIuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3ludGF4SGlnaGxpZ2h0ZXIpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZS5jcmVhdGVTcGFuKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX2hpZGVTZWFyY2hIaWdobGln
aHRzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUu
aGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuaGlkZVNlYXJjaEhpZ2hsaWdodHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVTZWFyY2hIaWdo
bGlnaHQudXBkYXRlRW50cnlTaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlU2VhcmNoSGlnaGxpZ2h0LnVwZGF0ZUVudHJ5SGlk
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUu
X3VwZGF0ZVNlYXJjaEhpZ2hsaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuX2FkZE5ld0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUudXBkYXRlVGl0bGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9idWlsZEF0dHJp
YnV0ZURPTSk6CisgICAgICAgICgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdXRp
bGl0aWVzLmpzOgorICAgICAgICAoKToKKwogMjAxMS0wNS0yMyAgQW5kcmV5IEtvc3lha292ICA8
Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRz
a3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5
bnRheEhpZ2hsaWdodGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01TeW50YXhIaWdobGlnaHRlci5qcwppbmRleCBjZjViOWM4Li5mNzk0OWE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5bnRheEhpZ2hsaWdodGVy
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3ludGF4SGln
aGxpZ2h0ZXIuanMKQEAgLTI4LDkgKzI4LDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdl
Ykluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlciA9IGZ1bmN0aW9uKG1pbWVUeXBlKQorV2Vi
SW5zcGVjdG9yLkRPTVN5bnRheEhpZ2hsaWdodGVyID0gZnVuY3Rpb24obWltZVR5cGUsIHN0cmlw
RXh0cmFXaGl0ZXNwYWNlKQogewogICAgIHRoaXMuX3Rva2VuaXplciA9IFdlYkluc3BlY3Rvci5T
b3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIobWltZVR5
cGUpOworICAgIHRoaXMuX3N0cmlwRXh0cmFXaGl0ZXNwYWNlID0gc3RyaXBFeHRyYVdoaXRlc3Bh
Y2U7CiB9CiAKIFdlYkluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUgPSB7
CkBAIC0zOCw2ICszOSw4IEBAIFdlYkluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlci5wcm90
b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKICAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAid2Via2l0LSIgKyBjbGFzc05h
bWU7CisgICAgICAgIGlmICh0aGlzLl9zdHJpcEV4dHJhV2hpdGVzcGFjZSkKKyAgICAgICAgICAg
IGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL15bXG5ccl0qLywgIiIpLnJlcGxhY2UoL1xzKiQv
LCAiIik7CiAgICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
Y29udGVudCkpOwogICAgICAgICByZXR1cm4gc3BhbjsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDYyNTNh
MTEuLjc2NTU2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTM5Myw3ICszOTMsNyBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3Nl
YXJjaFJlc3VsdHNbaV07CiAgICAgICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVu
dCkKLSAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKG51
bGwpOworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50LmhpZGVTZWFyY2hIaWdobGlnaHRzKCk7
CiAgICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggNDM0NWU5Ny4uZjA2
MDFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMzI5LDE2ICszMjksNTYgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQuRWRpdFRhZ0JsYWNrbGlzdCA9IFsKIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICBoaWdobGlnaHRTZWFyY2hS
ZXN1bHRzOiBmdW5jdGlvbihzZWFyY2hRdWVyeSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9z
ZWFyY2hRdWVyeSA9PT0gc2VhcmNoUXVlcnkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKHNlYXJjaFF1ZXJ5KQotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlYXJjaEhpZ2hs
aWdodGVkSFRNTDsgLy8gQSBuZXcgc2VhcmNoIHF1ZXJ5IChub3QgY2xlYXItdGhlLWN1cnJlbnQt
aGlnaGxpZ2h0aW5nKS4KKyAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFF1ZXJ5ICE9PSBzZWFyY2hR
dWVyeSkgeworICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoSGlnaGxpZ2h0KGZhbHNlKTsK
KyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9oaWdobGlnaHRSZXN1bHQ7IC8vIEEgbmV3IHNlYXJj
aCBxdWVyeS4KKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3NlYXJjaFF1ZXJ5ID0gc2VhcmNo
UXVlcnk7CiAgICAgICAgIHRoaXMudXBkYXRlVGl0bGUodHJ1ZSk7CiAgICAgfSwKIAorICAgIGhp
ZGVTZWFyY2hIaWdobGlnaHRzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl91cGRh
dGVTZWFyY2hIaWdobGlnaHQoZmFsc2UpOworICAgIH0sCisKKyAgICBfdXBkYXRlU2VhcmNoSGln
aGxpZ2h0OiBmdW5jdGlvbihzaG93KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9oaWdobGln
aHRSZXN1bHQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24gdXBkYXRl
RW50cnlTaG93KGVudHJ5KQorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LnR5
cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlICJhZGRlZCI6CisgICAgICAgICAgICAgICAgICAg
IGVudHJ5LnBhcmVudC5pbnNlcnRCZWZvcmUoZW50cnkubm9kZSwgZW50cnkubmV4dFNpYmxpbmcp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFu
Z2VkIjoKKyAgICAgICAgICAgICAgICAgICAgZW50cnkubm9kZS50ZXh0Q29udGVudCA9IGVudHJ5
Lm5ld1RleHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdXBkYXRlRW50cnlIaWRlKGVudHJ5KQorICAgICAg
ICB7CisgICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LnR5cGUpIHsKKyAgICAgICAgICAgICAgICBj
YXNlICJhZGRlZCI6CisgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS5ub2RlLnBhcmVudEVs
ZW1lbnQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5ub2RlLnBhcmVudEVsZW1lbnQu
cmVtb3ZlQ2hpbGQoZW50cnkubm9kZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIGNhc2UgImNoYW5nZWQiOgorICAgICAgICAgICAgICAgICAgICBlbnRyeS5u
b2RlLnRleHRDb250ZW50ID0gZW50cnkub2xkVGV4dDsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2YXIgdXBkYXRlciA9IHNo
b3cgPyB1cGRhdGVFbnRyeVNob3cgOiB1cGRhdGVFbnRyeUhpZGU7CisKKyAgICAgICAgZm9yICh2
YXIgaSA9IDAsIHNpemUgPSB0aGlzLl9oaWdobGlnaHRSZXN1bHQubGVuZ3RoOyBpIDwgc2l6ZTsg
KytpKQorICAgICAgICAgICAgdXBkYXRlcih0aGlzLl9oaWdobGlnaHRSZXN1bHRbaV0pOworICAg
IH0sCisKICAgICBnZXQgaG92ZXJlZCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5faG92
ZXJlZDsKQEAgLTgzOCw3ICs4NzgsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIENhbm5vdCBqdXN0IGNvbnZlcnQgdGhlIHRleHR1
YWwgaHRtbCBpbnRvIGFuIGVsZW1lbnQgd2l0aG91dAogICAgICAgICAvLyBhIHBhcmVudCBub2Rl
LiBVc2UgYSB0ZW1wb3Jhcnkgc3BhbiBjb250YWluZXIgZm9yIHRoZSBIVE1MLgogICAgICAgICB2
YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICBj
b250YWluZXIuaW5uZXJIVE1MID0gdGhpcy5fYXR0cmlidXRlSFRNTCgiICIsICIiKTsKKyAgICAg
ICAgdGhpcy5fYnVpbGRBdHRyaWJ1dGVET00oY29udGFpbmVyLCAiICIsICIiKTsKICAgICAgICAg
dmFyIGF0dHIgPSBjb250YWluZXIuZmlyc3RDaGlsZDsKICAgICAgICAgYXR0ci5zdHlsZS5tYXJn
aW5MZWZ0ID0gIjJweCI7IC8vIG92ZXJyaWRlcyB0aGUgLmVkaXRpbmcgbWFyZ2luIHJ1bGUKICAg
ICAgICAgYXR0ci5zdHlsZS5tYXJnaW5SaWdodCA9ICIycHgiOyAvLyBvdmVycmlkZXMgdGhlIC5l
ZGl0aW5nIG1hcmdpbiBydWxlCkBAIC0xMTc5LDExICsxMjE5LDEzIEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuX2VkaXRp
bmcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKG9ubHlTZWFyY2hRdWVyeUNo
YW5nZWQgJiYgdGhpcy5fbm9ybWFsSFRNTCkKLSAgICAgICAgICAgIHRoaXMudGl0bGVIVE1MID0g
dGhpcy5fbm9ybWFsSFRNTDsKKyAgICAgICAgaWYgKG9ubHlTZWFyY2hRdWVyeUNoYW5nZWQgJiYg
dGhpcy5faGlnaGxpZ2h0UmVzdWx0KQorICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoSGln
aGxpZ2h0KGZhbHNlKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5f
bm9ybWFsSFRNTDsKLSAgICAgICAgICAgIHRoaXMudGl0bGVIVE1MID0gIjxzcGFuIGNsYXNzPVwi
aGlnaGxpZ2h0XCI+IiArIHRoaXMuX25vZGVUaXRsZUluZm8oV2ViSW5zcGVjdG9yLmxpbmtpZnlV
UkwpLnRpdGxlSFRNTCArICI8L3NwYW4+IjsKKyAgICAgICAgICAgIHZhciBoaWdobGlnaHRFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgaGlnaGxp
Z2h0RWxlbWVudC5jbGFzc05hbWUgPSAiaGlnaGxpZ2h0IjsKKyAgICAgICAgICAgIGhpZ2hsaWdo
dEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbm9kZVRpdGxlSW5mbyhXZWJJbnNwZWN0b3IubGlu
a2lmeVVSTEFzTm9kZSkudGl0bGVET00pOworICAgICAgICAgICAgdGhpcy50aXRsZSA9IGhpZ2hs
aWdodEVsZW1lbnQ7CiAgICAgICAgIH0KIAogICAgICAgICBkZWxldGUgdGhpcy5zZWxlY3Rpb25F
bGVtZW50OwpAQCAtMTE5MiwzMSArMTIzNCwzMSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFNlYXJjaFJlc3Vs
dHMoKTsKICAgICB9LAogCi0gICAgX2F0dHJpYnV0ZUhUTUw6IGZ1bmN0aW9uKG5hbWUsIHZhbHVl
LCBub2RlLCBsaW5raWZ5KQorICAgIF9idWlsZEF0dHJpYnV0ZURPTTogZnVuY3Rpb24ocGFyZW50
RWxlbWVudCwgbmFtZSwgdmFsdWUsIG5vZGUsIGxpbmtpZnkpCiAgICAgewogICAgICAgICB2YXIg
aGFzVGV4dCA9ICh2YWx1ZS5sZW5ndGggPiAwKTsKLSAgICAgICAgdmFyIGh0bWwgPSAiPHNwYW4g
Y2xhc3M9XCJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGVcIj48c3BhbiBjbGFzcz1cIndlYmtpdC1odG1s
LWF0dHJpYnV0ZS1uYW1lXCI+IiArIG5hbWUuZXNjYXBlSFRNTCgpICsgIjwvc3Bhbj4iOworICAg
ICAgICB2YXIgYXR0clNwYW5FbGVtZW50ID0gcGFyZW50RWxlbWVudC5jcmVhdGVDaGlsZCgic3Bh
biIsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUiKTsKKyAgICAgICAgdmFyIGF0dHJOYW1lRWxlbWVu
dCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC1hdHRy
aWJ1dGUtbmFtZSIpOworICAgICAgICBhdHRyTmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSBuYW1l
LmVzY2FwZUhUTUwoKTsKIAogICAgICAgICBpZiAoaGFzVGV4dCkKLSAgICAgICAgICAgIGh0bWwg
Kz0gIj0mIzgyMDM7XCIiOworICAgICAgICAgICAgYXR0clNwYW5FbGVtZW50LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI9XHUyMDBCXCIiKSk7CiAKICAgICAgICAgaWYgKGxp
bmtpZnkgJiYgKG5hbWUgPT09ICJzcmMiIHx8IG5hbWUgPT09ICJocmVmIikpIHsKICAgICAgICAg
ICAgIHZhciByZXdyaXR0ZW5IcmVmID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMRm9yUmVsYXRl
ZE5vZGUobm9kZSwgdmFsdWUpOwogICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC8o
W1wvOzpcKVxdXH1dKS9nLCAiJDFcdTIwMEIiKTsKLSAgICAgICAgICAgIGh0bWwgKz0gbGlua2lm
eShyZXdyaXR0ZW5IcmVmLCB2YWx1ZSwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIsIG5v
ZGUubm9kZU5hbWUoKS50b0xvd2VyQ2FzZSgpID09PSAiYSIpOworICAgICAgICAgICAgYXR0clNw
YW5FbGVtZW50LmFwcGVuZENoaWxkKGxpbmtpZnkocmV3cml0dGVuSHJlZiwgdmFsdWUsICJ3ZWJr
aXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiLCBub2RlLm5vZGVOYW1lKCkudG9Mb3dlckNhc2UoKSA9
PT0gImEiKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmVz
Y2FwZUhUTUwoKS5yZXBsYWNlKC8oW1wvOzpcKVxdXH1dKS9nLCAiJDEmIzgyMDM7Iik7Ci0gICAg
ICAgICAgICBodG1sICs9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1
ZVwiPiIgKyB2YWx1ZSArICI8L3NwYW4+IjsKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZXNj
YXBlSFRNTCgpLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIkMVx1MjAwQiIpOworICAgICAg
ICAgICAgdmFyIGF0dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQo
InNwYW4iLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIik7CisgICAgICAgICAgICBhdHRy
VmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0gdmFsdWU7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoaGFzVGV4dCkKLSAgICAgICAgICAgIGh0bWwgKz0gIlwiIjsKLQotICAgICAgICBodG1sICs9
ICI8L3NwYW4+IjsKLSAgICAgICAgcmV0dXJuIGh0bWw7CisgICAgICAgICAgICBhdHRyU3BhbkVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlwiIikpOwogICAgIH0s
CiAKLSAgICBfdGFnSFRNTDogZnVuY3Rpb24odGFnTmFtZSwgaXNDbG9zaW5nVGFnLCBpc0Rpc3Rp
bmN0VHJlZUVsZW1lbnQsIGxpbmtpZnksIGlzU2hhZG93KQorICAgIF9idWlsZFRhZ0RPTTogZnVu
Y3Rpb24ocGFyZW50RWxlbWVudCwgdGFnTmFtZSwgaXNDbG9zaW5nVGFnLCBpc0Rpc3RpbmN0VHJl
ZUVsZW1lbnQsIGxpbmtpZnksIGlzU2hhZG93KQogICAgIHsKICAgICAgICAgdmFyIG5vZGUgPSB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0OwogICAgICAgICB2YXIgY2xhc3NlcyA9IFsgIndlYmtpdC1o
dG1sLXRhZyIgXTsKQEAgLTEyMjQsMTIxICsxMjY2LDEzNCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjbGFzc2VzLnB1c2goImNs
b3NlIik7CiAgICAgICAgIGlmIChpc1NoYWRvdykKICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgi
c2hhZG93Iik7Ci0gICAgICAgIHZhciByZXN1bHQgPSAiPHNwYW4gY2xhc3M9XCIiICsgY2xhc3Nl
cy5qb2luKCIgIikgKyAiXCI+Jmx0OyI7Ci0gICAgICAgIHJlc3VsdCArPSAiPHNwYW4gIiArIChp
c0Nsb3NpbmdUYWcgPyAiIiA6ICJjbGFzcz1cIndlYmtpdC1odG1sLXRhZy1uYW1lXCIiKSArICI+
IiArIChpc0Nsb3NpbmdUYWcgPyAiLyIgOiAiIikgKyB0YWdOYW1lICsgIjwvc3Bhbj4iOworICAg
ICAgICB2YXIgdGFnRWxlbWVudCA9IHBhcmVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCBj
bGFzc2VzLmpvaW4oIiAiKSk7CisgICAgICAgIHRhZ0VsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIjwiKSk7CisgICAgICAgIHZhciB0YWdOYW1lRWxlbWVudCA9IHRh
Z0VsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCBpc0Nsb3NpbmdUYWcgPyAiIiA6ICJ3ZWJraXQt
aHRtbC10YWctbmFtZSIpOworICAgICAgICB0YWdOYW1lRWxlbWVudC50ZXh0Q29udGVudCA9IChp
c0Nsb3NpbmdUYWcgPyAiLyIgOiAiIikgKyB0YWdOYW1lOworCiAgICAgICAgIGlmICghaXNDbG9z
aW5nVGFnICYmIG5vZGUuaGFzQXR0cmlidXRlcygpKSB7CiAgICAgICAgICAgICB2YXIgYXR0cmli
dXRlcyA9IG5vZGUuYXR0cmlidXRlcygpOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBh
dHRyaWJ1dGVzW2ldOwotICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiICIgKyB0aGlzLl9hdHRy
aWJ1dGVIVE1MKGF0dHIubmFtZSwgYXR0ci52YWx1ZSwgbm9kZSwgbGlua2lmeSk7CisgICAgICAg
ICAgICAgICAgdGFnRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
ICIpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9idWlsZEF0dHJpYnV0ZURPTSh0YWdFbGVtZW50
LCBhdHRyLm5hbWUsIGF0dHIudmFsdWUsIG5vZGUsIGxpbmtpZnkpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgICAgIHJlc3VsdCArPSAiJmd0Ozwvc3Bhbj4mIzgyMDM7IjsKLQotICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB0YWdFbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCI+IikpOworICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKSk7CiAgICAgfSwKIAogICAgIF9u
b2RlVGl0bGVJbmZvOiBmdW5jdGlvbihsaW5raWZ5KQogICAgIHsKICAgICAgICAgdmFyIG5vZGUg
PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwotICAgICAgICB2YXIgaW5mbyA9IHt0aXRsZUhUTUw6
ICIiLCBoYXNDaGlsZHJlbjogdGhpcy5oYXNDaGlsZHJlbn07CisgICAgICAgIHZhciBpbmZvID0g
e3RpdGxlRE9NOiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksIGhhc0NoaWxkcmVu
OiB0aGlzLmhhc0NoaWxkcmVufTsKIAogICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUoKSkg
ewogICAgICAgICAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX05PREU6Ci0gICAgICAgICAgICAgICAg
aW5mby50aXRsZUhUTUwgPSAiRG9jdW1lbnQiOworICAgICAgICAgICAgICAgIGluZm8udGl0bGVE
T00uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkRvY3VtZW50IikpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfRlJB
R01FTlRfTk9ERToKLSAgICAgICAgICAgICAgICBpbmZvLnRpdGxlSFRNTCA9ICJEb2N1bWVudCBG
cmFnbWVudCI7CisgICAgICAgICAgICAgICAgaW5mby50aXRsZURPTS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiRG9jdW1lbnQgRnJhZ21lbnQiKSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5BVFRSSUJVVEVfTk9ERToKICAgICAg
ICAgICAgICAgICB2YXIgdmFsdWUgPSBub2RlLnZhbHVlIHx8ICJcdTIwMEIiOyAvLyBaZXJvIHdp
ZHRoIHNwYWNlIHRvIGZvcmNlIHNob3dpbmcgYW4gZW1wdHkgdmFsdWUuCi0gICAgICAgICAgICAg
ICAgaW5mby50aXRsZUhUTUwgPSB0aGlzLl9hdHRyaWJ1dGVIVE1MKG5vZGUubmFtZSwgdmFsdWUp
OworICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkQXR0cmlidXRlRE9NKGluZm8udGl0bGVET00s
IG5vZGUubmFtZSwgdmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAg
ICBjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOgogICAgICAgICAgICAgICAgIHZhciB0YWdOYW1lID0g
dGhpcy50cmVlT3V0bGluZS5ub2RlTmFtZVRvQ29ycmVjdENhc2Uobm9kZS5ub2RlTmFtZSgpKS5l
c2NhcGVIVE1MKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRDbG9zZVRhZykg
ewotICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlSFRNTCA9IHRoaXMuX3RhZ0hUTUwodGFn
TmFtZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIG5vZGUuaW5TaGFkb3dUcmVlKCkpOworICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9idWlsZFRhZ0RPTShpbmZvLnRpdGxlRE9NLCB0YWdOYW1lLCB0cnVl
LCB0cnVlLCBmYWxzZSwgbm9kZS5pblNoYWRvd1RyZWUoKSk7CiAgICAgICAgICAgICAgICAgICAg
IGluZm8uaGFzQ2hpbGRyZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgdmFyIHRpdGxlSFRNTCA9IHRoaXMu
X3RhZ0hUTUwodGFnTmFtZSwgZmFsc2UsIGZhbHNlLCBsaW5raWZ5LCBub2RlLmluU2hhZG93VHJl
ZSgpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9idWlsZFRhZ0RPTShpbmZvLnRpdGxlRE9NLCB0
YWdOYW1lLCBmYWxzZSwgZmFsc2UsIGxpbmtpZnksIG5vZGUuaW5TaGFkb3dUcmVlKCkpOwogCiAg
ICAgICAgICAgICAgICAgdmFyIHRleHRDaGlsZCA9IHRoaXMuX3NpbmdsZVRleHRDaGlsZChub2Rl
KTsKICAgICAgICAgICAgICAgICB2YXIgc2hvd0lubGluZVRleHQgPSB0ZXh0Q2hpbGQgJiYgdGV4
dENoaWxkLm5vZGVWYWx1ZSgpLmxlbmd0aCA8IFByZWZlcmVuY2VzLm1heElubGluZVRleHRDaGls
ZExlbmd0aDsKIAogICAgICAgICAgICAgICAgIGlmICghdGhpcy5leHBhbmRlZCAmJiAoIXNob3dJ
bmxpbmVUZXh0ICYmICh0aGlzLnRyZWVPdXRsaW5lLmlzWE1MTWltZVR5cGUgfHwgIVdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LkZvcmJpZGRlbkNsb3NpbmdUYWdFbGVtZW50c1t0YWdO
YW1lXSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKQotICAg
ICAgICAgICAgICAgICAgICAgICAgdGl0bGVIVE1MICs9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1o
dG1sLXRleHQtbm9kZVwiPiYjODIzMDs8L3NwYW4+JiM4MjAzOyI7Ci0gICAgICAgICAgICAgICAg
ICAgIHRpdGxlSFRNTCArPSB0aGlzLl90YWdIVE1MKHRhZ05hbWUsIHRydWUsIGZhbHNlLCBmYWxz
ZSwgbm9kZS5pblNoYWRvd1RyZWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhh
c0NoaWxkcmVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dE5vZGVFbGVtZW50
ID0gaW5mby50aXRsZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC10ZXh0LW5v
ZGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHROb2RlRWxlbWVudC50ZXh0Q29udGVu
dCA9ICJcdTIwMjYiOworICAgICAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZURPTS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXHUyMDBCIikpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkVGFnRE9NKGluZm8udGl0
bGVET00sIHRhZ05hbWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgbm9kZS5pblNoYWRvd1RyZWUoKSk7
CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBlbGVtZW50
IG9ubHkgaGFzIGEgc2luZ2xlIGNoaWxkIHRoYXQgaXMgYSB0ZXh0IG5vZGUsCiAgICAgICAgICAg
ICAgICAgLy8ganVzdCBzaG93IHRoYXQgdGV4dCBhbmQgdGhlIGNsb3NpbmcgdGFnIGlubGluZSBy
YXRoZXIgdGhhbgogICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHN1YnRyZWUgZm9yIHRoZW0K
ICAgICAgICAgICAgICAgICBpZiAoc2hvd0lubGluZVRleHQpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGl0bGVIVE1MICs9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRleHQtbm9kZVwiPiIg
KyB0ZXh0Q2hpbGQubm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpICsgIjwvc3Bhbj4mIzgyMDM7IiAr
IHRoaXMuX3RhZ0hUTUwodGFnTmFtZSwgdHJ1ZSwgZmFsc2UsIG5vZGUuaW5TaGFkb3dUcmVlKCkp
OworICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dE5vZGVFbGVtZW50ID0gaW5mby50aXRsZURP
TS5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC10ZXh0LW5vZGUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dE5vZGVFbGVtZW50LnRleHRDb250ZW50ID0gdGV4dENoaWxkLm5vZGVW
YWx1ZSgpLmVzY2FwZUhUTUwoKTsKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZURPTS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXHUyMDBCIikpOworICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9idWlsZFRhZ0RPTShpbmZvLnRpdGxlRE9NLCB0YWdOYW1lLCB0cnVl
LCBmYWxzZSwgbm9kZS5pblNoYWRvd1RyZWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGluZm8u
aGFzQ2hpbGRyZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
aW5mby50aXRsZUhUTUwgPSB0aXRsZUhUTUw7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAg
ICAgICAgICAgIGNhc2UgTm9kZS5URVhUX05PREU6CiAgICAgICAgICAgICAgICAgaWYgKGlzTm9k
ZVdoaXRlc3BhY2UuY2FsbChub2RlKSkKLSAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZUhU
TUwgPSAiKHdoaXRlc3BhY2UpIjsKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZURPTS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiKHdoaXRlc3BhY2UpIikpOwogICAg
ICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5wYXJlbnRO
b2RlICYmIG5vZGUucGFyZW50Tm9kZS5ub2RlTmFtZSgpLnRvTG93ZXJDYXNlKCkgPT09ICJzY3Jp
cHQiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3Tm9kZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdOb2Rl
ID0gaW5mby50aXRsZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC10ZXh0LW5v
ZGUgd2Via2l0LWh0bWwtanMtbm9kZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgbmV3Tm9k
ZS50ZXh0Q29udGVudCA9IG5vZGUubm9kZVZhbHVlKCk7CiAKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBqYXZhc2NyaXB0U3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRP
TVN5bnRheEhpZ2hsaWdodGVyKCJ0ZXh0L2phdmFzY3JpcHQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBqYXZhc2NyaXB0U3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LkRPTVN5bnRheEhpZ2hsaWdodGVyKCJ0ZXh0L2phdmFzY3JpcHQiLCB0cnVlKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGphdmFzY3JpcHRTeW50YXhIaWdobGlnaHRlci5zeW50YXhIaWdobGln
aHROb2RlKG5ld05vZGUpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlSFRN
TCA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRleHQtbm9kZSB3ZWJraXQtaHRtbC1qcy1u
b2RlXCI+IiArIG5ld05vZGUuaW5uZXJIVE1MLnJlcGxhY2UoL15bXG5ccl0qLywgIiIpLnJlcGxh
Y2UoL1xzKiQvLCAiIikgKyAiPC9zcGFuPiI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAobm9kZS5wYXJlbnROb2RlICYmIG5vZGUucGFyZW50Tm9kZS5ub2RlTmFtZSgpLnRvTG93ZXJD
YXNlKCkgPT09ICJzdHlsZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdOb2Rl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIG5ld05vZGUgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtp
dC1odG1sLXRleHQtbm9kZSB3ZWJraXQtaHRtbC1jc3Mtbm9kZSIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3Tm9kZS50ZXh0Q29udGVudCA9IG5vZGUubm9kZVZhbHVlKCk7CiAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBjc3NTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuRE9NU3ludGF4SGlnaGxpZ2h0ZXIoInRleHQvY3NzIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgY3NzU3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN5
bnRheEhpZ2hsaWdodGVyKCJ0ZXh0L2NzcyIsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4SGlnaGxpZ2h0Tm9kZShuZXdOb2RlKTsKLQot
ICAgICAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZUhUTUwgPSAiPHNwYW4gY2xhc3M9XCJ3
ZWJraXQtaHRtbC10ZXh0LW5vZGUgd2Via2l0LWh0bWwtY3NzLW5vZGVcIj4iICsgbmV3Tm9kZS5p
bm5lckhUTUwucmVwbGFjZSgvXltcblxyXSovLCAiIikucmVwbGFjZSgvXHMqJC8sICIiKSArICI8
L3NwYW4+IjsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICBpbmZvLnRpdGxlSFRNTCA9ICJcIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1u
b2RlXCI+IiArIG5vZGUubm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpICsgIjwvc3Bhbj5cIiI7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmZv
LnRpdGxlRE9NLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcIiIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0Tm9kZUVsZW1lbnQgPSBpbmZvLnRpdGxlRE9N
LmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1sLXRleHQtbm9kZSIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgdGV4dE5vZGVFbGVtZW50LnRleHRDb250ZW50ID0gbm9kZS5ub2RlVmFs
dWUoKS5lc2NhcGVIVE1MKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlRE9N
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcIiIpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICAgICAgY2FzZSBOb2RlLkNPTU1FTlRfTk9ERToKLSAgICAgICAgICAgICAgICBpbmZv
LnRpdGxlSFRNTCA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLWNvbW1lbnRcIj4mbHQ7IS0t
IiArIG5vZGUubm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpICsgIi0tJmd0Ozwvc3Bhbj4iOworICAg
ICAgICAgICAgICAgIHZhciBjb21tZW50RWxlbWVudCA9IGluZm8udGl0bGVET00uY3JlYXRlQ2hp
bGQoInNwYW4iLCAid2Via2l0LWh0bWwtY29tbWVudCIpOworICAgICAgICAgICAgICAgIGNvbW1l
bnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI8IS0tIiArIG5v
ZGUubm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpICsgIi0tPiIpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICAgICAgY2FzZSBOb2RlLkRPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAg
ICAgICAgICAgICB2YXIgdGl0bGVIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtZG9j
dHlwZVwiPiZsdDshRE9DVFlQRSAiICsgbm9kZS5ub2RlTmFtZSgpOworICAgICAgICAgICAgICAg
IHZhciBkb2NUeXBlRWxlbWVudCA9IGluZm8udGl0bGVET00uY3JlYXRlQ2hpbGQoInNwYW4iLCAi
d2Via2l0LWh0bWwtZG9jdHlwZSIpOworICAgICAgICAgICAgICAgIGRvY1R5cGVFbGVtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI8IURPQ1RZUEUgIiArIG5vZGUubm9k
ZU5hbWUoKSkpOwogICAgICAgICAgICAgICAgIGlmIChub2RlLnB1YmxpY0lkKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHRpdGxlSFRNTCArPSAiIFBVQkxJQyBcIiIgKyBub2RlLnB1YmxpY0lkICsg
IlwiIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jVHlwZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBQVUJMSUMgXCIiICsgbm9kZS5wdWJsaWNJZCArICJcIiIp
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUuc3lzdGVtSWQpCi0gICAgICAgICAgICAg
ICAgICAgICAgICB0aXRsZUhUTUwgKz0gIiBcIiIgKyBub2RlLnN5c3RlbUlkICsgIlwiIjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY1R5cGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCIgXCIiICsgbm9kZS5zeXN0ZW1JZCArICJcIiIpKTsKICAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG5vZGUuc3lzdGVtSWQpCi0gICAgICAgICAgICAgICAgICAgIHRp
dGxlSFRNTCArPSAiIFNZU1RFTSBcIiIgKyBub2RlLnN5c3RlbUlkICsgIlwiIjsKKyAgICAgICAg
ICAgICAgICAgICAgZG9jVHlwZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIiBTWVNURU0gXCIiICsgbm9kZS5zeXN0ZW1JZCArICJcIiIpKTsKKwogICAgICAgICAg
ICAgICAgIGlmIChub2RlLmludGVybmFsU3Vic2V0KQotICAgICAgICAgICAgICAgICAgICB0aXRs
ZUhUTUwgKz0gIiBbIiArIG5vZGUuaW50ZXJuYWxTdWJzZXQgKyAiXSI7Ci0gICAgICAgICAgICAg
ICAgdGl0bGVIVE1MICs9ICImZ3Q7PC9zcGFuPiI7Ci0gICAgICAgICAgICAgICAgaW5mby50aXRs
ZUhUTUwgPSB0aXRsZUhUTUw7CisgICAgICAgICAgICAgICAgICAgIGRvY1R5cGVFbGVtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgWyIgKyBub2RlLmludGVybmFsU3Vi
c2V0ICsgIl0iKSk7CisKKyAgICAgICAgICAgICAgICBkb2NUeXBlRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiPiIpKTsKICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgY2FzZSBOb2RlLkNEQVRBX1NFQ1RJT05fTk9ERToKLSAgICAgICAgICAg
ICAgICBpbmZvLnRpdGxlSFRNTCA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRleHQtbm9k
ZVwiPiZsdDshW0NEQVRBWyIgKyBub2RlLm5vZGVWYWx1ZSgpLmVzY2FwZUhUTUwoKSArICJdXSZn
dDs8L3NwYW4+IjsKKyAgICAgICAgICAgICAgICB2YXIgY2RhdGFFbGVtZW50ID0gaW5mby50aXRs
ZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC10ZXh0LW5vZGUiKTsKKyAgICAg
ICAgICAgICAgICBjZGF0YUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIjwhW0NEQVRBWyIgKyBub2RlLm5vZGVWYWx1ZSgpLmVzY2FwZUhUTUwoKSArICJdXT4iKSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5TSEFET1df
Uk9PVF9OT0RFOgotICAgICAgICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gIjxzcGFuIGNsYXNz
PVwiZG9tLXNoYWRvdy1yb290XCI+KHNoYWRvdyk8L3NwYW4+IjsKKyAgICAgICAgICAgICAgICB2
YXIgY2RhdGFFbGVtZW50ID0gaW5mby50aXRsZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJkb20t
c2hhZG93LXJvb3QiKTsKKyAgICAgICAgICAgICAgICBjZGF0YUVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIihzaGFkb3cpIikpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogCiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGluZm8udGl0bGVI
VE1MID0gdGhpcy50cmVlT3V0bGluZS5ub2RlTmFtZVRvQ29ycmVjdENhc2Uobm9kZS5ub2RlTmFt
ZSgpKS5jb2xsYXBzZVdoaXRlc3BhY2UoKS5lc2NhcGVIVE1MKCk7CisgICAgICAgICAgICAgICAg
dmFyIGRlZmF1bHRFbGVtZW50ID0gaW5mby50aXRsZURPTS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSh0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZShub2Rl
Lm5vZGVOYW1lKCkpLmNvbGxhcHNlV2hpdGVzcGFjZSgpLmVzY2FwZUhUTUwoKSkpOwogICAgICAg
ICB9CiAKICAgICAgICAgcmV0dXJuIGluZm87CkBAIC0xNDI1LDE0ICsxNDgwLDExIEBAIFdlYklu
c3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAg
IGlmICghdGhpcy5fc2VhcmNoUXVlcnkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlm
ICh0aGlzLl9zZWFyY2hIaWdobGlnaHRlZEhUTUwpIHsKLSAgICAgICAgICAgIHRoaXMubGlzdEl0
ZW1FbGVtZW50LmlubmVySFRNTCA9IHRoaXMuX3NlYXJjaEhpZ2hsaWdodGVkSFRNTDsKKyAgICAg
ICAgaWYgKHRoaXMuX2hpZ2hsaWdodFJlc3VsdCkgeworICAgICAgICAgICAgdGhpcy5fdXBkYXRl
U2VhcmNoSGlnaGxpZ2h0KHRydWUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgaWYgKCF0aGlzLl9ub3JtYWxIVE1MKQotICAgICAgICAgICAgdGhpcy5fbm9ybWFs
SFRNTCA9IHRoaXMudGl0bGVIVE1MOwotCiAgICAgICAgIHZhciB0ZXh0ID0gdGhpcy5saXN0SXRl
bUVsZW1lbnQudGV4dENvbnRlbnQ7CiAgICAgICAgIHZhciByZWdleE9iamVjdCA9IGNyZWF0ZVNl
YXJjaFJlZ2V4KHRoaXMuX3NlYXJjaFF1ZXJ5LCAiZyIpOwogCkBAIC0xNDQ4LDggKzE1MDAsOCBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IGlmICghbWF0Y2hSYW5nZXMubGVuZ3RoKQogICAgICAgICAgICAgbWF0Y2hSYW5nZXMucHVzaCh7
IG9mZnNldDogMCwgbGVuZ3RoOiB0ZXh0Lmxlbmd0aCB9KTsKIAotICAgICAgICBoaWdobGlnaHRT
ZWFyY2hSZXN1bHRzKHRoaXMubGlzdEl0ZW1FbGVtZW50LCBtYXRjaFJhbmdlcyk7Ci0gICAgICAg
IHRoaXMuX3NlYXJjaEhpZ2hsaWdodGVkSFRNTCA9IHRoaXMubGlzdEl0ZW1FbGVtZW50LmlubmVy
SFRNTDsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0UmVzdWx0ID0gW107CisgICAgICAgIGhpZ2hs
aWdodFNlYXJjaFJlc3VsdHModGhpcy5saXN0SXRlbUVsZW1lbnQsIG1hdGNoUmFuZ2VzLCB0aGlz
Ll9oaWdobGlnaHRSZXN1bHQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwppbmRleCA2Mjc5MjcxLi40MmIwMmNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwpAQCAt
MjU5LDYgKzI1OSw4IEBAIEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNoaWxkID0gZnVuY3Rpb24o
ZWxlbWVudE5hbWUsIGNsYXNzTmFtZSkKICAgICByZXR1cm4gZWxlbWVudDsKIH0KIAorRG9jdW1l
bnRGcmFnbWVudC5wcm90b3R5cGUuY3JlYXRlQ2hpbGQgPSBFbGVtZW50LnByb3RvdHlwZS5jcmVh
dGVDaGlsZDsKKwogRWxlbWVudC5wcm90b3R5cGUuX19kZWZpbmVHZXR0ZXJfXygidG90YWxPZmZz
ZXRMZWZ0IiwgZnVuY3Rpb24oKQogewogICAgIHZhciB0b3RhbCA9IDA7CkBAIC05NTMsOCArOTU1
LDkgQEAgZnVuY3Rpb24gaGlnaGxpZ2h0U2VhcmNoUmVzdWx0KGVsZW1lbnQsIG9mZnNldCwgbGVu
Z3RoKQogICAgIHJldHVybiByZXN1bHQubGVuZ3RoID8gcmVzdWx0WzBdIDogbnVsbDsKIH0KIAot
ZnVuY3Rpb24gaGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyhlbGVtZW50LCByZXN1bHRSYW5nZXMpCitm
dW5jdGlvbiBoaWdobGlnaHRTZWFyY2hSZXN1bHRzKGVsZW1lbnQsIHJlc3VsdFJhbmdlcywgY2hh
bmdlcykKIHsKKyAgICBjaGFuZ2VzID0gY2hhbmdlcyB8fCBbXTsKICAgICB2YXIgaGlnaGxpZ2h0
Tm9kZXMgPSBbXTsKICAgICB2YXIgbGluZVRleHQgPSBlbGVtZW50LnRleHRDb250ZW50OwogICAg
IHZhciB0ZXh0Tm9kZVNuYXBzaG90ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi4vL3RleHQoKSIsIGVs
ZW1lbnQsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxs
KTsKQEAgLTk5NywxMCArMTAwMCwxNCBAQCBmdW5jdGlvbiBoaWdobGlnaHRTZWFyY2hSZXN1bHRz
KGVsZW1lbnQsIHJlc3VsdFJhbmdlcykKICAgICAgICAgaWYgKHRleHROb2RlT2Zmc2V0ICsgcmVz
dWx0TGVuZ3RoIDwgdGV4dC5sZW5ndGgpIHsKICAgICAgICAgICAgIC8vIFNlbGVjdGlvbiBiZWxv
bmdzIHRvIGEgc2luZ2xlIHNwbGl0IG1vZGUuCiAgICAgICAgICAgICB0ZXh0Tm9kZS50ZXh0Q29u
dGVudCA9IHRleHQuc3Vic3RyaW5nKHRleHROb2RlT2Zmc2V0ICsgcmVzdWx0TGVuZ3RoKTsKKyAg
ICAgICAgICAgIGNoYW5nZXMucHVzaCh7IG5vZGU6IHRleHROb2RlLCB0eXBlOiAiY2hhbmdlZCIs
IG9sZFRleHQ6IHRleHQsIG5ld1RleHQ6IHRleHROb2RlLnRleHRDb250ZW50IH0pOworCiAgICAg
ICAgICAgICB0ZXh0Tm9kZS5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShoaWdobGlnaHROb2Rl
LCB0ZXh0Tm9kZSk7CisgICAgICAgICAgICBjaGFuZ2VzLnB1c2goeyBub2RlOiBoaWdobGlnaHRO
b2RlLCB0eXBlOiAiYWRkZWQiLCBuZXh0U2libGluZzogdGV4dE5vZGUsIHBhcmVudDogdGV4dE5v
ZGUucGFyZW50RWxlbWVudCB9KTsKKwogICAgICAgICAgICAgdmFyIHByZWZpeE5vZGUgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Tm9kZU9mZnNldCkpOwog
ICAgICAgICAgICAgdGV4dE5vZGUucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUocHJlZml4Tm9k
ZSwgaGlnaGxpZ2h0Tm9kZSk7Ci0KKyAgICAgICAgICAgIGNoYW5nZXMucHVzaCh7IG5vZGU6IHBy
ZWZpeE5vZGUsIHR5cGU6ICJhZGRlZCIsIG5leHRTaWJsaW5nOiBoaWdobGlnaHROb2RlLCBwYXJl
bnQ6IHRleHROb2RlLnBhcmVudEVsZW1lbnQgfSk7CiAgICAgICAgICAgICBoaWdobGlnaHROb2Rl
cy5wdXNoKGhpZ2hsaWdodE5vZGUpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
QEAgLTEwMTAsNiArMTAxNyw3IEBAIGZ1bmN0aW9uIGhpZ2hsaWdodFNlYXJjaFJlc3VsdHMoZWxl
bWVudCwgcmVzdWx0UmFuZ2VzKQogCiAgICAgICAgIGxlbmd0aCAtPSB0ZXh0Lmxlbmd0aCAtIHRl
eHROb2RlT2Zmc2V0OwogICAgICAgICB0ZXh0Tm9kZS50ZXh0Q29udGVudCA9IHRleHQuc3Vic3Ry
aW5nKDAsIHRleHROb2RlT2Zmc2V0KTsKKyAgICAgICAgY2hhbmdlcy5wdXNoKHsgbm9kZTogdGV4
dE5vZGUsIHR5cGU6ICJjaGFuZ2VkIiwgb2xkVGV4dDogdGV4dCwgbmV3VGV4dDogdGV4dE5vZGUu
dGV4dENvbnRlbnQgfSk7CiAKICAgICAgICAgd2hpbGUgKGN1cnJlbnRTbmFwc2hvdEl0ZW0gPCBz
bmFwc2hvdExlbmd0aCkgewogICAgICAgICAgICAgdGV4dE5vZGUgPSB0ZXh0Tm9kZVNuYXBzaG90
LnNuYXBzaG90SXRlbShjdXJyZW50U25hcHNob3RJdGVtKyspOwpAQCAtMTAxNywxNCArMTAyNSwx
NyBAQCBmdW5jdGlvbiBoaWdobGlnaHRTZWFyY2hSZXN1bHRzKGVsZW1lbnQsIHJlc3VsdFJhbmdl
cykKICAgICAgICAgICAgIHZhciB0ZXh0ID0gdGV4dE5vZGUudGV4dENvbnRlbnQ7CiAgICAgICAg
ICAgICBpZiAobGVuZ3RoIDwgdGV4dC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICB0ZXh0Tm9k
ZS50ZXh0Q29udGVudCA9IHRleHQuc3Vic3RyaW5nKGxlbmd0aCk7CisgICAgICAgICAgICAgICAg
Y2hhbmdlcy5wdXNoKHsgbm9kZTogdGV4dE5vZGUsIHR5cGU6ICJjaGFuZ2VkIiwgb2xkVGV4dDog
dGV4dCwgbmV3VGV4dDogdGV4dE5vZGUudGV4dENvbnRlbnQgfSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGxlbmd0aCAtPSB0ZXh0Lmxlbmd0
aDsKICAgICAgICAgICAgIHRleHROb2RlLnRleHRDb250ZW50ID0gIiI7CisgICAgICAgICAgICBj
aGFuZ2VzLnB1c2goeyBub2RlOiB0ZXh0Tm9kZSwgdHlwZTogImNoYW5nZWQiLCBvbGRUZXh0OiB0
ZXh0LCBuZXdUZXh0OiB0ZXh0Tm9kZS50ZXh0Q29udGVudCB9KTsKICAgICAgICAgfQogCiAgICAg
ICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGhpZ2hsaWdodE5vZGUsIGFuY2hvckVsZW1l
bnQpOworICAgICAgICBjaGFuZ2VzLnB1c2goeyBub2RlOiBoaWdobGlnaHROb2RlLCB0eXBlOiAi
YWRkZWQiLCBuZXh0U2libGluZzogYW5jaG9yRWxlbWVudCwgcGFyZW50OiBwYXJlbnRFbGVtZW50
IH0pOwogICAgICAgICBoaWdobGlnaHROb2Rlcy5wdXNoKGhpZ2hsaWdodE5vZGUpOwogICAgIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94431</attachid>
            <date>2011-05-23 08:56:57 -0700</date>
            <delta_ts>2011-05-24 05:58:58 -0700</delta_ts>
            <desc>[PATCH] Fixed search result highlights for dynamic nodes</desc>
            <filename>elementstreedom.patch</filename>
            <type>text/plain</type>
            <size>24627</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDAyYzg1Y2E1ZDFjMTFlZmE4YzMxNDY1ODBkZjU4ZjkwZDFlNjkyNDQKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBNb24gTWF5IDIz
IDE3OjE4OjMwIDIwMTEgKzA0MDAKCiAgICBNYWtlIHVzZSBvZiBET00sIG5vdCBpbm5lckhUTUwK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNDNjNmQwYS4uNjdjYWFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDExLTA1LTIzICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZXh0cmVtZSBsYWdnaW5nIHdoZW4gc2VhcmNoaW5nIGZvciAiaW1nW3NyYyo9Igor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyODIKKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgYSByZWZhY3RvcmluZzogRWxlbWVudHNU
cmVlRWxlbWVudCBET00gaXMgbWFuaXB1bGF0ZWQgZGlyZWN0bHkKKyAgICAgICAgd2hlbiBidWls
dCBhbmQgc2VhcmNoLWhpZ2hsaWdodGVkLCByYXRoZXIgdGhhbiB0aHJvdWdoIGlubmVySFRNTC4K
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3ludGF4SGlnaGxpZ2h0ZXIuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3ludGF4SGlnaGxpZ2h0ZXIpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZS5jcmVhdGVTcGFuKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX2hpZGVTZWFyY2hIaWdobGln
aHRzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUu
aGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuaGlkZVNlYXJjaEhpZ2hsaWdodHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVTZWFyY2hIaWdo
bGlnaHQudXBkYXRlRW50cnlTaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlU2VhcmNoSGlnaGxpZ2h0LnVwZGF0ZUVudHJ5SGlk
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUu
X3VwZGF0ZVNlYXJjaEhpZ2hsaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuX2FkZE5ld0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUudXBkYXRlVGl0bGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9idWlsZEF0dHJp
YnV0ZURPTSk6CisgICAgICAgICgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdXRp
bGl0aWVzLmpzOgorICAgICAgICAoKToKKwogMjAxMS0wNS0yMyAgQW5kcmV5IEtvc3lha292ICA8
Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRz
a3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5
bnRheEhpZ2hsaWdodGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01TeW50YXhIaWdobGlnaHRlci5qcwppbmRleCBjZjViOWM4Li5mNzk0OWE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5bnRheEhpZ2hsaWdodGVy
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3ludGF4SGln
aGxpZ2h0ZXIuanMKQEAgLTI4LDkgKzI4LDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdl
Ykluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlciA9IGZ1bmN0aW9uKG1pbWVUeXBlKQorV2Vi
SW5zcGVjdG9yLkRPTVN5bnRheEhpZ2hsaWdodGVyID0gZnVuY3Rpb24obWltZVR5cGUsIHN0cmlw
RXh0cmFXaGl0ZXNwYWNlKQogewogICAgIHRoaXMuX3Rva2VuaXplciA9IFdlYkluc3BlY3Rvci5T
b3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIobWltZVR5
cGUpOworICAgIHRoaXMuX3N0cmlwRXh0cmFXaGl0ZXNwYWNlID0gc3RyaXBFeHRyYVdoaXRlc3Bh
Y2U7CiB9CiAKIFdlYkluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUgPSB7
CkBAIC0zOCw2ICszOSw4IEBAIFdlYkluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlci5wcm90
b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKICAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAid2Via2l0LSIgKyBjbGFzc05h
bWU7CisgICAgICAgIGlmICh0aGlzLl9zdHJpcEV4dHJhV2hpdGVzcGFjZSkKKyAgICAgICAgICAg
IGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL15bXG5ccl0qLywgIiIpLnJlcGxhY2UoL1xzKiQv
LCAiIik7CiAgICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
Y29udGVudCkpOwogICAgICAgICByZXR1cm4gc3BhbjsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDYyNTNh
MTEuLjc2NTU2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTM5Myw3ICszOTMsNyBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3Nl
YXJjaFJlc3VsdHNbaV07CiAgICAgICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVP
dXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVu
dCkKLSAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKG51
bGwpOworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50LmhpZGVTZWFyY2hIaWdobGlnaHRzKCk7
CiAgICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggNDM0NWU5Ny4uOTU2
Y2JjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMzI5LDE2ICszMjksNTggQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQuRWRpdFRhZ0JsYWNrbGlzdCA9IFsKIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICBoaWdobGlnaHRTZWFyY2hS
ZXN1bHRzOiBmdW5jdGlvbihzZWFyY2hRdWVyeSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9z
ZWFyY2hRdWVyeSA9PT0gc2VhcmNoUXVlcnkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKHNlYXJjaFF1ZXJ5KQotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlYXJjaEhpZ2hs
aWdodGVkSFRNTDsgLy8gQSBuZXcgc2VhcmNoIHF1ZXJ5IChub3QgY2xlYXItdGhlLWN1cnJlbnQt
aGlnaGxpZ2h0aW5nKS4KKyAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFF1ZXJ5ICE9PSBzZWFyY2hR
dWVyeSkgeworICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoSGlnaGxpZ2h0KGZhbHNlKTsK
KyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9oaWdobGlnaHRSZXN1bHQ7IC8vIEEgbmV3IHNlYXJj
aCBxdWVyeS4KKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3NlYXJjaFF1ZXJ5ID0gc2VhcmNo
UXVlcnk7CisgICAgICAgIHRoaXMuX3NlYXJjaEhpZ2hsaWdodHNWaXNpYmxlID0gdHJ1ZTsKICAg
ICAgICAgdGhpcy51cGRhdGVUaXRsZSh0cnVlKTsKICAgICB9LAogCisgICAgaGlkZVNlYXJjaEhp
Z2hsaWdodHM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zZWFyY2hI
aWdobGlnaHRzVmlzaWJsZTsKKyAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoSGlnaGxpZ2h0KGZh
bHNlKTsKKyAgICB9LAorCisgICAgX3VwZGF0ZVNlYXJjaEhpZ2hsaWdodDogZnVuY3Rpb24oc2hv
dykKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5faGlnaGxpZ2h0UmVzdWx0KQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUVudHJ5U2hvdyhlbnRyeSkKKyAg
ICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7CisgICAgICAgICAgICAg
ICAgY2FzZSAiYWRkZWQiOgorICAgICAgICAgICAgICAgICAgICBlbnRyeS5wYXJlbnQuaW5zZXJ0
QmVmb3JlKGVudHJ5Lm5vZGUsIGVudHJ5Lm5leHRTaWJsaW5nKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhbmdlZCI6CisgICAgICAgICAgICAg
ICAgICAgIGVudHJ5Lm5vZGUudGV4dENvbnRlbnQgPSBlbnRyeS5uZXdUZXh0OworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHVwZGF0ZUVudHJ5SGlkZShlbnRyeSkKKyAgICAgICAgeworICAgICAgICAgICAgc3dp
dGNoIChlbnRyeS50eXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSAiYWRkZWQiOgorICAgICAg
ICAgICAgICAgICAgICBpZiAoZW50cnkubm9kZS5wYXJlbnRFbGVtZW50KQorICAgICAgICAgICAg
ICAgICAgICAgICAgZW50cnkubm9kZS5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGVudHJ5Lm5v
ZGUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICJj
aGFuZ2VkIjoKKyAgICAgICAgICAgICAgICAgICAgZW50cnkubm9kZS50ZXh0Q29udGVudCA9IGVu
dHJ5Lm9sZFRleHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgdmFyIHVwZGF0ZXIgPSBzaG93ID8gdXBkYXRlRW50cnlTaG93
IDogdXBkYXRlRW50cnlIaWRlOworCisgICAgICAgIGZvciAodmFyIGkgPSAwLCBzaXplID0gdGhp
cy5faGlnaGxpZ2h0UmVzdWx0Lmxlbmd0aDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgICAgIHVw
ZGF0ZXIodGhpcy5faGlnaGxpZ2h0UmVzdWx0W2ldKTsKKyAgICB9LAorCiAgICAgZ2V0IGhvdmVy
ZWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2hvdmVyZWQ7CkBAIC04MzgsNyArODgw
LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAg
ICAgICAvLyBDYW5ub3QganVzdCBjb252ZXJ0IHRoZSB0ZXh0dWFsIGh0bWwgaW50byBhbiBlbGVt
ZW50IHdpdGhvdXQKICAgICAgICAgLy8gYSBwYXJlbnQgbm9kZS4gVXNlIGEgdGVtcG9yYXJ5IHNw
YW4gY29udGFpbmVyIGZvciB0aGUgSFRNTC4KICAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9
IHRoaXMuX2F0dHJpYnV0ZUhUTUwoIiAiLCAiIik7CisgICAgICAgIHRoaXMuX2J1aWxkQXR0cmli
dXRlRE9NKGNvbnRhaW5lciwgIiAiLCAiIik7CiAgICAgICAgIHZhciBhdHRyID0gY29udGFpbmVy
LmZpcnN0Q2hpbGQ7CiAgICAgICAgIGF0dHIuc3R5bGUubWFyZ2luTGVmdCA9ICIycHgiOyAvLyBv
dmVycmlkZXMgdGhlIC5lZGl0aW5nIG1hcmdpbiBydWxlCiAgICAgICAgIGF0dHIuc3R5bGUubWFy
Z2luUmlnaHQgPSAiMnB4IjsgLy8gb3ZlcnJpZGVzIHRoZSAuZWRpdGluZyBtYXJnaW4gcnVsZQpA
QCAtMTE3OSwxMSArMTIyMSwxNSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9lZGl0aW5nKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmIChvbmx5U2VhcmNoUXVlcnlDaGFuZ2VkICYmIHRoaXMuX25vcm1h
bEhUTUwpCi0gICAgICAgICAgICB0aGlzLnRpdGxlSFRNTCA9IHRoaXMuX25vcm1hbEhUTUw7Ci0g
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX25vcm1hbEhUTUw7Ci0gICAg
ICAgICAgICB0aGlzLnRpdGxlSFRNTCA9ICI8c3BhbiBjbGFzcz1cImhpZ2hsaWdodFwiPiIgKyB0
aGlzLl9ub2RlVGl0bGVJbmZvKFdlYkluc3BlY3Rvci5saW5raWZ5VVJMKS50aXRsZUhUTUwgKyAi
PC9zcGFuPiI7CisgICAgICAgIGlmIChvbmx5U2VhcmNoUXVlcnlDaGFuZ2VkKSB7CisgICAgICAg
ICAgICBpZiAodGhpcy5faGlnaGxpZ2h0UmVzdWx0KQorICAgICAgICAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVNlYXJjaEhpZ2hsaWdodChmYWxzZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICB2YXIgaGlnaGxpZ2h0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
KyAgICAgICAgICAgIGhpZ2hsaWdodEVsZW1lbnQuY2xhc3NOYW1lID0gImhpZ2hsaWdodCI7Cisg
ICAgICAgICAgICBoaWdobGlnaHRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX25vZGVUaXRsZUlu
Zm8oV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUpLnRpdGxlRE9NKTsKKyAgICAgICAgICAg
IHRoaXMudGl0bGUgPSBoaWdobGlnaHRFbGVtZW50OworICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X2hpZ2hsaWdodFJlc3VsdDsKICAgICAgICAgfQogCiAgICAgICAgIGRlbGV0ZSB0aGlzLnNlbGVj
dGlvbkVsZW1lbnQ7CkBAIC0xMTkyLDMxICsxMjM4LDMxIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNo
UmVzdWx0cygpOwogICAgIH0sCiAKLSAgICBfYXR0cmlidXRlSFRNTDogZnVuY3Rpb24obmFtZSwg
dmFsdWUsIG5vZGUsIGxpbmtpZnkpCisgICAgX2J1aWxkQXR0cmlidXRlRE9NOiBmdW5jdGlvbihw
YXJlbnRFbGVtZW50LCBuYW1lLCB2YWx1ZSwgbm9kZSwgbGlua2lmeSkKICAgICB7CiAgICAgICAg
IHZhciBoYXNUZXh0ID0gKHZhbHVlLmxlbmd0aCA+IDApOwotICAgICAgICB2YXIgaHRtbCA9ICI8
c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLWF0dHJpYnV0ZVwiPjxzcGFuIGNsYXNzPVwid2Via2l0
LWh0bWwtYXR0cmlidXRlLW5hbWVcIj4iICsgbmFtZS5lc2NhcGVIVE1MKCkgKyAiPC9zcGFuPiI7
CisgICAgICAgIHZhciBhdHRyU3BhbkVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LmNyZWF0ZUNoaWxk
KCJzcGFuIiwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZSIpOworICAgICAgICB2YXIgYXR0ck5hbWVF
bGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1s
LWF0dHJpYnV0ZS1uYW1lIik7CisgICAgICAgIGF0dHJOYW1lRWxlbWVudC50ZXh0Q29udGVudCA9
IG5hbWUuZXNjYXBlSFRNTCgpOwogCiAgICAgICAgIGlmIChoYXNUZXh0KQotICAgICAgICAgICAg
aHRtbCArPSAiPSYjODIwMztcIiI7CisgICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIj1cdTIwMEJcIiIpKTsKIAogICAgICAgICBp
ZiAobGlua2lmeSAmJiAobmFtZSA9PT0gInNyYyIgfHwgbmFtZSA9PT0gImhyZWYiKSkgewogICAg
ICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxGb3JS
ZWxhdGVkTm9kZShub2RlLCB2YWx1ZSk7CiAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxh
Y2UoLyhbXC87OlwpXF1cfV0pL2csICIkMVx1MjAwQiIpOwotICAgICAgICAgICAgaHRtbCArPSBs
aW5raWZ5KHJld3JpdHRlbkhyZWYsIHZhbHVlLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVl
Iiwgbm9kZS5ub2RlTmFtZSgpLnRvTG93ZXJDYXNlKCkgPT09ICJhIik7CisgICAgICAgICAgICBh
dHRyU3BhbkVsZW1lbnQuYXBwZW5kQ2hpbGQobGlua2lmeShyZXdyaXR0ZW5IcmVmLCB2YWx1ZSwg
IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIsIG5vZGUubm9kZU5hbWUoKS50b0xvd2VyQ2Fz
ZSgpID09PSAiYSIpKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHZhbHVlID0gdmFs
dWUuZXNjYXBlSFRNTCgpLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIkMSYjODIwMzsiKTsK
LSAgICAgICAgICAgIGh0bWwgKz0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtYXR0cmlidXRl
LXZhbHVlXCI+IiArIHZhbHVlICsgIjwvc3Bhbj4iOworICAgICAgICAgICAgdmFsdWUgPSB2YWx1
ZS5lc2NhcGVIVE1MKCkucmVwbGFjZSgvKFtcLzs6XClcXVx9XSkvZywgIiQxXHUyMDBCIik7Cisg
ICAgICAgICAgICB2YXIgYXR0clZhbHVlRWxlbWVudCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVD
aGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKKyAgICAgICAgICAg
IGF0dHJWYWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSB2YWx1ZTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChoYXNUZXh0KQotICAgICAgICAgICAgaHRtbCArPSAiXCIiOwotCi0gICAgICAgIGh0
bWwgKz0gIjwvc3Bhbj4iOwotICAgICAgICByZXR1cm4gaHRtbDsKKyAgICAgICAgICAgIGF0dHJT
cGFuRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXCIiKSk7CiAg
ICAgfSwKIAotICAgIF90YWdIVE1MOiBmdW5jdGlvbih0YWdOYW1lLCBpc0Nsb3NpbmdUYWcsIGlz
RGlzdGluY3RUcmVlRWxlbWVudCwgbGlua2lmeSwgaXNTaGFkb3cpCisgICAgX2J1aWxkVGFnRE9N
OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCB0YWdOYW1lLCBpc0Nsb3NpbmdUYWcsIGlzRGlzdGlu
Y3RUcmVlRWxlbWVudCwgbGlua2lmeSwgaXNTaGFkb3cpCiAgICAgewogICAgICAgICB2YXIgbm9k
ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIHZhciBjbGFzc2VzID0gWyAid2Vi
a2l0LWh0bWwtdGFnIiBdOwpAQCAtMTIyNCwxMjEgKzEyNzAsMTM0IEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNsYXNzZXMucHVz
aCgiY2xvc2UiKTsKICAgICAgICAgaWYgKGlzU2hhZG93KQogICAgICAgICAgICAgY2xhc3Nlcy5w
dXNoKCJzaGFkb3ciKTsKLSAgICAgICAgdmFyIHJlc3VsdCA9ICI8c3BhbiBjbGFzcz1cIiIgKyBj
bGFzc2VzLmpvaW4oIiAiKSArICJcIj4mbHQ7IjsKLSAgICAgICAgcmVzdWx0ICs9ICI8c3BhbiAi
ICsgKGlzQ2xvc2luZ1RhZyA/ICIiIDogImNsYXNzPVwid2Via2l0LWh0bWwtdGFnLW5hbWVcIiIp
ICsgIj4iICsgKGlzQ2xvc2luZ1RhZyA/ICIvIiA6ICIiKSArIHRhZ05hbWUgKyAiPC9zcGFuPiI7
CisgICAgICAgIHZhciB0YWdFbGVtZW50ID0gcGFyZW50RWxlbWVudC5jcmVhdGVDaGlsZCgic3Bh
biIsIGNsYXNzZXMuam9pbigiICIpKTsKKyAgICAgICAgdGFnRWxlbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiPCIpKTsKKyAgICAgICAgdmFyIHRhZ05hbWVFbGVtZW50
ID0gdGFnRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsIGlzQ2xvc2luZ1RhZyA/ICIiIDogIndl
YmtpdC1odG1sLXRhZy1uYW1lIik7CisgICAgICAgIHRhZ05hbWVFbGVtZW50LnRleHRDb250ZW50
ID0gKGlzQ2xvc2luZ1RhZyA/ICIvIiA6ICIiKSArIHRhZ05hbWU7CisKICAgICAgICAgaWYgKCFp
c0Nsb3NpbmdUYWcgJiYgbm9kZS5oYXNBdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgICAgIHZhciBh
dHRyaWJ1dGVzID0gbm9kZS5hdHRyaWJ1dGVzKCk7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2YXIgYXR0
ciA9IGF0dHJpYnV0ZXNbaV07Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgIiArIHRoaXMu
X2F0dHJpYnV0ZUhUTUwoYXR0ci5uYW1lLCBhdHRyLnZhbHVlLCBub2RlLCBsaW5raWZ5KTsKKyAg
ICAgICAgICAgICAgICB0YWdFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIgIikpOworICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkQXR0cmlidXRlRE9NKHRhZ0Vs
ZW1lbnQsIGF0dHIubmFtZSwgYXR0ci52YWx1ZSwgbm9kZSwgbGlua2lmeSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KLSAgICAgICAgcmVzdWx0ICs9ICImZ3Q7PC9zcGFuPiYjODIwMzsiOwot
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHRhZ0VsZW1lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIj4iKSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpKTsKICAgICB9LAogCiAg
ICAgX25vZGVUaXRsZUluZm86IGZ1bmN0aW9uKGxpbmtpZnkpCiAgICAgewogICAgICAgICB2YXIg
bm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAgIHZhciBpbmZvID0ge3RpdGxl
SFRNTDogIiIsIGhhc0NoaWxkcmVuOiB0aGlzLmhhc0NoaWxkcmVufTsKKyAgICAgICAgdmFyIGlu
Zm8gPSB7dGl0bGVET006IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSwgaGFzQ2hp
bGRyZW46IHRoaXMuaGFzQ2hpbGRyZW59OwogCiAgICAgICAgIHN3aXRjaCAobm9kZS5ub2RlVHlw
ZSgpKSB7CiAgICAgICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfTk9ERToKLSAgICAgICAgICAg
ICAgICBpbmZvLnRpdGxlSFRNTCA9ICJEb2N1bWVudCI7CisgICAgICAgICAgICAgICAgaW5mby50
aXRsZURPTS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRG9jdW1lbnQiKSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVO
VF9GUkFHTUVOVF9OT0RFOgotICAgICAgICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gIkRvY3Vt
ZW50IEZyYWdtZW50IjsKKyAgICAgICAgICAgICAgICBpbmZvLnRpdGxlRE9NLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJEb2N1bWVudCBGcmFnbWVudCIpKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSBOb2RlLkFUVFJJQlVURV9OT0RFOgog
ICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IG5vZGUudmFsdWUgfHwgIlx1MjAwQiI7IC8vIFpl
cm8gd2lkdGggc3BhY2UgdG8gZm9yY2Ugc2hvd2luZyBhbiBlbXB0eSB2YWx1ZS4KLSAgICAgICAg
ICAgICAgICBpbmZvLnRpdGxlSFRNTCA9IHRoaXMuX2F0dHJpYnV0ZUhUTUwobm9kZS5uYW1lLCB2
YWx1ZSk7CisgICAgICAgICAgICAgICAgdGhpcy5fYnVpbGRBdHRyaWJ1dGVET00oaW5mby50aXRs
ZURPTSwgbm9kZS5uYW1lLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg
ICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6CiAgICAgICAgICAgICAgICAgdmFyIHRhZ05h
bWUgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZShub2RlLm5vZGVOYW1l
KCkpLmVzY2FwZUhUTUwoKTsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZWxlbWVudENsb3Nl
VGFnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gdGhpcy5fdGFnSFRN
TCh0YWdOYW1lLCB0cnVlLCB0cnVlLCBmYWxzZSwgbm9kZS5pblNoYWRvd1RyZWUoKSk7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkVGFnRE9NKGluZm8udGl0bGVET00sIHRhZ05hbWUs
IHRydWUsIHRydWUsIGZhbHNlLCBub2RlLmluU2hhZG93VHJlZSgpKTsKICAgICAgICAgICAgICAg
ICAgICAgaW5mby5oYXNDaGlsZHJlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICB2YXIgdGl0bGVIVE1MID0g
dGhpcy5fdGFnSFRNTCh0YWdOYW1lLCBmYWxzZSwgZmFsc2UsIGxpbmtpZnksIG5vZGUuaW5TaGFk
b3dUcmVlKCkpOworICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkVGFnRE9NKGluZm8udGl0bGVE
T00sIHRhZ05hbWUsIGZhbHNlLCBmYWxzZSwgbGlua2lmeSwgbm9kZS5pblNoYWRvd1RyZWUoKSk7
CiAKICAgICAgICAgICAgICAgICB2YXIgdGV4dENoaWxkID0gdGhpcy5fc2luZ2xlVGV4dENoaWxk
KG5vZGUpOwogICAgICAgICAgICAgICAgIHZhciBzaG93SW5saW5lVGV4dCA9IHRleHRDaGlsZCAm
JiB0ZXh0Q2hpbGQubm9kZVZhbHVlKCkubGVuZ3RoIDwgUHJlZmVyZW5jZXMubWF4SW5saW5lVGV4
dENoaWxkTGVuZ3RoOwogCiAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkICYmICgh
c2hvd0lubGluZVRleHQgJiYgKHRoaXMudHJlZU91dGxpbmUuaXNYTUxNaW1lVHlwZSB8fCAhV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQuRm9yYmlkZGVuQ2xvc2luZ1RhZ0VsZW1lbnRz
W3RhZ05hbWVdKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4p
Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZUhUTUwgKz0gIjxzcGFuIGNsYXNzPVwid2Vi
a2l0LWh0bWwtdGV4dC1ub2RlXCI+JiM4MjMwOzwvc3Bhbj4mIzgyMDM7IjsKLSAgICAgICAgICAg
ICAgICAgICAgdGl0bGVIVE1MICs9IHRoaXMuX3RhZ0hUTUwodGFnTmFtZSwgdHJ1ZSwgZmFsc2Us
IGZhbHNlLCBub2RlLmluU2hhZG93VHJlZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRo
aXMuaGFzQ2hpbGRyZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0Tm9kZUVs
ZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1sLXRl
eHQtbm9kZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE5vZGVFbGVtZW50LnRleHRD
b250ZW50ID0gIlx1MjAyNiI7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlRE9N
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYnVpbGRUYWdET00oaW5m
by50aXRsZURPTSwgdGFnTmFtZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBub2RlLmluU2hhZG93VHJl
ZSgpKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGVs
ZW1lbnQgb25seSBoYXMgYSBzaW5nbGUgY2hpbGQgdGhhdCBpcyBhIHRleHQgbm9kZSwKICAgICAg
ICAgICAgICAgICAvLyBqdXN0IHNob3cgdGhhdCB0ZXh0IGFuZCB0aGUgY2xvc2luZyB0YWcgaW5s
aW5lIHJhdGhlciB0aGFuCiAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc3VidHJlZSBmb3Ig
dGhlbQogICAgICAgICAgICAgICAgIGlmIChzaG93SW5saW5lVGV4dCkgewotICAgICAgICAgICAg
ICAgICAgICB0aXRsZUhUTUwgKz0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2Rl
XCI+IiArIHRleHRDaGlsZC5ub2RlVmFsdWUoKS5lc2NhcGVIVE1MKCkgKyAiPC9zcGFuPiYjODIw
MzsiICsgdGhpcy5fdGFnSFRNTCh0YWdOYW1lLCB0cnVlLCBmYWxzZSwgbm9kZS5pblNoYWRvd1Ry
ZWUoKSk7CisgICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0Tm9kZUVsZW1lbnQgPSBpbmZvLnRp
dGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1sLXRleHQtbm9kZSIpOworICAg
ICAgICAgICAgICAgICAgICB0ZXh0Tm9kZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0Q2hpbGQu
bm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpOworICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxl
RE9NLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKSk7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkVGFnRE9NKGluZm8udGl0bGVET00sIHRhZ05hbWUs
IHRydWUsIGZhbHNlLCBub2RlLmluU2hhZG93VHJlZSgpKTsKICAgICAgICAgICAgICAgICAgICAg
aW5mby5oYXNDaGlsZHJlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBpbmZvLnRpdGxlSFRNTCA9IHRpdGxlSFRNTDsKICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgY2FzZSBOb2RlLlRFWFRfTk9ERToKICAgICAgICAgICAgICAgICBpZiAo
aXNOb2RlV2hpdGVzcGFjZS5jYWxsKG5vZGUpKQotICAgICAgICAgICAgICAgICAgICBpbmZvLnRp
dGxlSFRNTCA9ICIod2hpdGVzcGFjZSkiOworICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxl
RE9NLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIod2hpdGVzcGFjZSkiKSk7
CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLnBh
cmVudE5vZGUgJiYgbm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lKCkudG9Mb3dlckNhc2UoKSA9PT0g
InNjcmlwdCIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdOb2RlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5l
d05vZGUgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1sLXRl
eHQtbm9kZSB3ZWJraXQtaHRtbC1qcy1ub2RlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdOb2RlLnRleHRDb250ZW50ID0gbm9kZS5ub2RlVmFsdWUoKTsKIAotICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIGphdmFzY3JpcHRTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0
b3IuRE9NU3ludGF4SGlnaGxpZ2h0ZXIoInRleHQvamF2YXNjcmlwdCIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIGphdmFzY3JpcHRTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuRE9NU3ludGF4SGlnaGxpZ2h0ZXIoInRleHQvamF2YXNjcmlwdCIsIHRydWUpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVyLnN5bnRheEhp
Z2hsaWdodE5vZGUobmV3Tm9kZSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGluZm8udGl0
bGVIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlIHdlYmtpdC1odG1s
LWpzLW5vZGVcIj4iICsgbmV3Tm9kZS5pbm5lckhUTUwucmVwbGFjZSgvXltcblxyXSovLCAiIiku
cmVwbGFjZSgvXHMqJC8sICIiKSArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChub2RlLnBhcmVudE5vZGUgJiYgbm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lKCkudG9M
b3dlckNhc2UoKSA9PT0gInN0eWxlIikgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5l
d05vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgbmV3Tm9kZSA9IGluZm8udGl0bGVET00uY3JlYXRlQ2hpbGQoInNwYW4iLCAi
d2Via2l0LWh0bWwtdGV4dC1ub2RlIHdlYmtpdC1odG1sLWNzcy1ub2RlIik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBuZXdOb2RlLnRleHRDb250ZW50ID0gbm9kZS5ub2RlVmFsdWUoKTsKIAot
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNzc1N5bnRheEhpZ2hsaWdodGVyID0gbmV3IFdl
Ykluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlcigidGV4dC9jc3MiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBjc3NTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
RE9NU3ludGF4SGlnaGxpZ2h0ZXIoInRleHQvY3NzIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBjc3NTeW50YXhIaWdobGlnaHRlci5zeW50YXhIaWdobGlnaHROb2RlKG5ld05vZGUp
OwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlSFRNTCA9ICI8c3BhbiBjbGFz
cz1cIndlYmtpdC1odG1sLXRleHQtbm9kZSB3ZWJraXQtaHRtbC1jc3Mtbm9kZVwiPiIgKyBuZXdO
b2RlLmlubmVySFRNTC5yZXBsYWNlKC9eW1xuXHJdKi8sICIiKS5yZXBsYWNlKC9ccyokLywgIiIp
ICsgIjwvc3Bhbj4iOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gIlwiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10
ZXh0LW5vZGVcIj4iICsgbm9kZS5ub2RlVmFsdWUoKS5lc2NhcGVIVE1MKCkgKyAiPC9zcGFuPlwi
IjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGluZm8udGl0bGVET00uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlwiIikp
OworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRleHROb2RlRWxlbWVudCA9IGluZm8udGl0
bGVET00uY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Via2l0LWh0bWwtdGV4dC1ub2RlIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXh0Tm9kZUVsZW1lbnQudGV4dENvbnRlbnQgPSBub2RlLm5v
ZGVWYWx1ZSgpLmVzY2FwZUhUTUwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8udGl0
bGVET00uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlwiIikpOworICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgICAgICBjYXNlIE5vZGUuQ09NTUVOVF9OT0RFOgotICAgICAgICAgICAgICAg
IGluZm8udGl0bGVIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtY29tbWVudFwiPiZs
dDshLS0iICsgbm9kZS5ub2RlVmFsdWUoKS5lc2NhcGVIVE1MKCkgKyAiLS0mZ3Q7PC9zcGFuPiI7
CisgICAgICAgICAgICAgICAgdmFyIGNvbW1lbnRFbGVtZW50ID0gaW5mby50aXRsZURPTS5jcmVh
dGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC1jb21tZW50Iik7CisgICAgICAgICAgICAgICAg
Y29tbWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIjwhLS0i
ICsgbm9kZS5ub2RlVmFsdWUoKS5lc2NhcGVIVE1MKCkgKyAiLS0+IikpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfVFlQRV9OT0RFOgot
ICAgICAgICAgICAgICAgIHZhciB0aXRsZUhUTUwgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRt
bC1kb2N0eXBlXCI+Jmx0OyFET0NUWVBFICIgKyBub2RlLm5vZGVOYW1lKCk7CisgICAgICAgICAg
ICAgICAgdmFyIGRvY1R5cGVFbGVtZW50ID0gaW5mby50aXRsZURPTS5jcmVhdGVDaGlsZCgic3Bh
biIsICJ3ZWJraXQtaHRtbC1kb2N0eXBlIik7CisgICAgICAgICAgICAgICAgZG9jVHlwZUVsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIjwhRE9DVFlQRSAiICsgbm9k
ZS5ub2RlTmFtZSgpKSk7CiAgICAgICAgICAgICAgICAgaWYgKG5vZGUucHVibGljSWQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgdGl0bGVIVE1MICs9ICIgUFVCTElDIFwiIiArIG5vZGUucHVibGlj
SWQgKyAiXCIiOworICAgICAgICAgICAgICAgICAgICBkb2NUeXBlRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIFBVQkxJQyBcIiIgKyBub2RlLnB1YmxpY0lkICsg
IlwiIikpOwogICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5zeXN0ZW1JZCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRpdGxlSFRNTCArPSAiIFwiIiArIG5vZGUuc3lzdGVtSWQgKyAiXCIi
OworICAgICAgICAgICAgICAgICAgICAgICAgZG9jVHlwZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBcIiIgKyBub2RlLnN5c3RlbUlkICsgIlwiIikpOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS5zeXN0ZW1JZCkKLSAgICAgICAgICAgICAgICAg
ICAgdGl0bGVIVE1MICs9ICIgU1lTVEVNIFwiIiArIG5vZGUuc3lzdGVtSWQgKyAiXCIiOworICAg
ICAgICAgICAgICAgICAgICBkb2NUeXBlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiIFNZU1RFTSBcIiIgKyBub2RlLnN5c3RlbUlkICsgIlwiIikpOworCiAgICAg
ICAgICAgICAgICAgaWYgKG5vZGUuaW50ZXJuYWxTdWJzZXQpCi0gICAgICAgICAgICAgICAgICAg
IHRpdGxlSFRNTCArPSAiIFsiICsgbm9kZS5pbnRlcm5hbFN1YnNldCArICJdIjsKLSAgICAgICAg
ICAgICAgICB0aXRsZUhUTUwgKz0gIiZndDs8L3NwYW4+IjsKLSAgICAgICAgICAgICAgICBpbmZv
LnRpdGxlSFRNTCA9IHRpdGxlSFRNTDsKKyAgICAgICAgICAgICAgICAgICAgZG9jVHlwZUVsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBbIiArIG5vZGUuaW50ZXJu
YWxTdWJzZXQgKyAiXSIpKTsKKworICAgICAgICAgICAgICAgIGRvY1R5cGVFbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI+IikpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogCiAgICAgICAgICAgICBjYXNlIE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFOgotICAgICAg
ICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4
dC1ub2RlXCI+Jmx0OyFbQ0RBVEFbIiArIG5vZGUubm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpICsg
Il1dJmd0Ozwvc3Bhbj4iOworICAgICAgICAgICAgICAgIHZhciBjZGF0YUVsZW1lbnQgPSBpbmZv
LnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1sLXRleHQtbm9kZSIpOwor
ICAgICAgICAgICAgICAgIGNkYXRhRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiPCFbQ0RBVEFbIiArIG5vZGUubm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpICsgIl1d
PiIpKTsKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSBOb2RlLlNI
QURPV19ST09UX05PREU6Ci0gICAgICAgICAgICAgICAgaW5mby50aXRsZUhUTUwgPSAiPHNwYW4g
Y2xhc3M9XCJkb20tc2hhZG93LXJvb3RcIj4oc2hhZG93KTwvc3Bhbj4iOworICAgICAgICAgICAg
ICAgIHZhciBjZGF0YUVsZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFuIiwg
ImRvbS1zaGFkb3ctcm9vdCIpOworICAgICAgICAgICAgICAgIGNkYXRhRWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiKHNoYWRvdykiKSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgaW5mby50
aXRsZUhUTUwgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZShub2RlLm5v
ZGVOYW1lKCkpLmNvbGxhcHNlV2hpdGVzcGFjZSgpLmVzY2FwZUhUTUwoKTsKKyAgICAgICAgICAg
ICAgICB2YXIgZGVmYXVsdEVsZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHRoaXMudHJlZU91dGxpbmUubm9kZU5hbWVUb0NvcnJlY3RDYXNl
KG5vZGUubm9kZU5hbWUoKSkuY29sbGFwc2VXaGl0ZXNwYWNlKCkuZXNjYXBlSFRNTCgpKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICByZXR1cm4gaW5mbzsKQEAgLTE0MjMsMTYgKzE0ODIsMTMgQEAg
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgX2hp
Z2hsaWdodFNlYXJjaFJlc3VsdHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhp
cy5fc2VhcmNoUXVlcnkpCisgICAgICAgIGlmICghdGhpcy5fc2VhcmNoUXVlcnkgfHwgIXRoaXMu
X3NlYXJjaEhpZ2hsaWdodHNWaXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBp
ZiAodGhpcy5fc2VhcmNoSGlnaGxpZ2h0ZWRIVE1MKSB7Ci0gICAgICAgICAgICB0aGlzLmxpc3RJ
dGVtRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl9zZWFyY2hIaWdobGlnaHRlZEhUTUw7CisgICAg
ICAgIGlmICh0aGlzLl9oaWdobGlnaHRSZXN1bHQpIHsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0
ZVNlYXJjaEhpZ2hsaWdodCh0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmICghdGhpcy5fbm9ybWFsSFRNTCkKLSAgICAgICAgICAgIHRoaXMuX25vcm1h
bEhUTUwgPSB0aGlzLnRpdGxlSFRNTDsKLQogICAgICAgICB2YXIgdGV4dCA9IHRoaXMubGlzdEl0
ZW1FbGVtZW50LnRleHRDb250ZW50OwogICAgICAgICB2YXIgcmVnZXhPYmplY3QgPSBjcmVhdGVT
ZWFyY2hSZWdleCh0aGlzLl9zZWFyY2hRdWVyeSwgImciKTsKIApAQCAtMTQ0OCw4ICsxNTA0LDgg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAg
ICBpZiAoIW1hdGNoUmFuZ2VzLmxlbmd0aCkKICAgICAgICAgICAgIG1hdGNoUmFuZ2VzLnB1c2go
eyBvZmZzZXQ6IDAsIGxlbmd0aDogdGV4dC5sZW5ndGggfSk7CiAKLSAgICAgICAgaGlnaGxpZ2h0
U2VhcmNoUmVzdWx0cyh0aGlzLmxpc3RJdGVtRWxlbWVudCwgbWF0Y2hSYW5nZXMpOwotICAgICAg
ICB0aGlzLl9zZWFyY2hIaWdobGlnaHRlZEhUTUwgPSB0aGlzLmxpc3RJdGVtRWxlbWVudC5pbm5l
ckhUTUw7CisgICAgICAgIHRoaXMuX2hpZ2hsaWdodFJlc3VsdCA9IFtdOworICAgICAgICBoaWdo
bGlnaHRTZWFyY2hSZXN1bHRzKHRoaXMubGlzdEl0ZW1FbGVtZW50LCBtYXRjaFJhbmdlcywgdGhp
cy5faGlnaGxpZ2h0UmVzdWx0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKaW5kZXggNjI3OTI3MS4uNDJiMDJjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAg
LTI1OSw2ICsyNTksOCBAQCBFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDaGlsZCA9IGZ1bmN0aW9u
KGVsZW1lbnROYW1lLCBjbGFzc05hbWUpCiAgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKK0RvY3Vt
ZW50RnJhZ21lbnQucHJvdG90eXBlLmNyZWF0ZUNoaWxkID0gRWxlbWVudC5wcm90b3R5cGUuY3Jl
YXRlQ2hpbGQ7CisKIEVsZW1lbnQucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oInRvdGFsT2Zm
c2V0TGVmdCIsIGZ1bmN0aW9uKCkKIHsKICAgICB2YXIgdG90YWwgPSAwOwpAQCAtOTUzLDggKzk1
NSw5IEBAIGZ1bmN0aW9uIGhpZ2hsaWdodFNlYXJjaFJlc3VsdChlbGVtZW50LCBvZmZzZXQsIGxl
bmd0aCkKICAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdFswXSA6IG51bGw7CiB9CiAK
LWZ1bmN0aW9uIGhpZ2hsaWdodFNlYXJjaFJlc3VsdHMoZWxlbWVudCwgcmVzdWx0UmFuZ2VzKQor
ZnVuY3Rpb24gaGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyhlbGVtZW50LCByZXN1bHRSYW5nZXMsIGNo
YW5nZXMpCiB7CisgICAgY2hhbmdlcyA9IGNoYW5nZXMgfHwgW107CiAgICAgdmFyIGhpZ2hsaWdo
dE5vZGVzID0gW107CiAgICAgdmFyIGxpbmVUZXh0ID0gZWxlbWVudC50ZXh0Q29udGVudDsKICAg
ICB2YXIgdGV4dE5vZGVTbmFwc2hvdCA9IGRvY3VtZW50LmV2YWx1YXRlKCIuLy90ZXh0KCkiLCBl
bGVtZW50LCBudWxsLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVs
bCk7CkBAIC05OTcsMTAgKzEwMDAsMTQgQEAgZnVuY3Rpb24gaGlnaGxpZ2h0U2VhcmNoUmVzdWx0
cyhlbGVtZW50LCByZXN1bHRSYW5nZXMpCiAgICAgICAgIGlmICh0ZXh0Tm9kZU9mZnNldCArIHJl
c3VsdExlbmd0aCA8IHRleHQubGVuZ3RoKSB7CiAgICAgICAgICAgICAvLyBTZWxlY3Rpb24gYmVs
b25ncyB0byBhIHNpbmdsZSBzcGxpdCBtb2RlLgogICAgICAgICAgICAgdGV4dE5vZGUudGV4dENv
bnRlbnQgPSB0ZXh0LnN1YnN0cmluZyh0ZXh0Tm9kZU9mZnNldCArIHJlc3VsdExlbmd0aCk7Cisg
ICAgICAgICAgICBjaGFuZ2VzLnB1c2goeyBub2RlOiB0ZXh0Tm9kZSwgdHlwZTogImNoYW5nZWQi
LCBvbGRUZXh0OiB0ZXh0LCBuZXdUZXh0OiB0ZXh0Tm9kZS50ZXh0Q29udGVudCB9KTsKKwogICAg
ICAgICAgICAgdGV4dE5vZGUucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoaGlnaGxpZ2h0Tm9k
ZSwgdGV4dE5vZGUpOworICAgICAgICAgICAgY2hhbmdlcy5wdXNoKHsgbm9kZTogaGlnaGxpZ2h0
Tm9kZSwgdHlwZTogImFkZGVkIiwgbmV4dFNpYmxpbmc6IHRleHROb2RlLCBwYXJlbnQ6IHRleHRO
b2RlLnBhcmVudEVsZW1lbnQgfSk7CisKICAgICAgICAgICAgIHZhciBwcmVmaXhOb2RlID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dC5zdWJzdHJpbmcoMCwgdGV4dE5vZGVPZmZzZXQpKTsK
ICAgICAgICAgICAgIHRleHROb2RlLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHByZWZpeE5v
ZGUsIGhpZ2hsaWdodE5vZGUpOwotCisgICAgICAgICAgICBjaGFuZ2VzLnB1c2goeyBub2RlOiBw
cmVmaXhOb2RlLCB0eXBlOiAiYWRkZWQiLCBuZXh0U2libGluZzogaGlnaGxpZ2h0Tm9kZSwgcGFy
ZW50OiB0ZXh0Tm9kZS5wYXJlbnRFbGVtZW50IH0pOwogICAgICAgICAgICAgaGlnaGxpZ2h0Tm9k
ZXMucHVzaChoaWdobGlnaHROb2RlKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CkBAIC0xMDEwLDYgKzEwMTcsNyBAQCBmdW5jdGlvbiBoaWdobGlnaHRTZWFyY2hSZXN1bHRzKGVs
ZW1lbnQsIHJlc3VsdFJhbmdlcykKIAogICAgICAgICBsZW5ndGggLT0gdGV4dC5sZW5ndGggLSB0
ZXh0Tm9kZU9mZnNldDsKICAgICAgICAgdGV4dE5vZGUudGV4dENvbnRlbnQgPSB0ZXh0LnN1YnN0
cmluZygwLCB0ZXh0Tm9kZU9mZnNldCk7CisgICAgICAgIGNoYW5nZXMucHVzaCh7IG5vZGU6IHRl
eHROb2RlLCB0eXBlOiAiY2hhbmdlZCIsIG9sZFRleHQ6IHRleHQsIG5ld1RleHQ6IHRleHROb2Rl
LnRleHRDb250ZW50IH0pOwogCiAgICAgICAgIHdoaWxlIChjdXJyZW50U25hcHNob3RJdGVtIDwg
c25hcHNob3RMZW5ndGgpIHsKICAgICAgICAgICAgIHRleHROb2RlID0gdGV4dE5vZGVTbmFwc2hv
dC5zbmFwc2hvdEl0ZW0oY3VycmVudFNuYXBzaG90SXRlbSsrKTsKQEAgLTEwMTcsMTQgKzEwMjUs
MTcgQEAgZnVuY3Rpb24gaGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyhlbGVtZW50LCByZXN1bHRSYW5n
ZXMpCiAgICAgICAgICAgICB2YXIgdGV4dCA9IHRleHROb2RlLnRleHRDb250ZW50OwogICAgICAg
ICAgICAgaWYgKGxlbmd0aCA8IHRleHQubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgdGV4dE5v
ZGUudGV4dENvbnRlbnQgPSB0ZXh0LnN1YnN0cmluZyhsZW5ndGgpOworICAgICAgICAgICAgICAg
IGNoYW5nZXMucHVzaCh7IG5vZGU6IHRleHROb2RlLCB0eXBlOiAiY2hhbmdlZCIsIG9sZFRleHQ6
IHRleHQsIG5ld1RleHQ6IHRleHROb2RlLnRleHRDb250ZW50IH0pOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBsZW5ndGggLT0gdGV4dC5sZW5n
dGg7CiAgICAgICAgICAgICB0ZXh0Tm9kZS50ZXh0Q29udGVudCA9ICIiOworICAgICAgICAgICAg
Y2hhbmdlcy5wdXNoKHsgbm9kZTogdGV4dE5vZGUsIHR5cGU6ICJjaGFuZ2VkIiwgb2xkVGV4dDog
dGV4dCwgbmV3VGV4dDogdGV4dE5vZGUudGV4dENvbnRlbnQgfSk7CiAgICAgICAgIH0KIAogICAg
ICAgICBwYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShoaWdobGlnaHROb2RlLCBhbmNob3JFbGVt
ZW50KTsKKyAgICAgICAgY2hhbmdlcy5wdXNoKHsgbm9kZTogaGlnaGxpZ2h0Tm9kZSwgdHlwZTog
ImFkZGVkIiwgbmV4dFNpYmxpbmc6IGFuY2hvckVsZW1lbnQsIHBhcmVudDogcGFyZW50RWxlbWVu
dCB9KTsKICAgICAgICAgaGlnaGxpZ2h0Tm9kZXMucHVzaChoaWdobGlnaHROb2RlKTsKICAgICB9
CiAK
</data>
<flag name="review"
          id="87726"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>