<?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>22636</bug_id>
          
          <creation_ts>2008-12-03 15:25:13 -0800</creation_ts>
          <short_desc>Implement WML variable substitution</short_desc>
          <delta_ts>2008-12-03 15:49:08 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>101269</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-03 15:25:13 -0800</bug_when>
    <thetext>Finally it&apos;s possible to write JS based WML layout tests.

I now feel confident to integrate the WML variable substitution, as it can be tested reliable.
Uploading patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101270</commentid>
    <comment_count>1</comment_count>
      <attachid>25724</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-03 15:34:11 -0800</bug_when>
    <thetext>Created attachment 25724
Layout Tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101271</commentid>
    <comment_count>2</comment_count>
      <attachid>25725</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-03 15:34:21 -0800</bug_when>
    <thetext>Created attachment 25725
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101273</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-03 15:49:08 -0800</bug_when>
    <thetext>Landed in r38974.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25724</attachid>
            <date>2008-12-03 15:34:11 -0800</date>
            <delta_ts>2008-12-03 15:39:43 -0800</delta_ts>
            <desc>Layout Tests</desc>
            <filename>AddVarTests.diff</filename>
            <type>text/plain</type>
            <size>13975</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM4OTcyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMDgtMTItMDMgIE5pa29sYXMgWmltbWVybWFu
biAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXM6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzNgorCisgICAgICAgIEFkZCBhIGZpcnN0IHNldCBv
ZiBzY3JpcHRhYmxlIFdNTCBsYXlvdXQgdGVzdHMuCisgICAgICAgIEVtYmVkIFdNTCBkb2N1bWVu
dHMgaW4gYW4gPGlmcmFtZT4sIGNvbnRhaW5lZCBpbiBhIChYKUhUTUwgZG9jdW1lbnQsIGFuZCBz
Y3JpcHQKKyAgICAgICAgdGhlIExheW91dFRlc3RDb250cm9sbGVyIHRocm91Z2ggWEhUTUwgPHNj
cmlwdD4gZWxlbWVudHMuIFNlZSBXTUxUZXN0Q2FzZS5qcywKKyAgICAgICAgd2hpY2ggaXMgZGVy
aXZlZCBmcm9tIFNWR1Rlc3RDYXNlLmpzLgorCisgICAgICAgIEFsbCB3bWwvKi5odG1sIGZpbGVz
IGFyZSBnZW5lcmF0ZWQgdXNpbmcgbWFrZS1qcy10ZXN0LXdyYXBwZXJzLgorCisgICAgICAgIEFk
ZCB0d28gdGVzdHMgY292ZXJpbmcgdmFyaWFibGUgc3Vic3RpdHV0aW9uLgorCisgICAgICAgICog
d21sOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvcmVzb3VyY2VzOiBBZGRlZC4KKyAgICAgICAgKiB3
bWwvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdtbC9yZXNvdXJj
ZXMvV01MVGVzdENhc2UuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlV01MRWxlbWVudCk6Cisg
ICAgICAgIChjcmVhdGVXTUxUZXN0Q2FzZS5pZnJhbWVFbGVtZW50Lm9ubG9hZCk6CisgICAgICAg
IChjcmVhdGVXTUxUZXN0Q2FzZSk6CisgICAgICAgICh0cmlnZ2VyVXBkYXRlKToKKyAgICAgICAg
KHN0YXJ0VGVzdCk6CisgICAgICAgIChjb21wbGV0ZVRlc3Quc2NyaXB0Lm9ubG9hZCk6CisgICAg
ICAgIChjb21wbGV0ZVRlc3QpOgorICAgICAgICAqIHdtbC9yZXNvdXJjZXMvdmFyaWFibGUtcmVm
ZXJlbmNlLWludmFsaWQtY2hhcmFjdGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHNldHVwVGVzdERv
Y3VtZW50KToKKyAgICAgICAgKHByZXBhcmVUZXN0KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToK
KyAgICAgICAgKiB3bWwvcmVzb3VyY2VzL3ZhcmlhYmxlLXJlZmVyZW5jZS12YWxpZC5qczogQWRk
ZWQuCisgICAgICAgIChzZXR1cFRlc3REb2N1bWVudCk6CisgICAgICAgIChwcmVwYXJlVGVzdCk6
CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogd21sL3ZhcmlhYmxlLXJlZmVyZW5j
ZS1pbnZhbGlkLWNoYXJhY3Rlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdtbC92
YXJpYWJsZS1yZWZlcmVuY2UtaW52YWxpZC1jaGFyYWN0ZXIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd21sL3ZhcmlhYmxlLXJlZmVyZW5jZS12YWxpZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdtbC92YXJpYWJsZS1yZWZlcmVuY2UtdmFsaWQuaHRtbDogQWRkZWQuCisKIDIwMDgt
MTItMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dApJbmRleDogTGF5b3V0VGVzdHMvd21sL3ZhcmlhYmxlLXJl
ZmVyZW5jZS12YWxpZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dtbC92YXJpYWJs
ZS1yZWZlcmVuY2UtdmFsaWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dtbC92
YXJpYWJsZS1yZWZlcmVuY2UtdmFsaWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9XTUxUZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+V01MIGxheW91dCB0ZXN0
cyAtIHVzaW5nIFhIVE1MIHNjcmlwdGluZzwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy92YXJpYWJs
ZS1yZWZlcmVuY2UtdmFsaWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvd21sL3ZhcmlhYmxlLXJlZmVyZW5jZS1pbnZhbGlkLWNoYXJhY3Rlci5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dtbC92YXJpYWJsZS1yZWZlcmVuY2UtaW52YWxp
ZC1jaGFyYWN0ZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dtbC92YXJpYWJs
ZS1yZWZlcmVuY2UtaW52YWxpZC1jaGFyYWN0ZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9XTUxU
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+V01MIGxheW91
dCB0ZXN0cyAtIHVzaW5nIFhIVE1MIHNjcmlwdGluZzwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy92
YXJpYWJsZS1yZWZlcmVuY2UtaW52YWxpZC1jaGFyYWN0ZXIuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd21sL3Jlc291cmNlcy9XTUxUZXN0Q2FzZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93bWwvcmVzb3VyY2VzL1dNTFRlc3RDYXNlLmpz
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvd21sL3Jlc291cmNlcy9XTUxUZXN0Q2FzZS5q
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAordmFyIHdtbE5TID0gImh0dHA6Ly93d3cu
d2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCI7Cit2YXIgeGh0bWxOUyA9ICJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIjsKKwordmFyIHRlc3REb2N1bWVudDsKK3ZhciBpZnJhbWVFbGVt
ZW50OwordmFyIGJvZHlFbGVtZW50OworCitmdW5jdGlvbiBjcmVhdGVXTUxFbGVtZW50KG5hbWUp
IHsKKyAgICByZXR1cm4gdGVzdERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh3bWxOUywgIndtbDoi
ICsgbmFtZSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVdNTFRlc3RDYXNlKGRlc2MpIHsKKyAgICBk
ZXNjcmlwdGlvbihkZXNjKTsKKyAgICBib2R5RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJib2R5IilbMF07CisKKyAgICAvLyBDbGVhciB2YXJpYWJsZSBzdGF0ZQorICAg
IGRvY3VtZW50LnJlc2V0V01MUGFnZVN0YXRlKCk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgfQorCisgICAgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
Uyh4aHRtbE5TLCAiaWZyYW1lIik7CisgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiZGF0YTp0ZXh0
L3ZuZC53YXAud21sLDx3bWw+PGNhcmQvPjwvd21sPiI7CisKKyAgICB2YXIgbG9hZGVkID0gZmFs
c2U7CisgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVz
dERvY3VtZW50ID0gaWZyYW1lRWxlbWVudC5jb250ZW50RG9jdW1lbnQ7CisgICAgICAgIHNldHVw
VGVzdERvY3VtZW50KCk7CisKKyAgICAgICAgaWYgKGxvYWRlZCkgeworICAgICAgICAgICAgZXhl
Y3V0ZVRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxv
YWRlZCA9IHRydWU7CisgICAgICAgIHByZXBhcmVUZXN0KCk7CisgICAgfQorCisgICAgYm9keUVs
ZW1lbnQuaW5zZXJ0QmVmb3JlKGlmcmFtZUVsZW1lbnQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkZXNjcmlwdGlvbiIpKTsKK30KKworZnVuY3Rpb24gdHJpZ2dlclVwZGF0ZSh4LCB5KSB7Cisg
ICAgLy8gVHJhbnNsYXRpb24gZHVlIHRvIEhUTUwgY29udGVudCBhYm92ZSB0aGUgV01MIGRvY3Vt
ZW50IGluIHRoZSBpZnJhbWUKKyAgICB4ID0geCArIGlmcmFtZUVsZW1lbnQub2Zmc2V0TGVmdDsK
KyAgICB5ID0geSArIGlmcmFtZUVsZW1lbnQub2Zmc2V0VG9wOworCisgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgeworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCh4LCB5KSB7CisgICAgLy8gQXNz
dXJlIGZpcnN0IGxheW91dCBmaW5pc2hlZAorICAgIHdpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2Vy
VXBkYXRlKCIgKyB4ICsgIiwgIiArIHkgKyAiKSIsIDApOworfQorCitmdW5jdGlvbiBjb21wbGV0
ZVRlc3QoKSB7CisgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh4aHRt
bE5TLCAic2NyaXB0Iik7CisKKyAgICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfTsKKworICAgIHNjcmlwdC5zcmMgPSAi
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIjsKKyAgICBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworCisgICAgYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKK30K
SW5kZXg6IExheW91dFRlc3RzL3dtbC9yZXNvdXJjZXMvdmFyaWFibGUtcmVmZXJlbmNlLXZhbGlk
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dtbC9yZXNvdXJjZXMvdmFyaWFibGUtcmVm
ZXJlbmNlLXZhbGlkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvd21sL3Jlc291cmNl
cy92YXJpYWJsZS1yZWZlcmVuY2UtdmFsaWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYg
QEAKKy8vIFtOYW1lXSB2YXJpYWJsZS1yZWZlcmVuY2UtdmFsaWQuanMgCisKK2NyZWF0ZVdNTFRl
c3RDYXNlKCJUZXN0cyB2YWxpZCB2YXJpYWJsZSByZWZlcmVuY2VzIik7CisKK3ZhciBwRWxlbWVu
dDE7Cit2YXIgcEVsZW1lbnQyOwordmFyIHBFbGVtZW50MzsKK3ZhciBwRWxlbWVudDQ7CisKK2Z1
bmN0aW9uIHNldHVwVGVzdERvY3VtZW50KCkgeworICAgIHZhciBjYXJkRWxlbWVudCA9IHRlc3RE
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZDsKKworICAgIHZhciBhbmNob3JFbGVt
ZW50ID0gY3JlYXRlV01MRWxlbWVudCgiYW5jaG9yIik7CisgICAgYW5jaG9yRWxlbWVudC5hcHBl
bmRDaGlsZCh0ZXN0RG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlN0YXJ0IHRlc3QiKSk7CisgICAg
Y2FyZEVsZW1lbnQuYXBwZW5kQ2hpbGQoYW5jaG9yRWxlbWVudCk7CisKKyAgICB2YXIgcmVmcmVz
aEVsZW1lbnQgPSBjcmVhdGVXTUxFbGVtZW50KCJyZWZyZXNoIik7CisgICAgYW5jaG9yRWxlbWVu
dC5hcHBlbmRDaGlsZChyZWZyZXNoRWxlbWVudCk7CisKKyAgICB2YXIgc2V0dmFyRWxlbWVudDEg
PSBjcmVhdGVXTUxFbGVtZW50KCJzZXR2YXIiKTsKKyAgICBzZXR2YXJFbGVtZW50MS5zZXRBdHRy
aWJ1dGUoIm5hbWUiLCAidmFyIik7CisgICAgc2V0dmFyRWxlbWVudDEuc2V0QXR0cmlidXRlKCJ2
YWx1ZSIsICJURVNUIFBBU1NFRCIpOworICAgIHJlZnJlc2hFbGVtZW50LmFwcGVuZENoaWxkKHNl
dHZhckVsZW1lbnQxKTsKKworICAgIHZhciBzZXR2YXJFbGVtZW50MiA9IGNyZWF0ZVdNTEVsZW1l
bnQoInNldHZhciIpOworICAgIHNldHZhckVsZW1lbnQyLnNldEF0dHJpYnV0ZSgibmFtZSIsICJ2
YXIyIik7CisKKyAgICAvLyBGSVhNRTogVXNlICQodmFyOmVzY2FwZSkgaW5zdGVhZCBvZiBURVNU
JTIwUEFTU0VELgorICAgIC8vIFRoaXMgZG9lc24ndCB3b3JrIGF0IHRoZSBtb21lbnQuIEludmVz
dGlnYXRlLgorICAgIHNldHZhckVsZW1lbnQyLnNldEF0dHJpYnV0ZSgidmFsdWUiLCAiVEVTVCUy
MFBBU1NFRCIpOworICAgIHJlZnJlc2hFbGVtZW50LmFwcGVuZENoaWxkKHNldHZhckVsZW1lbnQy
KTsKKworICAgIHBFbGVtZW50MSA9IGNyZWF0ZVdNTEVsZW1lbnQoInAiKTsKKyAgICBwRWxlbWVu
dDEudGV4dENvbnRlbnQgPSAiUmVzdWx0OiAkdmFyIjsKKyAgICBjYXJkRWxlbWVudC5hcHBlbmRD
aGlsZChwRWxlbWVudDEpOworCisgICAgcEVsZW1lbnQyID0gY3JlYXRlV01MRWxlbWVudCgicCIp
OworICAgIHBFbGVtZW50Mi50ZXh0Q29udGVudCA9ICJSZXN1bHQ6ICQodmFyOmUpIjsKKyAgICBj
YXJkRWxlbWVudC5hcHBlbmRDaGlsZChwRWxlbWVudDIpOworCisgICAgcEVsZW1lbnQzID0gY3Jl
YXRlV01MRWxlbWVudCgicCIpOworICAgIHBFbGVtZW50My50ZXh0Q29udGVudCA9ICJSZXN1bHQ6
ICQodmFyMikiOworICAgIGNhcmRFbGVtZW50LmFwcGVuZENoaWxkKHBFbGVtZW50Myk7CisKKyAg
ICBwRWxlbWVudDQgPSBjcmVhdGVXTUxFbGVtZW50KCJwIik7CisgICAgcEVsZW1lbnQ0LnRleHRD
b250ZW50ID0gIlJlc3VsdDogJCh2YXIyOnVuZXNjKSI7CisgICAgY2FyZEVsZW1lbnQuYXBwZW5k
Q2hpbGQocEVsZW1lbnQ0KTsKK30KKworZnVuY3Rpb24gcHJlcGFyZVRlc3QoKSB7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJwRWxlbWVudDEudGV4dENvbnRlbnQiLCAiUmVzdWx0OiAkdmFy
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwRWxlbWVudDIudGV4dENvbnRlbnQiLCAi
UmVzdWx0OiAkKHZhcjplKSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicEVsZW1lbnQz
LnRleHRDb250ZW50IiwgIlJlc3VsdDogJCh2YXIyKSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicEVsZW1lbnQ0LnRleHRDb250ZW50IiwgIlJlc3VsdDogJCh2YXIyOnVuZXNjKSIpOwor
IAorICAgIHN0YXJ0VGVzdCgyNSwgMTUpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBFbGVtZW50MS50ZXh0Q29udGVudCIsICJSZXN1
bHQ6IFRFU1QgUEFTU0VEIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwRWxlbWVudDIu
dGV4dENvbnRlbnQiLCAiUmVzdWx0OiBURVNUJTIwUEFTU0VEIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJwRWxlbWVudDMudGV4dENvbnRlbnQiLCAiUmVzdWx0OiBURVNUJTIwUEFTU0VE
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwRWxlbWVudDQudGV4dENvbnRlbnQiLCAi
UmVzdWx0OiBURVNUIFBBU1NFRCIpOworCisgICAgY29tcGxldGVUZXN0KCk7Cit9CkluZGV4OiBM
YXlvdXRUZXN0cy93bWwvcmVzb3VyY2VzL3ZhcmlhYmxlLXJlZmVyZW5jZS1pbnZhbGlkLWNoYXJh
Y3Rlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93bWwvcmVzb3VyY2VzL3ZhcmlhYmxl
LXJlZmVyZW5jZS1pbnZhbGlkLWNoYXJhY3Rlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3dtbC9yZXNvdXJjZXMvdmFyaWFibGUtcmVmZXJlbmNlLWludmFsaWQtY2hhcmFjdGVyLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvLyBbTmFtZV0gdmFyaWFibGUtcmVmZXJl
bmNlLWludmFsaWQtY2hhcmFjdGVyLmpzIAorCitjcmVhdGVXTUxUZXN0Q2FzZSgiVGVzdCB0aGF0
IGludmFsaWQgdmFyaWFibGUgcmVmZXJlbmNlcyBhcmVuJ3QgZGV0ZWN0ZWQgdW50aWwgdmFyaWFi
bGUgc3Vic3RpdHV0aW9uIGlzIGV4ZWN1dGVkIik7CisKK3ZhciBwRWxlbWVudDE7Cit2YXIgcEVs
ZW1lbnQyOwordmFyIHBFbGVtZW50MzsKK3ZhciBwRWxlbWVudDQ7CisKK2Z1bmN0aW9uIHNldHVw
VGVzdERvY3VtZW50KCkgeworICAgIHZhciBjYXJkRWxlbWVudCA9IHRlc3REb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQuZmlyc3RDaGlsZDsKKworICAgIHZhciBhbmNob3JFbGVtZW50ID0gY3JlYXRl
V01MRWxlbWVudCgiYW5jaG9yIik7CisgICAgYW5jaG9yRWxlbWVudC5hcHBlbmRDaGlsZCh0ZXN0
RG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlN0YXJ0IHRlc3QiKSk7CisgICAgY2FyZEVsZW1lbnQu
YXBwZW5kQ2hpbGQoYW5jaG9yRWxlbWVudCk7CisKKyAgICB2YXIgcmVmcmVzaEVsZW1lbnQgPSBj
cmVhdGVXTUxFbGVtZW50KCJyZWZyZXNoIik7CisgICAgYW5jaG9yRWxlbWVudC5hcHBlbmRDaGls
ZChyZWZyZXNoRWxlbWVudCk7CisKKyAgICB2YXIgc2V0dmFyRWxlbWVudCA9IGNyZWF0ZVdNTEVs
ZW1lbnQoInNldHZhciIpOworICAgIHNldHZhckVsZW1lbnQuc2V0QXR0cmlidXRlKCJuYW1lIiwg
InZhciIpOworICAgIHNldHZhckVsZW1lbnQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsICJURVNUIFBB
U1NFRCIpOworICAgIHJlZnJlc2hFbGVtZW50LmFwcGVuZENoaWxkKHNldHZhckVsZW1lbnQpOwor
CisgICAgcEVsZW1lbnQxID0gY3JlYXRlV01MRWxlbWVudCgicCIpOworICAgIHBFbGVtZW50MS50
ZXh0Q29udGVudCA9ICJSZXN1bHQ6JCN2YXIgUEFTU0VEIjsKKyAgICBjYXJkRWxlbWVudC5hcHBl
bmRDaGlsZChwRWxlbWVudDEpOworCisgICAgcEVsZW1lbnQyID0gY3JlYXRlV01MRWxlbWVudCgi
cCIpOworICAgIHBFbGVtZW50Mi50ZXh0Q29udGVudCA9ICJSZXN1bHQ6ICQodiNhcjplKVBBU1NF
RCI7CisgICAgY2FyZEVsZW1lbnQuYXBwZW5kQ2hpbGQocEVsZW1lbnQyKTsKKworICAgIHBFbGVt
ZW50MyA9IGNyZWF0ZVdNTEVsZW1lbnQoInAiKTsKKyAgICBwRWxlbWVudDMudGV4dENvbnRlbnQg
PSAiUmVzdWx0OiQodmFyOiMpIFBBU1NFRCI7CisgICAgY2FyZEVsZW1lbnQuYXBwZW5kQ2hpbGQo
cEVsZW1lbnQzKTsKKworICAgIHBFbGVtZW50NCA9IGNyZWF0ZVdNTEVsZW1lbnQoInAiKTsKKyAg
ICBwRWxlbWVudDQudGV4dENvbnRlbnQgPSAiUmVzdWx0OiBQQVNTRUQkKHZhcjp1bmVzY2FwZSki
OworICAgIGNhcmRFbGVtZW50LmFwcGVuZENoaWxkKHBFbGVtZW50NCk7Cit9CisKK2Z1bmN0aW9u
IHByZXBhcmVUZXN0KCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicEVsZW1lbnQxLnRl
eHRDb250ZW50IiwgIlJlc3VsdDokI3ZhciBQQVNTRUQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInBFbGVtZW50Mi50ZXh0Q29udGVudCIsICJSZXN1bHQ6ICQodiNhcjplKVBBU1NFRCIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicEVsZW1lbnQzLnRleHRDb250ZW50IiwgIlJl
c3VsdDokKHZhcjojKSBQQVNTRUQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBFbGVt
ZW50NC50ZXh0Q29udGVudCIsICJSZXN1bHQ6IFBBU1NFRCQodmFyOnVuZXNjYXBlKSIpOworIAor
ICAgIHN0YXJ0VGVzdCgyNSwgMTUpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAg
ICAvLyBObyB2YXJpYWJsZXMgc2hvdWxkIGhhdmUgYmVlbiBzdWJzdGl0dXRlZCwgaW5zdGVhZCBm
b3VyIGNvbnNvbGUgZXJyb3IgbWVzc2FnZXMKKyAgICAvLyBzaG91bGQgYmUgaW5jbHVkZWQgaW4g
dGhlIGV4cGVjdGVkIGxheW91dCB0ZXN0IHJlc3VsdHMKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInBFbGVtZW50MS50ZXh0Q29udGVudCIsICJSZXN1bHQ6JCN2YXIgUEFTU0VEIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwRWxlbWVudDIudGV4dENvbnRlbnQiLCAiUmVzdWx0OiAk
KHYjYXI6ZSlQQVNTRUQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBFbGVtZW50My50
ZXh0Q29udGVudCIsICJSZXN1bHQ6JCh2YXI6IykgUEFTU0VEIik7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJwRWxlbWVudDQudGV4dENvbnRlbnQiLCAiUmVzdWx0OiBQQVNTRUQkKHZhcjp1
bmVzY2FwZSkiKTsKKworICAgIGNvbXBsZXRlVGVzdCgpOworfQpJbmRleDogTGF5b3V0VGVzdHMv
d21sL3Jlc291cmNlcy9URU1QTEFURS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dt
bC9yZXNvdXJjZXMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dt
bC9yZXNvdXJjZXMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9XTUxUZXN0Q2FzZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+V01MIGxheW91dCB0ZXN0cyAt
IHVzaW5nIFhIVE1MIHNjcmlwdGluZzwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dtbC92YXJpYWJs
ZS1yZWZlcmVuY2UtdmFsaWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dtbC92YXJpYWJsZS1yZWZlcmVuY2UtdmFsaWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvd21sL3ZhcmlhYmxlLXJlZmVyZW5jZS12YWxpZC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKK1dNTCBsYXlvdXQgdGVzdHMgLSB1c2luZyBY
SFRNTCBzY3JpcHRpbmcKKworCitUZXN0cyB2YWxpZCB2YXJpYWJsZSByZWZlcmVuY2VzCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBFbGVtZW50MS50ZXh0Q29udGVudCBp
cyAiUmVzdWx0OiAkdmFyIgorUEFTUyBwRWxlbWVudDIudGV4dENvbnRlbnQgaXMgIlJlc3VsdDog
JCh2YXI6ZSkiCitQQVNTIHBFbGVtZW50My50ZXh0Q29udGVudCBpcyAiUmVzdWx0OiAkKHZhcjIp
IgorUEFTUyBwRWxlbWVudDQudGV4dENvbnRlbnQgaXMgIlJlc3VsdDogJCh2YXIyOnVuZXNjKSIK
K1BBU1MgcEVsZW1lbnQxLnRleHRDb250ZW50IGlzICJSZXN1bHQ6IFRFU1QgUEFTU0VEIgorUEFT
UyBwRWxlbWVudDIudGV4dENvbnRlbnQgaXMgIlJlc3VsdDogVEVTVCUyMFBBU1NFRCIKK1BBU1Mg
cEVsZW1lbnQzLnRleHRDb250ZW50IGlzICJSZXN1bHQ6IFRFU1QlMjBQQVNTRUQiCitQQVNTIHBF
bGVtZW50NC50ZXh0Q29udGVudCBpcyAiUmVzdWx0OiBURVNUIFBBU1NFRCIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1N0YXJ0IHRl
c3QKK1Jlc3VsdDogVEVTVCBQQVNTRUQKK1Jlc3VsdDogVEVTVCUyMFBBU1NFRAorUmVzdWx0OiBU
RVNUJTIwUEFTU0VECitSZXN1bHQ6IFRFU1QgUEFTU0VECkluZGV4OiBMYXlvdXRUZXN0cy93bWwv
dmFyaWFibGUtcmVmZXJlbmNlLWludmFsaWQtY2hhcmFjdGVyLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93bWwvdmFyaWFibGUtcmVmZXJlbmNlLWludmFsaWQtY2hhcmFj
dGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dtbC92YXJpYWJs
ZS1yZWZlcmVuY2UtaW52YWxpZC1jaGFyYWN0ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogQSB2YXJpYWJsZSByZWZl
cmVuY2UgdXNlcyBpbnZhbGlkIHN5bnRheC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBBIHZh
cmlhYmxlIHJlZmVyZW5jZSB1c2VzIGludmFsaWQgc3ludGF4LgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDA6IEEgdmFyaWFibGUgcmVmZXJlbmNlIHVzZXMgaW52YWxpZCBzeW50YXguCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMDogQSB2YXJpYWJsZSByZWZlcmVuY2UgdXNlcyBpbnZhbGlkIHN5bnRh
eC4KK1dNTCBsYXlvdXQgdGVzdHMgLSB1c2luZyBYSFRNTCBzY3JpcHRpbmcKKworCitUZXN0IHRo
YXQgaW52YWxpZCB2YXJpYWJsZSByZWZlcmVuY2VzIGFyZW4ndCBkZXRlY3RlZCB1bnRpbCB2YXJp
YWJsZSBzdWJzdGl0dXRpb24gaXMgZXhlY3V0ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcEVsZW1lbnQxLnRleHRDb250ZW50IGlzICJSZXN1bHQ6JCN2YXIgUEFTU0VE
IgorUEFTUyBwRWxlbWVudDIudGV4dENvbnRlbnQgaXMgIlJlc3VsdDogJCh2I2FyOmUpUEFTU0VE
IgorUEFTUyBwRWxlbWVudDMudGV4dENvbnRlbnQgaXMgIlJlc3VsdDokKHZhcjojKSBQQVNTRUQi
CitQQVNTIHBFbGVtZW50NC50ZXh0Q29udGVudCBpcyAiUmVzdWx0OiBQQVNTRUQkKHZhcjp1bmVz
Y2FwZSkiCitQQVNTIHBFbGVtZW50MS50ZXh0Q29udGVudCBpcyAiUmVzdWx0OiQjdmFyIFBBU1NF
RCIKK1BBU1MgcEVsZW1lbnQyLnRleHRDb250ZW50IGlzICJSZXN1bHQ6ICQodiNhcjplKVBBU1NF
RCIKK1BBU1MgcEVsZW1lbnQzLnRleHRDb250ZW50IGlzICJSZXN1bHQ6JCh2YXI6IykgUEFTU0VE
IgorUEFTUyBwRWxlbWVudDQudGV4dENvbnRlbnQgaXMgIlJlc3VsdDogUEFTU0VEJCh2YXI6dW5l
c2NhcGUpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4n
CistLS0tLS0tLQorU3RhcnQgdGVzdAorUmVzdWx0OiQjdmFyIFBBU1NFRAorUmVzdWx0OiAkKHYj
YXI6ZSlQQVNTRUQKK1Jlc3VsdDokKHZhcjojKSBQQVNTRUQKK1Jlc3VsdDogUEFTU0VEJCh2YXI6
dW5lc2NhcGUpCg==
</data>
<flag name="review"
          id="12022"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25725</attachid>
            <date>2008-12-03 15:34:21 -0800</date>
            <delta_ts>2008-12-03 15:39:32 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AddVar.diff</filename>
            <type>text/plain</type>
            <size>11536</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODk3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDgtMTItMDMgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMu
emltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYzNgorCisgICAgICAgIEltcGxlbWVudCBXTUwgdmFyaWFibGUgc3Vic3Rp
dHV0aW9uICYgdmFsaWRhdGlvbi4KKyAgICAgICAgQ3JlYXRlZCBhIGZyYW1ld29yayBmb3Igc2Ny
aXB0YWJsZSBXTUwgbGF5b3V0IHRlc3RzLCB0aGF0IGFyZSBhYmxlIHRvIHRlc3QgdmFyaWFibGUg
c3Vic3RpdXRpb24gJiB2YWxpZGF0aW9uLgorCisgICAgICAgIFRlc3RzOiB3bWwvdmFyaWFibGUt
cmVmZXJlbmNlLWludmFsaWQtY2hhcmFjdGVyLmh0bWwKKyAgICAgICAgICAgICAgIHdtbC92YXJp
YWJsZS1yZWZlcmVuY2UtdmFsaWQuaHRtbAorCisgICAgICAgICogd21sL1dNTFZhcmlhYmxlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkRmlyc3RWYXJpYWJsZU5hbWVDaGFyYWN0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZFZhcmlhYmxlTmFtZUNoYXJhY3Rlcik6CisgICAg
ICAgIChXZWJDb3JlOjppc1ZhbGlkVmFyaWFibGVFc2NhcGluZ01vZGVTdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6aXNWYWxpZFZhcmlhYmxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
YWluc1ZhcmlhYmxlUmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OnN1YnN0aXR1dGVWYXJp
YWJsZVJlZmVyZW5jZXMpOgorICAgICAgICAqIHdtbC9XTUxWYXJpYWJsZXMuaDoKKwogMjAwOC0x
Mi0wMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bmlrb2xhcy56aW1tZXJtYW5uQHRvcmNobW9iaWxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBDYW1lcm9uIFp3YXJpY2guCkluZGV4OiBXZWJD
b3JlL3dtbC9XTUxWYXJpYWJsZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFZh
cmlhYmxlcy5jcHAJKHJldmlzaW9uIDM4OTcxKQorKysgV2ViQ29yZS93bWwvV01MVmFyaWFibGVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNzMgKzI0LDI2NCBAQAogI2lmIEVOQUJMRShXTUwp
CiAjaW5jbHVkZSAiV01MVmFyaWFibGVzLmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIldNTERvY3VtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgYm9vbCBpc1ZhbGlkVmFyaWFibGVDaGFy
YWN0ZXIoY29uc3QgVUNoYXImIGNoYXJhY3RlcikKKy8vIFdNTCB2YXJpYWJsZXMgc3BlY2lmaWNh
dGlvbiwgZXhjbHVkaW5nIHRoZQorLy8gcHJlLVdNTCAxLjAgZGVwcmVjYXRlZCB2YXJpYWJsZSBz
eW50YXgKKy8vCisvLyB2YXJuYW1lID0gKCJfIiB8IGFscGhhKSAoIl8iIHwgYWxwaGEgfCBkaWdp
dCkqIAorLy8gY29udiA9ICI6IiAoImUiICgic2NhcGUiKT8gfCAibiIgKCJvZXNjIik/IHwgInUi
ICgibmVzYyIpPykKKy8vIHZhciA9ICgiJCIgdmFybmFtZSkgfCAoIiQoIiB2YXJuYW1lIChjb252
KT8gIikiKQorCitzdGF0aWMgYm9vbCBpc1ZhbGlkRmlyc3RWYXJpYWJsZU5hbWVDaGFyYWN0ZXIo
Y29uc3QgVUNoYXImIGNoYXJhY3RlcikKK3sKKyAgICByZXR1cm4gV1RGOjppc0FTQ0lJQWxwaGEo
Y2hhcmFjdGVyKQorICAgICAgICAgICB8fCBjaGFyYWN0ZXIgPT0gJ18nOworfQorCitzdGF0aWMg
Ym9vbCBpc1ZhbGlkVmFyaWFibGVOYW1lQ2hhcmFjdGVyKGNvbnN0IFVDaGFyJiBjaGFyYWN0ZXIp
CiB7CiAgICAgcmV0dXJuIFdURjo6aXNBU0NJSUFscGhhKGNoYXJhY3RlcikKICAgICAgICAgICAg
fHwgV1RGOjppc0FTQ0lJRGlnaXQoY2hhcmFjdGVyKQogICAgICAgICAgICB8fCBjaGFyYWN0ZXIg
PT0gJ18nOwogfQogCi1zdGF0aWMgYm9vbCBpc1ZhbGlkVmFyaWFibGVSZWZlcmVuY2VDaGFyYWN0
ZXIoY29uc3QgVUNoYXImIGNoYXJhY3RlcikKK3N0YXRpYyBib29sIGlzVmFsaWRWYXJpYWJsZUVz
Y2FwaW5nTW9kZVN0cmluZyhjb25zdCBTdHJpbmcmIG1vZGUsIFdNTFZhcmlhYmxlRXNjYXBpbmdN
b2RlJiBlc2NhcGVNb2RlKQogewotICAgIHJldHVybiBjaGFyYWN0ZXIgPT0gJygnCi0gICAgICAg
ICAgIHx8IGNoYXJhY3RlciA9PSAnKScKLSAgICAgICAgICAgfHwgY2hhcmFjdGVyID09ICc6Jwot
ICAgICAgICAgICB8fCBjaGFyYWN0ZXIgPT0gJyQnOworICAgIGlmIChtb2RlID09ICJlIiB8fCBt
b2RlID09ICJlc2NhcGUiKQorICAgICAgICBlc2NhcGVNb2RlID0gV01MVmFyaWFibGVFc2NhcGlu
Z0VzY2FwZTsgCisgICAgZWxzZSBpZiAobW9kZSA9PSAidSIgfHwgbW9kZSA9PSAidW5lc2MiKQor
ICAgICAgICBlc2NhcGVNb2RlID0gV01MVmFyaWFibGVFc2NhcGluZ1VuZXNjYXBlOworICAgIGVs
c2UgaWYgKG1vZGUgPT0gIm4iIHx8IG1vZGUgPT0gIm5vZXNjIikKKyAgICAgICAgZXNjYXBlTW9k
ZSA9IFdNTFZhcmlhYmxlRXNjYXBpbmdOb25lOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgaXNWYWxpZFZhcmlhYmxlTmFtZShj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgaXNSZWZlcmVuY2UpCitib29sIGlzVmFsaWRWYXJpYWJs
ZU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBuYW1l
LmNoYXJhY3RlcnMoKTsKLSAgICBib29sIGlzVmFsaWQgPSAoY2hhcmFjdGVyc1swXSA9PSAnXycg
fHwgV1RGOjppc0FTQ0lJQWxwaGEoY2hhcmFjdGVyc1swXSkpOwotCi0gICAgaWYgKGlzUmVmZXJl
bmNlICYmICFpc1ZhbGlkKQotICAgICAgICBpc1ZhbGlkID0gaXNWYWxpZFZhcmlhYmxlUmVmZXJl
bmNlQ2hhcmFjdGVyKGNoYXJhY3RlcnNbMF0pOwotCi0gICAgaWYgKCFpc1ZhbGlkKQorICAgIGlm
ICghaXNWYWxpZEZpcnN0VmFyaWFibGVOYW1lQ2hhcmFjdGVyKGNoYXJhY3RlcnNbMF0pKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNpZ25lZCBsZW5ndGggPSBuYW1lLmxlbmd0aCgp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBp
c1ZhbGlkID0gaXNWYWxpZFZhcmlhYmxlQ2hhcmFjdGVyKGNoYXJhY3RlcnNbaV0pOwotCi0gICAg
ICAgIGlmIChpc1JlZmVyZW5jZSAmJiAhaXNWYWxpZCkKLSAgICAgICAgICAgIGlzVmFsaWQgPSBp
c1ZhbGlkVmFyaWFibGVSZWZlcmVuY2VDaGFyYWN0ZXIoY2hhcmFjdGVyc1tpXSk7Ci0KLSAgICAg
ICAgaWYgKCFpc1ZhbGlkKQorICAgICAgICBpZiAoIWlzVmFsaWRWYXJpYWJsZU5hbWVDaGFyYWN0
ZXIoY2hhcmFjdGVyc1tpXSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgY29udGFpbnNWYXJpYWJsZVJlZmVyZW5jZShjb25z
dCBTdHJpbmcmIHRleHQpCitib29sIGNvbnRhaW5zVmFyaWFibGVSZWZlcmVuY2UoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sJiBpc1ZhbGlkKQogewotICAgIGludCBzdGFydFBvcyA9IHRleHQuZmlu
ZCgnJCcpOwotICAgIGlmIChzdGFydFBvcyA9PSAtMSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlzVmFsaWQgPSB0cnVlOworICAgIGJvb2wgZm91bmRSZWZlcmVuY2UgPSBmYWxzZTsKKyAg
ICBib29sIGZpbmlzaGVkID0gZmFsc2U7CisgICAgaW50IGN1cnJlbnRQb3NpdGlvbiA9IDA7Cisg
ICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0ZXh0LmNoYXJhY3RlcnMoKTsKKworICAgIHdo
aWxlICghZmluaXNoZWQpIHsKKyAgICAgICAgLy8gRmluZCBiZWdpbm5pbmcgb2YgdmFyaWFibGUg
cmVmZXJlbmNlCisgICAgICAgIGludCByZWZlcmVuY2VTdGFydFBvc2l0aW9uID0gdGV4dC5maW5k
KCckJywgY3VycmVudFBvc2l0aW9uKTsKKyAgICAgICAgaWYgKHJlZmVyZW5jZVN0YXJ0UG9zaXRp
b24gPT0gLTEpIHsKKyAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisKKyAgICAgICAgZm91bmRSZWZlcmVuY2UgPSB0cnVlOworCisgICAg
ICAgIGludCBuYW1lU3RhcnRQb3NpdGlvbiA9IHJlZmVyZW5jZVN0YXJ0UG9zaXRpb24gKyAxOwor
ICAgICAgICBpbnQgbmFtZUVuZFBvc2l0aW9uID0gLTE7CisKKyAgICAgICAgaWYgKGNoYXJhY3Rl
cnNbbmFtZVN0YXJ0UG9zaXRpb25dID09ICcoJykgeworICAgICAgICAgICAgLy8gSWYgdGhlIGlu
cHV0IHN0cmluZyBjb250YWlucyBhbiBvcGVuIGJyYWNlLCBhIGNsb3NlIGJyYWNlIG11c3QgZXhp
c3QgYXMgd2VsbAorICAgICAgICAgICAgbmFtZUVuZFBvc2l0aW9uID0gdGV4dC5maW5kKCcpJywg
bmFtZVN0YXJ0UG9zaXRpb24gKyAxKTsKKyAgICAgICAgICAgIGlmIChuYW1lRW5kUG9zaXRpb24g
PT0gLTEpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgaXNWYWxpZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICArK25hbWVTdGFydFBvc2l0aW9uOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgaW50IGxlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBmb3Ig
KG5hbWVFbmRQb3NpdGlvbiA9IG5hbWVTdGFydFBvc2l0aW9uOyBuYW1lRW5kUG9zaXRpb24gPCBs
ZW5ndGg7ICsrbmFtZUVuZFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlk
VmFyaWFibGVOYW1lQ2hhcmFjdGVyKHRleHRbbmFtZUVuZFBvc2l0aW9uXSkpCisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAtLW5hbWVFbmRQ
b3NpdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuYW1lRW5kUG9zaXRpb24gPCBuYW1l
U3RhcnRQb3NpdGlvbikgeworICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgICAgICAg
ICAgaXNWYWxpZCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAK
KyAgICAgICAgLy8gRXZlbnR1YWxseSBzcGxpdCBvZiBjb252ZXJzaW9uIHN0cmluZywgYW5kIGNo
ZWNrIGl0J3Mgc3ludGF4IGFmdGVyd2FyZHMKKyAgICAgICAgU3RyaW5nIGNvbnZlcnNpb25TdHJp
bmc7CisgICAgICAgIFN0cmluZyB2YXJpYWJsZU5hbWUgPSB0ZXh0LnN1YnN0cmluZyhuYW1lU3Rh
cnRQb3NpdGlvbiwgbmFtZUVuZFBvc2l0aW9uIC0gbmFtZVN0YXJ0UG9zaXRpb24pOworCisgICAg
ICAgIGludCBjb252ZXJzaW9uU3RyaW5nU3RhcnQgPSB2YXJpYWJsZU5hbWUuZmluZCgnOicpOwor
ICAgICAgICBpZiAoY29udmVyc2lvblN0cmluZ1N0YXJ0ICE9IC0xKSB7CisgICAgICAgICAgICBj
b252ZXJzaW9uU3RyaW5nID0gdmFyaWFibGVOYW1lLnN1YnN0cmluZyhjb252ZXJzaW9uU3RyaW5n
U3RhcnQgKyAxLCB2YXJpYWJsZU5hbWUubGVuZ3RoKCkgLSAoY29udmVyc2lvblN0cmluZ1N0YXJ0
ICsgMSkpOworICAgICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lLmxlZnQoY29u
dmVyc2lvblN0cmluZ1N0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlzVmFsaWQgPSBpc1Zh
bGlkVmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGlmICghaXNWYWxpZCkgewor
ICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIWNvbnZlcnNpb25TdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICBpc1ZhbGlkID0gaXNWYWxpZFZhcmlhYmxlTmFtZShjb252ZXJzaW9uU3RyaW5nKTsKKyAg
ICAgICAgICAgIGlmICghaXNWYWxpZCkgeworICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
V01MVmFyaWFibGVFc2NhcGluZ01vZGUgZXNjYXBlTW9kZSA9IFdNTFZhcmlhYmxlRXNjYXBpbmdO
b25lOworICAgICAgICAgICAgaXNWYWxpZCA9IGlzVmFsaWRWYXJpYWJsZUVzY2FwaW5nTW9kZVN0
cmluZyhjb252ZXJzaW9uU3RyaW5nLCBlc2NhcGVNb2RlKTsKKyAgICAgICAgICAgIGlmICghaXNW
YWxpZCkgeworICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgdW5zaWduZWQgbGVuZ3Ro
ID0gdGV4dC5sZW5ndGgoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGFydFBvcyArIDE7IGkg
PCBsZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoIWlzVmFsaWRWYXJpYWJsZVJlZmVyZW5jZUNo
YXJhY3Rlcih0ZXh0W2ldKSAmJiAhaXNWYWxpZFZhcmlhYmxlQ2hhcmFjdGVyKHRleHRbaV0pKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjdXJyZW50UG9zaXRpb24gPSBuYW1l
RW5kUG9zaXRpb247CiAgICAgfQogCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZvdW5k
UmVmZXJlbmNlOwogfQogCi1TdHJpbmcgc3Vic3RpdHV0ZVZhcmlhYmxlUmVmZXJlbmNlcyhjb25z
dCBTdHJpbmcmIHZhcmlhYmxlUmVmZXJlbmNlLCBEb2N1bWVudCogZG9jdW1lbnQsIFdNTFZhcmlh
YmxlRXNjYXBpbmdNb2RlIGVzY2FwZU1vZGUpCitTdHJpbmcgc3Vic3RpdHV0ZVZhcmlhYmxlUmVm
ZXJlbmNlcyhjb25zdCBTdHJpbmcmIHJlZmVyZW5jZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBXTUxW
YXJpYWJsZUVzY2FwaW5nTW9kZSBlc2NhcGVNb2RlKQogewotICAgIC8vIEZJWE1FIQotICAgIHJl
dHVybiB2YXJpYWJsZVJlZmVyZW5jZTsKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisgICAgaWYg
KHJlZmVyZW5jZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiByZWZlcmVuY2U7CisKKyAgICBX
TUxQYWdlU3RhdGUqIHBhZ2VTdGF0ZSA9IHdtbFBhZ2VTdGF0ZUZvckRvY3VtZW50KGRvY3VtZW50
KTsKKyAgICBpZiAoIXBhZ2VTdGF0ZSkKKyAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTsKKworICAg
IGJvb2wgaXNWYWxpZCA9IHRydWU7IAorICAgIFN0cmluZyByZW1haW5pbmdJbnB1dCA9IHJlZmVy
ZW5jZTsKKyAgICBTdHJpbmcgcmVzdWx0OworCisgICAgd2hpbGUgKCFyZW1haW5pbmdJbnB1dC5p
c0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKGlzVmFsaWQpOworCisgICAgICAgIGludCBzdGFy
dCA9IHJlbWFpbmluZ0lucHV0LmZpbmQoIiQiKTsKKyAgICAgICAgaWYgKHN0YXJ0ID09IC0xKSB7
CisgICAgICAgICAgICAvLyBDb25zdW1lIGFsbCByZW1haW5pbmcgY2hhcmFjdGVycywgYXMgdGhl
cmUncyBub3RoaW5nIG1vcmUgdG8gc3Vic3RpdHV0ZQorICAgICAgICAgICAgcmVzdWx0ICs9IHJl
bWFpbmluZ0lucHV0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAv
LyBDb25zdW1lIGFsbCBjaGFyYWN0ZXJzIHVudGlsIHRoZSB2YXJpYWJsZSByZWZlcmVuY2UgYmVn
aW5uaW5nCisgICAgICAgIHJlc3VsdCArPSByZW1haW5pbmdJbnB1dC5sZWZ0KHN0YXJ0KTsKKyAg
ICAgICAgcmVtYWluaW5nSW5wdXQucmVtb3ZlKDAsIHN0YXJ0KTsKKworICAgICAgICAvLyBUcmFu
c2Zvcm0gYWRqYWNlbnQgZG9sbGFyIHNpZ25zIGludG8gYSBzaW5nbGUgZG9sbGFyIHNpZ24gYXMg
c3RyaW5nIGxpdGVyYWwKKyAgICAgICAgaWYgKHJlbWFpbmluZ0lucHV0WzFdID09ICckJykgewor
ICAgICAgICAgICAgcmVzdWx0ICs9ICIkIjsKKyAgICAgICAgICAgIHJlbWFpbmluZ0lucHV0LnJl
bW92ZSgwLCAyKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAg
U3RyaW5nIHZhcmlhYmxlTmFtZTsKKyAgICAgICAgU3RyaW5nIGNvbnZlcnNpb25Nb2RlOworCisg
ICAgICAgIGlmIChyZW1haW5pbmdJbnB1dFsxXSA9PSAnKCcpIHsKKyAgICAgICAgICAgIGludCBy
ZWZlcmVuY2VFbmRQb3NpdGlvbiA9IHJlbWFpbmluZ0lucHV0LmZpbmQoIikiKTsKKyAgICAgICAg
ICAgIGlmIChyZWZlcmVuY2VFbmRQb3NpdGlvbiA9PSAtMSkgeworICAgICAgICAgICAgICAgIGlz
VmFsaWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgdmFyaWFibGVOYW1lID0gcmVtYWluaW5nSW5wdXQuc3Vic3RyaW5nKDIsIHJl
ZmVyZW5jZUVuZFBvc2l0aW9uIC0gMik7CisgICAgICAgICAgICByZW1haW5pbmdJbnB1dC5yZW1v
dmUoMCwgcmVmZXJlbmNlRW5kUG9zaXRpb24gKyAxKTsKKworICAgICAgICAgICAgLy8gRGV0ZXJt
aW5lIHZhcmlhYmxlIGNvbnZlcnNpb24gbW9kZSBzdHJpbmcKKyAgICAgICAgICAgIGludCBwb3Mg
PSB2YXJpYWJsZU5hbWUuZmluZCgnOicpOworICAgICAgICAgICAgaWYgKHBvcyAhPSAtMSkgewor
ICAgICAgICAgICAgICAgIGNvbnZlcnNpb25Nb2RlID0gdmFyaWFibGVOYW1lLnN1YnN0cmluZyhw
b3MgKyAxLCB2YXJpYWJsZU5hbWUubGVuZ3RoKCkgLSAocG9zICsgMSkpOworICAgICAgICAgICAg
ICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZS5sZWZ0KHBvcyk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gcmVtYWluaW5nSW5w
dXQubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgcmVmZXJlbmNlRW5kUG9zaXRpb24gPSAxOwor
CisgICAgICAgICAgICBmb3IgKDsgcmVmZXJlbmNlRW5kUG9zaXRpb24gPCBsZW5ndGg7ICsrcmVm
ZXJlbmNlRW5kUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRWYXJpYWJs
ZU5hbWVDaGFyYWN0ZXIocmVtYWluaW5nSW5wdXRbcmVmZXJlbmNlRW5kUG9zaXRpb25dKSkKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZh
cmlhYmxlTmFtZSA9IHJlbWFpbmluZ0lucHV0LnN1YnN0cmluZygxLCByZWZlcmVuY2VFbmRQb3Np
dGlvbiAtIDEpOworICAgICAgICAgICAgcmVtYWluaW5nSW5wdXQucmVtb3ZlKDAsIHJlZmVyZW5j
ZUVuZFBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIGlzVmFsaWQgPSBpc1ZhbGlkVmFy
aWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGlmICghaXNWYWxpZCkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIEFTU0VSVCghdmFyaWFibGVOYW1lLmlzRW1wdHkoKSk7CisK
KyAgICAgICAgU3RyaW5nIHZhcmlhYmxlVmFsdWUgPSBwYWdlU3RhdGUtPmdldFZhcmlhYmxlKHZh
cmlhYmxlTmFtZSk7CisgICAgICAgIGlmICh2YXJpYWJsZVZhbHVlLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChjb250YWluc1ZhcmlhYmxlUmVmZXJlbmNl
KHZhcmlhYmxlVmFsdWUsIGlzVmFsaWQpKSB7CisgICAgICAgICAgICBpZiAoIWlzVmFsaWQpCisg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIHZhcmlhYmxlVmFsdWUgPSBzdWJz
dGl0dXRlVmFyaWFibGVSZWZlcmVuY2VzKHZhcmlhYmxlVmFsdWUsIGRvY3VtZW50LCBlc2NhcGVN
b2RlKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFj
b252ZXJzaW9uTW9kZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIE92ZXJyaWRlIGRlZmF1
bHQgZXNjYXBlIG1vZGUsIGlmIGRlc2lyZWQKKyAgICAgICAgICAgIFdNTFZhcmlhYmxlRXNjYXBp
bmdNb2RlIHNwZWNpZmllZEVzY2FwZU1vZGUgPSBXTUxWYXJpYWJsZUVzY2FwaW5nTm9uZTsgCisg
ICAgICAgICAgICBpZiAoaXNWYWxpZCA9IGlzVmFsaWRWYXJpYWJsZUVzY2FwaW5nTW9kZVN0cmlu
Zyhjb252ZXJzaW9uTW9kZSwgc3BlY2lmaWVkRXNjYXBlTW9kZSkpCisgICAgICAgICAgICAgICAg
ZXNjYXBlTW9kZSA9IHNwZWNpZmllZEVzY2FwZU1vZGU7CisKKyAgICAgICAgICAgIGlmICghaXNW
YWxpZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRj
aCAoZXNjYXBlTW9kZSkgeworICAgICAgICBjYXNlIFdNTFZhcmlhYmxlRXNjYXBpbmdOb25lOgor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV01MVmFyaWFibGVFc2NhcGluZ0VzY2Fw
ZToKKyAgICAgICAgICAgIHZhcmlhYmxlVmFsdWUgPSBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVu
Y2VzKHZhcmlhYmxlVmFsdWUpOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdN
TFZhcmlhYmxlRXNjYXBpbmdVbmVzY2FwZToKKyAgICAgICAgICAgIHZhcmlhYmxlVmFsdWUgPSBk
ZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModmFyaWFibGVWYWx1ZSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCArPSB2YXJpYWJsZVZhbHVlOworICAgICAg
ICBBU1NFUlQoaXNWYWxpZCk7CisgICAgfQorCisgICAgaWYgKCFpc1ZhbGlkKSB7CisgICAgICAg
IHJlcG9ydFdNTEVycm9yKGRvY3VtZW50LCBXTUxFcnJvckludmFsaWRWYXJpYWJsZVJlZmVyZW5j
ZSk7CisgICAgICAgIHJldHVybiByZWZlcmVuY2U7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogfQpJbmRleDogV2ViQ29yZS93bWwvV01MVmFyaWFibGVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS93bWwvV01MVmFyaWFibGVzLmgJKHJldmlzaW9uIDM4OTcxKQorKysgV2ViQ29y
ZS93bWwvV01MVmFyaWFibGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5nVW5lc2NhcGUKICAg
ICB9OwogCi0gICAgYm9vbCBpc1ZhbGlkVmFyaWFibGVOYW1lKGNvbnN0IFN0cmluZyYsIGJvb2wg
aXNSZWZlcmVuY2UpOwotICAgIGJvb2wgY29udGFpbnNWYXJpYWJsZVJlZmVyZW5jZShjb25zdCBT
dHJpbmcmKTsKKyAgICBib29sIGlzVmFsaWRWYXJpYWJsZU5hbWUoY29uc3QgU3RyaW5nJik7Cisg
ICAgYm9vbCBjb250YWluc1ZhcmlhYmxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYsIGJvb2wmIGlz
VmFsaWQpOwogCiAgICAgU3RyaW5nIHN1YnN0aXR1dGVWYXJpYWJsZVJlZmVyZW5jZXMoY29uc3Qg
U3RyaW5nJiB2YXJpYWJsZVJlZmVyZW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEb2N1bWVudCosCg==
</data>
<flag name="review"
          id="12023"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>