<?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>19391</bug_id>
          
          <creation_ts>2008-06-04 06:48:07 -0700</creation_ts>
          <short_desc>Dynamically created SVG script tags fail to execute</short_desc>
          <delta_ts>2008-08-13 12:03:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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>DUPLICATE</resolution>
          <dup_id>20372</dup_id>
          
          <bug_file_loc>http://www.openicon.org/temp/safari-phpJS-broken.svg</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="jay">jay</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>82291</commentid>
    <comment_count>0</comment_count>
    <who name="jay">jay</who>
    <bug_when>2008-06-04 06:48:07 -0700</bug_when>
    <thetext>open the uri, after three seconds, alternative text should be loaded from javascript in external php file.

parity: ff &amp; Opera</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82292</commentid>
    <comment_count>1</comment_count>
    <who name="jay">jay</who>
    <bug_when>2008-06-04 06:49:22 -0700</bug_when>
    <thetext>it maybe this issue is not solely related to SVG...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82338</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-06-05 01:58:17 -0700</bug_when>
    <thetext>Okay this issue is caused by SVGScriptElement not implementing insertedIntoDocument and related-fu, which means that they never execute once they&apos;re inserted into the dom.  In fact the current implementation appears to do nothing but manage scripts that are referenced at parse time -- dynamically updating the href tag also does not appear to do the required update logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85848</commentid>
    <comment_count>3</comment_count>
      <attachid>22258</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2008-07-12 13:33:30 -0700</bug_when>
    <thetext>Created attachment 22258
First attempt

This patch is not finished since it doesnt handle for instance &quot;childrenChanged&quot;.
Also I am not sure how to exactly dispatch the error and load events. Still there
are two nice testcases that already are getting passed, so I thought I&apos;d try to get some early feedback :)
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85850</commentid>
    <comment_count>4</comment_count>
    <who name="jay">jay</who>
    <bug_when>2008-07-12 14:26:24 -0700</bug_when>
    <thetext>in a fit of pique, well more absent-mindedness it seems I had broken the reduced testcase...

it&apos;s temporarily fixed, so grab it while you can...

tx again

~:&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85853</commentid>
    <comment_count>5</comment_count>
      <attachid>22258</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-07-12 14:40:38 -0700</bug_when>
    <thetext>Comment on attachment 22258
First attempt

One observation: SVGScriptElement::evaluateScript has commented out code.

However i don&apos;t believe this is correct in all cases.  the HTMLScriptElement has logic to prevent a script from being executed multiple times when attached and detached.

I&apos;m wondering if it&apos;s worth making a ScriptElement class that has all the logic to handle attah/detach/execution, etc, although that will require multiple inheritance which will be yuck

and may screw html performance :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85863</commentid>
    <comment_count>6</comment_count>
      <attachid>22259</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2008-07-13 04:52:51 -0700</bug_when>
    <thetext>Created attachment 22259
Some more tests

This patch also tries setting the href attr dynamically and changing the text
children of the script. The behaviour is the same as for html scripts since
I noticed FF handling the svg scripts that way.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85884</commentid>
    <comment_count>7</comment_count>
      <attachid>22259</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-07-14 05:14:38 -0700</bug_when>
    <thetext>Comment on attachment 22259
Some more tests

I&apos;d like to see a patch with finishParsingChildren implemented as htmlscriptelement has, or a reason it shouldn&apos;t be implemented for svg.

Also i&apos;d like to see tests for
* script element created, added, removed, and added again
* script element in source that is removed the added again
* script element created, added, removed, children added, re-added to the document
* ditto for a script in the source
* script created, given a source, added, removed, soure attr removed
* script created, given a source, added, removed, soure attr removed, source placed in the element, then added to the document again.
* script element (both created, and in the source) getting its source set, and changed

I think that covers it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86501</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-07-20 14:18:24 -0700</bug_when>
    <thetext>Rob, did you ever get round to writing those tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86527</commentid>
    <comment_count>9</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2008-07-20 22:58:35 -0700</bug_when>
    <thetext>Hi Oliver,

(In reply to comment #8)
&gt; Rob, did you ever get round to writing those tests?

Still working on it once in a while. It&apos;s quite boring work actually :(
Nevertheless I&apos;ll have something to review this week, until then you can r-
if you want to clean the review queue a bit more.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86529</commentid>
    <comment_count>10</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-07-20 23:16:31 -0700</bug_when>
    <thetext>Well the patch itself is fine, it just needs a few more tests.  Hmm, you can commit, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86534</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-20 23:48:05 -0700</bug_when>
    <thetext>Yes, Rob can commit &amp; review! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86885</commentid>
    <comment_count>12</comment_count>
      <attachid>22259</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-24 11:49:36 -0700</bug_when>
    <thetext>Comment on attachment 22259
Some more tests

I think it&apos;s better to be explicit about what scriptTag it is in XMLTokenizer, I would prefer you leave the HTMLNames:: when the next line is SVGNames::scriptTag. :)

Looks fine.  Wow, I wish that SVGScriptElement and HTMLScriptElement could share more code.  I think our current split solution is going to lead to lots of copy/paste bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88424</commentid>
    <comment_count>13</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-08-13 12:03:04 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 20372 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22258</attachid>
            <date>2008-07-12 13:33:30 -0700</date>
            <delta_ts>2008-07-12 14:40:38 -0700</delta_ts>
            <desc>First attempt</desc>
            <filename>19391.diff</filename>
            <type>text/plain</type>
            <size>12722</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTE1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDgtMDctMTIgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM5MQorICAgICAgICBEeW5hbWljYWxseSBj
cmVhdGVkIFNWRyBzY3JpcHQgdGFncyBmYWlsIHRvIGV4ZWN1dGUKKworICAgICAgICBNYWtlIFNW
R1NjcmlwdEVsZW1lbnQgbW9yZSBsaWtlIEhUTUxTY3JpcHRFbGVtZW50CisgICAgICAgIHNvIGl0
IGhhbmRsZXMgZHluYW1pYyBhZGRpdGlvbi9yZW1vdmFsIGFmdGVyIHRoZQorICAgICAgICBkb2N1
bWVudCBoYXMgbG9hZGVkLgorCisgICAgICAgIFRlc3RzOiBzdmcvY3VzdG9tL2R5bmFtaWMtc2Ny
aXB0LWNyZWF0aW9uLWV4dGVybmFsLnN2ZworICAgICAgICAgICAgICAgc3ZnL2N1c3RvbS9keW5h
bWljLXNjcmlwdC1jcmVhdGlvbi5zdmcKKworICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OlNWR1NjcmlwdEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6flNWR1NjcmlwdEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6cmVtb3ZlZEZyb21E
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5p
c2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50Ojp0eXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU2NyaXB0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjpldmFsdWF0ZVNjcmlwdCk6CisgICAgICAg
ICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKwogMjAwOC0wNy0xMSAgU3RlcGhhbmllIExld2lz
ICA8c2xld2lzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAzNTE1MCkKKysrIFdlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3
aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA3IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA3LCAy
MDA4IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
aGUgS0RFIHByb2plY3QKIApAQCAtMjQsNDMgKzI0LDExNCBAQAogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgogCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0Lmgi
CisjaW5jbHVkZSAiRG9jTG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKK3VzaW5nIG5hbWVzcGFjZSBFdmVu
dE5hbWVzOworCiBTVkdTY3JpcHRFbGVtZW50OjpTVkdTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05h
bWUsIGRvYykKICAgICAsIFNWR1VSSVJlZmVyZW5jZSgpCiAgICAgLCBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkKCkKKyAgICAsIG1fY2FjaGVkU2NyaXB0KDApCiB7CiB9CiAKIFNWR1Njcmlw
dEVsZW1lbnQ6On5TVkdTY3JpcHRFbGVtZW50KCkKIHsKKyAgICBpZiAobV9jYWNoZWRTY3JpcHQp
CisgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7Cit9CisKK3ZvaWQg
U1ZHU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQoreyAgIAorICAgIFNWR0Vs
ZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCk7CisKKyAgICBBU1NFUlQoIW1fY2FjaGVkU2Ny
aXB0KTsKKworICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlJ2QgbGlrZSB0byBldmFsdWF0ZSBz
Y3JpcHRzIHdoaWNoIGFyZSBpbnNlcnRlZCBpbnRvIGEgICAgCisgICAgLy8gdmlld2xlc3MgZG9j
dW1lbnQgYnV0IHRoaXMnbGwgZG8gZm9yIG5vdy4KKyAgICAvLyBTZWUgaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNworICAgIGlmICghZG9jdW1lbnQoKS0+ZnJhbWUo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB1cmwgPSBocmVm
KCk7CisgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0g
ZG9jdW1lbnQoKS0+ZG9jTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQodXJsLCBTdHJpbmcoKSk7Cisg
ICAgICAgIGlmIChtX2NhY2hlZFNjcmlwdCkKKyAgICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5h
ZGRDbGllbnQodGhpcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpc3BhdGNoSFRNTEV2
ZW50KGVycm9yRXZlbnQsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1wdHkgc2NyaXB0IG5vZGUsIHdlIHNob3VsZG4ndCBldmFs
dWF0ZSB0aGUgc2NyaXB0CisgICAgLy8gYmVjYXVzZSBpZiBhIHNjcmlwdCBpcyBpbnNlcnRlZCBh
ZnRlcndhcmRzIChieSBzZXR0aW5nIHRleHQgb3IgaW5uZXJUZXh0KSAgICAvLyBpdCBzaG91bGQg
YmUgZXZhbHVhdGVkLCBhbmQgZXZhbHVhdGVTY3JpcHQgb25seSBldmFsdWF0ZXMgYSBzY3JpcHQg
b25jZS4KKyAgICBTdHJpbmcgc2NyaXB0U3RyaW5nID0gdGV4dENvbnRlbnQoKTsKKyAgICBpZiAo
IXNjcmlwdFN0cmluZy5pc0VtcHR5KCkpCisgICAgICAgIGV2YWx1YXRlU2NyaXB0KGRvY3VtZW50
KCktPnVybCgpLnN0cmluZygpLCBzY3JpcHRTdHJpbmcpOworfQorCit2b2lkIFNWR1NjcmlwdEVs
ZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQoreworICAgIFNWR0VsZW1lbnQ6OnJlbW92ZWRG
cm9tRG9jdW1lbnQoKTsKKworICAgIGlmIChtX2NhY2hlZFNjcmlwdCkgeworICAgICAgICBtX2Nh
Y2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9
IDA7CisgICAgfQorfQorCit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKiBvKQoreworICAgIENhY2hlZFNjcmlwdCogY3MgPSBzdGF0aWNfY2FzdDxD
YWNoZWRTY3JpcHQqPihvKTsKKworICAgIEFTU0VSVChjcyA9PSBtX2NhY2hlZFNjcmlwdCk7CisK
KyAgICAvLyBFdmFsdWF0aW5nIHRoZSBzY3JpcHQgY291bGQgbGVhZCB0byBhIGdhcmJhZ2UgY29s
bGVjdGlvbiB3aGljaAorICAgIC8vIGNhbiBkZWxldGUgdGhlIHNjcmlwdCBlbGVtZW50IHNvIHdl
IG5lZWQgdG8gcHJvdGVjdCBpdC4KKyAgICBSZWZQdHI8U1ZHU2NyaXB0RWxlbWVudD4gcHJvdGVj
dCh0aGlzKTsKKworICAgIGlmIChjcy0+ZXJyb3JPY2N1cnJlZCgpKQorICAgICAgICBkaXNwYXRj
aEhUTUxFdmVudChlcnJvckV2ZW50LCB0cnVlLCBmYWxzZSk7CisgICAgZWxzZSB7CisgICAgICAg
IGV2YWx1YXRlU2NyaXB0KGNzLT51cmwoKSwgY3MtPnNjcmlwdCgpKTsKKyAgICAgICAgZGlzcGF0
Y2hIVE1MRXZlbnQobG9hZEV2ZW50LCBmYWxzZSwgZmFsc2UpOworICAgIH0KKworICAgIC8vIHNj
cmlwdCBldmFsdWF0aW9uIG1heSBoYXZlIGRlcmVmZmVkIGl0IGFscmVhZHkKKyAgICBpZiAobV9j
YWNoZWRTY3JpcHQpIHsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlz
KTsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOworICAgIH0KIH0KIAogU3RyaW5nIFNWR1Nj
cmlwdEVsZW1lbnQ6OnR5cGUoKSBjb25zdAogewotICAgIHJldHVybiBtX3R5cGU7CisgICAgcmV0
dXJuIGdldEF0dHJpYnV0ZSh0eXBlQXR0cik7CiB9CiAKLXZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6
c2V0VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6OnNldFR5
cGUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBtX3R5cGUgPSB0eXBlOworICAgIHNldEF0
dHJpYnV0ZSh0eXBlQXR0ciwgdmFsdWUpOwogfQogCiB2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKIHsKLSAgICBpZiAoYXR0
ci0+bmFtZSgpID09IFNWR05hbWVzOjp0eXBlQXR0cikKLSAgICAgICAgc2V0VHlwZShhdHRyLT52
YWx1ZSgpKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoYXR0cikpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShhdHRyKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKKyAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIFNWR0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwot
ICAgIH0KKyAgICBTVkdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KIAog
dm9pZCBTVkdTY3JpcHRFbGVtZW50OjpnZXRTdWJyZXNvdXJjZUF0dHJpYnV0ZVN0cmluZ3MoVmVj
dG9yPFN0cmluZz4mIHVybHMpIGNvbnN0CkBAIC02OCw2ICsxMzksNDAgQEAgdm9pZCBTVkdTY3Jp
cHRFbGVtZW50OjpnZXRTdWJyZXNvdXJjZUF0dAogICAgIHVybHMuYXBwZW5kKGhyZWYoKSk7CiB9
CiAKK2Jvb2wgU1ZHU2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpCit7
CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlID0gZ2V0QXR0cmlidXRlKHR5cGVBdHRyKTsK
KyAgICBpZiAoIXR5cGUuaXNFbXB0eSgpKSB7CisgICAgICAgIFN0cmluZyBsb3dlclR5cGUgPSB0
eXBlLnN0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpLmxvd2VyKCk7CisgICAgICAgIGlmIChNSU1F
VHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShsb3dlclR5cGUpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6OmV2YWx1YXRl
U2NyaXB0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNjcmlwdCkKK3sKKy8vICAg
IGlmIChtX2V2YWx1YXRlZCkKKy8vICAgICAgICByZXR1cm47CisgICAKKyAgICBpZiAoIXNob3Vs
ZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRnJhbWUqIGZy
YW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgaWYg
KGZyYW1lLT5zY3JpcHQoKS0+aXNFbmFibGVkKCkpIHsKKyAvLyAgICAgICAgICAgbV9ldmFsdWF0
ZWQgPSB0cnVlOworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgc3RhcnRpbmcgbGluZSBudW1i
ZXIgd2lsbCBiZSBpbmNvcnJlY3QgZm9yIGV2YWx1YXRpb24gdHJpZ2dlcmVkCisgICAgICAgICAg
ICAvLyBmcm9tIGluc2VydGVkSW50b0RvY3VtZW50IG9yIGNoaWxkcmVuQ2hhbmdlZC4KKyAgICAg
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS0+ZXZhbHVhdGUodXJsLCAxLCBzY3JpcHQpOworICAgICAg
ICAgICAgRG9jdW1lbnQ6OnVwZGF0ZURvY3VtZW50c1JlbmRlcmluZygpOworICAgICAgICB9Cisg
ICAgfQorfQorCiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmgJKHJldmlzaW9uIDM1MTUwKQorKysgV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAg
ICAgICAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgICAgICAg
ICAgICAgICAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAK
ICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjcsMjYgKzI3
LDM2IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5j
ZS5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZQogeworICAgIGNs
YXNzIENhY2hlZFNjcmlwdDsKKwogICAgIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgOiBwdWJsaWMg
U1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJl
ZmVyZW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFNWR1NjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAg
ICAgIHZpcnR1YWwgflNWR1NjcmlwdEVsZW1lbnQoKTsKIAorICAgICAgICAvLyBJbnRlcm5hbAor
ICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRl
ICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworCiAgICAgICAgIC8vICdT
VkdTY3JpcHRFbGVtZW50JyBmdW5jdGlvbnMKICAgICAgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsK
ICAgICAgICAgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAgIC8vIEludGVy
bmFsCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGUgKmF0dHIpOwotCiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRTdWJyZXNvdXJjZUF0dHJp
YnV0ZVN0cmluZ3MoVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKIAorICAgICAgICBib29sIHNob3Vs
ZEV4ZWN1dGVBc0phdmFTY3JpcHQoKTsKKyAgICAgICAgdm9pZCBldmFsdWF0ZVNjcmlwdChjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpOworCiAgICAgcHJvdGVjdGVkOgog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gdGhpczsgfQogCkBAIC01NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR1VSSVJlZmVy
ZW5jZSwgU3RyaW5nLCBIcmVmLCBocmVmKQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9GT1JX
QVJEX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBib29sLCBFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogCi0gICAg
ICAgIFN0cmluZyBtX3R5cGU7CisgICAgICAgIENhY2hlZFNjcmlwdCogbV9jYWNoZWRTY3JpcHQ7
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzUx
NTApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NyBAQAorMjAwOC0wNy0xMiAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGNhc2VzIGZvcjoKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzkxCisgICAgICAg
IER5bmFtaWNhbGx5IGNyZWF0ZWQgU1ZHIHNjcmlwdCB0YWdzIGZhaWwgdG8gZXhlY3V0ZQorCisg
ICAgICAgICogc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vZHluYW1pYy1zY3JpcHQtY3JlYXRpb24tZXh0
ZXJuYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2R5bmFtaWMt
c2NyaXB0LWNyZWF0aW9uLWV4dGVybmFsLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3Rv
bS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0
b20vcmVzb3VyY2VzL3NjcmlwdC5zdmc6IEFkZGVkLgorCiAyMDA4LTA3LTExICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlw
dC1jcmVhdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL2R5bmFtaWMtc2NyaXB0LWNyZWF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyIEBACitQQVNTRUQKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9k
eW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHRlcm5hbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHRlcm5h
bC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5
bmFtaWMtc2NyaXB0LWNyZWF0aW9uLWV4dGVybmFsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyIEBACitQQVNTRUQKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9k
eW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHRlcm5hbC5zdmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHRlcm5hbC5zdmcJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LWNyZWF0
aW9uLWV4dGVybmFsLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPD94bWwgdmVy
c2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEw
OTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQv
c3ZnMTAuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxu
czp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgb25sb2FkPSJydW5UZXN0KCki
Pjx0ZXh0PkZBSUxFRDwvdGV4dD4KKzxkZWZzPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2VjbWFzY3Jp
cHQiPjwhW0NEQVRBWworICAgIHZhciBzdmducyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyI7CisgICAgdmFyIHhsaW5rbnMgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayc7CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSAKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmducywn
c2NyaXB0Jyk7CisgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGVOUyhudWxsLCAidHlwZSIsICJ0
ZXh0L2VjbWFzY3JpcHQiKTsKKyAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZU5TKHhsaW5rbnMs
ICJocmVmIiwgInJlc291cmNlcy9zY3JpcHQuc3ZnIik7CisgICAgICAgIGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0KK11dPjwvc2NyaXB0PgorPC9k
ZWZzPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0
LWNyZWF0aW9uLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFt
aWMtc2NyaXB0LWNyZWF0aW9uLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9j
dXN0b20vZHluYW1pYy1zY3JpcHQtY3JlYXRpb24uc3ZnCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9X
M0MvL0RURCBTVkcgMjAwMTA5MDQvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMt
U1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQiPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBv
bmxvYWQ9InJ1blRlc3QoKSI+PHRleHQ+RkFJTEVEPC90ZXh0PgorPGRlZnM+Cis8c2NyaXB0IHR5
cGU9InRleHQvZWNtYXNjcmlwdCI+PCFbQ0RBVEFbCisgICAgdmFyIHN2Z25zID0gImh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAorICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKHN2Z25zLCdzY3JpcHQnKTsKKyAgICAgICAgc2NyaXB0LnNldEF0dHJp
YnV0ZU5TKG51bGwsInR5cGUiLCJ0ZXh0L2VjbWFzY3JpcHQiKTsKKyAgICAgICAgdmFyIHR4dCA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJkb2N1bWVudC5yb290RWxlbWVudC5maXJzdENoaWxk
LnRleHRDb250ZW50ID0gJ1BBU1NFRCc7Iik7CisgICAgICAgIHNjcmlwdC5hcHBlbmRDaGlsZCh0
eHQpOworICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoc2NyaXB0
KTsKKyAgICB9CitdXT48L3NjcmlwdD4KKzwvZGVmcz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvc2NyaXB0LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy9zY3JpcHQuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvc2NyaXB0LnN2ZwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSBAQAorZG9jdW1lbnQucm9vdEVsZW1lbnQuZmlyc3RDaGlsZC50ZXh0Q29udGVudCA9
ICdQQVNTRUQnOwo=
</data>
<flag name="review"
          id="9794"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22259</attachid>
            <date>2008-07-13 04:52:51 -0700</date>
            <delta_ts>2008-07-24 11:49:36 -0700</delta_ts>
            <desc>Some more tests</desc>
            <filename>19391-2.diff</filename>
            <type>text/plain</type>
            <size>19267</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDgtMDctMTMgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM5MQorICAgICAgICBEeW5hbWljYWxseSBj
cmVhdGVkIFNWRyBzY3JpcHQgdGFncyBmYWlsIHRvIGV4ZWN1dGUKKworICAgICAgICBNYWtlIFNW
R1NjcmlwdEVsZW1lbnQgbW9yZSBsaWtlIEhUTUxTY3JpcHRFbGVtZW50CisgICAgICAgIHNvIGl0
IGhhbmRsZXMgZHluYW1pYyBhZGRpdGlvbi9yZW1vdmFsIGFmdGVyIHRoZQorICAgICAgICBkb2N1
bWVudCBoYXMgbG9hZGVkLgorCisgICAgICAgIFRlc3RzOiBzdmcvY3VzdG9tL2R5bmFtaWMtc2Ny
aXB0LWNyZWF0aW9uLWV4dGVybmFsLnN2ZworICAgICAgICAgICAgICAgc3ZnL2N1c3RvbS9keW5h
bWljLXNjcmlwdC1jcmVhdGlvbi5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9jdXN0b20vZHluYW1p
Yy1zY3JpcHQtbm9kZS1hZGRpdGlvbi5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9jdXN0b20vZHlu
YW1pYy1zY3JpcHQtc2V0LWhyZWYuc3ZnCisKKyAgICAgICAgKiBkb20vWE1MVG9rZW5pemVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuaXplcjo6c3RhcnRFbGVtZW50TnMpOgorICAg
ICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjpTVkdTY3JpcHRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6On5TVkdTY3JpcHRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OnR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6c2V0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdT
Y3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmV2YWx1YXRlU2NyaXB0KToKKyAgICAgICAgKiBzdmcvU1ZH
U2NyaXB0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6c2V0
Q3JlYXRlZEJ5UGFyc2VyKToKKwogMjAwOC0wNy0xMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogV2ViQ29y
ZS9kb20vWE1MVG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9YTUxUb2tl
bml6ZXIuY3BwCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUvZG9tL1hNTFRva2VuaXplci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDcgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogI2VuZGlm
CkBAIC04NjcsMTQgKzg2OCwxNiBAQCB2b2lkIFhNTFRva2VuaXplcjo6c3RhcnRFbGVtZW50TnMo
Y29uc3QgCiAKICAgICBpZiAobmV3RWxlbWVudC0+aGFzVGFnTmFtZShzY3JpcHRUYWcpKQogICAg
ICAgICBzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KG5ld0VsZW1lbnQuZ2V0KCkpLT5z
ZXRDcmVhdGVkQnlQYXJzZXIodHJ1ZSk7Ci0gICAgZWxzZSBpZiAobmV3RWxlbWVudC0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OnN0eWxlVGFnKSkKKyAgICBlbHNlIGlmIChuZXdFbGVtZW50LT5oYXNU
YWdOYW1lKHN0eWxlVGFnKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+
KG5ld0VsZW1lbnQuZ2V0KCkpLT5zZXRDcmVhdGVkQnlQYXJzZXIodHJ1ZSk7CiAjaWYgRU5BQkxF
KFNWRykKKyAgICBlbHNlIGlmIChuZXdFbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzY3Jp
cHRUYWcpKQorICAgICAgICBzdGF0aWNfY2FzdDxTVkdTY3JpcHRFbGVtZW50Kj4obmV3RWxlbWVu
dC5nZXQoKSktPnNldENyZWF0ZWRCeVBhcnNlcih0cnVlKTsKICAgICBlbHNlIGlmIChuZXdFbGVt
ZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzdHlsZVRhZykpCiAgICAgICAgIHN0YXRpY19jYXN0
PFNWR1N0eWxlRWxlbWVudCo+KG5ld0VsZW1lbnQuZ2V0KCkpLT5zZXRDcmVhdGVkQnlQYXJzZXIo
dHJ1ZSk7CiAjZW5kaWYKICAgICAKLSAgICBpZiAobmV3RWxlbWVudC0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OnNjcmlwdFRhZykKKyAgICBpZiAobmV3RWxlbWVudC0+aGFzVGFnTmFtZShzY3JpcHRU
YWcpCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgfHwgbmV3RWxlbWVudC0+aGFzVGFnTmFtZShT
VkdOYW1lczo6c2NyaXB0VGFnKQogI2VuZGlmCkBAIC0xOTE0LDggKzE5MTcsMTIgQEAgdm9pZCBY
TUxUb2tlbml6ZXI6OnBhcnNlU3RhcnRFbGVtZW50KCkKIAogICAgIGlmIChuZXdFbGVtZW50LT5o
YXNUYWdOYW1lKHNjcmlwdFRhZykpCiAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVt
ZW50Kj4obmV3RWxlbWVudC5nZXQoKSktPnNldENyZWF0ZWRCeVBhcnNlcih0cnVlKTsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKG5ld0VsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6
OnNjcmlwdFRhZykpCisgICAgICAgIHN0YXRpY19jYXN0PFNWR1NjcmlwdEVsZW1lbnQqPihuZXdF
bGVtZW50LmdldCgpKS0+c2V0Q3JlYXRlZEJ5UGFyc2VyKHRydWUpOworI2VuZGlmCiAKLSAgICBp
ZiAobmV3RWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNjcmlwdFRhZykKKyAgICBpZiAo
bmV3RWxlbWVudC0+aGFzVGFnTmFtZShzY3JpcHRUYWcpCiAjaWYgRU5BQkxFKFNWRykKICAgICAg
ICAgfHwgbmV3RWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6c2NyaXB0VGFnKQogI2VuZGlm
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAkocmV2aXNpb24gMzUxNTQpCisrKyBXZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
d2lsZGZveEBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNyBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgorICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNywg
MjAwOCBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDUwICsyNCwxODcgQEAKICNpZiBFTkFCTEUoU1ZHKQog
I2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5o
IgorI2luY2x1ZGUgIkRvY0xvYWRlci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7Cit1c2luZyBuYW1lc3BhY2UgRXZl
bnROYW1lczsKKwogU1ZHU2NyaXB0RWxlbWVudDo6U1ZHU2NyaXB0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQogICAgIDogU1ZHRWxlbWVudCh0YWdO
YW1lLCBkb2MpCiAgICAgLCBTVkdVUklSZWZlcmVuY2UoKQogICAgICwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCgpCisgICAgLCBtX2NhY2hlZFNjcmlwdCgwKQorICAgICwgbV9jcmVhdGVk
QnlQYXJzZXIoZmFsc2UpCisgICAgLCBtX2V2YWx1YXRlZChmYWxzZSkKIHsKIH0KIAogU1ZHU2Ny
aXB0RWxlbWVudDo6flNWR1NjcmlwdEVsZW1lbnQoKQogeworICAgIGlmIChtX2NhY2hlZFNjcmlw
dCkKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKIH0KIAotU3Ry
aW5nIFNWR1NjcmlwdEVsZW1lbnQ6OnR5cGUoKSBjb25zdAordm9pZCBTVkdTY3JpcHRFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5n
ZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpCiB7Ci0gICAgcmV0dXJu
IG1fdHlwZTsKKyAgICAvLyBJZiBhIG5vZGUgaXMgaW5zZXJ0ZWQgYXMgYSBjaGlsZCBvZiB0aGUg
c2NyaXB0IGVsZW1lbnQKKyAgICAvLyBhbmQgdGhlIHNjcmlwdCBlbGVtZW50IGhhcyBiZWVuIGlu
c2VydGVkIGluIHRoZSBkb2N1bWVudAorICAgIC8vIHdlIGV2YWx1YXRlIHRoZSBzY3JpcHQuCisg
ICAgaWYgKCFtX2NyZWF0ZWRCeVBhcnNlciAmJiBpbkRvY3VtZW50KCkgJiYgZmlyc3RDaGlsZCgp
KQorICAgICAgICBldmFsdWF0ZVNjcmlwdChkb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSwgdGV4
dENvbnRlbnQoKSk7CisgICAgU1ZHRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBh
cnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAot
dm9pZCBTVkdTY3JpcHRFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQg
U1ZHU2NyaXB0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBh
dHRyKQogewotICAgIG1fdHlwZSA9IHR5cGU7CisgICAgaWYgKFNWR1VSSVJlZmVyZW5jZTo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpIHsKKyAgICAgICAgaWYgKG1fZXZhbHVhdGVkIHx8IG1f
Y2FjaGVkU2NyaXB0IHx8IG1fY3JlYXRlZEJ5UGFyc2VyIHx8ICFpbkRvY3VtZW50KCkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gRklYTUU6IEV2YWx1YXRlIHNjcmlwdHMgaW4g
dmlld2xlc3MgZG9jdW1lbnRzLgorICAgICAgICAvLyBTZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNworICAgICAgICBpZiAoIWRvY3VtZW50KCktPmZyYW1lKCkp
CisgICAgICAgICAgICByZXR1cm47CisgCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdXJs
ID0gYXR0ci0+dmFsdWUoKTsKKyAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICBtX2NhY2hlZFNjcmlwdCA9IGRvY3VtZW50KCktPmRvY0xvYWRlcigpLT5yZXF1ZXN0U2Ny
aXB0KHVybCwgU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKG1fY2FjaGVkU2NyaXB0KQorICAg
ICAgICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hIVE1MRXZlbnQoZXJyb3JFdmVudCwgdHJ1
ZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBTVkdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShh
dHRyKTsKIH0KIAotdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShN
YXBwZWRBdHRyaWJ1dGUqIGF0dHIpCit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50
b0RvY3VtZW50KCkKK3sgICAKKyAgICBTVkdFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgp
OworCisgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CisKKyAgICBpZiAobV9jcmVhdGVkQnlQ
YXJzZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlJ2Qg
bGlrZSB0byBldmFsdWF0ZSBzY3JpcHRzIHdoaWNoIGFyZSBpbnNlcnRlZCBpbnRvIGEgICAgCisg
ICAgLy8gdmlld2xlc3MgZG9jdW1lbnQgYnV0IHRoaXMnbGwgZG8gZm9yIG5vdy4KKyAgICAvLyBT
ZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNworICAgIGlmICgh
ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiB1cmwgPSBocmVmKCk7CisgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CisgICAgICAg
IG1fY2FjaGVkU2NyaXB0ID0gZG9jdW1lbnQoKS0+ZG9jTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQo
dXJsLCBTdHJpbmcoKSk7CisgICAgICAgIGlmIChtX2NhY2hlZFNjcmlwdCkKKyAgICAgICAgICAg
IG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGRpc3BhdGNoSFRNTEV2ZW50KGVycm9yRXZlbnQsIHRydWUsIGZhbHNlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1wdHkgc2NyaXB0IG5vZGUs
IHdlIHNob3VsZG4ndCBldmFsdWF0ZSB0aGUgc2NyaXB0CisgICAgLy8gYmVjYXVzZSBpZiBhIHNj
cmlwdCBpcyBpbnNlcnRlZCBhZnRlcndhcmRzIChieSBzZXR0aW5nIHRleHQgb3IgaW5uZXJUZXh0
KSAgICAvLyBpdCBzaG91bGQgYmUgZXZhbHVhdGVkLCBhbmQgZXZhbHVhdGVTY3JpcHQgb25seSBl
dmFsdWF0ZXMgYSBzY3JpcHQgb25jZS4KKyAgICBTdHJpbmcgc2NyaXB0U3RyaW5nID0gdGV4dENv
bnRlbnQoKTsKKyAgICBpZiAoIXNjcmlwdFN0cmluZy5pc0VtcHR5KCkpCisgICAgICAgIGV2YWx1
YXRlU2NyaXB0KGRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLCBzY3JpcHRTdHJpbmcpOworfQor
Cit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQoreworICAgIFNW
R0VsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKworICAgIGlmIChtX2NhY2hlZFNjcmlw
dCkgeworICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAg
ICBtX2NhY2hlZFNjcmlwdCA9IDA7CisgICAgfQorfQorCit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6
Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBvKQogewotICAgIGlmIChhdHRyLT5uYW1l
KCkgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQotICAgICAgICBzZXRUeXBlKGF0dHItPnZhbHVlKCkp
OworICAgIENhY2hlZFNjcmlwdCogY3MgPSBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihvKTsK
KworICAgIEFTU0VSVChjcyA9PSBtX2NhY2hlZFNjcmlwdCk7CisKKyAgICAvLyBFdmFsdWF0aW5n
IHRoZSBzY3JpcHQgY291bGQgbGVhZCB0byBhIGdhcmJhZ2UgY29sbGVjdGlvbiB3aGljaAorICAg
IC8vIGNhbiBkZWxldGUgdGhlIHNjcmlwdCBlbGVtZW50IHNvIHdlIG5lZWQgdG8gcHJvdGVjdCBp
dC4KKyAgICBSZWZQdHI8U1ZHU2NyaXB0RWxlbWVudD4gcHJvdGVjdCh0aGlzKTsKKworICAgIGlm
IChjcy0+ZXJyb3JPY2N1cnJlZCgpKQorICAgICAgICBkaXNwYXRjaEhUTUxFdmVudChlcnJvckV2
ZW50LCB0cnVlLCBmYWxzZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmIChTVkdVUklSZWZlcmVu
Y2U6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cikpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGV2YWx1YXRlU2NyaXB0KGNz
LT51cmwoKSwgY3MtPnNjcmlwdCgpKTsKKyAgICAgICAgZGlzcGF0Y2hIVE1MRXZlbnQobG9hZEV2
ZW50LCBmYWxzZSwgZmFsc2UpOworICAgIH0KIAotICAgICAgICBTVkdFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShhdHRyKTsKKyAgICAvLyBzY3JpcHQgZXZhbHVhdGlvbiBtYXkgaGF2ZSBk
ZXJlZmZlZCBpdCBhbHJlYWR5CisgICAgaWYgKG1fY2FjaGVkU2NyaXB0KSB7CisgICAgICAgIG1f
Y2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0
ID0gMDsKICAgICB9CiB9CiAKK1N0cmluZyBTVkdTY3JpcHRFbGVtZW50Ojp0eXBlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHR5cGVBdHRyKTsKK30KKwordm9pZCBTVkdTY3Jp
cHRFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgc2V0QXR0cmli
dXRlKHR5cGVBdHRyLCB2YWx1ZSk7Cit9CisKIHZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6Z2V0U3Vi
cmVzb3VyY2VBdHRyaWJ1dGVTdHJpbmdzKFZlY3RvcjxTdHJpbmc+JiB1cmxzKSBjb25zdAogewog
ICAgIHVybHMuYXBwZW5kKGhyZWYoKSk7CiB9CiAKK2Jvb2wgU1ZHU2NyaXB0RWxlbWVudDo6c2hv
dWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpCit7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
ID0gZ2V0QXR0cmlidXRlKHR5cGVBdHRyKTsKKyAgICBpZiAoIXR5cGUuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIFN0cmluZyBsb3dlclR5cGUgPSB0eXBlLnN0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgp
Lmxvd2VyKCk7CisgICAgICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFT
Y3JpcHRNSU1FVHlwZShsb3dlclR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IFNWR1NjcmlwdEVsZW1lbnQ6OmV2YWx1YXRlU2NyaXB0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBTdHJpbmcmIHNjcmlwdCkKK3sKKyAgICBpZiAobV9ldmFsdWF0ZWQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghc2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOworICAgIGlmIChm
cmFtZSkgeworICAgICAgICBpZiAoZnJhbWUtPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSkgeworICAg
ICAgICAgICAgbV9ldmFsdWF0ZWQgPSB0cnVlOworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
c3RhcnRpbmcgbGluZSBudW1iZXIgd2lsbCBiZSBpbmNvcnJlY3QgZm9yIGV2YWx1YXRpb24gdHJp
Z2dlcmVkCisgICAgICAgICAgICAvLyBmcm9tIGluc2VydGVkSW50b0RvY3VtZW50IG9yIGNoaWxk
cmVuQ2hhbmdlZC4KKyAgICAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS0+ZXZhbHVhdGUodXJsLCAx
LCBzY3JpcHQpOworICAgICAgICAgICAgRG9jdW1lbnQ6OnVwZGF0ZURvY3VtZW50c1JlbmRlcmlu
ZygpOworICAgICAgICB9CisgICAgfQorfQorCiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmgJKHJldmlzaW9uIDM1MTU0KQorKysgV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5v
cmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKIApAQCAtMjcsMjYgKzI3LDQwIEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1
ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZQogeworICAgIGNsYXNzIENhY2hlZFNjcmlwdDsKKwogICAgIGNsYXNzIFNWR1Njcmlw
dEVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIFNWR1NjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1NjcmlwdEVsZW1lbnQoKTsKIAorICAg
ICAgICAvLyBJbnRlcm5hbAorICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGluc2VydGVk
SW50b0RvY3VtZW50KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50
KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSop
OworCiAgICAgICAgIC8vICdTVkdTY3JpcHRFbGVtZW50JyBmdW5jdGlvbnMKICAgICAgICAgU3Ry
aW5nIHR5cGUoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYpOwog
Ci0gICAgICAgIC8vIEludGVybmFsCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNo
YW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDAp
OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRTdWJyZXNvdXJjZUF0dHJpYnV0ZVN0cmluZ3Mo
VmVjdG9yPFN0cmluZz4mKSBjb25zdDsKIAorICAgICAgICB2b2lkIHNldENyZWF0ZWRCeVBhcnNl
cihib29sIGNyZWF0ZWRCeVBhcnNlcikgeyBtX2NyZWF0ZWRCeVBhcnNlciA9IGNyZWF0ZWRCeVBh
cnNlcjsgfQorCisgICAgICAgIGJvb2wgc2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpOworICAg
ICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHNjcmlwdCk7CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxl
bWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAKQEAgLTU1LDcg
KzY5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfRk9S
V0FSRF9ERUNMQVJBVElPTlMoU1ZHVVJJUmVmZXJlbmNlLCBTdHJpbmcsIEhyZWYsIGhyZWYpCiAg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0ZPUldBUkRfREVDTEFSQVRJT05TKFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKLSAgICAgICAgU3RyaW5nIG1fdHlwZTsKKyAgICAgICAg
Q2FjaGVkU2NyaXB0KiBtX2NhY2hlZFNjcmlwdDsKKyAgICAgICAgYm9vbCBtX2NyZWF0ZWRCeVBh
cnNlcjsKKyAgICAgICAgYm9vbCBtX2V2YWx1YXRlZDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNTE1NCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDA4LTA3LTEzICBSb2IgQnVp
cyAgPGJ1aXNAa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0Y2FzZXMgZm9yOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkzOTEKKyAgICAgICAgRHluYW1pY2FsbHkgY3JlYXRlZCBTVkcg
c2NyaXB0IHRhZ3MgZmFpbCB0byBleGVjdXRlCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL2R5bmFt
aWMtc2NyaXB0LWNyZWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1
c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHRlcm5hbC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vZHluYW1pYy1zY3JpcHQtY3JlYXRpb24tZXh0ZXJuYWwu
c3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LWNyZWF0aW9u
LnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1ub2RlLWFk
ZGl0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9keW5hbWlj
LXNjcmlwdC1ub2RlLWFkZGl0aW9uLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9k
eW5hbWljLXNjcmlwdC1zZXQtaHJlZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9jdXN0b20vZHluYW1pYy1zY3JpcHQtc2V0LWhyZWYuc3ZnOiBBZGRlZC4KKwogMjAwOC0wNy0x
MiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVk
IGJ5IE9saXZlciBIdW50LgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNj
cmlwdC1jcmVhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LWNyZWF0aW9uLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitQQVNTRUQKKwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHRlcm5hbC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNj
cmlwdC1jcmVhdGlvbi1leHRlcm5hbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LWNyZWF0aW9uLWV4dGVybmFsLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitQQVNTRUQKKwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVhdGlvbi1leHRlcm5hbC5zdmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1jcmVh
dGlvbi1leHRlcm5hbC5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L2R5bmFtaWMtc2NyaXB0LWNyZWF0aW9uLWV4dGVybmFsLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAi
LS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEv
UkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu
ayIgb25sb2FkPSJydW5UZXN0KCkiPjx0ZXh0PkZBSUxFRDwvdGV4dD4KKzxkZWZzPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2VjbWFzY3JpcHQiPjwhW0NEQVRBWworICAgIHZhciBzdmducyA9ICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CisgICAgdmFyIHhsaW5rbnMgPSAnaHR0cDovL3d3dy53
My5vcmcvMTk5OS94bGluayc7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUyhzdmducywnc2NyaXB0Jyk7CisgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1
dGVOUyhudWxsLCAidHlwZSIsICJ0ZXh0L2VjbWFzY3JpcHQiKTsKKyAgICAgICAgc2NyaXB0LnNl
dEF0dHJpYnV0ZU5TKHhsaW5rbnMsICJocmVmIiwgInJlc291cmNlcy9zY3JpcHQuc3ZnIik7Cisg
ICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChzY3JpcHQpOworICAg
IH0KK11dPjwvc2NyaXB0PgorPC9kZWZzPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL2R5bmFtaWMtc2NyaXB0LWNyZWF0aW9uLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LWNyZWF0aW9uLnN2ZwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZHluYW1pYy1zY3JpcHQtY3JlYXRpb24uc3ZnCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9D
VFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMjAwMTA5MDQvL0VOIiAiaHR0cDovL3d3
dy53My5vcmcvVFIvMjAwMS9SRUMtU1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQiPgorPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1blRlc3QoKSI+PHRleHQ+RkFJTEVEPC90ZXh0
PgorPGRlZnM+Cis8c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+PCFbQ0RBVEFbCisgICAg
dmFyIHN2Z25zID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKKworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB2
YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z25zLCdzY3JpcHQnKTsKKyAg
ICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZU5TKG51bGwsInR5cGUiLCJ0ZXh0L2VjbWFzY3JpcHQi
KTsKKyAgICAgICAgdmFyIHR4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJkb2N1bWVudC5y
b290RWxlbWVudC5maXJzdENoaWxkLnRleHRDb250ZW50ID0gJ1BBU1NFRCc7Iik7CisgICAgICAg
IHNjcmlwdC5hcHBlbmRDaGlsZCh0eHQpOworICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICB9CitdXT48L3NjcmlwdD4KKzwvZGVmcz4KKzwv
c3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1ub2RlLWFk
ZGl0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L2R5bmFtaWMtc2NyaXB0LW5vZGUtYWRkaXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1ub2RlLWFkZGl0aW9uLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitQQVNTRUQKKwpJbmRleDog
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5hbWljLXNjcmlwdC1ub2RlLWFkZGl0aW9uLnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LW5vZGUt
YWRkaXRpb24uc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9keW5h
bWljLXNjcmlwdC1ub2RlLWFkZGl0aW9uLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMCBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9E
VEQgU1ZHIDIwMDEwOTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0y
MDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgb25sb2Fk
PSJydW5UZXN0KCkiPjx0ZXh0PkZBSUxFRDwvdGV4dD4KKzxkZWZzPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2VjbWFzY3JpcHQiPjwhW0NEQVRBWworICAgIHZhciBzdmducyA9ICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSAKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnROUyhzdmducywnc2NyaXB0Jyk7CisgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGVO
UyhudWxsLCJ0eXBlIiwidGV4dC9lY21hc2NyaXB0Iik7CisgICAgICAgIHZhciB0eHQgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiZG9jdW1lbnQucm9vdEVsZW1lbnQuZmlyc3RDaGlsZC50ZXh0
Q29udGVudCA9ICdQQVNTRUQnOyIpOworICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQu
YXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICAgICAgc2NyaXB0LmFwcGVuZENoaWxkKHR4dCk7Cisg
ICAgICAgIHNjcmlwdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWxlcnQo
J3Nob3VsZCBub3QgYmUgZXZhbHVhdGVkJyk7IikpOworICAgIH0KK11dPjwvc2NyaXB0PgorPC9k
ZWZzPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0
LXNldC1ocmVmLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL2R5bmFtaWMtc2NyaXB0LXNldC1ocmVmLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZHluYW1pYy1zY3JpcHQtc2V0LWhyZWYtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK1BBU1NFRAorCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LXNldC1ocmVmLnN2Zwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2R5bmFtaWMtc2NyaXB0LXNldC1ocmVmLnN2ZwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZHluYW1pYy1zY3JpcHQtc2V0LWhy
ZWYuc3ZnCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAi
Pz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMjAwMTA5MDQvL0VOIiAi
aHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMtU1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQi
PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1blRlc3QoKSI+PHRleHQ+RkFJ
TEVEPC90ZXh0PgorPGRlZnM+Cis8c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+PCFbQ0RB
VEFbCisgICAgdmFyIHN2Z25zID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKKyAgICB2
YXIgeGxpbmtucyA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJzsKKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IAorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z25zLCdzY3JpcHQnKTsK
KyAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZU5TKG51bGwsInR5cGUiLCJ0ZXh0L2VjbWFzY3Jp
cHQiKTsKKyAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlw
dCk7CisgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGVOUyh4bGlua25zLCAiaHJlZiIsICJyZXNv
dXJjZXMvc2NyaXB0LnN2ZyIpOworICAgIH0KK11dPjwvc2NyaXB0PgorPC9kZWZzPgorPC9zdmc+
Cg==
</data>
<flag name="review"
          id="9796"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>