<?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>11501</bug_id>
          
          <creation_ts>2006-11-03 01:55:57 -0800</creation_ts>
          <short_desc>REGRESSION: \u no longer escapes metacharacters in RegExps</short_desc>
          <delta_ts>2006-11-20 12:34:41 -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>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>javascript:alert(/a\u007cb/.exec(&apos;a&apos;))</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>wac</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>47604</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-03 01:55:57 -0800</bug_when>
    <thetext>The result of the test in bug URL should be null. See bug 7445 comment 24 and further discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46839</commentid>
    <comment_count>1</comment_count>
      <attachid>11392</attachid>
    <who name="W. Andy Carrel">wac</who>
    <bug_when>2006-11-05 23:17:31 -0800</bug_when>
    <thetext>Created attachment 11392
Patch to fix 11501 and 11502

This patch backs out the fix in bug 7445 in favor of a solution that better matches the behavior of other browsers. There is also fix for a problem with UString::append(UChar &amp;) that caused it to, under certain circumstances, not actually append the character.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46741</commentid>
    <comment_count>2</comment_count>
      <attachid>11392</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-11-06 17:40:58 -0800</bug_when>
    <thetext>Comment on attachment 11392
Patch to fix 11501 and 11502

We talked about this on IRC. Andy&apos;s going to submit a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46679</commentid>
    <comment_count>3</comment_count>
      <attachid>11409</attachid>
    <who name="W. Andy Carrel">wac</who>
    <bug_when>2006-11-06 18:45:49 -0800</bug_when>
    <thetext>Created attachment 11409
Patch to fix 11501 et al.

Now with better readability, among other things, per ggaren&apos;s feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46606</commentid>
    <comment_count>4</comment_count>
      <attachid>11409</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-11-08 06:44:34 -0800</bug_when>
    <thetext>Comment on attachment 11409
Patch to fix 11501 et al.

Marking r- as a few style issues remain.  

Please put spaces around infix operators.
 
+    next3 = (pos + 3 &lt; length) ? code[pos+3].uc : -1;

the spaces inside the parenthesis are wrong even though they match the surrounding style.

+        if ( !lastWasEscape ) {

The * should be next to the type.

+    _regex = pcre_compile(reinterpret_cast&lt;const uint16_t *&gt;(cleanedPattern.data()), options, &amp;errorMessage, &amp;errorOffset, NULL);

Also, please regenerate the ChangeLog as the names of the new functions have changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46124</commentid>
    <comment_count>5</comment_count>
      <attachid>11477</attachid>
    <who name="W. Andy Carrel">wac</who>
    <bug_when>2006-11-10 16:12:56 -0800</bug_when>
    <thetext>Created attachment 11477
Patch to fix 11501 et al.

Now with the additional requested style fixes. Most of this batch came from reverting code. It might not hurt to make a linting program public if one exists for identifying these sorts of issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45866</commentid>
    <comment_count>6</comment_count>
      <attachid>11477</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-11-13 11:12:08 -0800</bug_when>
    <thetext>Comment on attachment 11477
Patch to fix 11501 et al.

r- for a few more issues.

No spaces before *&apos;s

+    _regex = pcre_compile(reinterpret_cast&lt;const uint16_t *&gt;(cleanedPattern.data()), options, &amp;errorMessage, &amp;errorOffset, NULL);


Add a comment for:

+  while (pos != -1 + 2) {

Please make the new functions static. And add the URL for this bug to the changelogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45875</commentid>
    <comment_count>7</comment_count>
      <attachid>11508</attachid>
    <who name="W. Andy Carrel">wac</who>
    <bug_when>2006-11-13 13:27:03 -0800</bug_when>
    <thetext>Created attachment 11508
Patch to fix 11501 et al.

Now with yet more exciting style and static fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45319</commentid>
    <comment_count>8</comment_count>
      <attachid>11508</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-11-18 17:46:06 -0800</bug_when>
    <thetext>Comment on attachment 11508
Patch to fix 11501 et al.

This will probably work. But I think the best fix for this is to put the \u handling inside PCRE itself. For one thing, it&apos;s bound to be higher performance than this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45320</commentid>
    <comment_count>9</comment_count>
      <attachid>11508</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-11-18 17:47:05 -0800</bug_when>
    <thetext>Comment on attachment 11508
Patch to fix 11501 et al.

However, this patch does make things better than before, so it&apos;s probably fine to land this -- we can put the support into PCRE later as a further enhancement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44900</commentid>
    <comment_count>10</comment_count>
      <attachid>11508</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-11-20 00:39:40 -0800</bug_when>
    <thetext>Comment on attachment 11508
Patch to fix 11501 et al.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44932</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-20 12:34:41 -0800</bug_when>
    <thetext>Committed revision 17862.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11392</attachid>
            <date>2006-11-05 23:17:31 -0800</date>
            <delta_ts>2006-11-06 18:45:49 -0800</delta_ts>
            <desc>Patch to fix 11501 and 11502</desc>
            <filename>webkit-patch-bug11501-v1.diff</filename>
            <type>text/plain</type>
            <size>13127</size>
            <attacher name="W. Andy Carrel">wac</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NjA4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDYtMTEtMDUgIFcuIEFuZHkg
Q2FycmVsICA8d2FjQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQV9LSU5EX1ZP
TFVOVEVFUl9USEFOS1MuCisKKyAgICAgICAgKiBranMvbGV4ZXIuY3BwOgorICAgICAgICAoTGV4
ZXI6OkxleGVyKToKKyAgICAgICAgKExleGVyOjpzZXRDb2RlKToKKyAgICAgICAgKExleGVyOjpz
aGlmdCk6CisgICAgICAgIChMZXhlcjo6c2NhblJlZ0V4cCk6CisgICAgICAgICoga2pzL2xleGVy
Lmg6CisgICAgICAgIFB1c2ggXHUgcGFyc2luZyBiYWNrIGRvd24gaW50byB0aGUgUmVnRXhwIG9i
amVjdCByYXRoZXIgdGhhbiBpbiB0aGUKKyAgICAgICAgcGFyc2VyLiBUaGlzIGJhY2tzIG91dCBy
MTczNTQgaW4gZmF2b3Igb2YgYSBuZXcgZml4IHRoYXQgYmV0dGVyIAorICAgICAgICBtYXRjaGVz
IHRoZSBiZWhhdmlvciBvZiBvdGhlciBicm93c2Vycy4KKworICAgICAgICAqIGtqcy9yZWdleHAu
Y3BwOgorICAgICAgICAoS0pTOjpSZWdFeHA6OlJlZ0V4cCk6CisgICAgICAgIChLSlM6OlJlZ0V4
cDo6X3Nhbml0aXplUGF0dGVybik6CisgICAgICAgIChLSlM6OlJlZ0V4cDo6X2lzSGV4RGlnaXQp
OgorICAgICAgICAoS0pTOjpSZWdFeHA6Ol9jb252ZXJ0SGV4KToKKyAgICAgICAgKEtKUzo6UmVn
RXhwOjpfY29udmVydFVuaWNvZGUpOgorICAgICAgICAqIGtqcy9yZWdleHAuaDoKKyAgICAgICAg
VHJhbnNsYXRlIFx1IGVzY2FwZWQgdW5pY29kZSBjaGFyYWN0ZXJzIGZvciB0aGUgYmVuZWZpdCBv
ZiBwY3JlLgorICAgICAgICAKKyAgICAgICAgKiBranMvdXN0cmluZy5jcHA6CisgICAgICAgIChL
SlM6OlVTdHJpbmc6OmFwcGVuZCk6CisgICAgICAgIEZpeCBmYWlsdXJlIHRvIGluY3JlbWVudCBs
ZW5ndGggb24gdGhlIGZpcnN0IFVDaGFyIGFwcGVuZGVkIHRvIGEgCisgICAgICAgIFVTdHJpbmcg
dGhhdCB3YXMgY29weS1vbi13cml0ZS4KKyAgICAgICAgCisgICAgICAgICogdGVzdHMvbW96aWxs
YS9lY21hXzIvUmVnRXhwL3Byb3BlcnRpZXMtMDAxLmpzOgorICAgICAgICBBZGp1c3QgdGVzdHMg
YmFjayB0byB0aGUgdW5pZm9ybSBzdGFuZGFyZHMuCisKIDIwMDYtMTEtMDMgIFN0ZXZlIEZhbGtl
bmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
a2pzL2xleGVyLmNwcAkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbGV4
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBACiAjaWZuZGVmIEtKU19QVVJF
X0VDTUEKICAgICBib2wodHJ1ZSksCiAjZW5kaWYKLSAgICBjdXJyZW50KDApLCBuZXh0MSgwKSwg
bmV4dDIoMCksIG5leHQzKDApLCBuZXh0NCgwKSwKKyAgICBjdXJyZW50KDApLCBuZXh0MSgwKSwg
bmV4dDIoMCksIG5leHQzKDApLAogICAgIHN0cmluZ3MoMCksIG51bVN0cmluZ3MoMCksIHN0cmlu
Z3NDYXBhY2l0eSgwKSwKICAgICBpZGVudGlmaWVycygwKSwgbnVtSWRlbnRpZmllcnMoMCksIGlk
ZW50aWZpZXJzQ2FwYWNpdHkoMCkKIHsKQEAgLTExOSw3ICsxMTksNiBAQAogICBuZXh0MSA9IChs
ZW5ndGggPiAxKSA/IGNvZGVbMV0udWMgOiAtMTsKICAgbmV4dDIgPSAobGVuZ3RoID4gMikgPyBj
b2RlWzJdLnVjIDogLTE7CiAgIG5leHQzID0gKGxlbmd0aCA+IDMpID8gY29kZVszXS51YyA6IC0x
OwotICBuZXh0NCA9IChsZW5ndGggPiA0KSA/IGNvZGVbNF0udWMgOiAtMTsKIH0KIAogdm9pZCBM
ZXhlcjo6c2hpZnQodW5zaWduZWQgaW50IHApCkBAIC0xMzEsOCArMTMwLDcgQEAKICAgICBjdXJy
ZW50ID0gbmV4dDE7CiAgICAgbmV4dDEgPSBuZXh0MjsKICAgICBuZXh0MiA9IG5leHQzOwotICAg
IG5leHQzID0gbmV4dDQ7Ci0gICAgbmV4dDQgPSAocG9zICsgNCA8IGxlbmd0aCkgPyBjb2RlW3Bv
cys0XS51YyA6IC0xOworICAgIG5leHQzID0gKHBvcyArIDMgPCBsZW5ndGgpID8gY29kZVtwb3Mr
M10udWMgOiAtMTsKICAgfQogfQogCkBAIC04MzYsMjkgKzgzNCwxNCBAQAogICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGVsc2UgaWYgKGN1cnJlbnQgIT0gJy8nIHx8IGxhc3RXYXNFc2NhcGUgPT0g
dHJ1ZSB8fCBpbkJyYWNrZXRzID09IHRydWUpCiAgICAgewotICAgICAgICBpZiAobGFzdFdhc0Vz
Y2FwZSkgewotICAgICAgICAgIC8vIGRlYWwgd2l0aCB1bmljb2RlIGVzY2FwZXMgaW4gaW5saW5l
IHJlZ2V4cHMKLSAgICAgICAgICBpZiAoY3VycmVudCA9PSAndScpIHsKLSAgICAgICAgICAgIGlm
IChpc0hleERpZ2l0KG5leHQxKSAmJiBpc0hleERpZ2l0KG5leHQyKSAmJiAKLSAgICAgICAgICAg
ICAgICBpc0hleERpZ2l0KG5leHQzKSAmJiBpc0hleERpZ2l0KG5leHQ0KSkgewotICAgICAgICAg
ICAgICByZWNvcmQxNihjb252ZXJ0VW5pY29kZShuZXh0MSwgbmV4dDIsIG5leHQzLCBuZXh0NCkp
OwotICAgICAgICAgICAgICBzaGlmdCg1KTsKLSAgICAgICAgICAgICAgbGFzdFdhc0VzY2FwZSA9
IGZhbHNlOwotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0gZWxzZSAKLSAg
ICAgICAgICAgICAgLy8gdGhpcyB3YXNuJ3QgdW5pY29kZSBhZnRlciBhbGwKLSAgICAgICAgICAg
ICAgcmVjb3JkMTYoJ1xcJyk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIC8vIGtlZXAgdHJhY2sgb2YgJ1snIGFuZCAnXScKKyAgICAgICAgLy8ga2VlcCB0cmFjayBv
ZiAnWycgYW5kICddJworICAgICAgICBpZiAoICFsYXN0V2FzRXNjYXBlICkgewogICAgICAgICAg
IGlmICggY3VycmVudCA9PSAnWycgJiYgIWluQnJhY2tldHMgKQogICAgICAgICAgICAgaW5CcmFj
a2V0cyA9IHRydWU7CiAgICAgICAgICAgaWYgKCBjdXJyZW50ID09ICddJyAmJiBpbkJyYWNrZXRz
ICkKICAgICAgICAgICAgIGluQnJhY2tldHMgPSBmYWxzZTsKICAgICAgICAgfQotICAgICAgICAv
LyBkb24ndCB3YW50IHRvIGNhcHR1cmUgdGhlICdcJyBmb3IgdW5pY29kZSBlc2NhcGVzCi0gICAg
ICAgIGlmIChjdXJyZW50ICE9ICdcXCcgfHwgbmV4dDEgIT0gJ3UnKQotICAgICAgICAgIHJlY29y
ZDE2KGN1cnJlbnQpOworICAgICAgICByZWNvcmQxNihjdXJyZW50KTsKICAgICAgICAgbGFzdFdh
c0VzY2FwZSA9CiAgICAgICAgICAgICAhbGFzdFdhc0VzY2FwZSAmJiAoY3VycmVudCA9PSAnXFwn
KTsKICAgICB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkocmV2aXNpb24gMTc2MDUpCisrKyBK
YXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTAgKzQ0
LDkgQEAKIAogICBjb25zdCBjaGFyICplcnJvck1lc3NhZ2U7CiAgIGludCBlcnJvck9mZnNldDsK
LSAgVVN0cmluZyBudWxsVGVybWluYXRlZChwKTsKLSAgY2hhciBudWxsKDApOwotICBudWxsVGVy
bWluYXRlZC5hcHBlbmQobnVsbCk7Ci0gIF9yZWdleCA9IHBjcmVfY29tcGlsZShyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQxNl90ICo+KG51bGxUZXJtaW5hdGVkLmRhdGEoKSksIG9wdGlvbnMs
ICZlcnJvck1lc3NhZ2UsICZlcnJvck9mZnNldCwgTlVMTCk7CisgIFVTdHJpbmcgY2xlYW5lZFBh
dHRlcm4gPSBfc2FuaXRpemVQYXR0ZXJuKHApOworICAKKyAgX3JlZ2V4ID0gcGNyZV9jb21waWxl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QgKj4oY2xlYW5lZFBhdHRlcm4uZGF0YSgp
KSwgb3B0aW9ucywgJmVycm9yTWVzc2FnZSwgJmVycm9yT2Zmc2V0LCBOVUxMKTsKICAgaWYgKCFf
cmVnZXgpCiAgICAgcmV0dXJuOwogCkBAIC0xNzMsNCArMTcyLDc1IEBACiAjZW5kaWYKIH0KIAor
VVN0cmluZyBSZWdFeHA6Ol9zYW5pdGl6ZVBhdHRlcm4oY29uc3QgVVN0cmluZyAmcCkKK3sKKyAg
Y2hhciBudWxsKDApOworICBVU3RyaW5nIG5ld1BhdHRlcm47CisgIAorICBpbnQgcG9zID0gcC5m
aW5kKCJcXHUiLCAwKTsKKyAgaW50IGxhc3RGaW5kID0gMDsKKyAgCisgIHdoaWxlIChwb3MgPj0g
MCkgeworICAgIGlmIChwb3MrNSA8IHAuc2l6ZSgpICYmIF9pc0hleERpZ2l0KHBbcG9zKzJdKSAm
JiBfaXNIZXhEaWdpdChwW3BvcyszXSkgJiYgX2lzSGV4RGlnaXQocFtwb3MrNF0pICYmIF9pc0hl
eERpZ2l0KHBbcG9zKzVdKSkgeworICAgICAgbmV3UGF0dGVybi5hcHBlbmQocC5zdWJzdHIobGFz
dEZpbmQsIHBvcy1sYXN0RmluZCkpOworICAgICAgVUNoYXIgZXNjYXBlZFVuaWNvZGUoX2NvbnZl
cnRVbmljb2RlKHBbcG9zKzJdLCBwW3BvcyszXSwgcFtwb3MrNF0sIHBbcG9zKzVdKSk7CisgICAg
ICAvLyBBZGQgYW4gZXNjYXBlIGZvciBtYWdpYyB1bmljb2RlIGNoYXJhY3RlcnMgdGhhdCBuZWVk
IGl0LgorICAgICAgc3dpdGNoIChlc2NhcGVkVW5pY29kZS51bmljb2RlKCkpIHsKKyAgICAgICAg
Y2FzZSAnfCc6CisgICAgICAgIGNhc2UgJysnOgorICAgICAgICBjYXNlICcqJzoKKyAgICAgICAg
Y2FzZSAnKCc6CisgICAgICAgIGNhc2UgJyknOgorICAgICAgICBjYXNlICdbJzoKKyAgICAgICAg
Y2FzZSAnXSc6CisgICAgICAgIGNhc2UgJ3snOgorICAgICAgICBjYXNlICd9JzoKKyAgICAgICAg
Y2FzZSAnPyc6CisgICAgICAgIGNhc2UgJ1xcJzoKKyAgICAgICAgICBuZXdQYXR0ZXJuLmFwcGVu
ZCgnXFwnKTsKKyAgICAgIH0KKyAgICAgIG5ld1BhdHRlcm4uYXBwZW5kKGVzY2FwZWRVbmljb2Rl
KTsKKworICAgICAgbGFzdEZpbmQgPSBwb3MrNjsKKyAgICB9CisgICAgcG9zID0gcC5maW5kKCJc
XHUiLCBwb3MrMik7CisgIH0KKyAgbmV3UGF0dGVybi5hcHBlbmQocC5zdWJzdHIobGFzdEZpbmQs
IHAuc2l6ZSgpLWxhc3RGaW5kKSk7CisgIG5ld1BhdHRlcm4uYXBwZW5kKG51bGwpOworCisgIHJl
dHVybiBuZXdQYXR0ZXJuOworfQorCitib29sIFJlZ0V4cDo6X2lzSGV4RGlnaXQoVUNoYXIgdWMp
Cit7CisgIGludCBjID0gdWMudW5pY29kZSgpOworICByZXR1cm4gKGMgPj0gJzAnICYmIGMgPD0g
JzknIHx8CisgICAgICAgICAgYyA+PSAnYScgJiYgYyA8PSAnZicgfHwKKyAgICAgICAgICBjID49
ICdBJyAmJiBjIDw9ICdGJyk7Cit9CisKK3Vuc2lnbmVkIGNoYXIgUmVnRXhwOjpfY29udmVydEhl
eChpbnQgYykKK3sKKyAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjIC0gJzAnKTsKKyAgaWYgKGMgPj0gJ2EnICYmIGMgPD0g
J2YnKQorICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjIC0gJ2EnICsgMTAp
OworICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYyAtICdBJyArIDEwKTsKK30K
KwordW5zaWduZWQgY2hhciBSZWdFeHA6Ol9jb252ZXJ0SGV4KGludCBjMSwgaW50IGMyKQorewor
ICByZXR1cm4gKChfY29udmVydEhleChjMSkgPDwgNCkgKyBfY29udmVydEhleChjMikpOworfQor
CitVQ2hhciBSZWdFeHA6Ol9jb252ZXJ0VW5pY29kZShVQ2hhciB1YzEsIFVDaGFyIHVjMiwgVUNo
YXIgdWMzLCBVQ2hhciB1YzQpCit7CisgIGludCBjMSA9IHVjMS51bmljb2RlKCk7CisgIGludCBj
MiA9IHVjMi51bmljb2RlKCk7CisgIGludCBjMyA9IHVjMy51bmljb2RlKCk7CisgIGludCBjNCA9
IHVjNC51bmljb2RlKCk7CisgIHJldHVybiBVQ2hhcigoX2NvbnZlcnRIZXgoYzEpIDw8IDQpICsg
X2NvbnZlcnRIZXgoYzIpLAorICAgICAgICAgICAgICAgKF9jb252ZXJ0SGV4KGMzKSA8PCA0KSAr
IF9jb252ZXJ0SGV4KGM0KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEtKUwpJbmRleDogSmF2YVNj
cmlwdENvcmUva2pzL3JlZ2V4cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9y
ZWdleHAuaAkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDEzIEBACiAgICAgaW50IF9mbGFnczsKICAgICB1
bnNpZ25lZCBfbnVtU3ViUGF0dGVybnM7CiAKKyAgICBVU3RyaW5nIF9zYW5pdGl6ZVBhdHRlcm4o
Y29uc3QgVVN0cmluZyAmKTsKKworICAgIGJvb2wgX2lzSGV4RGlnaXQoVUNoYXIpOworICAgIHVu
c2lnbmVkIGNoYXIgX2NvbnZlcnRIZXgoaW50KTsKKyAgICB1bnNpZ25lZCBjaGFyIF9jb252ZXJ0
SGV4KGludCwgaW50KTsKKyAgICBVQ2hhciBfY29udmVydFVuaWNvZGUoVUNoYXIsIFVDaGFyLCBV
Q2hhciwgVUNoYXIpOyAgICAKKwogICAgIFJlZ0V4cChjb25zdCBSZWdFeHAgJik7CiAgICAgUmVn
RXhwICZvcGVyYXRvcj0oY29uc3QgUmVnRXhwICYpOwogICB9OwpJbmRleDogSmF2YVNjcmlwdENv
cmUva2pzL3VzdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy91c3Ry
aW5nLmNwcAkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvdXN0cmluZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc0OSw3ICs3NDksNyBAQAogICAgIFVDaGFyICpkID0gc3Rh
dGljX2Nhc3Q8VUNoYXIgKj4oZmFzdE1hbGxvYyhzaXplb2YoVUNoYXIpICogbmV3Q2FwYWNpdHkp
KTsKICAgICBtZW1jcHkoZCwgZGF0YSgpLCBsZW5ndGggKiBzaXplb2YoVUNoYXIpKTsKICAgICBk
W2xlbmd0aF0gPSBjOwotICAgIG1fcmVwID0gUmVwOjpjcmVhdGUoZCwgbGVuZ3RoKTsKKyAgICBt
X3JlcCA9IFJlcDo6Y3JlYXRlKGQsIGxlbmd0aCArIDEpOwogICAgIG1fcmVwLT5jYXBhY2l0eSA9
IG5ld0NhcGFjaXR5OwogICB9CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5oCShyZXZpc2lvbiAxNzYwNSkK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyAr
MTQ1LDcgQEAKICAgICBib29sIGVycm9yOwogCiAgICAgLy8gY3VycmVudCBhbmQgZm9sbG93aW5n
IHVuaWNvZGUgY2hhcmFjdGVycyAoaW50IHRvIGFsbG93IGZvciAtMSBmb3IgZW5kLW9mLWZpbGUg
bWFya2VyKQotICAgIGludCBjdXJyZW50LCBuZXh0MSwgbmV4dDIsIG5leHQzLCBuZXh0NDsKKyAg
ICBpbnQgY3VycmVudCwgbmV4dDEsIG5leHQyLCBuZXh0MzsKIAogICAgIFVTdHJpbmcgKipzdHJp
bmdzOwogICAgIHVuc2lnbmVkIGludCBudW1TdHJpbmdzOwpJbmRleDogSmF2YVNjcmlwdENvcmUv
dGVzdHMvbW96aWxsYS9lY21hXzIvUmVnRXhwL3Byb3BlcnRpZXMtMDAxLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvZWNtYV8yL1JlZ0V4cC9wcm9wZXJ0aWVz
LTAwMS5qcwkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0Q29yZS90ZXN0cy9tb3ppbGxh
L2VjbWFfMi9SZWdFeHAvcHJvcGVydGllcy0wMDEuanMJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcg
KzIyLDcgQEAKICAgICBBZGRSZWdFeHBDYXNlcyggL1thLXpBLVowLTldKi9nbSwgIlthLXpBLVow
LTldKiIsIHRydWUsIGZhbHNlLCB0cnVlLCAwICk7CiAgICAgQWRkUmVnRXhwQ2FzZXMoIC94fHl8
ei9naW0sICJ4fHl8eiIsIHRydWUsIHRydWUsIHRydWUsIDAgKTsKIAotICAgIEFkZFJlZ0V4cENh
c2VzKCAvXHUwMDUxL2ltLCAiXHUwMDUxIiwgZmFsc2UsIHRydWUsIHRydWUsIDAgKTsKKyAgICBB
ZGRSZWdFeHBDYXNlcyggL1x1MDA1MS9pbSwgIlxcdTAwNTEiLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwg
MCApOwogICAgIEFkZFJlZ0V4cENhc2VzKCAvXHg0NS9nbSwgIlxceDQ1IiwgdHJ1ZSwgZmFsc2Us
IHRydWUsIDAgKTsKICAgICBBZGRSZWdFeHBDYXNlcyggL1wwOTcvZ2ksICJcXDA5NyIsIHRydWUs
IHRydWUsIGZhbHNlLCAwICk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NjA4KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDYtMTEt
MDUgIFcuIEFuZHkgQ2FycmVsICA8d2FjQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQV9LSU5EX1ZPTFVOVEVFUl9USEFOS1MuCisKKyAgICAgICAgKiBmYXN0L2pzL2tkZS9SZWdF
eHAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxp
bmctZXhwZWN0ZWQudHh0OgorICAgICAgICBBZGp1c3QgdGhlc2UgdGVzdCByZXN1bHRzIHRvIHBh
c3NpbmcgYXMgYSByZXN1bHQgb2Ygb3RoZXIgaW5jbHVkZWQKKyAgICAgICAgY2hhbmdlcyBpbiB0
aGlzIHJldmlzaW9uLgorCiAyMDA2LTExLTA0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAbnlw
b3AuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxpbmctZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxNzYwNSkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLXVuaWNv
ZGUtaGFuZGxpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCwzOSArMTAsMzkg
QEAKIFBBU1MgaW5saW5lUmUuc291cmNlIGlzIGV2YWxJbmxpbmVSZS5zb3VyY2UKIFBBU1MgaW5s
aW5lUmUuc291cmNlIGlzIG5ld0Zyb21FdmFsSW5saW5lUmUuc291cmNlCiBQQVNTIGlubGluZVJl
LnNvdXJjZSBpcyBldmFsRnJvbUV2YWxJbmxpbmVSZS5zb3VyY2UKLUZBSUwgaW5saW5lUmUuc291
cmNlIHNob3VsZCBiZSAubVx1MjgyMHAgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIC5t4qCgcCAob2Yg
dHlwZSBzdHJpbmcpLgotRkFJTCBpbmxpbmVSZS5zb3VyY2Ugc2hvdWxkIGJlIC5tXHUyODIwcCAo
b2YgdHlwZSBzdHJpbmcpLiBXYXMgLm3ioKBwIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGlubGlu
ZVJlLnNvdXJjZSBpcyBleHBsaWNpdFJlLnNvdXJjZQorUEFTUyBpbmxpbmVSZS5zb3VyY2UgaXMg
bmV3RnJvbUV4cGxpY2l0UmUuc291cmNlCiBQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBldmFsRnJv
bUV4cGxpY2l0UmUuc291cmNlCiBQQVNTIGlubGluZVJlLnRvU3RyaW5nKCkgaXMgbmV3RnJvbUlu
bGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBldmFsRnJvbUlu
bGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBldmFsSW5saW5l
UmUudG9TdHJpbmcoKQogUEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlzIG5ld0Zyb21FdmFsSW5s
aW5lUmUudG9TdHJpbmcoKQogUEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlzIGV2YWxGcm9tRXZh
bElubGluZVJlLnRvU3RyaW5nKCkKLUZBSUwgaW5saW5lUmUudG9TdHJpbmcoKSBzaG91bGQgYmUg
Ly5tXHUyODIwcC8gKG9mIHR5cGUgc3RyaW5nKS4gV2FzIC8ubeKgoHAvIChvZiB0eXBlIHN0cmlu
ZykuCi1GQUlMIGlubGluZVJlLnRvU3RyaW5nKCkgc2hvdWxkIGJlIC8ubVx1MjgyMHAvIChvZiB0
eXBlIHN0cmluZykuIFdhcyAvLm3ioKBwLyAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBpbmxpbmVS
ZS50b1N0cmluZygpIGlzIGV4cGxpY2l0UmUudG9TdHJpbmcoKQorUEFTUyBpbmxpbmVSZS50b1N0
cmluZygpIGlzIG5ld0Zyb21FeHBsaWNpdFJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9T
dHJpbmcoKSBpcyBldmFsRnJvbUV4cGxpY2l0UmUudG9TdHJpbmcoKQogUEFTUyBpbmxpbmVSZS5l
eGVjKHNhbXBsZSlbMF0gaXMgJ2Jt4qCgcCcKIFBBU1MgZXZhbElubGluZVJlLmV4ZWMoc2FtcGxl
KVswXSBpcyAnYm3ioKBwJwotRkFJTCBleHBsaWNpdFJlLmV4ZWMoc2FtcGxlKVswXSBzaG91bGQg
YmUgYm3ioKBwLiBUaHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOdWxsIHZhbHVlCitQQVNTIGV4
cGxpY2l0UmUuZXhlYyhzYW1wbGUpWzBdIGlzICdibeKgoHAnCiBQQVNTIGJpbmxpbmVSZS5zb3Vy
Y2UgaXMgYm5ld0Zyb21JbmxpbmVSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBi
ZXZhbEZyb21JbmxpbmVSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBiZXZhbElu
bGluZVJlLnNvdXJjZQogUEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJuZXdGcm9tRXZhbElubGlu
ZVJlLnNvdXJjZQogUEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJldmFsRnJvbUV2YWxJbmxpbmVS
ZS5zb3VyY2UKLUZBSUwgYmlubGluZVJlLnNvdXJjZSBzaG91bGQgYmUgLm1cdTAwN2NwIChvZiB0
eXBlIHN0cmluZykuIFdhcyAubXxwIChvZiB0eXBlIHN0cmluZykuCi1GQUlMIGJpbmxpbmVSZS5z
b3VyY2Ugc2hvdWxkIGJlIC5tXHUwMDdjcCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgLm18cCAob2Yg
dHlwZSBzdHJpbmcpLgorUEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJleHBsaWNpdFJlLnNvdXJj
ZQorUEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJuZXdGcm9tRXhwbGljaXRSZS5zb3VyY2UKIFBB
U1MgYmlubGluZVJlLnNvdXJjZSBpcyBiZXZhbEZyb21FeHBsaWNpdFJlLnNvdXJjZQogUEFTUyBi
aW5saW5lUmUudG9TdHJpbmcoKSBpcyBibmV3RnJvbUlubGluZVJlLnRvU3RyaW5nKCkKIFBBU1Mg
YmlubGluZVJlLnRvU3RyaW5nKCkgaXMgYmV2YWxGcm9tSW5saW5lUmUudG9TdHJpbmcoKQogUEFT
UyBiaW5saW5lUmUudG9TdHJpbmcoKSBpcyBiZXZhbElubGluZVJlLnRvU3RyaW5nKCkKIFBBU1Mg
YmlubGluZVJlLnRvU3RyaW5nKCkgaXMgYm5ld0Zyb21FdmFsSW5saW5lUmUudG9TdHJpbmcoKQog
UEFTUyBiaW5saW5lUmUudG9TdHJpbmcoKSBpcyBiZXZhbEZyb21FdmFsSW5saW5lUmUudG9TdHJp
bmcoKQotRkFJTCBiaW5saW5lUmUudG9TdHJpbmcoKSBzaG91bGQgYmUgLy5tXHUwMDdjcC8gKG9m
IHR5cGUgc3RyaW5nKS4gV2FzIC8ubXxwLyAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBiaW5saW5l
UmUudG9TdHJpbmcoKSBzaG91bGQgYmUgLy5tXHUwMDdjcC8gKG9mIHR5cGUgc3RyaW5nKS4gV2Fz
IC8ubXxwLyAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBiaW5saW5lUmUudG9TdHJpbmcoKSBpcyBi
ZXhwbGljaXRSZS50b1N0cmluZygpCitQQVNTIGJpbmxpbmVSZS50b1N0cmluZygpIGlzIGJuZXdG
cm9tRXhwbGljaXRSZS50b1N0cmluZygpCiBQQVNTIGJpbmxpbmVSZS50b1N0cmluZygpIGlzIGJl
dmFsRnJvbUV4cGxpY2l0UmUudG9TdHJpbmcoKQotRkFJTCBiaW5saW5lUmUuZXhlYyhic2FtcGxl
KVswXSBzaG91bGQgYmUgYm18cCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgYW0gKG9mIHR5cGUgc3Ry
aW5nKS4KLUZBSUwgYmV2YWxJbmxpbmVSZS5leGVjKGJzYW1wbGUpWzBdIHNob3VsZCBiZSBibXxw
IChvZiB0eXBlIHN0cmluZykuIFdhcyBhbSAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBiZXhwbGlj
aXRSZS5leGVjKGJzYW1wbGUpWzBdIHNob3VsZCBiZSBibXxwLiBUaHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBOdWxsIHZhbHVlCitQQVNTIGJpbmxpbmVSZS5leGVjKGJzYW1wbGUpWzBdIGlzICdi
bXxwJworUEFTUyBiZXZhbElubGluZVJlLmV4ZWMoYnNhbXBsZSlbMF0gaXMgJ2JtfHAnCitQQVNT
IGJleHBsaWNpdFJlLmV4ZWMoYnNhbXBsZSlbMF0gaXMgJ2JtfHAnCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMva2RlL1JlZ0V4cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9rZGUvUmVnRXhwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTc2MDUpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL2tkZS9SZWdFeHAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04
OCw3ICs4OCw3IEBACiBQQVNTIHZhciByMiA9IHJlZzsgcjIueCA9IDI7IHJlZy54IGlzIDIKIFBB
U1Mgc3RyLm1hdGNoKHJlKS50b1N0cmluZygpIGlzICdDaGFwdGVyIDMuNC41LjEsQ2hhcHRlciAz
LjQuNS4xLC4xJwogUEFTUyBzdHIubWF0Y2goL2QvZ2kpLnRvU3RyaW5nKCkgaXMgJ0QsZCcKLUZB
SUwgL1x1MDA2MS8uc291cmNlIHNob3VsZCBiZSBcdTAwNjEgKG9mIHR5cGUgc3RyaW5nKS4gV2Fz
IGEgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgL1x1MDA2MS8uc291cmNlIGlzICdcXHUwMDYxJwog
UEFTUyAnYWJjJy5tYXRjaCgvXHUwMDYyLykudG9TdHJpbmcoKSBpcyAnYicKIEZBSUwgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShSZWdFeHAucHJvdG90eXBlKSBzaG91bGQgYmUgW29i
amVjdCBSZWdFeHBdIChvZiB0eXBlIHN0cmluZykuIFdhcyBbb2JqZWN0IFJlZ0V4cFByb3RvdHlw
ZV0gKG9mIHR5cGUgc3RyaW5nKS4KIFBBU1MgdHlwZW9mIFJlZ0V4cC5wcm90b3R5cGUudG9TdHJp
bmcoKSBpcyAnc3RyaW5nJwo=
</data>
<flag name="review"
          id="3983"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11409</attachid>
            <date>2006-11-06 18:45:49 -0800</date>
            <delta_ts>2006-11-10 16:12:56 -0800</delta_ts>
            <desc>Patch to fix 11501 et al.</desc>
            <filename>webkit-patch-bug11501-v2.diff</filename>
            <type>text/plain</type>
            <size>13487</size>
            <attacher name="W. Andy Carrel">wac</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NjA4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDYtMTEtMDUgIFcuIEFuZHkg
Q2FycmVsICA8d2FjQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQV9LSU5EX1ZP
TFVOVEVFUl9USEFOS1MuCisKKyAgICAgICAgKiBranMvbGV4ZXIuY3BwOgorICAgICAgICAoTGV4
ZXI6OkxleGVyKToKKyAgICAgICAgKExleGVyOjpzZXRDb2RlKToKKyAgICAgICAgKExleGVyOjpz
aGlmdCk6CisgICAgICAgIChMZXhlcjo6c2NhblJlZ0V4cCk6CisgICAgICAgICoga2pzL2xleGVy
Lmg6CisgICAgICAgIFB1c2ggXHUgcGFyc2luZyBiYWNrIGRvd24gaW50byB0aGUgUmVnRXhwIG9i
amVjdCByYXRoZXIgdGhhbiBpbiB0aGUKKyAgICAgICAgcGFyc2VyLiBUaGlzIGJhY2tzIG91dCBy
MTczNTQgaW4gZmF2b3Igb2YgYSBuZXcgZml4IHRoYXQgYmV0dGVyIAorICAgICAgICBtYXRjaGVz
IHRoZSBiZWhhdmlvciBvZiBvdGhlciBicm93c2Vycy4KKworICAgICAgICAqIGtqcy9yZWdleHAu
Y3BwOgorICAgICAgICAoS0pTOjpSZWdFeHA6OlJlZ0V4cCk6CisgICAgICAgIChLSlM6OlJlZ0V4
cDo6X3Nhbml0aXplUGF0dGVybik6CisgICAgICAgIChLSlM6OlJlZ0V4cDo6X2lzSGV4RGlnaXQp
OgorICAgICAgICAoS0pTOjpSZWdFeHA6Ol9jb252ZXJ0SGV4KToKKyAgICAgICAgKEtKUzo6UmVn
RXhwOjpfY29udmVydFVuaWNvZGUpOgorICAgICAgICAqIGtqcy9yZWdleHAuaDoKKyAgICAgICAg
VHJhbnNsYXRlIFx1IGVzY2FwZWQgdW5pY29kZSBjaGFyYWN0ZXJzIGZvciB0aGUgYmVuZWZpdCBv
ZiBwY3JlLgorICAgICAgICAKKyAgICAgICAgKiBranMvdXN0cmluZy5jcHA6CisgICAgICAgIChL
SlM6OlVTdHJpbmc6OmFwcGVuZCk6CisgICAgICAgIEZpeCBmYWlsdXJlIHRvIGluY3JlbWVudCBs
ZW5ndGggb24gdGhlIGZpcnN0IFVDaGFyIGFwcGVuZGVkIHRvIGEgCisgICAgICAgIFVTdHJpbmcg
dGhhdCB3YXMgY29weS1vbi13cml0ZS4KKyAgICAgICAgCisgICAgICAgICogdGVzdHMvbW96aWxs
YS9lY21hXzIvUmVnRXhwL3Byb3BlcnRpZXMtMDAxLmpzOgorICAgICAgICBBZGp1c3QgdGVzdHMg
YmFjayB0byB0aGUgdW5pZm9ybSBzdGFuZGFyZHMuCisKIDIwMDYtMTEtMDMgIFN0ZXZlIEZhbGtl
bmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
a2pzL2xleGVyLmNwcAkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbGV4
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBACiAjaWZuZGVmIEtKU19QVVJF
X0VDTUEKICAgICBib2wodHJ1ZSksCiAjZW5kaWYKLSAgICBjdXJyZW50KDApLCBuZXh0MSgwKSwg
bmV4dDIoMCksIG5leHQzKDApLCBuZXh0NCgwKSwKKyAgICBjdXJyZW50KDApLCBuZXh0MSgwKSwg
bmV4dDIoMCksIG5leHQzKDApLAogICAgIHN0cmluZ3MoMCksIG51bVN0cmluZ3MoMCksIHN0cmlu
Z3NDYXBhY2l0eSgwKSwKICAgICBpZGVudGlmaWVycygwKSwgbnVtSWRlbnRpZmllcnMoMCksIGlk
ZW50aWZpZXJzQ2FwYWNpdHkoMCkKIHsKQEAgLTExOSw3ICsxMTksNiBAQAogICBuZXh0MSA9IChs
ZW5ndGggPiAxKSA/IGNvZGVbMV0udWMgOiAtMTsKICAgbmV4dDIgPSAobGVuZ3RoID4gMikgPyBj
b2RlWzJdLnVjIDogLTE7CiAgIG5leHQzID0gKGxlbmd0aCA+IDMpID8gY29kZVszXS51YyA6IC0x
OwotICBuZXh0NCA9IChsZW5ndGggPiA0KSA/IGNvZGVbNF0udWMgOiAtMTsKIH0KIAogdm9pZCBM
ZXhlcjo6c2hpZnQodW5zaWduZWQgaW50IHApCkBAIC0xMzEsOCArMTMwLDcgQEAKICAgICBjdXJy
ZW50ID0gbmV4dDE7CiAgICAgbmV4dDEgPSBuZXh0MjsKICAgICBuZXh0MiA9IG5leHQzOwotICAg
IG5leHQzID0gbmV4dDQ7Ci0gICAgbmV4dDQgPSAocG9zICsgNCA8IGxlbmd0aCkgPyBjb2RlW3Bv
cys0XS51YyA6IC0xOworICAgIG5leHQzID0gKHBvcyArIDMgPCBsZW5ndGgpID8gY29kZVtwb3Mr
M10udWMgOiAtMTsKICAgfQogfQogCkBAIC04MzYsMjkgKzgzNCwxNCBAQAogICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGVsc2UgaWYgKGN1cnJlbnQgIT0gJy8nIHx8IGxhc3RXYXNFc2NhcGUgPT0g
dHJ1ZSB8fCBpbkJyYWNrZXRzID09IHRydWUpCiAgICAgewotICAgICAgICBpZiAobGFzdFdhc0Vz
Y2FwZSkgewotICAgICAgICAgIC8vIGRlYWwgd2l0aCB1bmljb2RlIGVzY2FwZXMgaW4gaW5saW5l
IHJlZ2V4cHMKLSAgICAgICAgICBpZiAoY3VycmVudCA9PSAndScpIHsKLSAgICAgICAgICAgIGlm
IChpc0hleERpZ2l0KG5leHQxKSAmJiBpc0hleERpZ2l0KG5leHQyKSAmJiAKLSAgICAgICAgICAg
ICAgICBpc0hleERpZ2l0KG5leHQzKSAmJiBpc0hleERpZ2l0KG5leHQ0KSkgewotICAgICAgICAg
ICAgICByZWNvcmQxNihjb252ZXJ0VW5pY29kZShuZXh0MSwgbmV4dDIsIG5leHQzLCBuZXh0NCkp
OwotICAgICAgICAgICAgICBzaGlmdCg1KTsKLSAgICAgICAgICAgICAgbGFzdFdhc0VzY2FwZSA9
IGZhbHNlOwotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0gZWxzZSAKLSAg
ICAgICAgICAgICAgLy8gdGhpcyB3YXNuJ3QgdW5pY29kZSBhZnRlciBhbGwKLSAgICAgICAgICAg
ICAgcmVjb3JkMTYoJ1xcJyk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgIC8vIGtlZXAgdHJhY2sgb2YgJ1snIGFuZCAnXScKKyAgICAgICAgLy8ga2VlcCB0cmFjayBv
ZiAnWycgYW5kICddJworICAgICAgICBpZiAoICFsYXN0V2FzRXNjYXBlICkgewogICAgICAgICAg
IGlmICggY3VycmVudCA9PSAnWycgJiYgIWluQnJhY2tldHMgKQogICAgICAgICAgICAgaW5CcmFj
a2V0cyA9IHRydWU7CiAgICAgICAgICAgaWYgKCBjdXJyZW50ID09ICddJyAmJiBpbkJyYWNrZXRz
ICkKICAgICAgICAgICAgIGluQnJhY2tldHMgPSBmYWxzZTsKICAgICAgICAgfQotICAgICAgICAv
LyBkb24ndCB3YW50IHRvIGNhcHR1cmUgdGhlICdcJyBmb3IgdW5pY29kZSBlc2NhcGVzCi0gICAg
ICAgIGlmIChjdXJyZW50ICE9ICdcXCcgfHwgbmV4dDEgIT0gJ3UnKQotICAgICAgICAgIHJlY29y
ZDE2KGN1cnJlbnQpOworICAgICAgICByZWNvcmQxNihjdXJyZW50KTsKICAgICAgICAgbGFzdFdh
c0VzY2FwZSA9CiAgICAgICAgICAgICAhbGFzdFdhc0VzY2FwZSAmJiAoY3VycmVudCA9PSAnXFwn
KTsKICAgICB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkocmV2aXNpb24gMTc2MDUpCisrKyBK
YXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTIgKzQ0
LDE4IEBACiAKICAgY29uc3QgY2hhciAqZXJyb3JNZXNzYWdlOwogICBpbnQgZXJyb3JPZmZzZXQ7
Ci0gIFVTdHJpbmcgbnVsbFRlcm1pbmF0ZWQocCk7Ci0gIGNoYXIgbnVsbCgwKTsKLSAgbnVsbFRl
cm1pbmF0ZWQuYXBwZW5kKG51bGwpOwotICBfcmVnZXggPSBwY3JlX2NvbXBpbGUocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1aW50MTZfdCAqPihudWxsVGVybWluYXRlZC5kYXRhKCkpLCBvcHRpb25z
LCAmZXJyb3JNZXNzYWdlLCAmZXJyb3JPZmZzZXQsIE5VTEwpOwotICBpZiAoIV9yZWdleCkKLSAg
ICByZXR1cm47CisgIAorICBVU3RyaW5nIHBhdHRlcm4ocCk7CisgIAorICBwYXR0ZXJuLmFwcGVu
ZCgnXDAnKTsKKyAgX3JlZ2V4ID0gcGNyZV9jb21waWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDE2X3QgKj4ocGF0dGVybi5kYXRhKCkpLCBvcHRpb25zLCAmZXJyb3JNZXNzYWdlLCAmZXJy
b3JPZmZzZXQsIE5VTEwpOworICBpZiAoIV9yZWdleCkgeworICAgIC8vIFRyeSBhZ2FpbiwgdGhp
cyB0aW1lIGhhbmRsZSBhbnkgXHUgd2UgbWlnaHQgZmluZC4KKyAgICBVU3RyaW5nIGNsZWFuZWRQ
YXR0ZXJuID0gc2FuaXRpemVQYXR0ZXJuKHBhdHRlcm4pOworICAgIF9yZWdleCA9IHBjcmVfY29t
cGlsZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQxNl90ICo+KGNsZWFuZWRQYXR0ZXJuLmRh
dGEoKSksIG9wdGlvbnMsICZlcnJvck1lc3NhZ2UsICZlcnJvck9mZnNldCwgTlVMTCk7CisgICAg
aWYgKCFfcmVnZXgpIAorICAgICAgcmV0dXJuOworICB9CiAKICNpZmRlZiBQQ1JFX0lORk9fQ0FQ
VFVSRUNPVU5UCiAgIC8vIEdldCBudW1iZXIgb2Ygc3VicGF0dGVybnMgdGhhdCB3aWxsIGJlIHJl
dHVybmVkLgpAQCAtMTczLDQgKzE3OSw3NyBAQAogI2VuZGlmCiB9CiAKK1VTdHJpbmcgc2FuaXRp
emVQYXR0ZXJuKGNvbnN0IFVTdHJpbmcmIHApCit7CisgIFVTdHJpbmcgbmV3UGF0dGVybjsKKyAg
CisgIGludCBzdGFydFBvcyA9IDA7CisgIGludCBwb3MgPSBwLmZpbmQoIlxcdSIsIDApICsgMjsK
KyAgCisgIHdoaWxlIChwb3MgIT0gLTEgKyAyKSB7CisgICAgaWYgKHBvcyArIDMgPCBwLnNpemUo
KSkgeworICAgICAgaWYgKGlzSGV4RGlnaXQocFtwb3NdKSAmJiBpc0hleERpZ2l0KHBbcG9zICsg
MV0pICYmCisgICAgICAgICAgaXNIZXhEaWdpdChwW3BvcyArIDJdKSAmJiBpc0hleERpZ2l0KHBb
cG9zICsgM10pKSB7CisgICAgICAgIG5ld1BhdHRlcm4uYXBwZW5kKHAuc3Vic3RyKHN0YXJ0UG9z
LCBwb3MgLSBzdGFydFBvcyAtIDIpKTsKKyAgICAgICAgVUNoYXIgZXNjYXBlZFVuaWNvZGUoY29u
dmVydFVuaWNvZGUocFtwb3NdLCBwW3BvcyArIDFdLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcFtwb3MgKyAyXSwgcFtwb3MgKyAzXSkpOworICAgICAgICAv
LyBBZGQgYW4gZXNjYXBlIGZvciBtYWdpYyB1bmljb2RlIGNoYXJhY3RlcnMgdGhhdCBuZWVkIGl0
LgorICAgICAgICBzd2l0Y2ggKGVzY2FwZWRVbmljb2RlLnVuaWNvZGUoKSkgeworICAgICAgICAg
IGNhc2UgJ3wnOgorICAgICAgICAgIGNhc2UgJysnOgorICAgICAgICAgIGNhc2UgJyonOgorICAg
ICAgICAgIGNhc2UgJygnOgorICAgICAgICAgIGNhc2UgJyknOgorICAgICAgICAgIGNhc2UgJ1sn
OgorICAgICAgICAgIGNhc2UgJ10nOgorICAgICAgICAgIGNhc2UgJ3snOgorICAgICAgICAgIGNh
c2UgJ30nOgorICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgIGNhc2UgJ1xcJzoKKyAgICAg
ICAgICAgIG5ld1BhdHRlcm4uYXBwZW5kKCdcXCcpOworICAgICAgICB9CisgICAgICAgIG5ld1Bh
dHRlcm4uYXBwZW5kKGVzY2FwZWRVbmljb2RlKTsKKworICAgICAgICBzdGFydFBvcyA9IHBvcyAr
IDQ7CisgICAgICB9CisgICAgfQorICAgIHBvcyA9IHAuZmluZCgiXFx1IiwgcG9zKSArIDI7Cisg
IH0KKyAgbmV3UGF0dGVybi5hcHBlbmQocC5zdWJzdHIoc3RhcnRQb3MsIHAuc2l6ZSgpIC0gc3Rh
cnRQb3MpKTsKKworICByZXR1cm4gbmV3UGF0dGVybjsKK30KKworYm9vbCBpc0hleERpZ2l0KFVD
aGFyIHVjKQoreworICBpbnQgYyA9IHVjLnVuaWNvZGUoKTsKKyAgcmV0dXJuIChjID49ICcwJyAm
JiBjIDw9ICc5JyB8fAorICAgICAgICAgIGMgPj0gJ2EnICYmIGMgPD0gJ2YnIHx8CisgICAgICAg
ICAgYyA+PSAnQScgJiYgYyA8PSAnRicpOworfQorCit1bnNpZ25lZCBjaGFyIGNvbnZlcnRIZXgo
aW50IGMpCit7CisgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhcj4oYyAtICcwJyk7CisgIGlmIChjID49ICdhJyAmJiBjIDw9ICdm
JykKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYyAtICdhJyArIDEwKTsK
KyAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGMgLSAnQScgKyAxMCk7Cit9CisK
K3Vuc2lnbmVkIGNoYXIgY29udmVydEhleChpbnQgYzEsIGludCBjMikKK3sKKyAgcmV0dXJuICgo
Y29udmVydEhleChjMSkgPDwgNCkgKyBjb252ZXJ0SGV4KGMyKSk7Cit9CisKK1VDaGFyIGNvbnZl
cnRVbmljb2RlKFVDaGFyIHVjMSwgVUNoYXIgdWMyLCBVQ2hhciB1YzMsIFVDaGFyIHVjNCkKK3sK
KyAgaW50IGMxID0gdWMxLnVuaWNvZGUoKTsKKyAgaW50IGMyID0gdWMyLnVuaWNvZGUoKTsKKyAg
aW50IGMzID0gdWMzLnVuaWNvZGUoKTsKKyAgaW50IGM0ID0gdWM0LnVuaWNvZGUoKTsKKyAgcmV0
dXJuIFVDaGFyKChjb252ZXJ0SGV4KGMxKSA8PCA0KSArIGNvbnZlcnRIZXgoYzIpLAorICAgICAg
ICAgICAgICAgKGNvbnZlcnRIZXgoYzMpIDw8IDQpICsgY29udmVydEhleChjNCkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBLSlMKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmgJKHJldmlzaW9uIDE3NjA1KQor
KysgSmF2YVNjcmlwdENvcmUva2pzL3JlZ2V4cC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2
MywxMyBAQAogICAgIFJlZ0V4cCAmb3BlcmF0b3I9KGNvbnN0IFJlZ0V4cCAmKTsKICAgfTsKIAor
ICBVU3RyaW5nIHNhbml0aXplUGF0dGVybihjb25zdCBVU3RyaW5nICYpOworCisgIGJvb2wgaXNI
ZXhEaWdpdChVQ2hhcik7CisgIHVuc2lnbmVkIGNoYXIgY29udmVydEhleChpbnQpOworICB1bnNp
Z25lZCBjaGFyIGNvbnZlcnRIZXgoaW50LCBpbnQpOworICBVQ2hhciBjb252ZXJ0VW5pY29kZShV
Q2hhciwgVUNoYXIsIFVDaGFyLCBVQ2hhcik7CisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpJ
bmRleDogSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2tqcy91c3RyaW5nLmNwcAkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0
Q29yZS9ranMvdXN0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0OSw3ICs3NDksNyBAQAog
ICAgIFVDaGFyICpkID0gc3RhdGljX2Nhc3Q8VUNoYXIgKj4oZmFzdE1hbGxvYyhzaXplb2YoVUNo
YXIpICogbmV3Q2FwYWNpdHkpKTsKICAgICBtZW1jcHkoZCwgZGF0YSgpLCBsZW5ndGggKiBzaXpl
b2YoVUNoYXIpKTsKICAgICBkW2xlbmd0aF0gPSBjOwotICAgIG1fcmVwID0gUmVwOjpjcmVhdGUo
ZCwgbGVuZ3RoKTsKKyAgICBtX3JlcCA9IFJlcDo6Y3JlYXRlKGQsIGxlbmd0aCArIDEpOwogICAg
IG1fcmVwLT5jYXBhY2l0eSA9IG5ld0NhcGFjaXR5OwogICB9CiAKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2tqcy9sZXhlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5o
CShyZXZpc2lvbiAxNzYwNSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDUsNyArMTQ1LDcgQEAKICAgICBib29sIGVycm9yOwogCiAgICAgLy8gY3Vy
cmVudCBhbmQgZm9sbG93aW5nIHVuaWNvZGUgY2hhcmFjdGVycyAoaW50IHRvIGFsbG93IGZvciAt
MSBmb3IgZW5kLW9mLWZpbGUgbWFya2VyKQotICAgIGludCBjdXJyZW50LCBuZXh0MSwgbmV4dDIs
IG5leHQzLCBuZXh0NDsKKyAgICBpbnQgY3VycmVudCwgbmV4dDEsIG5leHQyLCBuZXh0MzsKIAog
ICAgIFVTdHJpbmcgKipzdHJpbmdzOwogICAgIHVuc2lnbmVkIGludCBudW1TdHJpbmdzOwpJbmRl
eDogSmF2YVNjcmlwdENvcmUvdGVzdHMvbW96aWxsYS9lY21hXzIvUmVnRXhwL3Byb3BlcnRpZXMt
MDAxLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvZWNtYV8y
L1JlZ0V4cC9wcm9wZXJ0aWVzLTAwMS5qcwkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0
Q29yZS90ZXN0cy9tb3ppbGxhL2VjbWFfMi9SZWdFeHAvcHJvcGVydGllcy0wMDEuanMJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICBBZGRSZWdFeHBDYXNlcyggL1thLXpBLVow
LTldKi9nbSwgIlthLXpBLVowLTldKiIsIHRydWUsIGZhbHNlLCB0cnVlLCAwICk7CiAgICAgQWRk
UmVnRXhwQ2FzZXMoIC94fHl8ei9naW0sICJ4fHl8eiIsIHRydWUsIHRydWUsIHRydWUsIDAgKTsK
IAotICAgIEFkZFJlZ0V4cENhc2VzKCAvXHUwMDUxL2ltLCAiXHUwMDUxIiwgZmFsc2UsIHRydWUs
IHRydWUsIDAgKTsKKyAgICBBZGRSZWdFeHBDYXNlcyggL1x1MDA1MS9pbSwgIlxcdTAwNTEiLCBm
YWxzZSwgdHJ1ZSwgdHJ1ZSwgMCApOwogICAgIEFkZFJlZ0V4cENhc2VzKCAvXHg0NS9nbSwgIlxc
eDQ1IiwgdHJ1ZSwgZmFsc2UsIHRydWUsIDAgKTsKICAgICBBZGRSZWdFeHBDYXNlcyggL1wwOTcv
Z2ksICJcXDA5NyIsIHRydWUsIHRydWUsIGZhbHNlLCAwICk7CiAKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE3NjA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMDYtMTEtMDUgIFcuIEFuZHkgQ2FycmVsICA8d2FjQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQV9LSU5EX1ZPTFVOVEVFUl9USEFOS1MuCisKKyAgICAgICAg
KiBmYXN0L2pzL2tkZS9SZWdFeHAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMvcmVn
ZXhwLXVuaWNvZGUtaGFuZGxpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICBBZGp1c3QgdGhlc2Ug
dGVzdCByZXN1bHRzIHRvIHBhc3NpbmcgYXMgYSByZXN1bHQgb2Ygb3RoZXIgaW5jbHVkZWQKKyAg
ICAgICAgY2hhbmdlcyBpbiB0aGlzIHJldmlzaW9uLgorCiAyMDA2LTExLTA0ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAbnlwb3AuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxpbmctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLXVuaWNvZGUt
aGFuZGxpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzYwNSkKKysrIExheW91dFRlc3RzL2Zh
c3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xMCwzOSArMTAsMzkgQEAKIFBBU1MgaW5saW5lUmUuc291cmNlIGlzIGV2YWxJbmxpbmVS
ZS5zb3VyY2UKIFBBU1MgaW5saW5lUmUuc291cmNlIGlzIG5ld0Zyb21FdmFsSW5saW5lUmUuc291
cmNlCiBQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBldmFsRnJvbUV2YWxJbmxpbmVSZS5zb3VyY2UK
LUZBSUwgaW5saW5lUmUuc291cmNlIHNob3VsZCBiZSAubVx1MjgyMHAgKG9mIHR5cGUgc3RyaW5n
KS4gV2FzIC5t4qCgcCAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBpbmxpbmVSZS5zb3VyY2Ugc2hv
dWxkIGJlIC5tXHUyODIwcCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgLm3ioKBwIChvZiB0eXBlIHN0
cmluZykuCitQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBleHBsaWNpdFJlLnNvdXJjZQorUEFTUyBp
bmxpbmVSZS5zb3VyY2UgaXMgbmV3RnJvbUV4cGxpY2l0UmUuc291cmNlCiBQQVNTIGlubGluZVJl
LnNvdXJjZSBpcyBldmFsRnJvbUV4cGxpY2l0UmUuc291cmNlCiBQQVNTIGlubGluZVJlLnRvU3Ry
aW5nKCkgaXMgbmV3RnJvbUlubGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9TdHJp
bmcoKSBpcyBldmFsRnJvbUlubGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9TdHJp
bmcoKSBpcyBldmFsSW5saW5lUmUudG9TdHJpbmcoKQogUEFTUyBpbmxpbmVSZS50b1N0cmluZygp
IGlzIG5ld0Zyb21FdmFsSW5saW5lUmUudG9TdHJpbmcoKQogUEFTUyBpbmxpbmVSZS50b1N0cmlu
ZygpIGlzIGV2YWxGcm9tRXZhbElubGluZVJlLnRvU3RyaW5nKCkKLUZBSUwgaW5saW5lUmUudG9T
dHJpbmcoKSBzaG91bGQgYmUgLy5tXHUyODIwcC8gKG9mIHR5cGUgc3RyaW5nKS4gV2FzIC8ubeKg
oHAvIChvZiB0eXBlIHN0cmluZykuCi1GQUlMIGlubGluZVJlLnRvU3RyaW5nKCkgc2hvdWxkIGJl
IC8ubVx1MjgyMHAvIChvZiB0eXBlIHN0cmluZykuIFdhcyAvLm3ioKBwLyAob2YgdHlwZSBzdHJp
bmcpLgorUEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlzIGV4cGxpY2l0UmUudG9TdHJpbmcoKQor
UEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlzIG5ld0Zyb21FeHBsaWNpdFJlLnRvU3RyaW5nKCkK
IFBBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBldmFsRnJvbUV4cGxpY2l0UmUudG9TdHJpbmco
KQogUEFTUyBpbmxpbmVSZS5leGVjKHNhbXBsZSlbMF0gaXMgJ2Jt4qCgcCcKIFBBU1MgZXZhbElu
bGluZVJlLmV4ZWMoc2FtcGxlKVswXSBpcyAnYm3ioKBwJwotRkFJTCBleHBsaWNpdFJlLmV4ZWMo
c2FtcGxlKVswXSBzaG91bGQgYmUgYm3ioKBwLiBUaHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBO
dWxsIHZhbHVlCitQQVNTIGV4cGxpY2l0UmUuZXhlYyhzYW1wbGUpWzBdIGlzICdibeKgoHAnCiBQ
QVNTIGJpbmxpbmVSZS5zb3VyY2UgaXMgYm5ld0Zyb21JbmxpbmVSZS5zb3VyY2UKIFBBU1MgYmlu
bGluZVJlLnNvdXJjZSBpcyBiZXZhbEZyb21JbmxpbmVSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJl
LnNvdXJjZSBpcyBiZXZhbElubGluZVJlLnNvdXJjZQogUEFTUyBiaW5saW5lUmUuc291cmNlIGlz
IGJuZXdGcm9tRXZhbElubGluZVJlLnNvdXJjZQogUEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJl
dmFsRnJvbUV2YWxJbmxpbmVSZS5zb3VyY2UKLUZBSUwgYmlubGluZVJlLnNvdXJjZSBzaG91bGQg
YmUgLm1cdTAwN2NwIChvZiB0eXBlIHN0cmluZykuIFdhcyAubXxwIChvZiB0eXBlIHN0cmluZyku
Ci1GQUlMIGJpbmxpbmVSZS5zb3VyY2Ugc2hvdWxkIGJlIC5tXHUwMDdjcCAob2YgdHlwZSBzdHJp
bmcpLiBXYXMgLm18cCAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBiaW5saW5lUmUuc291cmNlIGlz
IGJleHBsaWNpdFJlLnNvdXJjZQorUEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJuZXdGcm9tRXhw
bGljaXRSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBiZXZhbEZyb21FeHBsaWNp
dFJlLnNvdXJjZQogUEFTUyBiaW5saW5lUmUudG9TdHJpbmcoKSBpcyBibmV3RnJvbUlubGluZVJl
LnRvU3RyaW5nKCkKIFBBU1MgYmlubGluZVJlLnRvU3RyaW5nKCkgaXMgYmV2YWxGcm9tSW5saW5l
UmUudG9TdHJpbmcoKQogUEFTUyBiaW5saW5lUmUudG9TdHJpbmcoKSBpcyBiZXZhbElubGluZVJl
LnRvU3RyaW5nKCkKIFBBU1MgYmlubGluZVJlLnRvU3RyaW5nKCkgaXMgYm5ld0Zyb21FdmFsSW5s
aW5lUmUudG9TdHJpbmcoKQogUEFTUyBiaW5saW5lUmUudG9TdHJpbmcoKSBpcyBiZXZhbEZyb21F
dmFsSW5saW5lUmUudG9TdHJpbmcoKQotRkFJTCBiaW5saW5lUmUudG9TdHJpbmcoKSBzaG91bGQg
YmUgLy5tXHUwMDdjcC8gKG9mIHR5cGUgc3RyaW5nKS4gV2FzIC8ubXxwLyAob2YgdHlwZSBzdHJp
bmcpLgotRkFJTCBiaW5saW5lUmUudG9TdHJpbmcoKSBzaG91bGQgYmUgLy5tXHUwMDdjcC8gKG9m
IHR5cGUgc3RyaW5nKS4gV2FzIC8ubXxwLyAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBiaW5saW5l
UmUudG9TdHJpbmcoKSBpcyBiZXhwbGljaXRSZS50b1N0cmluZygpCitQQVNTIGJpbmxpbmVSZS50
b1N0cmluZygpIGlzIGJuZXdGcm9tRXhwbGljaXRSZS50b1N0cmluZygpCiBQQVNTIGJpbmxpbmVS
ZS50b1N0cmluZygpIGlzIGJldmFsRnJvbUV4cGxpY2l0UmUudG9TdHJpbmcoKQotRkFJTCBiaW5s
aW5lUmUuZXhlYyhic2FtcGxlKVswXSBzaG91bGQgYmUgYm18cCAob2YgdHlwZSBzdHJpbmcpLiBX
YXMgYW0gKG9mIHR5cGUgc3RyaW5nKS4KLUZBSUwgYmV2YWxJbmxpbmVSZS5leGVjKGJzYW1wbGUp
WzBdIHNob3VsZCBiZSBibXxwIChvZiB0eXBlIHN0cmluZykuIFdhcyBhbSAob2YgdHlwZSBzdHJp
bmcpLgotRkFJTCBiZXhwbGljaXRSZS5leGVjKGJzYW1wbGUpWzBdIHNob3VsZCBiZSBibXxwLiBU
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOdWxsIHZhbHVlCitQQVNTIGJpbmxpbmVSZS5leGVj
KGJzYW1wbGUpWzBdIGlzICdibXxwJworUEFTUyBiZXZhbElubGluZVJlLmV4ZWMoYnNhbXBsZSlb
MF0gaXMgJ2JtfHAnCitQQVNTIGJleHBsaWNpdFJlLmV4ZWMoYnNhbXBsZSlbMF0gaXMgJ2JtfHAn
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMva2RlL1JlZ0V4cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvUmVnRXhwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTc2MDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9SZWdFeHAtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBACiBQQVNTIHZhciByMiA9IHJlZzsgcjIueCA9
IDI7IHJlZy54IGlzIDIKIFBBU1Mgc3RyLm1hdGNoKHJlKS50b1N0cmluZygpIGlzICdDaGFwdGVy
IDMuNC41LjEsQ2hhcHRlciAzLjQuNS4xLC4xJwogUEFTUyBzdHIubWF0Y2goL2QvZ2kpLnRvU3Ry
aW5nKCkgaXMgJ0QsZCcKLUZBSUwgL1x1MDA2MS8uc291cmNlIHNob3VsZCBiZSBcdTAwNjEgKG9m
IHR5cGUgc3RyaW5nKS4gV2FzIGEgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgL1x1MDA2MS8uc291
cmNlIGlzICdcXHUwMDYxJwogUEFTUyAnYWJjJy5tYXRjaCgvXHUwMDYyLykudG9TdHJpbmcoKSBp
cyAnYicKIEZBSUwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShSZWdFeHAucHJvdG90
eXBlKSBzaG91bGQgYmUgW29iamVjdCBSZWdFeHBdIChvZiB0eXBlIHN0cmluZykuIFdhcyBbb2Jq
ZWN0IFJlZ0V4cFByb3RvdHlwZV0gKG9mIHR5cGUgc3RyaW5nKS4KIFBBU1MgdHlwZW9mIFJlZ0V4
cC5wcm90b3R5cGUudG9TdHJpbmcoKSBpcyAnc3RyaW5nJwo=
</data>
<flag name="review"
          id="3997"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11477</attachid>
            <date>2006-11-10 16:12:56 -0800</date>
            <delta_ts>2006-11-13 13:27:03 -0800</delta_ts>
            <desc>Patch to fix 11501 et al.</desc>
            <filename>webkit-patch-bug11501-v3.diff</filename>
            <type>text/plain</type>
            <size>13428</size>
            <attacher name="W. Andy Carrel">wac</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUva2pzL2xleGVyLmNwcAkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvbGV4ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBACiAjaWZuZGVm
IEtKU19QVVJFX0VDTUEKICAgICBib2wodHJ1ZSksCiAjZW5kaWYKLSAgICBjdXJyZW50KDApLCBu
ZXh0MSgwKSwgbmV4dDIoMCksIG5leHQzKDApLCBuZXh0NCgwKSwKKyAgICBjdXJyZW50KDApLCBu
ZXh0MSgwKSwgbmV4dDIoMCksIG5leHQzKDApLAogICAgIHN0cmluZ3MoMCksIG51bVN0cmluZ3Mo
MCksIHN0cmluZ3NDYXBhY2l0eSgwKSwKICAgICBpZGVudGlmaWVycygwKSwgbnVtSWRlbnRpZmll
cnMoMCksIGlkZW50aWZpZXJzQ2FwYWNpdHkoMCkKIHsKQEAgLTExOSw3ICsxMTksNiBAQAogICBu
ZXh0MSA9IChsZW5ndGggPiAxKSA/IGNvZGVbMV0udWMgOiAtMTsKICAgbmV4dDIgPSAobGVuZ3Ro
ID4gMikgPyBjb2RlWzJdLnVjIDogLTE7CiAgIG5leHQzID0gKGxlbmd0aCA+IDMpID8gY29kZVsz
XS51YyA6IC0xOwotICBuZXh0NCA9IChsZW5ndGggPiA0KSA/IGNvZGVbNF0udWMgOiAtMTsKIH0K
IAogdm9pZCBMZXhlcjo6c2hpZnQodW5zaWduZWQgaW50IHApCkBAIC0xMzEsOCArMTMwLDcgQEAK
ICAgICBjdXJyZW50ID0gbmV4dDE7CiAgICAgbmV4dDEgPSBuZXh0MjsKICAgICBuZXh0MiA9IG5l
eHQzOwotICAgIG5leHQzID0gbmV4dDQ7Ci0gICAgbmV4dDQgPSAocG9zICsgNCA8IGxlbmd0aCkg
PyBjb2RlW3Bvcys0XS51YyA6IC0xOworICAgIG5leHQzID0gKHBvcyArIDMgPCBsZW5ndGgpID8g
Y29kZVtwb3MgKyAzXS51YyA6IC0xOwogICB9CiB9CiAKQEAgLTgzNiwyOSArODM0LDE0IEBACiAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgZWxzZSBpZiAoY3VycmVudCAhPSAnLycgfHwgbGFzdFdh
c0VzY2FwZSA9PSB0cnVlIHx8IGluQnJhY2tldHMgPT0gdHJ1ZSkKICAgICB7Ci0gICAgICAgIGlm
IChsYXN0V2FzRXNjYXBlKSB7Ci0gICAgICAgICAgLy8gZGVhbCB3aXRoIHVuaWNvZGUgZXNjYXBl
cyBpbiBpbmxpbmUgcmVnZXhwcwotICAgICAgICAgIGlmIChjdXJyZW50ID09ICd1JykgewotICAg
ICAgICAgICAgaWYgKGlzSGV4RGlnaXQobmV4dDEpICYmIGlzSGV4RGlnaXQobmV4dDIpICYmIAot
ICAgICAgICAgICAgICAgIGlzSGV4RGlnaXQobmV4dDMpICYmIGlzSGV4RGlnaXQobmV4dDQpKSB7
Ci0gICAgICAgICAgICAgIHJlY29yZDE2KGNvbnZlcnRVbmljb2RlKG5leHQxLCBuZXh0MiwgbmV4
dDMsIG5leHQ0KSk7Ci0gICAgICAgICAgICAgIHNoaWZ0KDUpOwotICAgICAgICAgICAgICBsYXN0
V2FzRXNjYXBlID0gZmFsc2U7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
fSBlbHNlIAotICAgICAgICAgICAgICAvLyB0aGlzIHdhc24ndCB1bmljb2RlIGFmdGVyIGFsbAot
ICAgICAgICAgICAgICByZWNvcmQxNignXFwnKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgLy8ga2VlcCB0cmFjayBvZiAnWycgYW5kICddJworICAgICAgICAvLyBr
ZWVwIHRyYWNrIG9mICdbJyBhbmQgJ10nCisgICAgICAgIGlmICghbGFzdFdhc0VzY2FwZSkgewog
ICAgICAgICAgIGlmICggY3VycmVudCA9PSAnWycgJiYgIWluQnJhY2tldHMgKQogICAgICAgICAg
ICAgaW5CcmFja2V0cyA9IHRydWU7CiAgICAgICAgICAgaWYgKCBjdXJyZW50ID09ICddJyAmJiBp
bkJyYWNrZXRzICkKICAgICAgICAgICAgIGluQnJhY2tldHMgPSBmYWxzZTsKICAgICAgICAgfQot
ICAgICAgICAvLyBkb24ndCB3YW50IHRvIGNhcHR1cmUgdGhlICdcJyBmb3IgdW5pY29kZSBlc2Nh
cGVzCi0gICAgICAgIGlmIChjdXJyZW50ICE9ICdcXCcgfHwgbmV4dDEgIT0gJ3UnKQotICAgICAg
ICAgIHJlY29yZDE2KGN1cnJlbnQpOworICAgICAgICByZWNvcmQxNihjdXJyZW50KTsKICAgICAg
ICAgbGFzdFdhc0VzY2FwZSA9CiAgICAgICAgICAgICAhbGFzdFdhc0VzY2FwZSAmJiAoY3VycmVu
dCA9PSAnXFwnKTsKICAgICB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkocmV2aXNpb24gMTc2
MDUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDQsMTIgKzQ0LDE4IEBACiAKICAgY29uc3QgY2hhciAqZXJyb3JNZXNzYWdlOwogICBpbnQgZXJy
b3JPZmZzZXQ7Ci0gIFVTdHJpbmcgbnVsbFRlcm1pbmF0ZWQocCk7Ci0gIGNoYXIgbnVsbCgwKTsK
LSAgbnVsbFRlcm1pbmF0ZWQuYXBwZW5kKG51bGwpOwotICBfcmVnZXggPSBwY3JlX2NvbXBpbGUo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZfdCAqPihudWxsVGVybWluYXRlZC5kYXRhKCkp
LCBvcHRpb25zLCAmZXJyb3JNZXNzYWdlLCAmZXJyb3JPZmZzZXQsIE5VTEwpOwotICBpZiAoIV9y
ZWdleCkKLSAgICByZXR1cm47CisgIAorICBVU3RyaW5nIHBhdHRlcm4ocCk7CisgIAorICBwYXR0
ZXJuLmFwcGVuZCgnXDAnKTsKKyAgX3JlZ2V4ID0gcGNyZV9jb21waWxlKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDE2X3QqPihwYXR0ZXJuLmRhdGEoKSksIG9wdGlvbnMsICZlcnJvck1lc3Nh
Z2UsICZlcnJvck9mZnNldCwgTlVMTCk7CisgIGlmICghX3JlZ2V4KSB7CisgICAgLy8gVHJ5IGFn
YWluLCB0aGlzIHRpbWUgaGFuZGxlIGFueSBcdSB3ZSBtaWdodCBmaW5kLgorICAgIFVTdHJpbmcg
Y2xlYW5lZFBhdHRlcm4gPSBzYW5pdGl6ZVBhdHRlcm4ocGF0dGVybik7CisgICAgX3JlZ2V4ID0g
cGNyZV9jb21waWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QgKj4oY2xlYW5lZFBh
dHRlcm4uZGF0YSgpKSwgb3B0aW9ucywgJmVycm9yTWVzc2FnZSwgJmVycm9yT2Zmc2V0LCBOVUxM
KTsKKyAgICBpZiAoIV9yZWdleCkgCisgICAgICByZXR1cm47CisgIH0KIAogI2lmZGVmIFBDUkVf
SU5GT19DQVBUVVJFQ09VTlQKICAgLy8gR2V0IG51bWJlciBvZiBzdWJwYXR0ZXJucyB0aGF0IHdp
bGwgYmUgcmV0dXJuZWQuCkBAIC0xNzMsNCArMTc5LDc3IEBACiAjZW5kaWYKIH0KIAorVVN0cmlu
ZyBzYW5pdGl6ZVBhdHRlcm4oY29uc3QgVVN0cmluZyYgcCkKK3sKKyAgVVN0cmluZyBuZXdQYXR0
ZXJuOworICAKKyAgaW50IHN0YXJ0UG9zID0gMDsKKyAgaW50IHBvcyA9IHAuZmluZCgiXFx1Iiwg
MCkgKyAyOworICAKKyAgd2hpbGUgKHBvcyAhPSAtMSArIDIpIHsKKyAgICBpZiAocG9zICsgMyA8
IHAuc2l6ZSgpKSB7CisgICAgICBpZiAoaXNIZXhEaWdpdChwW3Bvc10pICYmIGlzSGV4RGlnaXQo
cFtwb3MgKyAxXSkgJiYKKyAgICAgICAgICBpc0hleERpZ2l0KHBbcG9zICsgMl0pICYmIGlzSGV4
RGlnaXQocFtwb3MgKyAzXSkpIHsKKyAgICAgICAgbmV3UGF0dGVybi5hcHBlbmQocC5zdWJzdHIo
c3RhcnRQb3MsIHBvcyAtIHN0YXJ0UG9zIC0gMikpOworICAgICAgICBVQ2hhciBlc2NhcGVkVW5p
Y29kZShjb252ZXJ0VW5pY29kZShwW3Bvc10sIHBbcG9zICsgMV0sIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW3BvcyArIDJdLCBwW3BvcyArIDNdKSk7Cisg
ICAgICAgIC8vIEFkZCBhbiBlc2NhcGUgZm9yIG1hZ2ljIHVuaWNvZGUgY2hhcmFjdGVycyB0aGF0
IG5lZWQgaXQuCisgICAgICAgIHN3aXRjaCAoZXNjYXBlZFVuaWNvZGUudW5pY29kZSgpKSB7Cisg
ICAgICAgICAgY2FzZSAnfCc6CisgICAgICAgICAgY2FzZSAnKyc6CisgICAgICAgICAgY2FzZSAn
Kic6CisgICAgICAgICAgY2FzZSAnKCc6CisgICAgICAgICAgY2FzZSAnKSc6CisgICAgICAgICAg
Y2FzZSAnWyc6CisgICAgICAgICAgY2FzZSAnXSc6CisgICAgICAgICAgY2FzZSAneyc6CisgICAg
ICAgICAgY2FzZSAnfSc6CisgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgY2FzZSAnXFwn
OgorICAgICAgICAgICAgbmV3UGF0dGVybi5hcHBlbmQoJ1xcJyk7CisgICAgICAgIH0KKyAgICAg
ICAgbmV3UGF0dGVybi5hcHBlbmQoZXNjYXBlZFVuaWNvZGUpOworCisgICAgICAgIHN0YXJ0UG9z
ID0gcG9zICsgNDsKKyAgICAgIH0KKyAgICB9CisgICAgcG9zID0gcC5maW5kKCJcXHUiLCBwb3Mp
ICsgMjsKKyAgfQorICBuZXdQYXR0ZXJuLmFwcGVuZChwLnN1YnN0cihzdGFydFBvcywgcC5zaXpl
KCkgLSBzdGFydFBvcykpOworCisgIHJldHVybiBuZXdQYXR0ZXJuOworfQorCitib29sIGlzSGV4
RGlnaXQoVUNoYXIgdWMpCit7CisgIGludCBjID0gdWMudW5pY29kZSgpOworICByZXR1cm4gKGMg
Pj0gJzAnICYmIGMgPD0gJzknIHx8CisgICAgICAgICAgYyA+PSAnYScgJiYgYyA8PSAnZicgfHwK
KyAgICAgICAgICBjID49ICdBJyAmJiBjIDw9ICdGJyk7Cit9CisKK3Vuc2lnbmVkIGNoYXIgY29u
dmVydEhleChpbnQgYykKK3sKKyAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjIC0gJzAnKTsKKyAgaWYgKGMgPj0gJ2EnICYm
IGMgPD0gJ2YnKQorICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjIC0gJ2En
ICsgMTApOworICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYyAtICdBJyArIDEw
KTsKK30KKwordW5zaWduZWQgY2hhciBjb252ZXJ0SGV4KGludCBjMSwgaW50IGMyKQoreworICBy
ZXR1cm4gKChjb252ZXJ0SGV4KGMxKSA8PCA0KSArIGNvbnZlcnRIZXgoYzIpKTsKK30KKworVUNo
YXIgY29udmVydFVuaWNvZGUoVUNoYXIgdWMxLCBVQ2hhciB1YzIsIFVDaGFyIHVjMywgVUNoYXIg
dWM0KQoreworICBpbnQgYzEgPSB1YzEudW5pY29kZSgpOworICBpbnQgYzIgPSB1YzIudW5pY29k
ZSgpOworICBpbnQgYzMgPSB1YzMudW5pY29kZSgpOworICBpbnQgYzQgPSB1YzQudW5pY29kZSgp
OworICByZXR1cm4gVUNoYXIoKGNvbnZlcnRIZXgoYzEpIDw8IDQpICsgY29udmVydEhleChjMiks
CisgICAgICAgICAgICAgICAoY29udmVydEhleChjMykgPDwgNCkgKyBjb252ZXJ0SGV4KGM0KSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIEtKUwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL3JlZ2V4
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuaAkocmV2aXNpb24g
MTc2MDUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYzLDYgKzYzLDEzIEBACiAgICAgUmVnRXhwICZvcGVyYXRvcj0oY29uc3QgUmVnRXhwICYpOwog
ICB9OwogCisgIFVTdHJpbmcgc2FuaXRpemVQYXR0ZXJuKGNvbnN0IFVTdHJpbmcmKTsKKworICBi
b29sIGlzSGV4RGlnaXQoVUNoYXIpOworICB1bnNpZ25lZCBjaGFyIGNvbnZlcnRIZXgoaW50KTsK
KyAgdW5zaWduZWQgY2hhciBjb252ZXJ0SGV4KGludCwgaW50KTsKKyAgVUNoYXIgY29udmVydFVu
aWNvZGUoVUNoYXIsIFVDaGFyLCBVQ2hhciwgVUNoYXIpOworCiB9IC8vIG5hbWVzcGFjZQogCiAj
ZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9ranMvdXN0cmluZy5jcHAJKHJldmlzaW9uIDE3NjA1KQorKysgSmF2
YVNjcmlwdENvcmUva2pzL3VzdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDksNyArNzQ5
LDcgQEAKICAgICBVQ2hhciAqZCA9IHN0YXRpY19jYXN0PFVDaGFyICo+KGZhc3RNYWxsb2Moc2l6
ZW9mKFVDaGFyKSAqIG5ld0NhcGFjaXR5KSk7CiAgICAgbWVtY3B5KGQsIGRhdGEoKSwgbGVuZ3Ro
ICogc2l6ZW9mKFVDaGFyKSk7CiAgICAgZFtsZW5ndGhdID0gYzsKLSAgICBtX3JlcCA9IFJlcDo6
Y3JlYXRlKGQsIGxlbmd0aCk7CisgICAgbV9yZXAgPSBSZXA6OmNyZWF0ZShkLCBsZW5ndGggKyAx
KTsKICAgICBtX3JlcC0+Y2FwYWNpdHkgPSBuZXdDYXBhY2l0eTsKICAgfQogCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ranMvbGV4ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMv
bGV4ZXIuaAkocmV2aXNpb24gMTc2MDUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbGV4ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ1LDcgKzE0NSw3IEBACiAgICAgYm9vbCBlcnJvcjsKIAogICAg
IC8vIGN1cnJlbnQgYW5kIGZvbGxvd2luZyB1bmljb2RlIGNoYXJhY3RlcnMgKGludCB0byBhbGxv
dyBmb3IgLTEgZm9yIGVuZC1vZi1maWxlIG1hcmtlcikKLSAgICBpbnQgY3VycmVudCwgbmV4dDEs
IG5leHQyLCBuZXh0MywgbmV4dDQ7CisgICAgaW50IGN1cnJlbnQsIG5leHQxLCBuZXh0MiwgbmV4
dDM7CiAKICAgICBVU3RyaW5nICoqc3RyaW5nczsKICAgICB1bnNpZ25lZCBpbnQgbnVtU3RyaW5n
czsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NzEzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDYtMTEtMTAgIFcuIEFu
ZHkgQ2FycmVsICA8d2FjQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQV9LSU5E
X1ZPTFVOVEVFUl9USEFOS1MuCisKKyAgICAgICAgKiBranMvbGV4ZXIuY3BwOgorICAgICAgICAo
TGV4ZXI6OkxleGVyKToKKyAgICAgICAgKExleGVyOjpzZXRDb2RlKToKKyAgICAgICAgKExleGVy
OjpzaGlmdCk6CisgICAgICAgIChMZXhlcjo6c2NhblJlZ0V4cCk6CisgICAgICAgIFB1c2ggXHUg
cGFyc2luZyBiYWNrIGRvd24gaW50byB0aGUgUmVnRXhwIG9iamVjdCByYXRoZXIgdGhhbiBpbiB0
aGUKKyAgICAgICAgcGFyc2VyLiBUaGlzIGJhY2tzIG91dCByMTczNTQgaW4gZmF2b3Igb2YgYSBu
ZXcgZml4IHRoYXQgYmV0dGVyIAorICAgICAgICBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBvdGhl
ciBicm93c2Vycy4KKworICAgICAgICAqIGtqcy9sZXhlci5oOgorICAgICAgICAqIGtqcy9yZWdl
eHAuY3BwOgorICAgICAgICAoS0pTOjpSZWdFeHA6OlJlZ0V4cCk6CisgICAgICAgIChLSlM6OnNh
bml0aXplUGF0dGVybik6CisgICAgICAgIChLSlM6OmlzSGV4RGlnaXQpOgorICAgICAgICAoS0pT
Ojpjb252ZXJ0SGV4KToKKyAgICAgICAgKEtKUzo6Y29udmVydFVuaWNvZGUpOgorICAgICAgICAq
IGtqcy9yZWdleHAuaDoKKyAgICAgICAgVHJhbnNsYXRlIFx1IGVzY2FwZWQgdW5pY29kZSBjaGFy
YWN0ZXJzIGZvciB0aGUgYmVuZWZpdCBvZiBwY3JlLgorCisgICAgICAgICoga2pzL3VzdHJpbmcu
Y3BwOgorICAgICAgICAoS0pTOjpVU3RyaW5nOjphcHBlbmQpOgorICAgICAgICBGaXggZmFpbHVy
ZSB0byBpbmNyZW1lbnQgbGVuZ3RoIG9uIHRoZSBmaXJzdCBVQ2hhciBhcHBlbmRlZCB0byBhIAor
ICAgICAgICBVU3RyaW5nIHRoYXQgd2FzIGNvcHktb24td3JpdGUuCisKKyAgICAgICAgKiB0ZXN0
cy9tb3ppbGxhL2VjbWFfMi9SZWdFeHAvcHJvcGVydGllcy0wMDEuanM6CisgICAgICAgIEFkanVz
dCB0ZXN0cyBiYWNrIHRvIHRoZSB1bmlmb3JtIHN0YW5kYXJkcy4KKwogMjAwNi0xMS0wOCAgQWRh
IENoYW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBkYXJpbi4K
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvZWNtYV8yL1JlZ0V4cC9wcm9wZXJ0
aWVzLTAwMS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS90ZXN0cy9tb3ppbGxhL2Vj
bWFfMi9SZWdFeHAvcHJvcGVydGllcy0wMDEuanMJKHJldmlzaW9uIDE3NjA1KQorKysgSmF2YVNj
cmlwdENvcmUvdGVzdHMvbW96aWxsYS9lY21hXzIvUmVnRXhwL3Byb3BlcnRpZXMtMDAxLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAgICAgQWRkUmVnRXhwQ2FzZXMoIC9bYS16
QS1aMC05XSovZ20sICJbYS16QS1aMC05XSoiLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgMCApOwogICAg
IEFkZFJlZ0V4cENhc2VzKCAveHx5fHovZ2ltLCAieHx5fHoiLCB0cnVlLCB0cnVlLCB0cnVlLCAw
ICk7CiAKLSAgICBBZGRSZWdFeHBDYXNlcyggL1x1MDA1MS9pbSwgIlx1MDA1MSIsIGZhbHNlLCB0
cnVlLCB0cnVlLCAwICk7CisgICAgQWRkUmVnRXhwQ2FzZXMoIC9cdTAwNTEvaW0sICJcXHUwMDUx
IiwgZmFsc2UsIHRydWUsIHRydWUsIDAgKTsKICAgICBBZGRSZWdFeHBDYXNlcyggL1x4NDUvZ20s
ICJcXHg0NSIsIHRydWUsIGZhbHNlLCB0cnVlLCAwICk7CiAgICAgQWRkUmVnRXhwQ2FzZXMoIC9c
MDk3L2dpLCAiXFwwOTciLCB0cnVlLCB0cnVlLCBmYWxzZSwgMCApOwogCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNzcxMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEyIEBACisyMDA2LTExLTEwICBXLiBBbmR5IENhcnJlbCAgPHdhY0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFfS0lORF9WT0xVTlRFRVJfVEhBTktTLgorCisgICAg
ICAgICogZmFzdC9qcy9rZGUvUmVnRXhwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pz
L3JlZ2V4cC11bmljb2RlLWhhbmRsaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgQWRqdXN0IHRo
ZXNlIHRlc3QgcmVzdWx0cyB0byBwYXNzaW5nIGFzIGEgcmVzdWx0IG9mIG90aGVyIGluY2x1ZGVk
CisgICAgICAgIGNoYW5nZXMgaW4gdGhpcyByZXZpc2lvbi4KKwogMjAwNi0xMS0wOSAgQWRhbSBS
b2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC11bmljb2RlLWhhbmRsaW5nLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC11bmljb2RlLWhh
bmRsaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTc2MDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2pzL3JlZ2V4cC11bmljb2RlLWhhbmRsaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTAsMzkgKzEwLDM5IEBACiBQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBldmFsSW5saW5lUmUu
c291cmNlCiBQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBuZXdGcm9tRXZhbElubGluZVJlLnNvdXJj
ZQogUEFTUyBpbmxpbmVSZS5zb3VyY2UgaXMgZXZhbEZyb21FdmFsSW5saW5lUmUuc291cmNlCi1G
QUlMIGlubGluZVJlLnNvdXJjZSBzaG91bGQgYmUgLm1cdTI4MjBwIChvZiB0eXBlIHN0cmluZyku
IFdhcyAubeKgoHAgKG9mIHR5cGUgc3RyaW5nKS4KLUZBSUwgaW5saW5lUmUuc291cmNlIHNob3Vs
ZCBiZSAubVx1MjgyMHAgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIC5t4qCgcCAob2YgdHlwZSBzdHJp
bmcpLgorUEFTUyBpbmxpbmVSZS5zb3VyY2UgaXMgZXhwbGljaXRSZS5zb3VyY2UKK1BBU1MgaW5s
aW5lUmUuc291cmNlIGlzIG5ld0Zyb21FeHBsaWNpdFJlLnNvdXJjZQogUEFTUyBpbmxpbmVSZS5z
b3VyY2UgaXMgZXZhbEZyb21FeHBsaWNpdFJlLnNvdXJjZQogUEFTUyBpbmxpbmVSZS50b1N0cmlu
ZygpIGlzIG5ld0Zyb21JbmxpbmVSZS50b1N0cmluZygpCiBQQVNTIGlubGluZVJlLnRvU3RyaW5n
KCkgaXMgZXZhbEZyb21JbmxpbmVSZS50b1N0cmluZygpCiBQQVNTIGlubGluZVJlLnRvU3RyaW5n
KCkgaXMgZXZhbElubGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBp
cyBuZXdGcm9tRXZhbElubGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9TdHJpbmco
KSBpcyBldmFsRnJvbUV2YWxJbmxpbmVSZS50b1N0cmluZygpCi1GQUlMIGlubGluZVJlLnRvU3Ry
aW5nKCkgc2hvdWxkIGJlIC8ubVx1MjgyMHAvIChvZiB0eXBlIHN0cmluZykuIFdhcyAvLm3ioKBw
LyAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBpbmxpbmVSZS50b1N0cmluZygpIHNob3VsZCBiZSAv
Lm1cdTI4MjBwLyAob2YgdHlwZSBzdHJpbmcpLiBXYXMgLy5t4qCgcC8gKG9mIHR5cGUgc3RyaW5n
KS4KK1BBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBleHBsaWNpdFJlLnRvU3RyaW5nKCkKK1BB
U1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBuZXdGcm9tRXhwbGljaXRSZS50b1N0cmluZygpCiBQ
QVNTIGlubGluZVJlLnRvU3RyaW5nKCkgaXMgZXZhbEZyb21FeHBsaWNpdFJlLnRvU3RyaW5nKCkK
IFBBU1MgaW5saW5lUmUuZXhlYyhzYW1wbGUpWzBdIGlzICdibeKgoHAnCiBQQVNTIGV2YWxJbmxp
bmVSZS5leGVjKHNhbXBsZSlbMF0gaXMgJ2Jt4qCgcCcKLUZBSUwgZXhwbGljaXRSZS5leGVjKHNh
bXBsZSlbMF0gc2hvdWxkIGJlIGJt4qCgcC4gVGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTnVs
bCB2YWx1ZQorUEFTUyBleHBsaWNpdFJlLmV4ZWMoc2FtcGxlKVswXSBpcyAnYm3ioKBwJwogUEFT
UyBiaW5saW5lUmUuc291cmNlIGlzIGJuZXdGcm9tSW5saW5lUmUuc291cmNlCiBQQVNTIGJpbmxp
bmVSZS5zb3VyY2UgaXMgYmV2YWxGcm9tSW5saW5lUmUuc291cmNlCiBQQVNTIGJpbmxpbmVSZS5z
b3VyY2UgaXMgYmV2YWxJbmxpbmVSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBi
bmV3RnJvbUV2YWxJbmxpbmVSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBiZXZh
bEZyb21FdmFsSW5saW5lUmUuc291cmNlCi1GQUlMIGJpbmxpbmVSZS5zb3VyY2Ugc2hvdWxkIGJl
IC5tXHUwMDdjcCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgLm18cCAob2YgdHlwZSBzdHJpbmcpLgot
RkFJTCBiaW5saW5lUmUuc291cmNlIHNob3VsZCBiZSAubVx1MDA3Y3AgKG9mIHR5cGUgc3RyaW5n
KS4gV2FzIC5tfHAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBi
ZXhwbGljaXRSZS5zb3VyY2UKK1BBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBibmV3RnJvbUV4cGxp
Y2l0UmUuc291cmNlCiBQQVNTIGJpbmxpbmVSZS5zb3VyY2UgaXMgYmV2YWxGcm9tRXhwbGljaXRS
ZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnRvU3RyaW5nKCkgaXMgYm5ld0Zyb21JbmxpbmVSZS50
b1N0cmluZygpCiBQQVNTIGJpbmxpbmVSZS50b1N0cmluZygpIGlzIGJldmFsRnJvbUlubGluZVJl
LnRvU3RyaW5nKCkKIFBBU1MgYmlubGluZVJlLnRvU3RyaW5nKCkgaXMgYmV2YWxJbmxpbmVSZS50
b1N0cmluZygpCiBQQVNTIGJpbmxpbmVSZS50b1N0cmluZygpIGlzIGJuZXdGcm9tRXZhbElubGlu
ZVJlLnRvU3RyaW5nKCkKIFBBU1MgYmlubGluZVJlLnRvU3RyaW5nKCkgaXMgYmV2YWxGcm9tRXZh
bElubGluZVJlLnRvU3RyaW5nKCkKLUZBSUwgYmlubGluZVJlLnRvU3RyaW5nKCkgc2hvdWxkIGJl
IC8ubVx1MDA3Y3AvIChvZiB0eXBlIHN0cmluZykuIFdhcyAvLm18cC8gKG9mIHR5cGUgc3RyaW5n
KS4KLUZBSUwgYmlubGluZVJlLnRvU3RyaW5nKCkgc2hvdWxkIGJlIC8ubVx1MDA3Y3AvIChvZiB0
eXBlIHN0cmluZykuIFdhcyAvLm18cC8gKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgYmlubGluZVJl
LnRvU3RyaW5nKCkgaXMgYmV4cGxpY2l0UmUudG9TdHJpbmcoKQorUEFTUyBiaW5saW5lUmUudG9T
dHJpbmcoKSBpcyBibmV3RnJvbUV4cGxpY2l0UmUudG9TdHJpbmcoKQogUEFTUyBiaW5saW5lUmUu
dG9TdHJpbmcoKSBpcyBiZXZhbEZyb21FeHBsaWNpdFJlLnRvU3RyaW5nKCkKLUZBSUwgYmlubGlu
ZVJlLmV4ZWMoYnNhbXBsZSlbMF0gc2hvdWxkIGJlIGJtfHAgKG9mIHR5cGUgc3RyaW5nKS4gV2Fz
IGFtIChvZiB0eXBlIHN0cmluZykuCi1GQUlMIGJldmFsSW5saW5lUmUuZXhlYyhic2FtcGxlKVsw
XSBzaG91bGQgYmUgYm18cCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgYW0gKG9mIHR5cGUgc3RyaW5n
KS4KLUZBSUwgYmV4cGxpY2l0UmUuZXhlYyhic2FtcGxlKVswXSBzaG91bGQgYmUgYm18cC4gVGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTnVsbCB2YWx1ZQorUEFTUyBiaW5saW5lUmUuZXhlYyhi
c2FtcGxlKVswXSBpcyAnYm18cCcKK1BBU1MgYmV2YWxJbmxpbmVSZS5leGVjKGJzYW1wbGUpWzBd
IGlzICdibXxwJworUEFTUyBiZXhwbGljaXRSZS5leGVjKGJzYW1wbGUpWzBdIGlzICdibXxwJwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL2tkZS9SZWdFeHAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvanMva2RlL1JlZ0V4cC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE3
NjA1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvUmVnRXhwLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtODgsNyArODgsNyBAQAogUEFTUyB2YXIgcjIgPSByZWc7IHIyLnggPSAy
OyByZWcueCBpcyAyCiBQQVNTIHN0ci5tYXRjaChyZSkudG9TdHJpbmcoKSBpcyAnQ2hhcHRlciAz
LjQuNS4xLENoYXB0ZXIgMy40LjUuMSwuMScKIFBBU1Mgc3RyLm1hdGNoKC9kL2dpKS50b1N0cmlu
ZygpIGlzICdELGQnCi1GQUlMIC9cdTAwNjEvLnNvdXJjZSBzaG91bGQgYmUgXHUwMDYxIChvZiB0
eXBlIHN0cmluZykuIFdhcyBhIChvZiB0eXBlIHN0cmluZykuCitQQVNTIC9cdTAwNjEvLnNvdXJj
ZSBpcyAnXFx1MDA2MScKIFBBU1MgJ2FiYycubWF0Y2goL1x1MDA2Mi8pLnRvU3RyaW5nKCkgaXMg
J2InCiBGQUlMIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkoUmVnRXhwLnByb3RvdHlw
ZSkgc2hvdWxkIGJlIFtvYmplY3QgUmVnRXhwXSAob2YgdHlwZSBzdHJpbmcpLiBXYXMgW29iamVj
dCBSZWdFeHBQcm90b3R5cGVdIChvZiB0eXBlIHN0cmluZykuCiBQQVNTIHR5cGVvZiBSZWdFeHAu
cHJvdG90eXBlLnRvU3RyaW5nKCkgaXMgJ3N0cmluZycK
</data>
<flag name="review"
          id="4047"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11508</attachid>
            <date>2006-11-13 13:27:03 -0800</date>
            <delta_ts>2006-11-20 00:39:40 -0800</delta_ts>
            <desc>Patch to fix 11501 et al.</desc>
            <filename>webkit-patch-bug11501-v4.diff</filename>
            <type>text/plain</type>
            <size>13910</size>
            <attacher name="W. Andy Carrel">wac</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9sZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUva2pzL2xleGVyLmNwcAkocmV2aXNpb24gMTc3NDYpCisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvbGV4ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBACiAjaWZuZGVm
IEtKU19QVVJFX0VDTUEKICAgICBib2wodHJ1ZSksCiAjZW5kaWYKLSAgICBjdXJyZW50KDApLCBu
ZXh0MSgwKSwgbmV4dDIoMCksIG5leHQzKDApLCBuZXh0NCgwKSwKKyAgICBjdXJyZW50KDApLCBu
ZXh0MSgwKSwgbmV4dDIoMCksIG5leHQzKDApLAogICAgIHN0cmluZ3MoMCksIG51bVN0cmluZ3Mo
MCksIHN0cmluZ3NDYXBhY2l0eSgwKSwKICAgICBpZGVudGlmaWVycygwKSwgbnVtSWRlbnRpZmll
cnMoMCksIGlkZW50aWZpZXJzQ2FwYWNpdHkoMCkKIHsKQEAgLTExOSw3ICsxMTksNiBAQAogICBu
ZXh0MSA9IChsZW5ndGggPiAxKSA/IGNvZGVbMV0udWMgOiAtMTsKICAgbmV4dDIgPSAobGVuZ3Ro
ID4gMikgPyBjb2RlWzJdLnVjIDogLTE7CiAgIG5leHQzID0gKGxlbmd0aCA+IDMpID8gY29kZVsz
XS51YyA6IC0xOwotICBuZXh0NCA9IChsZW5ndGggPiA0KSA/IGNvZGVbNF0udWMgOiAtMTsKIH0K
IAogdm9pZCBMZXhlcjo6c2hpZnQodW5zaWduZWQgaW50IHApCkBAIC0xMzEsOCArMTMwLDcgQEAK
ICAgICBjdXJyZW50ID0gbmV4dDE7CiAgICAgbmV4dDEgPSBuZXh0MjsKICAgICBuZXh0MiA9IG5l
eHQzOwotICAgIG5leHQzID0gbmV4dDQ7Ci0gICAgbmV4dDQgPSAocG9zICsgNCA8IGxlbmd0aCkg
PyBjb2RlW3Bvcys0XS51YyA6IC0xOworICAgIG5leHQzID0gKHBvcyArIDMgPCBsZW5ndGgpID8g
Y29kZVtwb3MgKyAzXS51YyA6IC0xOwogICB9CiB9CiAKQEAgLTgzNiwyOSArODM0LDE0IEBACiAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgZWxzZSBpZiAoY3VycmVudCAhPSAnLycgfHwgbGFzdFdh
c0VzY2FwZSA9PSB0cnVlIHx8IGluQnJhY2tldHMgPT0gdHJ1ZSkKICAgICB7Ci0gICAgICAgIGlm
IChsYXN0V2FzRXNjYXBlKSB7Ci0gICAgICAgICAgLy8gZGVhbCB3aXRoIHVuaWNvZGUgZXNjYXBl
cyBpbiBpbmxpbmUgcmVnZXhwcwotICAgICAgICAgIGlmIChjdXJyZW50ID09ICd1JykgewotICAg
ICAgICAgICAgaWYgKGlzSGV4RGlnaXQobmV4dDEpICYmIGlzSGV4RGlnaXQobmV4dDIpICYmIAot
ICAgICAgICAgICAgICAgIGlzSGV4RGlnaXQobmV4dDMpICYmIGlzSGV4RGlnaXQobmV4dDQpKSB7
Ci0gICAgICAgICAgICAgIHJlY29yZDE2KGNvbnZlcnRVbmljb2RlKG5leHQxLCBuZXh0MiwgbmV4
dDMsIG5leHQ0KSk7Ci0gICAgICAgICAgICAgIHNoaWZ0KDUpOwotICAgICAgICAgICAgICBsYXN0
V2FzRXNjYXBlID0gZmFsc2U7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
fSBlbHNlIAotICAgICAgICAgICAgICAvLyB0aGlzIHdhc24ndCB1bmljb2RlIGFmdGVyIGFsbAot
ICAgICAgICAgICAgICByZWNvcmQxNignXFwnKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgLy8ga2VlcCB0cmFjayBvZiAnWycgYW5kICddJworICAgICAgICAvLyBr
ZWVwIHRyYWNrIG9mICdbJyBhbmQgJ10nCisgICAgICAgIGlmICghbGFzdFdhc0VzY2FwZSkgewog
ICAgICAgICAgIGlmICggY3VycmVudCA9PSAnWycgJiYgIWluQnJhY2tldHMgKQogICAgICAgICAg
ICAgaW5CcmFja2V0cyA9IHRydWU7CiAgICAgICAgICAgaWYgKCBjdXJyZW50ID09ICddJyAmJiBp
bkJyYWNrZXRzICkKICAgICAgICAgICAgIGluQnJhY2tldHMgPSBmYWxzZTsKICAgICAgICAgfQot
ICAgICAgICAvLyBkb24ndCB3YW50IHRvIGNhcHR1cmUgdGhlICdcJyBmb3IgdW5pY29kZSBlc2Nh
cGVzCi0gICAgICAgIGlmIChjdXJyZW50ICE9ICdcXCcgfHwgbmV4dDEgIT0gJ3UnKQotICAgICAg
ICAgIHJlY29yZDE2KGN1cnJlbnQpOworICAgICAgICByZWNvcmQxNihjdXJyZW50KTsKICAgICAg
ICAgbGFzdFdhc0VzY2FwZSA9CiAgICAgICAgICAgICAhbGFzdFdhc0VzY2FwZSAmJiAoY3VycmVu
dCA9PSAnXFwnKTsKICAgICB9CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkocmV2aXNpb24gMTc3
NDYpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDQsMTIgKzQ0LDIwIEBACiAKICAgY29uc3QgY2hhciAqZXJyb3JNZXNzYWdlOwogICBpbnQgZXJy
b3JPZmZzZXQ7Ci0gIFVTdHJpbmcgbnVsbFRlcm1pbmF0ZWQocCk7Ci0gIGNoYXIgbnVsbCgwKTsK
LSAgbnVsbFRlcm1pbmF0ZWQuYXBwZW5kKG51bGwpOwotICBfcmVnZXggPSBwY3JlX2NvbXBpbGUo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZfdCAqPihudWxsVGVybWluYXRlZC5kYXRhKCkp
LCBvcHRpb25zLCAmZXJyb3JNZXNzYWdlLCAmZXJyb3JPZmZzZXQsIE5VTEwpOwotICBpZiAoIV9y
ZWdleCkKLSAgICByZXR1cm47CisgIAorICBVU3RyaW5nIHBhdHRlcm4ocCk7CisgIAorICBwYXR0
ZXJuLmFwcGVuZCgnXDAnKTsKKyAgX3JlZ2V4ID0gcGNyZV9jb21waWxlKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDE2X3QqPihwYXR0ZXJuLmRhdGEoKSksCisgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25zLCAmZXJyb3JNZXNzYWdlLCAmZXJyb3JPZmZzZXQsIE5VTEwpOworICBpZiAo
IV9yZWdleCkgeworICAgIC8vIFRyeSBhZ2FpbiwgdGhpcyB0aW1lIGhhbmRsZSBhbnkgXHUgd2Ug
bWlnaHQgZmluZC4KKyAgICBVU3RyaW5nIHVQYXR0ZXJuID0gc2FuaXRpemVQYXR0ZXJuKHBhdHRl
cm4pOworICAgIF9yZWdleCA9IHBjcmVfY29tcGlsZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQxNl90Kj4odVBhdHRlcm4uZGF0YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9ucywgJmVycm9yTWVzc2FnZSwgJmVycm9yT2Zmc2V0LCBOVUxMKTsKKyAgICBpZiAoIV9yZWdl
eCkgCisgICAgICByZXR1cm47CisgIH0KIAogI2lmZGVmIFBDUkVfSU5GT19DQVBUVVJFQ09VTlQK
ICAgLy8gR2V0IG51bWJlciBvZiBzdWJwYXR0ZXJucyB0aGF0IHdpbGwgYmUgcmV0dXJuZWQuCkBA
IC0xNzMsNCArMTgxLDc4IEBACiAjZW5kaWYKIH0KIAorVVN0cmluZyBSZWdFeHA6OnNhbml0aXpl
UGF0dGVybihjb25zdCBVU3RyaW5nJiBwKQoreworICBVU3RyaW5nIG5ld1BhdHRlcm47CisgIAor
ICBpbnQgc3RhcnRQb3MgPSAwOworICBpbnQgcG9zID0gcC5maW5kKCJcXHUiLCAwKSArIDI7IC8v
IFNraXAgdGhlIFx1CisgIAorICB3aGlsZSAocG9zICE9IDEpIHsgLy8gcC5maW5kIGZhaWxpbmcg
aXMgLTEgKyAyID0gMSAKKyAgICBpZiAocG9zICsgMyA8IHAuc2l6ZSgpKSB7CisgICAgICBpZiAo
aXNIZXhEaWdpdChwW3Bvc10pICYmIGlzSGV4RGlnaXQocFtwb3MgKyAxXSkgJiYKKyAgICAgICAg
ICBpc0hleERpZ2l0KHBbcG9zICsgMl0pICYmIGlzSGV4RGlnaXQocFtwb3MgKyAzXSkpIHsKKyAg
ICAgICAgbmV3UGF0dGVybi5hcHBlbmQocC5zdWJzdHIoc3RhcnRQb3MsIHBvcyAtIHN0YXJ0UG9z
IC0gMikpOworICAgICAgICBVQ2hhciBlc2NhcGVkVW5pY29kZShjb252ZXJ0VW5pY29kZShwW3Bv
c10sIHBbcG9zICsgMV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwW3BvcyArIDJdLCBwW3BvcyArIDNdKSk7CisgICAgICAgIC8vIFx1IGVuY29kZWQgY2hh
cmFjdGVycyBzaG91bGQgYmUgdHJlYXRlZCBhcyBpZiB0aGV5IHdlcmUgZXNjYXBlZCwKKyAgICAg
ICAgLy8gc28gYWRkIGFuIGVzY2FwZSBmb3IgY2VydGFpbiBjaGFyYWN0ZXJzIHRoYXQgbmVlZCBp
dC4KKyAgICAgICAgc3dpdGNoIChlc2NhcGVkVW5pY29kZS51bmljb2RlKCkpIHsKKyAgICAgICAg
ICBjYXNlICd8JzoKKyAgICAgICAgICBjYXNlICcrJzoKKyAgICAgICAgICBjYXNlICcqJzoKKyAg
ICAgICAgICBjYXNlICcoJzoKKyAgICAgICAgICBjYXNlICcpJzoKKyAgICAgICAgICBjYXNlICdb
JzoKKyAgICAgICAgICBjYXNlICddJzoKKyAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICBj
YXNlICd9JzoKKyAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICBjYXNlICdcXCc6CisgICAg
ICAgICAgICBuZXdQYXR0ZXJuLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgfQorICAgICAgICBuZXdQ
YXR0ZXJuLmFwcGVuZChlc2NhcGVkVW5pY29kZSk7CisKKyAgICAgICAgc3RhcnRQb3MgPSBwb3Mg
KyA0OworICAgICAgfQorICAgIH0KKyAgICBwb3MgPSBwLmZpbmQoIlxcdSIsIHBvcykgKyAyOwor
ICB9CisgIG5ld1BhdHRlcm4uYXBwZW5kKHAuc3Vic3RyKHN0YXJ0UG9zLCBwLnNpemUoKSAtIHN0
YXJ0UG9zKSk7CisKKyAgcmV0dXJuIG5ld1BhdHRlcm47Cit9CisKK2Jvb2wgUmVnRXhwOjppc0hl
eERpZ2l0KFVDaGFyIHVjKQoreworICBpbnQgYyA9IHVjLnVuaWNvZGUoKTsKKyAgcmV0dXJuIChj
ID49ICcwJyAmJiBjIDw9ICc5JyB8fAorICAgICAgICAgIGMgPj0gJ2EnICYmIGMgPD0gJ2YnIHx8
CisgICAgICAgICAgYyA+PSAnQScgJiYgYyA8PSAnRicpOworfQorCit1bnNpZ25lZCBjaGFyIFJl
Z0V4cDo6Y29udmVydEhleChpbnQgYykKK3sKKyAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihjIC0gJzAnKTsKKyAgaWYgKGMg
Pj0gJ2EnICYmIGMgPD0gJ2YnKQorICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFy
PihjIC0gJ2EnICsgMTApOworICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYyAt
ICdBJyArIDEwKTsKK30KKwordW5zaWduZWQgY2hhciBSZWdFeHA6OmNvbnZlcnRIZXgoaW50IGMx
LCBpbnQgYzIpCit7CisgIHJldHVybiAoKGNvbnZlcnRIZXgoYzEpIDw8IDQpICsgY29udmVydEhl
eChjMikpOworfQorCitVQ2hhciBSZWdFeHA6OmNvbnZlcnRVbmljb2RlKFVDaGFyIHVjMSwgVUNo
YXIgdWMyLCBVQ2hhciB1YzMsIFVDaGFyIHVjNCkKK3sKKyAgaW50IGMxID0gdWMxLnVuaWNvZGUo
KTsKKyAgaW50IGMyID0gdWMyLnVuaWNvZGUoKTsKKyAgaW50IGMzID0gdWMzLnVuaWNvZGUoKTsK
KyAgaW50IGM0ID0gdWM0LnVuaWNvZGUoKTsKKyAgcmV0dXJuIFVDaGFyKChjb252ZXJ0SGV4KGMx
KSA8PCA0KSArIGNvbnZlcnRIZXgoYzIpLAorICAgICAgICAgICAgICAgKGNvbnZlcnRIZXgoYzMp
IDw8IDQpICsgY29udmVydEhleChjNCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBLSlMKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS9ranMvcmVnZXhwLmgJKHJldmlzaW9uIDE3NzQ2KQorKysgSmF2YVNjcmlwdENvcmUva2pzL3Jl
Z2V4cC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSwxMyBAQAogCiAgICAgUmVnRXhwKGNv
bnN0IFJlZ0V4cCAmKTsKICAgICBSZWdFeHAgJm9wZXJhdG9yPShjb25zdCBSZWdFeHAgJik7CisK
KyAgICBzdGF0aWMgVVN0cmluZyBzYW5pdGl6ZVBhdHRlcm4oY29uc3QgVVN0cmluZyYpOworCisg
ICAgc3RhdGljIGJvb2wgaXNIZXhEaWdpdChVQ2hhcik7CisgICAgc3RhdGljIHVuc2lnbmVkIGNo
YXIgY29udmVydEhleChpbnQpOworICAgIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnZlcnRIZXgo
aW50LCBpbnQpOworICAgIHN0YXRpYyBVQ2hhciBjb252ZXJ0VW5pY29kZShVQ2hhciwgVUNoYXIs
IFVDaGFyLCBVQ2hhcik7CiAgIH07CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9ranMvdXN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL3Vz
dHJpbmcuY3BwCShyZXZpc2lvbiAxNzc0NikKKysrIEphdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5n
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ5LDcgKzc0OSw3IEBACiAgICAgVUNoYXIgKmQgPSBz
dGF0aWNfY2FzdDxVQ2hhciAqPihmYXN0TWFsbG9jKHNpemVvZihVQ2hhcikgKiBuZXdDYXBhY2l0
eSkpOwogICAgIG1lbWNweShkLCBkYXRhKCksIGxlbmd0aCAqIHNpemVvZihVQ2hhcikpOwogICAg
IGRbbGVuZ3RoXSA9IGM7Ci0gICAgbV9yZXAgPSBSZXA6OmNyZWF0ZShkLCBsZW5ndGgpOworICAg
IG1fcmVwID0gUmVwOjpjcmVhdGUoZCwgbGVuZ3RoICsgMSk7CiAgICAgbV9yZXAtPmNhcGFjaXR5
ID0gbmV3Q2FwYWNpdHk7CiAgIH0KIApJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2xleGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2xleGVyLmgJKHJldmlzaW9uIDE3NzQ2
KQorKysgSmF2YVNjcmlwdENvcmUva2pzL2xleGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3
ICsxNDUsNyBAQAogICAgIGJvb2wgZXJyb3I7CiAKICAgICAvLyBjdXJyZW50IGFuZCBmb2xsb3dp
bmcgdW5pY29kZSBjaGFyYWN0ZXJzIChpbnQgdG8gYWxsb3cgZm9yIC0xIGZvciBlbmQtb2YtZmls
ZSBtYXJrZXIpCi0gICAgaW50IGN1cnJlbnQsIG5leHQxLCBuZXh0MiwgbmV4dDMsIG5leHQ0Owor
ICAgIGludCBjdXJyZW50LCBuZXh0MSwgbmV4dDIsIG5leHQzOwogCiAgICAgVVN0cmluZyAqKnN0
cmluZ3M7CiAgICAgdW5zaWduZWQgaW50IG51bVN0cmluZ3M7CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNzc0NikKKysrIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDM2IEBACisyMDA2LTExLTEzICBXLiBBbmR5IENhcnJlbCAgPHdhY0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFfS0lORF9WT0xVTlRFRVJfVEhBTktTLgorCisg
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTAxCisgICAg
ICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTAyCisgICAgICAg
ICoga2pzL2xleGVyLmNwcDoKKyAgICAgICAgKExleGVyOjpMZXhlcik6CisgICAgICAgIChMZXhl
cjo6c2V0Q29kZSk6CisgICAgICAgIChMZXhlcjo6c2hpZnQpOgorICAgICAgICAoTGV4ZXI6OnNj
YW5SZWdFeHApOgorICAgICAgICBQdXNoIFx1IHBhcnNpbmcgYmFjayBkb3duIGludG8gdGhlIFJl
Z0V4cCBvYmplY3QgcmF0aGVyIHRoYW4gaW4gdGhlCisgICAgICAgIHBhcnNlci4gVGhpcyBiYWNr
cyBvdXQgcjE3MzU0IGluIGZhdm9yIG9mIGEgbmV3IGZpeCB0aGF0IGJldHRlciAKKyAgICAgICAg
bWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2Ygb3RoZXIgYnJvd3NlcnMuCisKKyAgICAgICAgKiBranMv
bGV4ZXIuaDoKKyAgICAgICAgKiBranMvcmVnZXhwLmNwcDoKKyAgICAgICAgKEtKUzo6UmVnRXhw
OjpSZWdFeHApOgorICAgICAgICAoS0pTOjpzYW5pdGl6ZVBhdHRlcm4pOgorICAgICAgICAoS0pT
Ojppc0hleERpZ2l0KToKKyAgICAgICAgKEtKUzo6Y29udmVydEhleCk6CisgICAgICAgIChLSlM6
OmNvbnZlcnRVbmljb2RlKToKKyAgICAgICAgKiBranMvcmVnZXhwLmg6CisgICAgICAgIFRyYW5z
bGF0ZSBcdSBlc2NhcGVkIHVuaWNvZGUgY2hhcmFjdGVycyBmb3IgdGhlIGJlbmVmaXQgb2YgcGNy
ZS4KKworICAgICAgICAqIGtqcy91c3RyaW5nLmNwcDoKKyAgICAgICAgKEtKUzo6VVN0cmluZzo6
YXBwZW5kKToKKyAgICAgICAgRml4IGZhaWx1cmUgdG8gaW5jcmVtZW50IGxlbmd0aCBvbiB0aGUg
Zmlyc3QgVUNoYXIgYXBwZW5kZWQgdG8gYSAKKyAgICAgICAgVVN0cmluZyB0aGF0IHdhcyBjb3B5
LW9uLXdyaXRlLgorCisgICAgICAgICogdGVzdHMvbW96aWxsYS9lY21hXzIvUmVnRXhwL3Byb3Bl
cnRpZXMtMDAxLmpzOgorICAgICAgICBBZGp1c3QgdGVzdHMgYmFjayB0byB0aGUgdW5pZm9ybSBz
dGFuZGFyZHMuCisKIDIwMDYtMTEtMTIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpJbmRleDogSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW96aWxsYS9lY21hXzIvUmVnRXhwL3Byb3BlcnRpZXMtMDAxLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvZWNtYV8yL1JlZ0V4cC9wcm9wZXJ0
aWVzLTAwMS5qcwkocmV2aXNpb24gMTc3NDYpCisrKyBKYXZhU2NyaXB0Q29yZS90ZXN0cy9tb3pp
bGxhL2VjbWFfMi9SZWdFeHAvcHJvcGVydGllcy0wMDEuanMJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDcgKzIyLDcgQEAKICAgICBBZGRSZWdFeHBDYXNlcyggL1thLXpBLVowLTldKi9nbSwgIlthLXpB
LVowLTldKiIsIHRydWUsIGZhbHNlLCB0cnVlLCAwICk7CiAgICAgQWRkUmVnRXhwQ2FzZXMoIC94
fHl8ei9naW0sICJ4fHl8eiIsIHRydWUsIHRydWUsIHRydWUsIDAgKTsKIAotICAgIEFkZFJlZ0V4
cENhc2VzKCAvXHUwMDUxL2ltLCAiXHUwMDUxIiwgZmFsc2UsIHRydWUsIHRydWUsIDAgKTsKKyAg
ICBBZGRSZWdFeHBDYXNlcyggL1x1MDA1MS9pbSwgIlxcdTAwNTEiLCBmYWxzZSwgdHJ1ZSwgdHJ1
ZSwgMCApOwogICAgIEFkZFJlZ0V4cENhc2VzKCAvXHg0NS9nbSwgIlxceDQ1IiwgdHJ1ZSwgZmFs
c2UsIHRydWUsIDAgKTsKICAgICBBZGRSZWdFeHBDYXNlcyggL1wwOTcvZ2ksICJcXDA5NyIsIHRy
dWUsIHRydWUsIGZhbHNlLCAwICk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NzQ2KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDYt
MTEtMTMgIFcuIEFuZHkgQ2FycmVsICA8d2FjQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQV9LSU5EX1ZPTFVOVEVFUl9USEFOS1MuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MDEKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MDIKKyAgICAgICAgKiBmYXN0L2pzL2tkZS9SZWdFeHAt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxpbmct
ZXhwZWN0ZWQudHh0OgorICAgICAgICBBZGp1c3QgdGhlc2UgdGVzdCByZXN1bHRzIHRvIHBhc3Np
bmcgYXMgYSByZXN1bHQgb2Ygb3RoZXIgaW5jbHVkZWQKKyAgICAgICAgY2hhbmdlcyBpbiB0aGlz
IHJldmlzaW9uLgorCiAyMDA2LTExLTExICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBoeWF0dC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhw
LXVuaWNvZGUtaGFuZGxpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
Nzc0NikKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLXVuaWNvZGUtaGFuZGxpbmctZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCwzOSArMTAsMzkgQEAKIFBBU1MgaW5saW5l
UmUuc291cmNlIGlzIGV2YWxJbmxpbmVSZS5zb3VyY2UKIFBBU1MgaW5saW5lUmUuc291cmNlIGlz
IG5ld0Zyb21FdmFsSW5saW5lUmUuc291cmNlCiBQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBldmFs
RnJvbUV2YWxJbmxpbmVSZS5zb3VyY2UKLUZBSUwgaW5saW5lUmUuc291cmNlIHNob3VsZCBiZSAu
bVx1MjgyMHAgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIC5t4qCgcCAob2YgdHlwZSBzdHJpbmcpLgot
RkFJTCBpbmxpbmVSZS5zb3VyY2Ugc2hvdWxkIGJlIC5tXHUyODIwcCAob2YgdHlwZSBzdHJpbmcp
LiBXYXMgLm3ioKBwIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBl
eHBsaWNpdFJlLnNvdXJjZQorUEFTUyBpbmxpbmVSZS5zb3VyY2UgaXMgbmV3RnJvbUV4cGxpY2l0
UmUuc291cmNlCiBQQVNTIGlubGluZVJlLnNvdXJjZSBpcyBldmFsRnJvbUV4cGxpY2l0UmUuc291
cmNlCiBQQVNTIGlubGluZVJlLnRvU3RyaW5nKCkgaXMgbmV3RnJvbUlubGluZVJlLnRvU3RyaW5n
KCkKIFBBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBldmFsRnJvbUlubGluZVJlLnRvU3RyaW5n
KCkKIFBBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBldmFsSW5saW5lUmUudG9TdHJpbmcoKQog
UEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlzIG5ld0Zyb21FdmFsSW5saW5lUmUudG9TdHJpbmco
KQogUEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlzIGV2YWxGcm9tRXZhbElubGluZVJlLnRvU3Ry
aW5nKCkKLUZBSUwgaW5saW5lUmUudG9TdHJpbmcoKSBzaG91bGQgYmUgLy5tXHUyODIwcC8gKG9m
IHR5cGUgc3RyaW5nKS4gV2FzIC8ubeKgoHAvIChvZiB0eXBlIHN0cmluZykuCi1GQUlMIGlubGlu
ZVJlLnRvU3RyaW5nKCkgc2hvdWxkIGJlIC8ubVx1MjgyMHAvIChvZiB0eXBlIHN0cmluZykuIFdh
cyAvLm3ioKBwLyAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlz
IGV4cGxpY2l0UmUudG9TdHJpbmcoKQorUEFTUyBpbmxpbmVSZS50b1N0cmluZygpIGlzIG5ld0Zy
b21FeHBsaWNpdFJlLnRvU3RyaW5nKCkKIFBBU1MgaW5saW5lUmUudG9TdHJpbmcoKSBpcyBldmFs
RnJvbUV4cGxpY2l0UmUudG9TdHJpbmcoKQogUEFTUyBpbmxpbmVSZS5leGVjKHNhbXBsZSlbMF0g
aXMgJ2Jt4qCgcCcKIFBBU1MgZXZhbElubGluZVJlLmV4ZWMoc2FtcGxlKVswXSBpcyAnYm3ioKBw
JwotRkFJTCBleHBsaWNpdFJlLmV4ZWMoc2FtcGxlKVswXSBzaG91bGQgYmUgYm3ioKBwLiBUaHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBOdWxsIHZhbHVlCitQQVNTIGV4cGxpY2l0UmUuZXhlYyhz
YW1wbGUpWzBdIGlzICdibeKgoHAnCiBQQVNTIGJpbmxpbmVSZS5zb3VyY2UgaXMgYm5ld0Zyb21J
bmxpbmVSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBiZXZhbEZyb21JbmxpbmVS
ZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNvdXJjZSBpcyBiZXZhbElubGluZVJlLnNvdXJjZQog
UEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJuZXdGcm9tRXZhbElubGluZVJlLnNvdXJjZQogUEFT
UyBiaW5saW5lUmUuc291cmNlIGlzIGJldmFsRnJvbUV2YWxJbmxpbmVSZS5zb3VyY2UKLUZBSUwg
YmlubGluZVJlLnNvdXJjZSBzaG91bGQgYmUgLm1cdTAwN2NwIChvZiB0eXBlIHN0cmluZykuIFdh
cyAubXxwIChvZiB0eXBlIHN0cmluZykuCi1GQUlMIGJpbmxpbmVSZS5zb3VyY2Ugc2hvdWxkIGJl
IC5tXHUwMDdjcCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgLm18cCAob2YgdHlwZSBzdHJpbmcpLgor
UEFTUyBiaW5saW5lUmUuc291cmNlIGlzIGJleHBsaWNpdFJlLnNvdXJjZQorUEFTUyBiaW5saW5l
UmUuc291cmNlIGlzIGJuZXdGcm9tRXhwbGljaXRSZS5zb3VyY2UKIFBBU1MgYmlubGluZVJlLnNv
dXJjZSBpcyBiZXZhbEZyb21FeHBsaWNpdFJlLnNvdXJjZQogUEFTUyBiaW5saW5lUmUudG9TdHJp
bmcoKSBpcyBibmV3RnJvbUlubGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgYmlubGluZVJlLnRvU3Ry
aW5nKCkgaXMgYmV2YWxGcm9tSW5saW5lUmUudG9TdHJpbmcoKQogUEFTUyBiaW5saW5lUmUudG9T
dHJpbmcoKSBpcyBiZXZhbElubGluZVJlLnRvU3RyaW5nKCkKIFBBU1MgYmlubGluZVJlLnRvU3Ry
aW5nKCkgaXMgYm5ld0Zyb21FdmFsSW5saW5lUmUudG9TdHJpbmcoKQogUEFTUyBiaW5saW5lUmUu
dG9TdHJpbmcoKSBpcyBiZXZhbEZyb21FdmFsSW5saW5lUmUudG9TdHJpbmcoKQotRkFJTCBiaW5s
aW5lUmUudG9TdHJpbmcoKSBzaG91bGQgYmUgLy5tXHUwMDdjcC8gKG9mIHR5cGUgc3RyaW5nKS4g
V2FzIC8ubXxwLyAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBiaW5saW5lUmUudG9TdHJpbmcoKSBz
aG91bGQgYmUgLy5tXHUwMDdjcC8gKG9mIHR5cGUgc3RyaW5nKS4gV2FzIC8ubXxwLyAob2YgdHlw
ZSBzdHJpbmcpLgorUEFTUyBiaW5saW5lUmUudG9TdHJpbmcoKSBpcyBiZXhwbGljaXRSZS50b1N0
cmluZygpCitQQVNTIGJpbmxpbmVSZS50b1N0cmluZygpIGlzIGJuZXdGcm9tRXhwbGljaXRSZS50
b1N0cmluZygpCiBQQVNTIGJpbmxpbmVSZS50b1N0cmluZygpIGlzIGJldmFsRnJvbUV4cGxpY2l0
UmUudG9TdHJpbmcoKQotRkFJTCBiaW5saW5lUmUuZXhlYyhic2FtcGxlKVswXSBzaG91bGQgYmUg
Ym18cCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgYW0gKG9mIHR5cGUgc3RyaW5nKS4KLUZBSUwgYmV2
YWxJbmxpbmVSZS5leGVjKGJzYW1wbGUpWzBdIHNob3VsZCBiZSBibXxwIChvZiB0eXBlIHN0cmlu
ZykuIFdhcyBhbSAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBiZXhwbGljaXRSZS5leGVjKGJzYW1w
bGUpWzBdIHNob3VsZCBiZSBibXxwLiBUaHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOdWxsIHZh
bHVlCitQQVNTIGJpbmxpbmVSZS5leGVjKGJzYW1wbGUpWzBdIGlzICdibXxwJworUEFTUyBiZXZh
bElubGluZVJlLmV4ZWMoYnNhbXBsZSlbMF0gaXMgJ2JtfHAnCitQQVNTIGJleHBsaWNpdFJlLmV4
ZWMoYnNhbXBsZSlbMF0gaXMgJ2JtfHAnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMva2RlL1JlZ0V4cC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9rZGUvUmVnRXhw
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTc3NDYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2tk
ZS9SZWdFeHAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBACiBQ
QVNTIHZhciByMiA9IHJlZzsgcjIueCA9IDI7IHJlZy54IGlzIDIKIFBBU1Mgc3RyLm1hdGNoKHJl
KS50b1N0cmluZygpIGlzICdDaGFwdGVyIDMuNC41LjEsQ2hhcHRlciAzLjQuNS4xLC4xJwogUEFT
UyBzdHIubWF0Y2goL2QvZ2kpLnRvU3RyaW5nKCkgaXMgJ0QsZCcKLUZBSUwgL1x1MDA2MS8uc291
cmNlIHNob3VsZCBiZSBcdTAwNjEgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIGEgKG9mIHR5cGUgc3Ry
aW5nKS4KK1BBU1MgL1x1MDA2MS8uc291cmNlIGlzICdcXHUwMDYxJwogUEFTUyAnYWJjJy5tYXRj
aCgvXHUwMDYyLykudG9TdHJpbmcoKSBpcyAnYicKIEZBSUwgT2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5hcHBseShSZWdFeHAucHJvdG90eXBlKSBzaG91bGQgYmUgW29iamVjdCBSZWdFeHBdIChv
ZiB0eXBlIHN0cmluZykuIFdhcyBbb2JqZWN0IFJlZ0V4cFByb3RvdHlwZV0gKG9mIHR5cGUgc3Ry
aW5nKS4KIFBBU1MgdHlwZW9mIFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcoKSBpcyAnc3RyaW5n
Jwo=
</data>
<flag name="review"
          id="4072"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>