<?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>30831</bug_id>
          
          <creation_ts>2009-10-27 11:43:21 -0700</creation_ts>
          <short_desc>Web Inspector: syntax highlight inline JS and CSS in HTML resources</short_desc>
          <delta_ts>2011-02-17 07:15:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>aroben</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>rik</cc>
    
    <cc>robspychala</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>158292</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-27 11:43:21 -0700</bug_when>
    <thetext>We should syntax highlight &lt;script&gt; and &lt;style&gt; blocks in HTML resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159160</commentid>
    <comment_count>1</comment_count>
    <who name="Anthony Ricaud">rik</who>
    <bug_when>2009-10-29 17:24:02 -0700</bug_when>
    <thetext>*** Bug 19351 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159161</commentid>
    <comment_count>2</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-10-29 17:24:48 -0700</bug_when>
    <thetext>Can we do this in the inspector, or would it have to be done in the engine?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159201</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-29 19:44:41 -0700</bug_when>
    <thetext>We could do this in the Inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159547</commentid>
    <comment_count>4</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-31 04:09:07 -0700</bug_when>
    <thetext>I&apos;ll take this after I&apos;m done with the new CSS syntax highlighter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328803</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-01-03 15:12:30 -0800</bug_when>
    <thetext>SourceHTMLTokenizer implements tokenization of the &lt;script&gt; tag contents with a SourceJavaScriptTokenizer, so we are good with that. We should implement a similar approach for the &lt;style&gt; tag and SourceCSSTokenizer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340321</commentid>
    <comment_count>6</comment_count>
      <attachid>80204</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-01-26 09:54:25 -0800</bug_when>
    <thetext>Created attachment 80204
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341374</commentid>
    <comment_count>7</comment_count>
      <attachid>80204</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-28 02:24:02 -0800</bug_when>
    <thetext>Comment on attachment 80204
[PATCH] Suggested solution

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

&gt; Source/WebCore/inspector/front-end/SourceHTMLTokenizer.re2js:267
&gt;                      if (this._condition.parseCondition &amp; this._parseConditions.SCRIPT) {

You should add a check for STYLE state here, r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341389</commentid>
    <comment_count>8</comment_count>
      <attachid>80436</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-01-28 03:43:23 -0800</bug_when>
    <thetext>Created attachment 80436
[PATCH] Comment addressed, added STYLE check in 2 places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341422</commentid>
    <comment_count>9</comment_count>
      <attachid>80436</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-28 06:42:30 -0800</bug_when>
    <thetext>Comment on attachment 80436
[PATCH] Comment addressed, added STYLE check in 2 places

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

&gt; Source/WebCore/inspector/front-end/SourceHTMLTokenizer.re2js:268
&gt;                          // Do not tokenize script tag contents, keep lexer state although processing &quot;&lt;&quot;.

Please update the comment to reflect that you&apos;re skipping style tag content as well.

&gt; Source/WebCore/inspector/front-end/SourceHTMLTokenizer.re2js:322
&gt; +                    if (this._condition.parseCondition === this._parseConditions.SCRIPT || this._condition.parseCondition === this._parseConditions.STYLE) {

We should be consistent in using === vs &amp; if there is no difference in case of SCRIPT and STYLE parse conditions I&apos;d prefer ===</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341432</commentid>
    <comment_count>10</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-01-28 07:30:29 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 80436 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80436&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/SourceHTMLTokenizer.re2js:268
&gt; &gt;                          // Do not tokenize script tag contents, keep lexer state although processing &quot;&lt;&quot;.
&gt; 
&gt; Please update the comment to reflect that you&apos;re skipping style tag content as well.

Done

&gt; &gt; Source/WebCore/inspector/front-end/SourceHTMLTokenizer.re2js:322
&gt; &gt; +                    if (this._condition.parseCondition === this._parseConditions.SCRIPT || this._condition.parseCondition === this._parseConditions.STYLE) {
&gt; 
&gt; We should be consistent in using === vs &amp; if there is no difference in case of SCRIPT and STYLE parse conditions I&apos;d prefer ===

Alas, there is a difference. At times, we can have the ATTRIBUTE_VALUE or ATTRIBUTE flag set along with the SCRIPT or STYLE state (I have seen this break the highlighting). There is a special comment following the line quoted: &quot;Fall through if expecting attributes&quot;, which mean this should not work if the ATTRIBUTE flag is set, so there is no point in fixing the consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341435</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-01-28 07:49:18 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       Source/WebCore/ChangeLog
        M       Source/WebCore/inspector/front-end/SourceHTMLTokenizer.js
        M       Source/WebCore/inspector/front-end/SourceHTMLTokenizer.re2js
Committed r76943</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352852</commentid>
    <comment_count>12</comment_count>
      <attachid>80436</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-02-17 07:15:43 -0800</bug_when>
    <thetext>Comment on attachment 80436
[PATCH] Comment addressed, added STYLE check in 2 places

Clearing cq? from a committed patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80204</attachid>
            <date>2011-01-26 09:54:25 -0800</date>
            <delta_ts>2011-01-28 03:43:23 -0800</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>tokenizecss.patch</filename>
            <type>text/plain</type>
            <size>25187</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDc5Y2E2ZTZjMDFlY2Q3YWY1OTE0OTdlYzhlNzkzZGFmNjM5MTFkOTUKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDI2
IDIwOjQ3OjU5IDIwMTEgKzAzMDAKCiAgICBIaWdobGlnaHRJbmxpbmVTdHlsZXNoZWV0cwoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlNGM1ODZkLi42NzcxN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDEtMjYgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBzeW50YXggaGlnaGxpZ2h0IGlubGluZSBKUyBhbmQgQ1NTIGluIEhUTUwgcmVzb3VyY2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMQor
CisgICAgICAgIEFuIGFwcHJvYWNoIGZvciB0b2tlbml6aW5nIHRoZSA8c2NyaXB0PiB0YWcgY29u
dGVudHMgaGFzIGJlZW4gcmV1c2VkCisgICAgICAgIHRvIHRva2VuaXplIHRoZSA8c3R5bGU+IHRh
ZyBjb250ZW50cy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRv
a2VuaXplci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5zZXQg
bGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUubmV4dFRva2VuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxU
b2tlbml6ZXIucmUyanM6CisKIDIwMTEtMDEtMjYgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5p
emVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9r
ZW5pemVyLmpzCmluZGV4IGNmYmM0NGYuLmJlNzFlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMKQEAg
LTEsNCArMSw0IEBACi0vKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gVGh1IEZlYiAyNSAy
MTo0NDo1NSAyMDEwICovCisvKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gV2VkIEphbiAy
NiAyMDo0NDoxMSAyMDExICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNjcsNyArNjcsOCBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlSFRNTFRva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICAgICAgQVRUUklCVVRFX1ZBTFVF
OiAyLAogICAgICAgICBMSU5LSUZZOiA0LAogICAgICAgICBBX05PREU6IDgsCi0gICAgICAgIFND
UklQVDogMTYKKyAgICAgICAgU0NSSVBUOiAxNiwKKyAgICAgICAgU1RZTEU6IDMyCiAgICAgfTsK
IAogICAgIHRoaXMuaW5pdGlhbENvbmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhD
b25kaXRpb25zLklOSVRJQUwsIHBhcnNlQ29uZGl0aW9uOiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMu
SU5JVElBTCB9OwpAQCAtODIsNiArODMsMTIgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tl
bml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNj
cmlwdFRva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpOwogICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0
VG9rZW5pemVyLmxpbmUgPSBsaW5lOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ludGVybmFs
Q1NTVG9rZW5pemVyKSB7CisgICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvc3R5bGUvaS5leGVj
KGxpbmUpOworICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsQ1NT
VG9rZW5pemVyLmxpbmUgPSBsaW5lOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX2xpbmUgPSBs
aW5lOwogICAgIH0sCkBAIC0xNDYsNiArMTUzLDE4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1M
VG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3IgIT09IHRoaXMuX2xpbmUubGVuZ3RoKQogICAg
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXI7Cisg
ICAgICAgIH0gZWxzZSBpZiAodGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKKyAgICAgICAg
ICAgIC8vIFJlLXNldCBsaW5lIHRvIGZvcmNlIDwvc3R5bGU+IGRldGVjdGlvbiBmaXJzdC4KKyAg
ICAgICAgICAgIHRoaXMubGluZSA9IHRoaXMuX2xpbmU7CisgICAgICAgICAgICBpZiAoY3Vyc29y
ICE9PSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5fbGluZS5sZW5ndGgpIHsKKyAgICAgICAg
ICAgICAgICAvLyBUb2tlbml6ZXIgaXMgc3RhdGVsZXNzLCBzbyByZXN0b3JlIGl0cyBjb25kaXRp
b24gYmVmb3JlIHRva2VuaXppbmcgYW5kIHNhdmUgaXQgYWZ0ZXIuCisgICAgICAgICAgICAgICAg
dGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuY29uZGl0aW9uID0gdGhpcy5fY29uZGl0aW9uLmlu
dGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICAgICAgICAgIHZhciByZXN1bHQg
PSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5uZXh0VG9rZW4oY3Vyc29yKTsKKyAgICAgICAg
ICAgICAgICB0aGlzLnRva2VuVHlwZSA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLnRva2Vu
VHlwZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6
ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5jb25kaXRpb247CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29y
ICE9PSB0aGlzLl9saW5lLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faW50
ZXJuYWxDU1NUb2tlbml6ZXI7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgY3Vyc29yT25FbnRl
ciA9IGN1cnNvcjsKQEAgLTM0NSwxMyArMzY0LDIxIEBAIGNhc2UgNDA6CiBjYXNlIDQxOgogICAg
ICAgICAgICAgeXlhY2NlcHQgPSAwOwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChZ
WU1BUktFUiA9ICsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdTJykgeyBnb3Rv
Q2FzZSA9IDY4OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdzJykgeyBn
b3RvQ2FzZSA9IDY4OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdTJykg
eyBnb3RvQ2FzZSA9IDczOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdz
JykgeyBnb3RvQ2FzZSA9IDczOyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIHsgZ290b0Nhc2Ug
PSA0MDsgY29udGludWU7IH07CiBjYXNlIDQyOgogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2No
YXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAnQycpIHsgZ290b0Nhc2Ug
PSA2MjsgY29udGludWU7IH07Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAnYycpIHsgZ290b0Nh
c2UgPSA2MjsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCA8PSAnVCcpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnQycpIHsgZ290b0Nhc2UgPSA2MjsgY29udGludWU7
IH07CisgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPj0gJ1QnKSB7IGdvdG9DYXNlID0gNjM7IGNv
bnRpbnVlOyB9OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoeXlj
aCA8PSAnYycpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPj0gJ2MnKSB7IGdvdG9D
YXNlID0gNjI7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICh5eWNoID09ICd0JykgeyBnb3RvQ2FzZSA9IDYzOyBjb250aW51ZTsg
fTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiBjYXNlIDQzOgogICAgICAgICAg
ICAgY3Vyc29yID0gWVlNQVJLRVI7CiAgICAgICAgICAgICB7IGdvdG9DYXNlID0gNDA7IGNvbnRp
bnVlOyB9OwpAQCAtNDIxLDI0ICs0NDgsNTIgQEAgY2FzZSA1OToKICAgICAgICAgICAgIHsgdGhp
cy50b2tlblR5cGUgPSAiaHRtbC1jb21tZW50IjsgcmV0dXJuIGN1cnNvcjsgfQogY2FzZSA2MjoK
ICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAg
aWYgKHl5Y2ggPT0gJ1InKSB7IGdvdG9DYXNlID0gNjM7IGNvbnRpbnVlOyB9OwotICAgICAgICAg
ICAgaWYgKHl5Y2ggIT0gJ3InKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworICAgICAg
ICAgICAgaWYgKHl5Y2ggPT0gJ1InKSB7IGdvdG9DYXNlID0gNjg7IGNvbnRpbnVlOyB9OworICAg
ICAgICAgICAgaWYgKHl5Y2ggPT0gJ3InKSB7IGdvdG9DYXNlID0gNjg7IGNvbnRpbnVlOyB9Owor
ICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKIGNhc2UgNjM6CiAgICAg
ICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5
eWNoID09ICdJJykgeyBnb3RvQ2FzZSA9IDY0OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgIGlm
ICh5eWNoICE9ICdpJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAg
IGlmICh5eWNoID09ICdZJykgeyBnb3RvQ2FzZSA9IDY0OyBjb250aW51ZTsgfTsKKyAgICAgICAg
ICAgIGlmICh5eWNoICE9ICd5JykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKIGNhc2Ug
NjQ6CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAg
ICAgIGlmICh5eWNoID09ICdQJykgeyBnb3RvQ2FzZSA9IDY1OyBjb250aW51ZTsgfTsKLSAgICAg
ICAgICAgIGlmICh5eWNoICE9ICdwJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgIGlmICh5eWNoID09ICdMJykgeyBnb3RvQ2FzZSA9IDY1OyBjb250aW51ZTsgfTsK
KyAgICAgICAgICAgIGlmICh5eWNoICE9ICdsJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsg
fTsKIGNhc2UgNjU6CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsK
LSAgICAgICAgICAgIGlmICh5eWNoID09ICdUJykgeyBnb3RvQ2FzZSA9IDY2OyBjb250aW51ZTsg
fTsKLSAgICAgICAgICAgIGlmICh5eWNoICE9ICd0JykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51
ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdFJykgeyBnb3RvQ2FzZSA9IDY2OyBjb250
aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoICE9ICdlJykgeyBnb3RvQ2FzZSA9IDQzOyBj
b250aW51ZTsgfTsKIGNhc2UgNjY6CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAgICAgICAg
IHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuVEFHKTsKICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRp
dGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TVFlMRSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRG8gbm90IHRva2VuaXplIHN0eWxlIHRhZyBjb250ZW50cywga2VlcCBsZXhlciBz
dGF0ZSBhbHRob3VnaCBwcm9jZXNzaW5nICI8Ii4KKyAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3Vyc29yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKKyAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25z
LlNUWUxFOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRFeHBlY3RpbmdBdHRyaWJ1dGUo
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKKyAgICAgICAgICAgICAgICB9
CitjYXNlIDY4OgorICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Cisg
ICAgICAgICAgICBpZiAoeXljaCA9PSAnSScpIHsgZ290b0Nhc2UgPSA2OTsgY29udGludWU7IH07
CisgICAgICAgICAgICBpZiAoeXljaCAhPSAnaScpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7
IH07CitjYXNlIDY5OgorICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7
CisgICAgICAgICAgICBpZiAoeXljaCA9PSAnUCcpIHsgZ290b0Nhc2UgPSA3MDsgY29udGludWU7
IH07CisgICAgICAgICAgICBpZiAoeXljaCAhPSAncCcpIHsgZ290b0Nhc2UgPSA0MzsgY29udGlu
dWU7IH07CitjYXNlIDcwOgorICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNv
cik7CisgICAgICAgICAgICBpZiAoeXljaCA9PSAnVCcpIHsgZ290b0Nhc2UgPSA3MTsgY29udGlu
dWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCAhPSAndCcpIHsgZ290b0Nhc2UgPSA0MzsgY29u
dGludWU7IH07CitjYXNlIDcxOgorICAgICAgICAgICAgKytjdXJzb3I7CisgICAgICAgICAgICB0
aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLlRBRyk7CisgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRp
b24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBEbyBub3QgdG9rZW5pemUgc2NyaXB0IHRhZyBjb250ZW50cywga2VlcCBsZXhlciBz
dGF0ZSBhbHRob3VnaCBwcm9jZXNzaW5nICI8Ii4KICAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCk7CkBAIC00NTAs
MjcgKzUwNSw1NiBAQCBjYXNlIDY2OgogICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRFeHBl
Y3RpbmdBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAg
ICAgICAgICAgICAgICB9Ci1jYXNlIDY4OgorY2FzZSA3MzoKICAgICAgICAgICAgIHl5Y2ggPSB0
aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ0MnKSB7IGdv
dG9DYXNlID0gNjk7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ2MnKSB7
IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OwotY2FzZSA2OToKKyAgICAgICAgICAgIGlmICh5
eWNoIDw9ICdUJykgeworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdDJykgeyBnb3RvQ2Fz
ZSA9IDc1OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnUycpIHsg
Z290b0Nhc2UgPSA0MzsgY29udGludWU7IH07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGlmICh5eWNoIDw9ICdjJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoeXlj
aCA8PSAnYicpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAg
ICAgIHsgZ290b0Nhc2UgPSA3NTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ3QnKSB7IGdvdG9DYXNlID0gNDM7
IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOworICAgICAgICAgICAgaWYgKHl5Y2gg
PT0gJ1knKSB7IGdvdG9DYXNlID0gODE7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5
Y2ggPT0gJ3knKSB7IGdvdG9DYXNlID0gODE7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgeyBn
b3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKK2Nhc2UgNzU6CiAgICAgICAgICAgICB5eWNoID0g
dGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdSJykgeyBn
b3RvQ2FzZSA9IDcwOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdSJykg
eyBnb3RvQ2FzZSA9IDc2OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIGlmICh5eWNoICE9ICdy
JykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKLWNhc2UgNzA6CitjYXNlIDc2OgogICAg
ICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICBpZiAo
eXljaCA9PSAnSScpIHsgZ290b0Nhc2UgPSA3MTsgY29udGludWU7IH07CisgICAgICAgICAgICBp
ZiAoeXljaCA9PSAnSScpIHsgZ290b0Nhc2UgPSA3NzsgY29udGludWU7IH07CiAgICAgICAgICAg
ICBpZiAoeXljaCAhPSAnaScpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07Ci1jYXNlIDcx
OgorY2FzZSA3NzoKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwot
ICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1AnKSB7IGdvdG9DYXNlID0gNzI7IGNvbnRpbnVlOyB9
OworICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1AnKSB7IGdvdG9DYXNlID0gNzg7IGNvbnRpbnVl
OyB9OwogICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ3AnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRp
bnVlOyB9OwotY2FzZSA3MjoKK2Nhc2UgNzg6CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hh
ckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdUJykgeyBnb3RvQ2FzZSA9
IDczOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdUJykgeyBnb3RvQ2Fz
ZSA9IDc5OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIGlmICh5eWNoICE9ICd0JykgeyBnb3Rv
Q2FzZSA9IDQzOyBjb250aW51ZTsgfTsKLWNhc2UgNzM6CitjYXNlIDc5OgorICAgICAgICAgICAg
KytjdXJzb3I7CisgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25k
aXRpb25zLlRBRyk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMudG9r
ZW5UeXBlID0gImh0bWwtdGFnIjsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CisgICAgICAgICAgICAgICAgfQorY2FzZSA4MToK
KyAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOworICAgICAgICAgICAg
aWYgKHl5Y2ggPT0gJ0wnKSB7IGdvdG9DYXNlID0gODI7IGNvbnRpbnVlOyB9OworICAgICAgICAg
ICAgaWYgKHl5Y2ggIT0gJ2wnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworY2FzZSA4
MjoKKyAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOworICAgICAgICAg
ICAgaWYgKHl5Y2ggPT0gJ0UnKSB7IGdvdG9DYXNlID0gODM7IGNvbnRpbnVlOyB9OworICAgICAg
ICAgICAgaWYgKHl5Y2ggIT0gJ2UnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworY2Fz
ZSA4MzoKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25k
aXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5UQUcpOwogICAgICAgICAgICAgewpAQCAtNDgyLDc2
ICs1NjYsNzYgQEAgY2FzZSA3MzoKIGNhc2UgdGhpcy5jYXNlX1NTVFJJTkc6CiAgICAgICAgICAg
ICB5eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7CiAgICAgICAgICAgICBpZiAoeXljaCA8PSAn
XGYnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1xuJykgeyBnb3RvQ2FzZSA9IDc5
OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gNzg7IGNvbnRpbnVl
OyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcbicpIHsgZ290b0Nhc2UgPSA4OTsg
Y29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDg4OyBjb250aW51ZTsg
fTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xy
JykgeyBnb3RvQ2FzZSA9IDc5OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICBpZiAoeXlj
aCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gODE7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAg
IHsgZ290b0Nhc2UgPSA3ODsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDg5OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBp
ZiAoeXljaCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gOTE7IGNvbnRpbnVlOyB9OworICAgICAgICAg
ICAgICAgIHsgZ290b0Nhc2UgPSA4ODsgY29udGludWU7IH07CiAgICAgICAgICAgICB9Ci1jYXNl
IDc3OgorY2FzZSA4NzoKICAgICAgICAgICAgIHsgcmV0dXJuIHRoaXMuX3N0cmluZ1Rva2VuKGN1
cnNvcik7IH0KLWNhc2UgNzg6CitjYXNlIDg4OgogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2No
YXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICB7IGdvdG9DYXNlID0gODU7IGNvbnRpbnVlOyB9
OwotY2FzZSA3OToKKyAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA5NTsgY29udGludWU7IH07Citj
YXNlIDg5OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB7IHRoaXMudG9rZW5U
eXBlID0gbnVsbDsgcmV0dXJuIGN1cnNvcjsgfQotY2FzZSA4MToKK2Nhc2UgOTE6CiAgICAgICAg
ICAgICArK2N1cnNvcjsKLWNhc2UgODI6CitjYXNlIDkyOgogICAgICAgICAgICAgdGhpcy5zZXRM
ZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5UQUcpOwogICAgICAgICAgICAgeyByZXR1
cm4gdGhpcy5fc3RyaW5nVG9rZW4oY3Vyc29yLCB0cnVlKTsgfQotY2FzZSA4MzoKK2Nhc2UgOTM6
CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAg
IHsgZ290b0Nhc2UgPSA4MjsgY29udGludWU7IH07Ci1jYXNlIDg0OgorICAgICAgICAgICAgeyBn
b3RvQ2FzZSA9IDkyOyBjb250aW51ZTsgfTsKK2Nhc2UgOTQ6CiAgICAgICAgICAgICArK2N1cnNv
cjsKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoY3Vyc29yKTsKLWNhc2UgODU6Citj
YXNlIDk1OgogICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xmJykgewotICAgICAgICAgICAgICAg
IGlmICh5eWNoID09ICdcbicpIHsgZ290b0Nhc2UgPSA3NzsgY29udGludWU7IH07Ci0gICAgICAg
ICAgICAgICAgeyBnb3RvQ2FzZSA9IDg0OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBp
ZiAoeXljaCA9PSAnXG4nKSB7IGdvdG9DYXNlID0gODc7IGNvbnRpbnVlOyB9OworICAgICAgICAg
ICAgICAgIHsgZ290b0Nhc2UgPSA5NDsgY29udGludWU7IH07CiAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdccicpIHsgZ290b0Nhc2UgPSA3NzsgY29u
dGludWU7IH07Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1wnJykgeyBnb3RvQ2FzZSA9
IDgzOyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gODQ7IGNvbnRp
bnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdccicpIHsgZ290b0Nhc2UgPSA4
NzsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1wnJykgeyBnb3Rv
Q2FzZSA9IDkzOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gOTQ7
IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgfQogLyogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiogKi8KIGNhc2UgdGhpcy5jYXNlX1RBRzoKICAgICAgICAgICAgIHl5Y2ggPSB0
aGlzLl9jaGFyQXQoY3Vyc29yKTsKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICcmJykgewogICAg
ICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdccicpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHl5Y2ggPT0gJ1xuJykgeyBnb3RvQ2FzZSA9IDkwOyBjb250aW51ZTsgfTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHl5Y2ggPj0gJ1xyJykgeyBnb3RvQ2FzZSA9IDkwOyBjb250aW51ZTsgfTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1xuJykgeyBnb3RvQ2FzZSA9IDEwMDsg
Y29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID49ICdccicpIHsgZ290
b0Nhc2UgPSAxMDA7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICcgJykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHl5Y2ggPj0gJyAnKSB7IGdvdG9DYXNlID0gOTA7IGNvbnRpbnVlOyB9OworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPj0gJyAnKSB7IGdvdG9DYXNlID0gMTAwOyBjb250
aW51ZTsgfTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh5eWNoID09ICciJykgeyBnb3RvQ2FzZSA9IDkyOyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICciJykgeyBnb3RvQ2FzZSA9IDEwMjsg
Y29udGludWU7IH07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc+Jykgewog
ICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnOycpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh5eWNoIDw9ICdcJycpIHsgZ290b0Nhc2UgPSA5MzsgY29udGludWU7IH07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXCcnKSB7IGdvdG9DYXNlID0gMTAz
OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc8JykgeyBnb3RvQ2FzZSA9IDkwOyBjb250aW51ZTsg
fTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc9JykgeyBnb3RvQ2FzZSA9
IDk0OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA5
NjsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnPCcp
IHsgZ290b0Nhc2UgPSAxMDA7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHl5Y2ggPD0gJz0nKSB7IGdvdG9DYXNlID0gMTA0OyBjb250aW51ZTsgfTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAxMDY7IGNvbnRpbnVlOyB9OwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHl5Y2ggPD0gJ1snKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA+
PSAnWycpIHsgZ290b0Nhc2UgPSA5MDsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoeXljaCA+PSAnWycpIHsgZ290b0Nhc2UgPSAxMDA7IGNvbnRpbnVlOyB9OwogICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5
Y2ggPT0gJ10nKSB7IGdvdG9DYXNlID0gOTA7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHl5Y2ggPT0gJ10nKSB7IGdvdG9DYXNlID0gMTAwOyBjb250aW51ZTsgfTsK
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChj
dXJzb3IpOwotICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDEwOTsgY29udGludWU7IH07Ci1jYXNl
IDg5OgorICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDExOTsgY29udGludWU7IH07CitjYXNlIDk5
OgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9u
LnBhcnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggaWYgZXhwZWN0aW5nIGF0dHJpYnV0
ZXMuCkBAIC01ODAsMTggKzY2NCwxOCBAQCBjYXNlIDg5OgogICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vy
c29yOwogICAgICAgICAgICAgICAgIH0KLWNhc2UgOTA6CitjYXNlIDEwMDoKICAgICAgICAgICAg
ICsrY3Vyc29yOwogICAgICAgICAgICAgeyB0aGlzLnRva2VuVHlwZSA9IG51bGw7IHJldHVybiBj
dXJzb3I7IH0KLWNhc2UgOTI6CitjYXNlIDEwMjoKICAgICAgICAgICAgIHl5YWNjZXB0ID0gMDsK
ICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoWVlNQVJLRVIgPSArK2N1cnNvcik7Ci0g
ICAgICAgICAgICB7IGdvdG9DYXNlID0gMTA1OyBjb250aW51ZTsgfTsKLWNhc2UgOTM6CisgICAg
ICAgICAgICB7IGdvdG9DYXNlID0gMTE1OyBjb250aW51ZTsgfTsKK2Nhc2UgMTAzOgogICAgICAg
ICAgICAgeXlhY2NlcHQgPSAwOwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChZWU1B
UktFUiA9ICsrY3Vyc29yKTsKLSAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA5OTsgY29udGludWU7
IH07Ci1jYXNlIDk0OgorICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDEwOTsgY29udGludWU7IH07
CitjYXNlIDEwNDoKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICBpZiAodGhpcy5faXNFeHBlY3RpbmdBdHRyaWJ1dGUoKSkKQEAgLTU5OSw3
ICs2ODMsNyBAQCBjYXNlIDk0OgogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9
IG51bGw7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAg
ICAgfQotY2FzZSA5NjoKK2Nhc2UgMTA2OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAg
ICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwpOwog
ICAgICAgICAgICAgewpAQCAtNjEzLDY4ICs2OTcsNzcgQEAgY2FzZSA5NjoKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgICAgIH0KIAorICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhp
cy5fcGFyc2VDb25kaXRpb25zLlNUWUxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
IXRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIgPSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5p
emVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2NzcyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2Vu
aXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRp
b247CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBEbyBub3QgdG9rZW5pemUgc3R5bGUgdGFnIGNvbnRlbnRzLgorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGN1cnNvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29u
ZGl0aW9ucy5JTklUSUFMOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAg
ICAgICAgICAgICAgIH0KLWNhc2UgOTg6CitjYXNlIDEwODoKICAgICAgICAgICAgICsrY3Vyc29y
OwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJzb3IpOwotY2FzZSA5OToKK2Nh
c2UgMTA5OgogICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xmJykgewotICAgICAgICAgICAgICAg
IGlmICh5eWNoICE9ICdcbicpIHsgZ290b0Nhc2UgPSA5ODsgY29udGludWU7IH07CisgICAgICAg
ICAgICAgICAgaWYgKHl5Y2ggIT0gJ1xuJykgeyBnb3RvQ2FzZSA9IDEwODsgY29udGludWU7IH07
CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdccicp
IHsgZ290b0Nhc2UgPSAxMDA7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgIGlmICh5eWNo
ID09ICdcJycpIHsgZ290b0Nhc2UgPSAxMDI7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAg
IHsgZ290b0Nhc2UgPSA5ODsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDExMDsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAg
aWYgKHl5Y2ggPT0gJ1wnJykgeyBnb3RvQ2FzZSA9IDExMjsgY29udGludWU7IH07CisgICAgICAg
ICAgICAgICAgeyBnb3RvQ2FzZSA9IDEwODsgY29udGludWU7IH07CiAgICAgICAgICAgICB9Ci1j
YXNlIDEwMDoKK2Nhc2UgMTEwOgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB0
aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLlNTVFJJTkcpOwogICAgICAg
ICAgICAgeyByZXR1cm4gdGhpcy5fc3RyaW5nVG9rZW4oY3Vyc29yKTsgfQotY2FzZSAxMDI6Citj
YXNlIDExMjoKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgeyByZXR1cm4gdGhp
cy5fc3RyaW5nVG9rZW4oY3Vyc29yLCB0cnVlKTsgfQotY2FzZSAxMDQ6CitjYXNlIDExNDoKICAg
ICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJz
b3IpOwotY2FzZSAxMDU6CitjYXNlIDExNToKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdcZicp
IHsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCAhPSAnXG4nKSB7IGdvdG9DYXNlID0gMTA0OyBj
b250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCAhPSAnXG4nKSB7IGdvdG9DYXNl
ID0gMTE0OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHl5Y2ggPD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDEwNjsgY29udGludWU7IH07Ci0gICAg
ICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJyInKSB7IGdvdG9DYXNlID0gMTAyOyBjb250aW51ZTsg
fTsKLSAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gMTA0OyBjb250aW51ZTsgfTsKKyAgICAg
ICAgICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9DYXNlID0gMTE2OyBjb250aW51ZTsg
fTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnIicpIHsgZ290b0Nhc2UgPSAxMTI7IGNv
bnRpbnVlOyB9OworICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAxMTQ7IGNvbnRpbnVlOyB9
OwogICAgICAgICAgICAgfQotY2FzZSAxMDY6CitjYXNlIDExNjoKICAgICAgICAgICAgICsrY3Vy
c29yOwogICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9u
cy5EU1RSSU5HKTsKICAgICAgICAgICAgIHsgcmV0dXJuIHRoaXMuX3N0cmluZ1Rva2VuKGN1cnNv
cik7IH0KLWNhc2UgMTA4OgorY2FzZSAxMTg6CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAg
ICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoY3Vyc29yKTsKLWNhc2UgMTA5OgorY2FzZSAxMTk6
CiAgICAgICAgICAgICBpZiAoeXljaCA8PSAnIicpIHsKICAgICAgICAgICAgICAgICBpZiAoeXlj
aCA8PSAnXHInKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcbicpIHsgZ290
b0Nhc2UgPSA4OTsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9
ICdcZicpIHsgZ290b0Nhc2UgPSAxMDg7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgICAg
ICB7IGdvdG9DYXNlID0gODk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICBpZiAo
eXljaCA9PSAnXG4nKSB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAg
ICAgICAgICBpZiAoeXljaCA8PSAnXGYnKSB7IGdvdG9DYXNlID0gMTE4OyBjb250aW51ZTsgfTsK
KyAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDk5OyBjb250aW51ZTsgfTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnICcp
IHsgZ290b0Nhc2UgPSA4OTsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5
eWNoIDw9ICchJykgeyBnb3RvQ2FzZSA9IDEwODsgY29udGludWU7IH07Ci0gICAgICAgICAgICAg
ICAgICAgIHsgZ290b0Nhc2UgPSA4OTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAg
IGlmICh5eWNoID09ICcgJykgeyBnb3RvQ2FzZSA9IDk5OyBjb250aW51ZTsgfTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJyEnKSB7IGdvdG9DYXNlID0gMTE4OyBjb250aW51ZTsg
fTsKKyAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDk5OyBjb250aW51ZTsgfTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlm
ICh5eWNoIDw9ICc+JykgewotICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnXCcnKSB7
IGdvdG9DYXNlID0gODk7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgICAgICBpZiAoeXlj
aCA8PSAnOycpIHsgZ290b0Nhc2UgPSAxMDg7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAg
ICAgICB7IGdvdG9DYXNlID0gODk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICBp
ZiAoeXljaCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OworICAgICAgICAg
ICAgICAgICAgICBpZiAoeXljaCA8PSAnOycpIHsgZ290b0Nhc2UgPSAxMTg7IGNvbnRpbnVlOyB9
OworICAgICAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdb
JykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1onKSB7IGdvdG9DYXNl
ID0gMTA4OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2Ug
PSA4OTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAn
WicpIHsgZ290b0Nhc2UgPSAxMTg7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICAg
ICAgeyBnb3RvQ2FzZSA9IDk5OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICddJykgeyBnb3RvQ2Fz
ZSA9IDg5OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2Ug
PSAxMDg7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0g
J10nKSB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICAg
ICAgeyBnb3RvQ2FzZSA9IDExODsgY29udGludWU7IH07CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIucmUyanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIucmUyanMK
aW5kZXggNDRjNjJiMy4uNTQ0ZWNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcwpAQCAtNjYs
NyArNjYsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplciA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgQVRUUklCVVRFX1ZBTFVFOiAyLAogICAgICAgICBMSU5LSUZZOiA0LAogICAgICAg
ICBBX05PREU6IDgsCi0gICAgICAgIFNDUklQVDogMTYKKyAgICAgICAgU0NSSVBUOiAxNiwKKyAg
ICAgICAgU1RZTEU6IDMyCiAgICAgfTsKIAogICAgIHRoaXMuaW5pdGlhbENvbmRpdGlvbiA9IHsg
bGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwsIHBhcnNlQ29uZGl0aW9u
OiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCB9OwpAQCAtODEsNiArODIsMTIgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJp
bmcoMCwgbWF0Y2guaW5kZXgpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAg
dGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lOworICAgICAgICB9
IGVsc2UgaWYgKHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgICAgICB2YXIg
bWF0Y2ggPSAvPFwvc3R5bGUvaS5leGVjKGxpbmUpOworICAgICAgICAgICAgaWYgKG1hdGNoKSB7
CisgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIubGluZSA9IGxpbmUu
c3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmxpbmUgPSBsaW5lOwogICAgICAgICB9
CiAgICAgICAgIHRoaXMuX2xpbmUgPSBsaW5lOwogICAgIH0sCkBAIC0xNDUsNiArMTUyLDE4IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3IgIT09
IHRoaXMuX2xpbmUubGVuZ3RoKQogICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbnRlcm5h
bEphdmFTY3JpcHRUb2tlbml6ZXI7CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5faW50ZXJuYWxD
U1NUb2tlbml6ZXIpIHsKKyAgICAgICAgICAgIC8vIFJlLXNldCBsaW5lIHRvIGZvcmNlIDwvc3R5
bGU+IGRldGVjdGlvbiBmaXJzdC4KKyAgICAgICAgICAgIHRoaXMubGluZSA9IHRoaXMuX2xpbmU7
CisgICAgICAgICAgICBpZiAoY3Vyc29yICE9PSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5f
bGluZS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAvLyBUb2tlbml6ZXIgaXMgc3RhdGVsZXNz
LCBzbyByZXN0b3JlIGl0cyBjb25kaXRpb24gYmVmb3JlIHRva2VuaXppbmcgYW5kIHNhdmUgaXQg
YWZ0ZXIuCisgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuY29uZGl0
aW9uID0gdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uOworICAg
ICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5uZXh0
VG9rZW4oY3Vyc29yKTsKKyAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9IHRoaXMuX2lu
dGVybmFsQ1NTVG9rZW5pemVyLnRva2VuVHlwZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9jb25k
aXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbENTU1Rv
a2VuaXplci5jb25kaXRpb247CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yICE9PSB0aGlzLl9saW5lLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICBkZWxldGUgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXI7CiAgICAgICAgIH0KIAog
ICAgICAgICB2YXIgY3Vyc29yT25FbnRlciA9IGN1cnNvcjsKQEAgLTE3NSw2ICsxOTQsOSBAQCBX
ZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgU2NyaXB0U3RhcnQgPSAiPCIgW1NzXSBbQ2NdIFtScl0gW0lpXSBbUHBdIFtUdF07CiAg
ICAgICAgICAgICAgICAgU2NyaXB0RW5kID0gIjwvIiBbU3NdIFtDY10gW1JyXSBbSWldIFtQcF0g
W1R0XTsKIAorICAgICAgICAgICAgICAgIFN0eWxlU3RhcnQgPSAiPCIgW1NzXSBbVHRdIFtZeV0g
W0xsXSBbRWVdOworICAgICAgICAgICAgICAgIFN0eWxlRW5kID0gIjwvIiBbU3NdIFtUdF0gW1l5
XSBbTGxdIFtFZV07CisKICAgICAgICAgICAgICAgICBMVCA9ICI8IiB8ICI8LyI7CiAgICAgICAg
ICAgICAgICAgR1QgPSAiPiI7CiAgICAgICAgICAgICAgICAgRXF1YWxTaWduID0gIj0iOwpAQCAt
MjE5LDYgKzI0MSwyNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAg
ICAgfQogCisgICAgICAgICAgICAgICAgPElOSVRJQUw+IFN0eWxlU3RhcnQgPT4gVEFHCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBh
cnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRpb25zLlNUWUxFKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBEbyBub3QgdG9rZW5pemUgc3R5bGUgdGFnIGNvbnRlbnRzLCBrZWVw
IGxleGVyIHN0YXRlIGFsdGhvdWdoIHByb2Nlc3NpbmcgIjwiLgorICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5zZXRMZXhDb25kaXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gbnVsbDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWciOworICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuU1RZTEU7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEV4cGVjdGluZ0F0
dHJpYnV0ZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIDxJTklUSUFMPiBTdHlsZUVuZCA9PiBUQUcKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0
bWwtdGFnIjsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0
aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBjdXJzb3I7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgPElO
SVRJQUw+IExUID0+IFRBRwogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9u
cy5TQ1JJUFQpIHsKQEAgLTI0NSw2ICsyODgsMTUgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxU
b2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1
cnNvcjsKICAgICAgICAgICAgICAgICAgICAgfQogCisgICAgICAgICAgICAgICAgICAgIGlmICh0
aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU1RZ
TEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxDU1NUb2tl
bml6ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbENTU1Rv
a2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFu
Y2UoKS5nZXRUb2tlbml6ZXIoInRleHQvY3NzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uID0gdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCB0b2tlbml6ZSBzdHls
ZSB0YWcgY29udGVudHMuCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwor
ICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0
aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQo=
</data>
<flag name="review"
          id="71670"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80436</attachid>
            <date>2011-01-28 03:43:23 -0800</date>
            <delta_ts>2011-02-17 07:15:43 -0800</delta_ts>
            <desc>[PATCH] Comment addressed, added STYLE check in 2 places</desc>
            <filename>tokenizecss.patch</filename>
            <type>text/plain</type>
            <size>26752</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDViNGZhNjVlYmQ5NzVjOWVlNjA1NzkxZTY4NjMxZmFlMzA5ZjdmOGUKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDI2
IDIwOjQ3OjU5IDIwMTEgKzAzMDAKCiAgICBIaWdobGlnaHRJbmxpbmVTdHlsZXNoZWV0cwoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA0MDg0MTUxLi4yZmI2YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDEtMjggIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBzeW50YXggaGlnaGxpZ2h0IGlubGluZSBKUyBhbmQgQ1NTIGluIEhUTUwgcmVzb3VyY2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMQor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnNldCBsaW5lKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5uZXh0VG9rZW4p
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJq
czoKKwogMjAxMS0wMS0yOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc2ODkzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVy
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5p
emVyLmpzCmluZGV4IGNmYmM0NGYuLjQ3Y2U2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMKQEAgLTEs
NCArMSw0IEBACi0vKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gVGh1IEZlYiAyNSAyMTo0
NDo1NSAyMDEwICovCisvKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gRnJpIEphbiAyOCAx
MzozMDozMSAyMDExICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNjcsNyArNjcsOCBAQCBXZWJJbnNwZWN0b3IuU291
cmNlSFRNTFRva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICAgICAgQVRUUklCVVRFX1ZBTFVFOiAy
LAogICAgICAgICBMSU5LSUZZOiA0LAogICAgICAgICBBX05PREU6IDgsCi0gICAgICAgIFNDUklQ
VDogMTYKKyAgICAgICAgU0NSSVBUOiAxNiwKKyAgICAgICAgU1RZTEU6IDMyCiAgICAgfTsKIAog
ICAgIHRoaXMuaW5pdGlhbENvbmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25k
aXRpb25zLklOSVRJQUwsIHBhcnNlQ29uZGl0aW9uOiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5J
VElBTCB9OwpAQCAtODIsNiArODMsMTIgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6
ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpOwogICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9r
ZW5pemVyLmxpbmUgPSBsaW5lOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ludGVybmFsQ1NT
VG9rZW5pemVyKSB7CisgICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvc3R5bGUvaS5leGVjKGxp
bmUpOworICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5faW50
ZXJuYWxDU1NUb2tlbml6ZXIubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsQ1NTVG9r
ZW5pemVyLmxpbmUgPSBsaW5lOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX2xpbmUgPSBsaW5l
OwogICAgIH0sCkBAIC0xNDYsNiArMTUzLDE4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9r
ZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
ICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3IgIT09IHRoaXMuX2xpbmUubGVuZ3RoKQogICAgICAg
ICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXI7CisgICAg
ICAgIH0gZWxzZSBpZiAodGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKKyAgICAgICAgICAg
IC8vIFJlLXNldCBsaW5lIHRvIGZvcmNlIDwvc3R5bGU+IGRldGVjdGlvbiBmaXJzdC4KKyAgICAg
ICAgICAgIHRoaXMubGluZSA9IHRoaXMuX2xpbmU7CisgICAgICAgICAgICBpZiAoY3Vyc29yICE9
PSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5fbGluZS5sZW5ndGgpIHsKKyAgICAgICAgICAg
ICAgICAvLyBUb2tlbml6ZXIgaXMgc3RhdGVsZXNzLCBzbyByZXN0b3JlIGl0cyBjb25kaXRpb24g
YmVmb3JlIHRva2VuaXppbmcgYW5kIHNhdmUgaXQgYWZ0ZXIuCisgICAgICAgICAgICAgICAgdGhp
cy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuY29uZGl0aW9uID0gdGhpcy5fY29uZGl0aW9uLmludGVy
bmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0
aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5uZXh0VG9rZW4oY3Vyc29yKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLnRva2VuVHlwZSA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLnRva2VuVHlw
ZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJD
b25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5jb25kaXRpb247CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yICE9
PSB0aGlzLl9saW5lLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faW50ZXJu
YWxDU1NUb2tlbml6ZXI7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgY3Vyc29yT25FbnRlciA9
IGN1cnNvcjsKQEAgLTMzMSw3ICszNTAsNyBAQCBjYXNlIDM5OgogY2FzZSA0MDoKICAgICAgICAg
ICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuVEFHKTsKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNv
bmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmICh0aGlzLl9wYXJzZUNv
bmRpdGlvbnMuU0NSSVBUIHwgdGhpcy5fcGFyc2VDb25kaXRpb25zLlNUWUxFKSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlwdCB0YWcgY29udGVudHMs
IGtlZXAgbGV4ZXIgc3RhdGUgYWx0aG91Z2ggcHJvY2Vzc2luZyAiPCIuCiAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJ
QUwpOwogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOwpAQCAt
MzQ1LDEzICszNjQsMjEgQEAgY2FzZSA0MDoKIGNhc2UgNDE6CiAgICAgICAgICAgICB5eWFjY2Vw
dCA9IDA7CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KFlZTUFSS0VSID0gKytjdXJz
b3IpOwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1MnKSB7IGdvdG9DYXNlID0gNjg7IGNvbnRp
bnVlOyB9OwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ3MnKSB7IGdvdG9DYXNlID0gNjg7IGNv
bnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1MnKSB7IGdvdG9DYXNlID0gNzM7
IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ3MnKSB7IGdvdG9DYXNlID0g
NzM7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDQwOyBjb250aW51ZTsg
fTsKIGNhc2UgNDI6CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsK
LSAgICAgICAgICAgIGlmICh5eWNoID09ICdDJykgeyBnb3RvQ2FzZSA9IDYyOyBjb250aW51ZTsg
fTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdjJykgeyBnb3RvQ2FzZSA9IDYyOyBjb250aW51
ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoIDw9ICdUJykgeworICAgICAgICAgICAgICAgIGlm
ICh5eWNoID09ICdDJykgeyBnb3RvQ2FzZSA9IDYyOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAg
ICAgICBpZiAoeXljaCA+PSAnVCcpIHsgZ290b0Nhc2UgPSA2MzsgY29udGludWU7IH07CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdjJykgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoeXljaCA+PSAnYycpIHsgZ290b0Nhc2UgPSA2MjsgY29udGlu
dWU7IH07CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHl5Y2ggPT0gJ3QnKSB7IGdvdG9DYXNlID0gNjM7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KIGNhc2UgNDM6CiAgICAgICAgICAgICBjdXJzb3IgPSBZWU1B
UktFUjsKICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA0MDsgY29udGludWU7IH07CkBAIC00MjEs
MjQgKzQ0OCw1MiBAQCBjYXNlIDU5OgogICAgICAgICAgICAgeyB0aGlzLnRva2VuVHlwZSA9ICJo
dG1sLWNvbW1lbnQiOyByZXR1cm4gY3Vyc29yOyB9CiBjYXNlIDYyOgogICAgICAgICAgICAgeXlj
aCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAnUicp
IHsgZ290b0Nhc2UgPSA2MzsgY29udGludWU7IH07Ci0gICAgICAgICAgICBpZiAoeXljaCAhPSAn
cicpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCA9
PSAnUicpIHsgZ290b0Nhc2UgPSA2ODsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXlj
aCA9PSAncicpIHsgZ290b0Nhc2UgPSA2ODsgY29udGludWU7IH07CisgICAgICAgICAgICB7IGdv
dG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OwogY2FzZSA2MzoKICAgICAgICAgICAgIHl5Y2ggPSB0
aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ0knKSB7IGdv
dG9DYXNlID0gNjQ7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ2knKSB7
IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1kn
KSB7IGdvdG9DYXNlID0gNjQ7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5Y2ggIT0g
J3knKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OwogY2FzZSA2NDoKICAgICAgICAgICAg
IHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0g
J1AnKSB7IGdvdG9DYXNlID0gNjU7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgaWYgKHl5Y2gg
IT0gJ3AnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5
Y2ggPT0gJ0wnKSB7IGdvdG9DYXNlID0gNjU7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgaWYg
KHl5Y2ggIT0gJ2wnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OwogY2FzZSA2NToKICAg
ICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgaWYg
KHl5Y2ggPT0gJ1QnKSB7IGdvdG9DYXNlID0gNjY7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAg
aWYgKHl5Y2ggIT0gJ3QnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OworICAgICAgICAg
ICAgaWYgKHl5Y2ggPT0gJ0UnKSB7IGdvdG9DYXNlID0gNjY7IGNvbnRpbnVlOyB9OworICAgICAg
ICAgICAgaWYgKHl5Y2ggIT0gJ2UnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRpbnVlOyB9OwogY2Fz
ZSA2NjoKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25k
aXRpb24odGhpcy5fbGV4Q29uZGl0aW9ucy5UQUcpOwogICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFy
c2VDb25kaXRpb25zLlNUWUxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3Qg
dG9rZW5pemUgc3R5bGUgdGFnIGNvbnRlbnRzLCBrZWVwIGxleGVyIHN0YXRlIGFsdGhvdWdoIHBy
b2Nlc3NpbmcgIjwiLgorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRp
b24odGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMudG9rZW5UeXBlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
dXJzb3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGhpcy50
b2tlblR5cGUgPSAiaHRtbC10YWciOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRp
b24ucGFyc2VDb25kaXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU1RZTEU7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX3NldEV4cGVjdGluZ0F0dHJpYnV0ZSgpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3Vyc29yOworICAgICAgICAgICAgICAgIH0KK2Nhc2UgNjg6CisgICAg
ICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKKyAgICAgICAgICAgIGlmICh5
eWNoID09ICdJJykgeyBnb3RvQ2FzZSA9IDY5OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlm
ICh5eWNoICE9ICdpJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKK2Nhc2UgNjk6Cisg
ICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKKyAgICAgICAgICAgIGlm
ICh5eWNoID09ICdQJykgeyBnb3RvQ2FzZSA9IDcwOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAg
IGlmICh5eWNoICE9ICdwJykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKK2Nhc2UgNzA6
CisgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKKyAgICAgICAgICAg
IGlmICh5eWNoID09ICdUJykgeyBnb3RvQ2FzZSA9IDcxOyBjb250aW51ZTsgfTsKKyAgICAgICAg
ICAgIGlmICh5eWNoICE9ICd0JykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKK2Nhc2Ug
NzE6CisgICAgICAgICAgICArK2N1cnNvcjsKKyAgICAgICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0
aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuVEFHKTsKKyAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNl
Q29uZGl0aW9ucy5TQ1JJUFQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCB0
b2tlbml6ZSBzY3JpcHQgdGFnIGNvbnRlbnRzLCBrZWVwIGxleGVyIHN0YXRlIGFsdGhvdWdoIHBy
b2Nlc3NpbmcgIjwiLgogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMZXhDb25kaXRp
b24odGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMKTsKQEAgLTQ1MCwyNyArNTA1LDU2IEBAIGNh
c2UgNjY6CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEV4cGVjdGluZ0F0dHJpYnV0ZSgp
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0K
LWNhc2UgNjg6CitjYXNlIDczOgogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1
cnNvcik7Ci0gICAgICAgICAgICBpZiAoeXljaCA9PSAnQycpIHsgZ290b0Nhc2UgPSA2OTsgY29u
dGludWU7IH07Ci0gICAgICAgICAgICBpZiAoeXljaCAhPSAnYycpIHsgZ290b0Nhc2UgPSA0Mzsg
Y29udGludWU7IH07Ci1jYXNlIDY5OgorICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1QnKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ0MnKSB7IGdvdG9DYXNlID0gNzU7IGNvbnRpbnVl
OyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdTJykgeyBnb3RvQ2FzZSA9IDQzOyBj
b250aW51ZTsgfTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHl5
Y2ggPD0gJ2MnKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdiJykgeyBnb3Rv
Q2FzZSA9IDQzOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9
IDc1OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoeXljaCAhPSAndCcpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgeXljaCA9IHRoaXMu
X2NoYXJBdCgrK2N1cnNvcik7CisgICAgICAgICAgICBpZiAoeXljaCA9PSAnWScpIHsgZ290b0Nh
c2UgPSA4MTsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCA9PSAneScpIHsgZ290
b0Nhc2UgPSA4MTsgY29udGludWU7IH07CisgICAgICAgICAgICB7IGdvdG9DYXNlID0gNDM7IGNv
bnRpbnVlOyB9OworY2FzZSA3NToKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytj
dXJzb3IpOwotICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1InKSB7IGdvdG9DYXNlID0gNzA7IGNv
bnRpbnVlOyB9OworICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1InKSB7IGdvdG9DYXNlID0gNzY7
IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ3InKSB7IGdvdG9DYXNlID0g
NDM7IGNvbnRpbnVlOyB9OwotY2FzZSA3MDoKK2Nhc2UgNzY6CiAgICAgICAgICAgICB5eWNoID0g
dGhpcy5fY2hhckF0KCsrY3Vyc29yKTsKLSAgICAgICAgICAgIGlmICh5eWNoID09ICdJJykgeyBn
b3RvQ2FzZSA9IDcxOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgIGlmICh5eWNoID09ICdJJykg
eyBnb3RvQ2FzZSA9IDc3OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIGlmICh5eWNoICE9ICdp
JykgeyBnb3RvQ2FzZSA9IDQzOyBjb250aW51ZTsgfTsKLWNhc2UgNzE6CitjYXNlIDc3OgogICAg
ICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7Ci0gICAgICAgICAgICBpZiAo
eXljaCA9PSAnUCcpIHsgZ290b0Nhc2UgPSA3MjsgY29udGludWU7IH07CisgICAgICAgICAgICBp
ZiAoeXljaCA9PSAnUCcpIHsgZ290b0Nhc2UgPSA3ODsgY29udGludWU7IH07CiAgICAgICAgICAg
ICBpZiAoeXljaCAhPSAncCcpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07Ci1jYXNlIDcy
OgorY2FzZSA3ODoKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwot
ICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1QnKSB7IGdvdG9DYXNlID0gNzM7IGNvbnRpbnVlOyB9
OworICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1QnKSB7IGdvdG9DYXNlID0gNzk7IGNvbnRpbnVl
OyB9OwogICAgICAgICAgICAgaWYgKHl5Y2ggIT0gJ3QnKSB7IGdvdG9DYXNlID0gNDM7IGNvbnRp
bnVlOyB9OwotY2FzZSA3MzoKK2Nhc2UgNzk6CisgICAgICAgICAgICArK2N1cnNvcjsKKyAgICAg
ICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuVEFHKTsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10
YWciOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24g
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGN1cnNvcjsKKyAgICAgICAgICAgICAgICB9CitjYXNlIDgxOgorICAgICAgICAgICAgeXlj
aCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7CisgICAgICAgICAgICBpZiAoeXljaCA9PSAnTCcp
IHsgZ290b0Nhc2UgPSA4MjsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCAhPSAn
bCcpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07CitjYXNlIDgyOgorICAgICAgICAgICAg
eXljaCA9IHRoaXMuX2NoYXJBdCgrK2N1cnNvcik7CisgICAgICAgICAgICBpZiAoeXljaCA9PSAn
RScpIHsgZ290b0Nhc2UgPSA4MzsgY29udGludWU7IH07CisgICAgICAgICAgICBpZiAoeXljaCAh
PSAnZScpIHsgZ290b0Nhc2UgPSA0MzsgY29udGludWU7IH07CitjYXNlIDgzOgogICAgICAgICAg
ICAgKytjdXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhD
b25kaXRpb25zLlRBRyk7CiAgICAgICAgICAgICB7CkBAIC00ODIsNzggKzU2Niw3OCBAQCBjYXNl
IDczOgogY2FzZSB0aGlzLmNhc2VfU1NUUklORzoKICAgICAgICAgICAgIHl5Y2ggPSB0aGlzLl9j
aGFyQXQoY3Vyc29yKTsKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdcZicpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoeXljaCA9PSAnXG4nKSB7IGdvdG9DYXNlID0gNzk7IGNvbnRpbnVlOyB9Owot
ICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA3ODsgY29udGludWU7IH07CisgICAgICAgICAg
ICAgICAgaWYgKHl5Y2ggPT0gJ1xuJykgeyBnb3RvQ2FzZSA9IDg5OyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gODg7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9DYXNlID0g
Nzk7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcJycpIHsgZ290
b0Nhc2UgPSA4MTsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDc4
OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9D
YXNlID0gODk7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcJycp
IHsgZ290b0Nhc2UgPSA5MTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2Fz
ZSA9IDg4OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0KLWNhc2UgNzc6CitjYXNlIDg3Ogog
ICAgICAgICAgICAgeyByZXR1cm4gdGhpcy5fc3RyaW5nVG9rZW4oY3Vyc29yKTsgfQotY2FzZSA3
ODoKK2Nhc2UgODg6CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KCsrY3Vyc29yKTsK
LSAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA4NTsgY29udGludWU7IH07Ci1jYXNlIDc5OgorICAg
ICAgICAgICAgeyBnb3RvQ2FzZSA9IDk1OyBjb250aW51ZTsgfTsKK2Nhc2UgODk6CiAgICAgICAg
ICAgICArK2N1cnNvcjsKICAgICAgICAgICAgIHsgdGhpcy50b2tlblR5cGUgPSBudWxsOyByZXR1
cm4gY3Vyc29yOyB9Ci1jYXNlIDgxOgorY2FzZSA5MToKICAgICAgICAgICAgICsrY3Vyc29yOwot
Y2FzZSA4MjoKK2Nhc2UgOTI6CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlz
Ll9sZXhDb25kaXRpb25zLlRBRyk7CiAgICAgICAgICAgICB7IHJldHVybiB0aGlzLl9zdHJpbmdU
b2tlbihjdXJzb3IsIHRydWUpOyB9Ci1jYXNlIDgzOgorY2FzZSA5MzoKICAgICAgICAgICAgIHl5
Y2ggPSB0aGlzLl9jaGFyQXQoKytjdXJzb3IpOwotICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDgy
OyBjb250aW51ZTsgfTsKLWNhc2UgODQ6CisgICAgICAgICAgICB7IGdvdG9DYXNlID0gOTI7IGNv
bnRpbnVlOyB9OworY2FzZSA5NDoKICAgICAgICAgICAgICsrY3Vyc29yOwogICAgICAgICAgICAg
eXljaCA9IHRoaXMuX2NoYXJBdChjdXJzb3IpOwotY2FzZSA4NToKK2Nhc2UgOTU6CiAgICAgICAg
ICAgICBpZiAoeXljaCA8PSAnXGYnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1xu
JykgeyBnb3RvQ2FzZSA9IDc3OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICB7IGdvdG9D
YXNlID0gODQ7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcbicp
IHsgZ290b0Nhc2UgPSA4NzsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2Fz
ZSA9IDk0OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHl5Y2ggPD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDc3OyBjb250aW51ZTsgfTsKLSAgICAg
ICAgICAgICAgICBpZiAoeXljaCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gODM7IGNvbnRpbnVlOyB9
OwotICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA4NDsgY29udGludWU7IH07CisgICAgICAg
ICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xyJykgeyBnb3RvQ2FzZSA9IDg3OyBjb250aW51ZTsgfTsK
KyAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gOTM7IGNvbnRp
bnVlOyB9OworICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA5NDsgY29udGludWU7IH07CiAg
ICAgICAgICAgICB9CiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwog
Y2FzZSB0aGlzLmNhc2VfVEFHOgogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJz
b3IpOwogICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJyYnKSB7CiAgICAgICAgICAgICAgICAgaWYg
KHl5Y2ggPD0gJ1xyJykgewotICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnXG4nKSB7
IGdvdG9DYXNlID0gOTA7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgICAgICBpZiAoeXlj
aCA+PSAnXHInKSB7IGdvdG9DYXNlID0gOTA7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAg
ICAgICBpZiAoeXljaCA9PSAnXG4nKSB7IGdvdG9DYXNlID0gMTAwOyBjb250aW51ZTsgfTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPj0gJ1xyJykgeyBnb3RvQ2FzZSA9IDEwMDsgY29u
dGludWU7IH07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKHl5Y2ggPD0gJyAnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA+PSAn
ICcpIHsgZ290b0Nhc2UgPSA5MDsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoeXljaCA+PSAnICcpIHsgZ290b0Nhc2UgPSAxMDA7IGNvbnRpbnVlOyB9OwogICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PT0gJyInKSB7IGdvdG9DYXNlID0gOTI7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHl5Y2ggPT0gJyInKSB7IGdvdG9DYXNlID0gMTAyOyBjb250aW51ZTsgfTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJz4nKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICh5eWNoIDw9ICc7JykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PD0gJ1wnJykgeyBnb3RvQ2FzZSA9IDkzOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh5eWNoIDw9ICdcJycpIHsgZ290b0Nhc2UgPSAxMDM7IGNvbnRpbnVlOyB9Owog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHl5Y2ggPD0gJzwnKSB7IGdvdG9DYXNlID0gOTA7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJz0nKSB7IGdvdG9DYXNlID0gOTQ7IGNvbnRpbnVlOyB9
OwotICAgICAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDk2OyBjb250aW51ZTsgfTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc8JykgeyBnb3RvQ2FzZSA9IDEw
MDsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnPScp
IHsgZ290b0Nhc2UgPSAxMDQ7IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgICAgICAgICAg
eyBnb3RvQ2FzZSA9IDEwNjsgY29udGludWU7IH07CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAn
WycpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID49ICdbJykgeyBnb3RvQ2Fz
ZSA9IDkwOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID49
ICdbJykgeyBnb3RvQ2FzZSA9IDEwMDsgY29udGludWU7IH07CiAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnXScpIHsgZ290
b0Nhc2UgPSA5MDsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXlj
aCA9PSAnXScpIHsgZ290b0Nhc2UgPSAxMDA7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgKytj
dXJzb3I7CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7Ci0gICAgICAg
ICAgICB7IGdvdG9DYXNlID0gMTA5OyBjb250aW51ZTsgfTsKLWNhc2UgODk6CisgICAgICAgICAg
ICB7IGdvdG9DYXNlID0gMTE5OyBjb250aW51ZTsgfTsKK2Nhc2UgOTk6CiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24g
PT09IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9PT0gdGhpcy5fcGFyc2VDb25kaXRp
b25zLlNDUklQVCB8fCB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPT09IHRoaXMuX3Bh
cnNlQ29uZGl0aW9ucy5TVFlMRSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0
aHJvdWdoIGlmIGV4cGVjdGluZyBhdHRyaWJ1dGVzLgogICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy50b2tlblR5cGUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1
cnNvcjsKQEAgLTU4MCwxOCArNjY0LDE4IEBAIGNhc2UgODk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
dXJzb3I7CiAgICAgICAgICAgICAgICAgfQotY2FzZSA5MDoKK2Nhc2UgMTAwOgogICAgICAgICAg
ICAgKytjdXJzb3I7CiAgICAgICAgICAgICB7IHRoaXMudG9rZW5UeXBlID0gbnVsbDsgcmV0dXJu
IGN1cnNvcjsgfQotY2FzZSA5MjoKK2Nhc2UgMTAyOgogICAgICAgICAgICAgeXlhY2NlcHQgPSAw
OwogICAgICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChZWU1BUktFUiA9ICsrY3Vyc29yKTsK
LSAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAxMDU7IGNvbnRpbnVlOyB9OwotY2FzZSA5MzoKKyAg
ICAgICAgICAgIHsgZ290b0Nhc2UgPSAxMTU7IGNvbnRpbnVlOyB9OworY2FzZSAxMDM6CiAgICAg
ICAgICAgICB5eWFjY2VwdCA9IDA7CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KFlZ
TUFSS0VSID0gKytjdXJzb3IpOwotICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDk5OyBjb250aW51
ZTsgfTsKLWNhc2UgOTQ6CisgICAgICAgICAgICB7IGdvdG9DYXNlID0gMTA5OyBjb250aW51ZTsg
fTsKK2Nhc2UgMTA0OgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0V4cGVjdGluZ0F0dHJpYnV0ZSgpKQpAQCAtNTk5
LDcgKzY4Myw3IEBAIGNhc2UgOTQ6CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBl
ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAg
ICAgICB9Ci1jYXNlIDk2OgorY2FzZSAxMDY6CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAg
ICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCk7
CiAgICAgICAgICAgICB7CkBAIC02MTMsNjggKzY5Nyw3NyBAQCBjYXNlIDk2OgogICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICAgICAgfQogCisg
ICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuU1RZTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tl
bml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvY3NzIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9r
ZW5pemVyQ29uZGl0aW9uID0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENvbmRp
dGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIERvIG5vdCB0b2tlbml6ZSBzdHlsZSB0YWcgY29udGVudHMuCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3Vyc29yOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VD
b25kaXRpb25zLklOSVRJQUw7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAg
ICAgICAgICAgICAgICAgfQotY2FzZSA5ODoKK2Nhc2UgMTA4OgogICAgICAgICAgICAgKytjdXJz
b3I7CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KGN1cnNvcik7Ci1jYXNlIDk5Ogor
Y2FzZSAxMDk6CiAgICAgICAgICAgICBpZiAoeXljaCA8PSAnXGYnKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHl5Y2ggIT0gJ1xuJykgeyBnb3RvQ2FzZSA9IDk4OyBjb250aW51ZTsgfTsKKyAgICAg
ICAgICAgICAgICBpZiAoeXljaCAhPSAnXG4nKSB7IGdvdG9DYXNlID0gMTA4OyBjb250aW51ZTsg
fTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xy
JykgeyBnb3RvQ2FzZSA9IDEwMDsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgaWYgKHl5
Y2ggPT0gJ1wnJykgeyBnb3RvQ2FzZSA9IDEwMjsgY29udGludWU7IH07Ci0gICAgICAgICAgICAg
ICAgeyBnb3RvQ2FzZSA9IDk4OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICBpZiAoeXlj
aCA8PSAnXHInKSB7IGdvdG9DYXNlID0gMTEwOyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAg
ICBpZiAoeXljaCA9PSAnXCcnKSB7IGdvdG9DYXNlID0gMTEyOyBjb250aW51ZTsgfTsKKyAgICAg
ICAgICAgICAgICB7IGdvdG9DYXNlID0gMTA4OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgIH0K
LWNhc2UgMTAwOgorY2FzZSAxMTA6CiAgICAgICAgICAgICArK2N1cnNvcjsKICAgICAgICAgICAg
IHRoaXMuc2V0TGV4Q29uZGl0aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuU1NUUklORyk7CiAgICAg
ICAgICAgICB7IHJldHVybiB0aGlzLl9zdHJpbmdUb2tlbihjdXJzb3IpOyB9Ci1jYXNlIDEwMjoK
K2Nhc2UgMTEyOgogICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB7IHJldHVybiB0
aGlzLl9zdHJpbmdUb2tlbihjdXJzb3IsIHRydWUpOyB9Ci1jYXNlIDEwNDoKK2Nhc2UgMTE0Ogog
ICAgICAgICAgICAgKytjdXJzb3I7CiAgICAgICAgICAgICB5eWNoID0gdGhpcy5fY2hhckF0KGN1
cnNvcik7Ci1jYXNlIDEwNToKK2Nhc2UgMTE1OgogICAgICAgICAgICAgaWYgKHl5Y2ggPD0gJ1xm
JykgewotICAgICAgICAgICAgICAgIGlmICh5eWNoICE9ICdcbicpIHsgZ290b0Nhc2UgPSAxMDQ7
IGNvbnRpbnVlOyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoICE9ICdcbicpIHsgZ290b0Nh
c2UgPSAxMTQ7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBpZiAoeXljaCA8PSAnXHInKSB7IGdvdG9DYXNlID0gMTA2OyBjb250aW51ZTsgfTsKLSAg
ICAgICAgICAgICAgICBpZiAoeXljaCA9PSAnIicpIHsgZ290b0Nhc2UgPSAxMDI7IGNvbnRpbnVl
OyB9OwotICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSAxMDQ7IGNvbnRpbnVlOyB9OworICAg
ICAgICAgICAgICAgIGlmICh5eWNoIDw9ICdccicpIHsgZ290b0Nhc2UgPSAxMTY7IGNvbnRpbnVl
OyB9OworICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICciJykgeyBnb3RvQ2FzZSA9IDExMjsg
Y29udGludWU7IH07CisgICAgICAgICAgICAgICAgeyBnb3RvQ2FzZSA9IDExNDsgY29udGludWU7
IH07CiAgICAgICAgICAgICB9Ci1jYXNlIDEwNjoKK2Nhc2UgMTE2OgogICAgICAgICAgICAgKytj
dXJzb3I7CiAgICAgICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRp
b25zLkRTVFJJTkcpOwogICAgICAgICAgICAgeyByZXR1cm4gdGhpcy5fc3RyaW5nVG9rZW4oY3Vy
c29yKTsgfQotY2FzZSAxMDg6CitjYXNlIDExODoKICAgICAgICAgICAgICsrY3Vyc29yOwogICAg
ICAgICAgICAgeXljaCA9IHRoaXMuX2NoYXJBdChjdXJzb3IpOwotY2FzZSAxMDk6CitjYXNlIDEx
OToKICAgICAgICAgICAgIGlmICh5eWNoIDw9ICciJykgewogICAgICAgICAgICAgICAgIGlmICh5
eWNoIDw9ICdccicpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ1xuJykgeyBn
b3RvQ2FzZSA9IDg5OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2gg
PD0gJ1xmJykgeyBnb3RvQ2FzZSA9IDEwODsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAg
ICAgIHsgZ290b0Nhc2UgPSA4OTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgIGlm
ICh5eWNoID09ICdcbicpIHsgZ290b0Nhc2UgPSA5OTsgY29udGludWU7IH07CisgICAgICAgICAg
ICAgICAgICAgIGlmICh5eWNoIDw9ICdcZicpIHsgZ290b0Nhc2UgPSAxMTg7IGNvbnRpbnVlOyB9
OworICAgICAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICcg
JykgeyBnb3RvQ2FzZSA9IDg5OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHl5Y2ggPD0gJyEnKSB7IGdvdG9DYXNlID0gMTA4OyBjb250aW51ZTsgfTsKLSAgICAgICAgICAg
ICAgICAgICAgeyBnb3RvQ2FzZSA9IDg5OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHl5Y2ggPT0gJyAnKSB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OworICAgICAg
ICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnIScpIHsgZ290b0Nhc2UgPSAxMTg7IGNvbnRpbnVl
OyB9OworICAgICAgICAgICAgICAgICAgICB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9Owog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
aWYgKHl5Y2ggPD0gJz4nKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5eWNoID09ICdcJycp
IHsgZ290b0Nhc2UgPSA4OTsgY29udGludWU7IH07Ci0gICAgICAgICAgICAgICAgICAgIGlmICh5
eWNoIDw9ICc7JykgeyBnb3RvQ2FzZSA9IDEwODsgY29udGludWU7IH07Ci0gICAgICAgICAgICAg
ICAgICAgIHsgZ290b0Nhc2UgPSA4OTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAg
IGlmICh5eWNoID09ICdcJycpIHsgZ290b0Nhc2UgPSA5OTsgY29udGludWU7IH07CisgICAgICAg
ICAgICAgICAgICAgIGlmICh5eWNoIDw9ICc7JykgeyBnb3RvQ2FzZSA9IDExODsgY29udGludWU7
IH07CisgICAgICAgICAgICAgICAgICAgIHsgZ290b0Nhc2UgPSA5OTsgY29udGludWU7IH07CiAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPD0g
J1snKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA8PSAnWicpIHsgZ290b0Nh
c2UgPSAxMDg7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2Fz
ZSA9IDg5OyBjb250aW51ZTsgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5eWNoIDw9
ICdaJykgeyBnb3RvQ2FzZSA9IDExODsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAg
ICAgICB7IGdvdG9DYXNlID0gOTk7IGNvbnRpbnVlOyB9OwogICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHl5Y2ggPT0gJ10nKSB7IGdvdG9D
YXNlID0gODk7IGNvbnRpbnVlOyB9OwotICAgICAgICAgICAgICAgICAgICAgICAgeyBnb3RvQ2Fz
ZSA9IDEwODsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeXljaCA9
PSAnXScpIHsgZ290b0Nhc2UgPSA5OTsgY29udGludWU7IH07CisgICAgICAgICAgICAgICAgICAg
ICAgICB7IGdvdG9DYXNlID0gMTE4OyBjb250aW51ZTsgfTsKICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJq
cwppbmRleCA0NGM2MmIzLi5jYTA2MDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIucmUyanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzCkBAIC02
Niw3ICs2Niw4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyID0gZnVuY3Rpb24o
KQogICAgICAgICBBVFRSSUJVVEVfVkFMVUU6IDIsCiAgICAgICAgIExJTktJRlk6IDQsCiAgICAg
ICAgIEFfTk9ERTogOCwKLSAgICAgICAgU0NSSVBUOiAxNgorICAgICAgICBTQ1JJUFQ6IDE2LAor
ICAgICAgICBTVFlMRTogMzIKICAgICB9OwogCiAgICAgdGhpcy5pbml0aWFsQ29uZGl0aW9uID0g
eyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCwgcGFyc2VDb25kaXRp
b246IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMIH07CkBAIC04MSw2ICs4MiwxMiBAQCBX
ZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lLnN1YnN0
cmluZygwLCBtYXRjaC5pbmRleCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAg
ICB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIubGluZSA9IGxpbmU7CisgICAgICAg
IH0gZWxzZSBpZiAodGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKKyAgICAgICAgICAgIHZh
ciBtYXRjaCA9IC88XC9zdHlsZS9pLmV4ZWMobGluZSk7CisgICAgICAgICAgICBpZiAobWF0Y2gp
IHsKKyAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5saW5lID0gbGlu
ZS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIubGluZSA9IGxpbmU7CiAgICAgICAg
IH0KICAgICAgICAgdGhpcy5fbGluZSA9IGxpbmU7CiAgICAgfSwKQEAgLTE0NSw2ICsxNTIsMTgg
QEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciAh
PT0gdGhpcy5fbGluZS5sZW5ndGgpCiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplcjsKKyAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pbnRlcm5h
bENTU1Rva2VuaXplcikgeworICAgICAgICAgICAgLy8gUmUtc2V0IGxpbmUgdG8gZm9yY2UgPC9z
dHlsZT4gZGV0ZWN0aW9uIGZpcnN0LgorICAgICAgICAgICAgdGhpcy5saW5lID0gdGhpcy5fbGlu
ZTsKKyAgICAgICAgICAgIGlmIChjdXJzb3IgIT09IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVy
Ll9saW5lLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIC8vIFRva2VuaXplciBpcyBzdGF0ZWxl
c3MsIHNvIHJlc3RvcmUgaXRzIGNvbmRpdGlvbiBiZWZvcmUgdG9rZW5pemluZyBhbmQgc2F2ZSBp
dCBhZnRlci4KKyAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5jb25k
aXRpb24gPSB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb247Cisg
ICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLm5l
eHRUb2tlbihjdXJzb3IpOworICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIudG9rZW5UeXBlOworICAgICAgICAgICAgICAgIHRoaXMuX2Nv
bmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsQ1NT
VG9rZW5pemVyLmNvbmRpdGlvbjsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3IgIT09IHRoaXMuX2xpbmUubGVuZ3RoKQorICAgICAg
ICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplcjsKICAgICAgICAgfQog
CiAgICAgICAgIHZhciBjdXJzb3JPbkVudGVyID0gY3Vyc29yOwpAQCAtMTc1LDYgKzE5NCw5IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICBTY3JpcHRTdGFydCA9ICI8IiBbU3NdIFtDY10gW1JyXSBbSWldIFtQcF0gW1R0XTsK
ICAgICAgICAgICAgICAgICBTY3JpcHRFbmQgPSAiPC8iIFtTc10gW0NjXSBbUnJdIFtJaV0gW1Bw
XSBbVHRdOwogCisgICAgICAgICAgICAgICAgU3R5bGVTdGFydCA9ICI8IiBbU3NdIFtUdF0gW1l5
XSBbTGxdIFtFZV07CisgICAgICAgICAgICAgICAgU3R5bGVFbmQgPSAiPC8iIFtTc10gW1R0XSBb
WXldIFtMbF0gW0VlXTsKKwogICAgICAgICAgICAgICAgIExUID0gIjwiIHwgIjwvIjsKICAgICAg
ICAgICAgICAgICBHVCA9ICI+IjsKICAgICAgICAgICAgICAgICBFcXVhbFNpZ24gPSAiPSI7CkBA
IC0yMTksOSArMjQxLDMwIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAgICAgICAgICAg
ICAgICB9CiAKKyAgICAgICAgICAgICAgICA8SU5JVElBTD4gU3R5bGVTdGFydCA9PiBUQUcKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24u
cGFyc2VDb25kaXRpb24gJiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU1RZTEUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIERvIG5vdCB0b2tlbml6ZSBzdHlsZSB0YWcgY29udGVudHMsIGtl
ZXAgbGV4ZXIgc3RhdGUgYWx0aG91Z2ggcHJvY2Vzc2luZyAiPCIuCisgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLnNldExleENvbmRpdGlvbih0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwp
OworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSBudWxsOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNl
Q29uZGl0aW9ucy5TVFlMRTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RXhwZWN0aW5n
QXR0cmlidXRlKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgPElOSVRJQUw+IFN0eWxlRW5kID0+IFRBRwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAi
aHRtbC10YWciOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25k
aXRpb24gPSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGN1cnNvcjsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICA8
SU5JVElBTD4gTFQgPT4gVEFHCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VDb25kaXRp
b25zLlNDUklQVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBh
cnNlQ29uZGl0aW9uICYgKHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQgfCB0aGlzLl9wYXJz
ZUNvbmRpdGlvbnMuU1RZTEUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3Qg
dG9rZW5pemUgc2NyaXB0IHRhZyBjb250ZW50cywga2VlcCBsZXhlciBzdGF0ZSBhbHRob3VnaCBw
cm9jZXNzaW5nICI8Ii4KICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGV4Q29uZGl0
aW9uKHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLnRva2VuVHlwZSA9IG51bGw7CkBAIC0yNDUsNiArMjg4LDE1IEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAg
ICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VD
b25kaXRpb25zLlNUWUxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lu
dGVybmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIgPSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lz
dHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2NzcyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRp
dGlvbiA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3Qg
dG9rZW5pemUgc3R5bGUgdGFnIGNvbnRlbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGN1cnNvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5J
TklUSUFMOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAg
ICAgIH0KQEAgLTI2Nyw3ICszMTksNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXpl
ci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgICAgICA8VEFHPiBJZGVudGlmaWVyCiAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBh
cnNlQ29uZGl0aW9uID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPT09IHRoaXMu
X3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQgfHwgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9u
ID09PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuU1RZTEUpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZhbGwgdGhyb3VnaCBpZiBleHBlY3RpbmcgYXR0cmlidXRlcy4KICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjdXJzb3I7Cg==
</data>
<flag name="review"
          id="71918"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>