<?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>18634</bug_id>
          
          <creation_ts>2008-04-19 23:16:11 -0700</creation_ts>
          <short_desc>SQUIRRELFISH: correctly handle variable and function declarations in eval code</short_desc>
          <delta_ts>2008-04-22 20:17:27 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>18624</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78288</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-19 23:16:11 -0700</bug_when>
    <thetext>SquirrelFish currently doesn&apos;t correctly handle variable and function declarations in eval code. The problems are as follows:

1) Variables that are declared in eval code are not initialized to undefined at the beginning of the eval code block. This affects at least the following tests, in the simple form of a &quot;var MYVAR;&quot; declaration:

ecma/Expressions/11.3.1.js
ecma/Expressions/11.3.2.js
ecma/Expressions/11.4.4.js
ecma/Expressions/11.4.5.js

2) Variables defined in eval code are always initialized in global scope. This is a side effect of the above problem. If the first problem was fixed and undefined was stored in the slot of each new variable, then the code emitted for AssignResolveNode would find the right base for the variable and update that object correctly. We need to be careful here that we always use the right variable object, which is the activation object of the calling function in the case of direct eval inside of a function body, and the global object otherwise. We can&apos;t just grab the top of the scope chain thanks to &apos;with&apos;, and we no longer correctly track variable objects in ExecStates, but we should still be able to determine whether or not we are global code and grab the activation object of the calling function via callFrame[Machine::OptionalCalleeActivation] if we are not.

3) Function declarations in eval code don&apos;t work at all. I think this will be easily fixable once we fix the other two problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78367</commentid>
    <comment_count>1</comment_count>
      <attachid>20714</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-20 22:43:14 -0700</bug_when>
    <thetext>Created attachment 20714
Proposed patch for variable declarations

Here is a patch that adds support for variable declarations but not function declarations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78370</commentid>
    <comment_count>2</comment_count>
      <attachid>20714</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-04-20 23:17:31 -0700</bug_when>
    <thetext>Comment on attachment 20714
Proposed patch for variable declarations

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78371</commentid>
    <comment_count>3</comment_count>
      <attachid>20716</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-20 23:27:09 -0700</bug_when>
    <thetext>Created attachment 20716
Revised proposed patch

Made a minor change as per Maciej&apos;s suggestion on IRC. Strangely enough, this is a 1.5% performance progression on SunSpider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78373</commentid>
    <comment_count>4</comment_count>
      <attachid>20716</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-04-20 23:28:36 -0700</bug_when>
    <thetext>Comment on attachment 20716
Revised proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78376</commentid>
    <comment_count>5</comment_count>
      <attachid>20718</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-21 00:32:12 -0700</bug_when>
    <thetext>Created attachment 20718
Revised proposed patch

It turns out that the cause of the speedup was a GC bug in string-tagcloud, where the EvalCodeBlocks were not getting marked. Here is a patch that fixes the GC bug by treating EvalCodeBlocks like ProgramCodeBlocks. This time there is no difference on SunSpider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78377</commentid>
    <comment_count>6</comment_count>
      <attachid>20718</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-04-21 00:33:15 -0700</bug_when>
    <thetext>Comment on attachment 20718
Revised proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78503</commentid>
    <comment_count>7</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-21 22:19:32 -0700</bug_when>
    <thetext>This bug isn&apos;t quite fixed yet. The patch to support variable declarations landed in r32290, but there are still function declarations to support. I&apos;ll hopefully upload a patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78604</commentid>
    <comment_count>8</comment_count>
      <attachid>20761</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-22 19:16:42 -0700</bug_when>
    <thetext>Created attachment 20761
Proposed patch implementing function declarations in eval code

This patch implements function declarations in eval code. In the process, it fixes 12 JavaScriptCore test failures.

Should declaredVariables and declaredFunctions be declaredVariableIdentifiers and declaredFunctionIdentifiers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78608</commentid>
    <comment_count>9</comment_count>
      <attachid>20762</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-22 19:59:43 -0700</bug_when>
    <thetext>Created attachment 20762
Revised proposed patch

Here is the same patch with a slight change in naming to make things more clear. SunSpider reports a 0.5% performance progression from ToT, which is mostly concentrated on the math tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78609</commentid>
    <comment_count>10</comment_count>
      <attachid>20762</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-04-22 20:07:24 -0700</bug_when>
    <thetext>Comment on attachment 20762
Revised proposed patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20714</attachid>
            <date>2008-04-20 22:43:14 -0700</date>
            <delta_ts>2008-04-20 23:27:09 -0700</delta_ts>
            <desc>Proposed patch for variable declarations</desc>
            <filename>evalvar.diff</filename>
            <type>text/plain</type>
            <size>9923</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyMjg2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMDQt
MjAgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHZh
cmlhYmxlIGRlY2xhcmF0aW9ucyBpbiBldmFsIGNvZGUuCisKKyAgICAgICAgKiBWTS9Db2RlQmxv
Y2suaDoKKyAgICAgICAgKEtKUzo6RXZhbENvZGVCbG9jazo6RXZhbENvZGVCbG9jayk6CisgICAg
ICAgICogVk0vQ29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6
OkNvZGVHZW5lcmF0b3IpOgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAg
KiBWTS9NYWNoaW5lLmNwcDoKKyAgICAgICAgKEtKUzo6TWFjaGluZTo6ZXhlY3V0ZSk6CisgICAg
ICAgICogVk0vTWFjaGluZS5oOgorICAgICAgICAqIGtqcy9mdW5jdGlvbi5jcHA6CisgICAgICAg
IChLSlM6Omdsb2JhbEZ1bmNFdmFsKToKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAg
ICAoS0pTOjpFdmFsTm9kZTo6Z2VuZXJhdGVDb2RlKToKKyAgICAgICAgKiBranMvbm9kZXMuaDoK
KyAgICAgICAgKEtKUzo6RXZhbE5vZGU6Oik6CisKIDIwMDgtMDQtMjAgIEdlb2ZmcmV5IEdhcmVu
ICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IFZNL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0NvZGVCbG9jay5o
CShyZXZpc2lvbiAzMjI4NikKKysrIFZNL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTUsNiArMTE1LDE1IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0OyAvLyBGb3IgcHJvZ3JhbSBhbmQgZXZhbCBub2RlcywgdGhlIGdsb2JhbCBv
YmplY3QgdGhhdCBtYXJrcyB0aGUgY29uc3RhbnQgcG9vbC4KICAgICB9OwogCisgICAgc3RydWN0
IEV2YWxDb2RlQmxvY2sgOiBwdWJsaWMgQ29kZUJsb2NrIHsKKyAgICAgICAgRXZhbENvZGVCbG9j
ayhjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkxfLCBib29sIHVzZXNFdmFsXywgYm9vbCBuZWVkc0Ns
b3N1cmVfKQorICAgICAgICAgICAgOiBDb2RlQmxvY2soc291cmNlVVJMXywgdXNlc0V2YWxfLCBu
ZWVkc0Nsb3N1cmVfKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8SWRl
bnRpZmllcj4gZGVjbGFyZWRWYXJpYWJsZXM7CisgICAgfTsKKwogfSAvLyBuYW1lc3BhY2UgS0pT
CiAKICNlbmRpZiAvLyBDb2RlQmxvY2tfaApJbmRleDogVk0vQ29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDMyMjg2KQorKysgVk0v
Q29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCw3ICsyMzgsNyBAQCBDb2Rl
R2VuZXJhdG9yOjpDb2RlR2VuZXJhdG9yKEZ1bmN0aW9uQm9kCiAgICAgfQogfQogCi1Db2RlR2Vu
ZXJhdG9yOjpDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiBldmFsTm9kZSwgY29uc3QgU2NvcGVDaGFp
biYgc2NvcGVDaGFpbiwgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaykKK0NvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGV2YWxOb2RlLCBj
b25zdCBTY29wZUNoYWluJiBzY29wZUNoYWluLCBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUsIEV2
YWxDb2RlQmxvY2sqIGNvZGVCbG9jaywgVmFyU3RhY2smIHZhclN0YWNrKQogICAgIDogbV9zY29w
ZUNoYWluKCZzY29wZUNoYWluKQogICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkKICAg
ICAsIG1fc2NvcGVOb2RlKGV2YWxOb2RlKQpAQCAtMjUwLDYgKzI1MCw5IEBAIENvZGVHZW5lcmF0
b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGUKICAgICAsIG1fcHJvcGVydHlOYW1lcyhDb21t
b25JZGVudGlmaWVyczo6c2hhcmVkKCkpCiB7CiAgICAgYWRkVmFyKG1fcHJvcGVydHlOYW1lcy0+
dGhpc0lkZW50aWZpZXIpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFyU3Rh
Y2suc2l6ZSgpOyArK2kpCisgICAgICAgIGNvZGVCbG9jay0+ZGVjbGFyZWRWYXJpYWJsZXMuYXBw
ZW5kKHZhclN0YWNrW2ldLmZpcnN0KTsKIH0KIAogdm9pZCBDb2RlR2VuZXJhdG9yOjphZGRQYXJh
bWV0ZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzMjI4NikKKysrIFZN
L0NvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3Bh
Y2UgS0pTIHsKICAgICAgICAgCiAgICAgICAgIENvZGVHZW5lcmF0b3IoUHJvZ3JhbU5vZGUqLCBj
b25zdCBTY29wZUNoYWluJiwgU3ltYm9sVGFibGUqLCBDb2RlQmxvY2sqLCBWYXJTdGFjayYsIEZ1
bmN0aW9uU3RhY2smKTsKICAgICAgICAgQ29kZUdlbmVyYXRvcihGdW5jdGlvbkJvZHlOb2RlKiwg
Y29uc3QgU2NvcGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgQ29kZUJsb2NrKiwgVmFyU3RhY2smLCBG
dW5jdGlvblN0YWNrJiwgVmVjdG9yPElkZW50aWZpZXI+JiBwYXJhbWV0ZXJzKTsKLSAgICAgICAg
Q29kZUdlbmVyYXRvcihFdmFsTm9kZSosIGNvbnN0IFNjb3BlQ2hhaW4mLCBTeW1ib2xUYWJsZSos
IENvZGVCbG9jayopOworICAgICAgICBDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiwgY29uc3QgU2Nv
cGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgRXZhbENvZGVCbG9jayosIFZhclN0YWNrJik7CiAKICAg
ICAgICAgY29uc3QgQ29tbW9uSWRlbnRpZmllcnMmIHByb3BlcnR5TmFtZXMoKSBjb25zdCB7IHJl
dHVybiAqbV9wcm9wZXJ0eU5hbWVzOyB9CiAKSW5kZXg6IFZNL01hY2hpbmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFZNL01hY2hpbmUuY3BwCShyZXZpc2lvbiAzMjI4NikKKysrIFZNL01hY2hpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NzYsMTAgKzU3NiwyNSBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpl
eGVjdXRlKEZ1bmN0aW9uQm9keU5vCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1ZSog
TWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBpbnQgcmVnaXN0ZXJP
ZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBKU1ZhbHVlKiogZXhjZXB0aW9uKQor
SlNWYWx1ZSogTWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBpbnQg
cmVnaXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBKU1ZhbHVlKiogZXhj
ZXB0aW9uLCBKU09iamVjdCogdmFyaWFibGVPYmplY3QpCiB7Ci0gICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSAmZXZhbE5vZGUtPmNvZGUoc2NvcGVDaGFpbik7Ci0KKyAgICBFdmFsQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSAmZXZhbE5vZGUtPmNvZGUoc2NvcGVDaGFpbik7CisgICAgCisgICAgaWYg
KCF2YXJpYWJsZU9iamVjdCkgeworICAgICAgICBTY29wZUNoYWluTm9kZSogbm9kZTsKKyAgICAg
ICAgCisgICAgICAgIGZvciAobm9kZSA9IHNjb3BlQ2hhaW47ICFub2RlLT5vYmplY3QtPmlzQWN0
aXZhdGlvbk9iamVjdCgpICYmIG5vZGUtPm5leHQ7IG5vZGUgPSBub2RlLT5uZXh0KSB7IH0KKyAg
ICAgICAgdmFyaWFibGVPYmplY3QgPSBub2RlLT5vYmplY3Q7CisgICAgfQorICAgIAorICAgIGZv
ciAoVmVjdG9yPElkZW50aWZpZXI+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gY29kZUJsb2NrLT5k
ZWNsYXJlZFZhcmlhYmxlcy5iZWdpbigpOyBpdGVyICE9IGNvZGVCbG9jay0+ZGVjbGFyZWRWYXJp
YWJsZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBJZGVudGlmaWVyIGlkZW50ID0gKml0ZXI7
CisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OworICAgICAgICAKKyAgICAgICAgaWYgKCF2YXJp
YWJsZU9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KSkKKyAgICAgICAg
ICAgIHZhcmlhYmxlT2JqZWN0LT5wdXQoZXhlYywgaWRlbnQsIGpzVW5kZWZpbmVkKCkpOworICAg
IH0KKyAgICAKICAgICBzaXplX3Qgb2xkU2l6ZSA9IHJlZ2lzdGVyRmlsZS0+c2l6ZSgpOwogICAg
IHNpemVfdCBuZXdTaXplID0gcmVnaXN0ZXJPZmZzZXQgKyBjb2RlQmxvY2stPm51bVZhcnMgKyBj
b2RlQmxvY2stPm51bVRlbXBvcmFyaWVzOwogICAgIHJlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdTaXpl
KTsKQEAgLTU5MywyMiArNjA4LDEwIEBAIEpTVmFsdWUqIE1hY2hpbmU6OmV4ZWN1dGUoRXZhbE5v
ZGUqIGV2YWwKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU1ZhbHVlKiBNYWNoaW5lOjpleGVj
dXRlKEV2YWxOb2RlKiBldmFsTm9kZSwgRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09i
aiwgUmVnaXN0ZXJGaWxlU3RhY2sqIHJlZ2lzdGVyRmlsZVN0YWNrLCBTY29wZUNoYWluTm9kZSog
c2NvcGVDaGFpbiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbikKK0pTVmFsdWUqIE1hY2hpbmU6OmV4ZWN1
dGUoRXZhbE5vZGUqIGV2YWxOb2RlLCBFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2Jq
LCBSZWdpc3RlckZpbGVTdGFjayogcmVnaXN0ZXJGaWxlU3RhY2ssIFNjb3BlQ2hhaW5Ob2RlKiBz
Y29wZUNoYWluLCBKU1ZhbHVlKiogZXhjZXB0aW9uLCBKU09iamVjdCogdmFyaWFibGVPYmplY3Qp
CiB7CiAgICAgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpbGUgPSByZWdpc3RlckZpbGVTdGFjay0+
Y3VycmVudCgpOwotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gJmV2YWxOb2RlLT5jb2RlKHNj
b3BlQ2hhaW4pOwotCi0gICAgc2l6ZV90IG9sZFNpemUgPSByZWdpc3RlckZpbGUtPnNpemUoKTsK
LSAgICBzaXplX3QgbmV3U2l6ZSA9IG9sZFNpemUgKyBjb2RlQmxvY2stPm51bVZhcnMgKyBjb2Rl
QmxvY2stPm51bVRlbXBvcmFyaWVzOwotICAgIHJlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdTaXplKTsK
LSAgICBSZWdpc3RlciogciA9ICgqcmVnaXN0ZXJGaWxlLT5iYXNlUG9pbnRlcigpKSArIG9sZFNp
emUgKyBjb2RlQmxvY2stPm51bVZhcnM7Ci0gICAgCi0gICAgcltQcm9ncmFtQ29kZVRoaXNSZWdp
c3Rlcl0udS5qc1ZhbHVlID0gdGhpc09iajsKLSAgICBKU1ZhbHVlKiByZXN1bHQgPSBwcml2YXRl
RXhlY3V0ZShOb3JtYWwsIGV4ZWMsIHJlZ2lzdGVyRmlsZSwgciwgc2NvcGVDaGFpbiwgY29kZUJs
b2NrLCBleGNlcHRpb24pOwotICAgIAotICAgIHJlZ2lzdGVyRmlsZS0+c2hyaW5rKG9sZFNpemUp
OwotICAgIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIE1hY2hpbmU6OmV4ZWN1dGUo
ZXZhbE5vZGUsIGV4ZWMsIHRoaXNPYmosIHJlZ2lzdGVyRmlsZSwgcmVnaXN0ZXJGaWxlLT5zaXpl
KCksIHNjb3BlQ2hhaW4sIGV4Y2VwdGlvbiwgdmFyaWFibGVPYmplY3QpOwogfQogCiBKU1ZhbHVl
KiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpb25GbGFnIGZsYWcsIEV4ZWNTdGF0ZSog
ZXhlYywgUmVnaXN0ZXJGaWxlKiByZWdpc3RlckZpbGUsIFJlZ2lzdGVyKiByLCBTY29wZUNoYWlu
Tm9kZSogc2NvcGVDaGFpbiwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpTVmFsdWUqKiBleGNlcHRp
b24pCkluZGV4OiBWTS9NYWNoaW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vTWFjaGluZS5oCShyZXZp
c2lvbiAzMjI4NikKKysrIFZNL01hY2hpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtODAsOCArODAs
OCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgCiAgICAgICAgIEpTVmFsdWUqIGV4ZWN1dGUo
UHJvZ3JhbU5vZGUqLCBFeGVjU3RhdGUqLCBKU09iamVjdCogdGhpc09iaiwgUmVnaXN0ZXJGaWxl
U3RhY2sqLCBTY29wZUNoYWluKiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbik7CiAgICAgICAgIEpTVmFs
dWUqIGV4ZWN1dGUoRnVuY3Rpb25Cb2R5Tm9kZSosIGNvbnN0IExpc3QmIGFyZ3MsIEpTT2JqZWN0
KiB0aGlzT2JqLCBFeGVjU3RhdGUqLCBSZWdpc3RlckZpbGVTdGFjayosIFNjb3BlQ2hhaW4qLCBK
U1ZhbHVlKiogZXhjZXB0aW9uKTsKLSAgICAgICAgSlNWYWx1ZSogZXhlY3V0ZShFdmFsTm9kZSos
IEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiB0aGlzT2JqLCBSZWdpc3RlckZpbGUqLCBpbnQgcmVnaXN0
ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbik7Ci0gICAgICAg
IEpTVmFsdWUqIGV4ZWN1dGUoRXZhbE5vZGUqLCBFeGVjU3RhdGUqLCBKU09iamVjdCogdGhpc09i
aiwgUmVnaXN0ZXJGaWxlU3RhY2sqLCBTY29wZUNoYWluTm9kZSosIEpTVmFsdWUqKiBleGNlcHRp
b24pOworICAgICAgICBKU1ZhbHVlKiBleGVjdXRlKEV2YWxOb2RlKiwgRXhlY1N0YXRlKiwgSlNP
YmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZSosIGludCByZWdpc3Rlck9mZnNldCwgU2NvcGVD
aGFpbk5vZGUqLCBKU1ZhbHVlKiogZXhjZXB0aW9uLCBKU09iamVjdCogdmFyaWFibGVPYmplY3Qg
PSAwKTsKKyAgICAgICAgSlNWYWx1ZSogZXhlY3V0ZShFdmFsTm9kZSosIEV4ZWNTdGF0ZSosIEpT
T2JqZWN0KiB0aGlzT2JqLCBSZWdpc3RlckZpbGVTdGFjayosIFNjb3BlQ2hhaW5Ob2RlKiwgSlNW
YWx1ZSoqIGV4Y2VwdGlvbiwgSlNPYmplY3QqIHZhcmlhYmxlT2JqZWN0KTsKICAgICAgICAgCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdHlwZWRlZiBlbnVtIHsgTm9ybWFsLCBJbml0aWFsaXplQW5k
UmV0dXJuIH0gRXhlY3V0aW9uRmxhZzsKSW5kZXg6IGtqcy9mdW5jdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga2pzL2Z1bmN0aW9uLmNwcAkocmV2aXNpb24gMzIyODYpCisrKyBranMvZnVuY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MjIsNyArNzIyLDcgQEAgSlNWYWx1ZSogZ2xvYmFsRnVu
Y0V2YWwoRXhlY1N0YXRlKiBleGVjLAogICAgIEV2YWxFeGVjU3RhdGUgbmV3RXhlYyhnbG9iYWxP
YmplY3QsIHRoaXNPYmosIGV2YWxOb2RlLmdldCgpLCBleGVjLCBzY29wZUNoYWluLCBnbG9iYWxP
YmplY3QpOwogCiAgICAgSlNWYWx1ZSogZXhjZXB0aW9uID0gMDsKLSAgICBKU1ZhbHVlKiB2YWx1
ZSA9IG1hY2hpbmUoKS5leGVjdXRlKGV2YWxOb2RlLmdldCgpLCAmbmV3RXhlYywgdGhpc09iaiwg
Jm5ld0V4ZWMuZHluYW1pY0dsb2JhbE9iamVjdCgpLT5yZWdpc3RlckZpbGVTdGFjaygpLCBzY29w
ZUNoYWluLm5vZGUoKSwgJmV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSogdmFsdWUgPSBtYWNoaW5l
KCkuZXhlY3V0ZShldmFsTm9kZS5nZXQoKSwgJm5ld0V4ZWMsIHRoaXNPYmosICZuZXdFeGVjLmR5
bmFtaWNHbG9iYWxPYmplY3QoKS0+cmVnaXN0ZXJGaWxlU3RhY2soKSwgc2NvcGVDaGFpbi5ub2Rl
KCksICZleGNlcHRpb24sIGdsb2JhbE9iamVjdCk7CiAKICNpZiBKQVZBU0NSSVBUX1BST0ZJTElO
RwogICAgIFByb2ZpbGVyOjpwcm9maWxlcigpLT5kaWRFeGVjdXRlKGV4ZWMsIFVTdHJpbmcoKSwg
MCk7CkluZGV4OiBranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9ub2Rlcy5jcHAJKHJl
dmlzaW9uIDMyMjg2KQorKysga2pzL25vZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY1MSwx
MiArNTY1MSwxMCBAQCBSZWdpc3RlcklEKiBFdmFsTm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVyCiB2
b2lkIEV2YWxOb2RlOjpnZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqIHNjKQogewogICAgIFNj
b3BlQ2hhaW4gc2NvcGVDaGFpbihzYyk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4oc2NvcGVDaGFpbi5ib3R0b20oKSk7Ci0g
ICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+aXNHbG9iYWxPYmplY3QoKSk7CiAgICAgCi0gICAgbV9j
b2RlLnNldChuZXcgUHJvZ3JhbUNvZGVCbG9jayhzb3VyY2VVUkwoKSwgdXNlc0V2YWwoKSwgbmVl
ZHNDbG9zdXJlKCksIGdsb2JhbE9iamVjdCkpOworICAgIG1fY29kZS5zZXQobmV3IEV2YWxDb2Rl
QmxvY2soc291cmNlVVJMKCksIHVzZXNFdmFsKCksIG5lZWRzQ2xvc3VyZSgpKSk7CiAgICAgCi0g
ICAgQ29kZUdlbmVyYXRvciBnZW5lcmF0b3IodGhpcywgc2NvcGVDaGFpbiwgbmV3IFN5bWJvbFRh
YmxlKCksIG1fY29kZS5nZXQoKSk7CisgICAgQ29kZUdlbmVyYXRvciBnZW5lcmF0b3IodGhpcywg
c2NvcGVDaGFpbiwgbmV3IFN5bWJvbFRhYmxlKCksIG1fY29kZS5nZXQoKSwgbV92YXJTdGFjayk7
CiAgICAgZ2VuZXJhdG9yLmdlbmVyYXRlKCk7CiAKICAgICBtX2NoaWxkcmVuLnNocmlua0NhcGFj
aXR5KDApOwpJbmRleDoga2pzL25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL25vZGVzLmgJKHJl
dmlzaW9uIDMyMjg2KQorKysga2pzL25vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUw
LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgY2xhc3MgQ29uc3REZWNsTm9kZTsKICAgICBjbGFz
cyBGdW5jRGVjbE5vZGU7CiAgICAgY2xhc3MgTm9kZTsKKyAgICBjbGFzcyBFdmFsQ29kZUJsb2Nr
OwogICAgIGNsYXNzIFByb2dyYW1Db2RlQmxvY2s7CiAgICAgY2xhc3MgUHJvcGVydHlMaXN0Tm9k
ZTsKICAgICBjbGFzcyBTb3VyY2VTdHJlYW07CkBAIC0yOTgzLDcgKzI5ODQsNyBAQCBuYW1lc3Bh
Y2UgS0pTIHsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSogZXhlY3V0ZShFeGVj
U3RhdGUqKSBLSlNfRkFTVF9DQUxMOwogCi0gICAgICAgIFByb2dyYW1Db2RlQmxvY2smIGNvZGUo
U2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pIEtKU19GQVNUX0NBTEwKKyAgICAgICAgRXZhbENv
ZGVCbG9jayYgY29kZShTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbikgS0pTX0ZBU1RfQ0FMTAog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY29kZSkKICAgICAgICAgICAgICAgICBnZW5l
cmF0ZUNvZGUoc2NvcGVDaGFpbik7CkBAIC0yOTk3LDcgKzI5OTgsNyBAQCBuYW1lc3BhY2UgS0pT
IHsKICAgICAgICAgdm9pZCBnZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqKSBLSlNfRkFTVF9D
QUxMOwogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRDb2RlKENvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7CiAKLSAgICAgICAgT3duUHRyPFByb2dy
YW1Db2RlQmxvY2s+IG1fY29kZTsKKyAgICAgICAgT3duUHRyPEV2YWxDb2RlQmxvY2s+IG1fY29k
ZTsKICAgICB9OwogCiAgICAgY2xhc3MgRnVuY3Rpb25Cb2R5Tm9kZSA6IHB1YmxpYyBTY29wZU5v
ZGUgewo=
</data>
<flag name="review"
          id="9054"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20716</attachid>
            <date>2008-04-20 23:27:09 -0700</date>
            <delta_ts>2008-04-21 00:32:12 -0700</delta_ts>
            <desc>Revised proposed patch</desc>
            <filename>evalvar.diff</filename>
            <type>text/plain</type>
            <size>9885</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyMjg2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMDQt
MjAgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHZh
cmlhYmxlIGRlY2xhcmF0aW9ucyBpbiBldmFsIGNvZGUuCisKKyAgICAgICAgKiBWTS9Db2RlQmxv
Y2suaDoKKyAgICAgICAgKEtKUzo6RXZhbENvZGVCbG9jazo6RXZhbENvZGVCbG9jayk6CisgICAg
ICAgICogVk0vQ29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6
OkNvZGVHZW5lcmF0b3IpOgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAg
KiBWTS9NYWNoaW5lLmNwcDoKKyAgICAgICAgKEtKUzo6TWFjaGluZTo6ZXhlY3V0ZSk6CisgICAg
ICAgICogVk0vTWFjaGluZS5oOgorICAgICAgICAqIGtqcy9mdW5jdGlvbi5jcHA6CisgICAgICAg
IChLSlM6Omdsb2JhbEZ1bmNFdmFsKToKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAg
ICAoS0pTOjpFdmFsTm9kZTo6Z2VuZXJhdGVDb2RlKToKKyAgICAgICAgKiBranMvbm9kZXMuaDoK
KyAgICAgICAgKEtKUzo6RXZhbE5vZGU6Oik6CisKIDIwMDgtMDQtMjAgIEdlb2ZmcmV5IEdhcmVu
ICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IFZNL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0NvZGVCbG9jay5o
CShyZXZpc2lvbiAzMjI4NikKKysrIFZNL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTUsNiArMTE1LDE1IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0OyAvLyBGb3IgcHJvZ3JhbSBhbmQgZXZhbCBub2RlcywgdGhlIGdsb2JhbCBv
YmplY3QgdGhhdCBtYXJrcyB0aGUgY29uc3RhbnQgcG9vbC4KICAgICB9OwogCisgICAgc3RydWN0
IEV2YWxDb2RlQmxvY2sgOiBwdWJsaWMgQ29kZUJsb2NrIHsKKyAgICAgICAgRXZhbENvZGVCbG9j
ayhjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkxfLCBib29sIHVzZXNFdmFsXywgYm9vbCBuZWVkc0Ns
b3N1cmVfKQorICAgICAgICAgICAgOiBDb2RlQmxvY2soc291cmNlVVJMXywgdXNlc0V2YWxfLCBu
ZWVkc0Nsb3N1cmVfKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8SWRl
bnRpZmllcj4gZGVjbGFyZWRWYXJpYWJsZXM7CisgICAgfTsKKwogfSAvLyBuYW1lc3BhY2UgS0pT
CiAKICNlbmRpZiAvLyBDb2RlQmxvY2tfaApJbmRleDogVk0vQ29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDMyMjg2KQorKysgVk0v
Q29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCw3ICsyMzgsNyBAQCBDb2Rl
R2VuZXJhdG9yOjpDb2RlR2VuZXJhdG9yKEZ1bmN0aW9uQm9kCiAgICAgfQogfQogCi1Db2RlR2Vu
ZXJhdG9yOjpDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiBldmFsTm9kZSwgY29uc3QgU2NvcGVDaGFp
biYgc2NvcGVDaGFpbiwgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaykKK0NvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGV2YWxOb2RlLCBj
b25zdCBTY29wZUNoYWluJiBzY29wZUNoYWluLCBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUsIEV2
YWxDb2RlQmxvY2sqIGNvZGVCbG9jaywgVmFyU3RhY2smIHZhclN0YWNrKQogICAgIDogbV9zY29w
ZUNoYWluKCZzY29wZUNoYWluKQogICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkKICAg
ICAsIG1fc2NvcGVOb2RlKGV2YWxOb2RlKQpAQCAtMjUwLDYgKzI1MCw5IEBAIENvZGVHZW5lcmF0
b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGUKICAgICAsIG1fcHJvcGVydHlOYW1lcyhDb21t
b25JZGVudGlmaWVyczo6c2hhcmVkKCkpCiB7CiAgICAgYWRkVmFyKG1fcHJvcGVydHlOYW1lcy0+
dGhpc0lkZW50aWZpZXIpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFyU3Rh
Y2suc2l6ZSgpOyArK2kpCisgICAgICAgIGNvZGVCbG9jay0+ZGVjbGFyZWRWYXJpYWJsZXMuYXBw
ZW5kKHZhclN0YWNrW2ldLmZpcnN0KTsKIH0KIAogdm9pZCBDb2RlR2VuZXJhdG9yOjphZGRQYXJh
bWV0ZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzMjI4NikKKysrIFZN
L0NvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3Bh
Y2UgS0pTIHsKICAgICAgICAgCiAgICAgICAgIENvZGVHZW5lcmF0b3IoUHJvZ3JhbU5vZGUqLCBj
b25zdCBTY29wZUNoYWluJiwgU3ltYm9sVGFibGUqLCBDb2RlQmxvY2sqLCBWYXJTdGFjayYsIEZ1
bmN0aW9uU3RhY2smKTsKICAgICAgICAgQ29kZUdlbmVyYXRvcihGdW5jdGlvbkJvZHlOb2RlKiwg
Y29uc3QgU2NvcGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgQ29kZUJsb2NrKiwgVmFyU3RhY2smLCBG
dW5jdGlvblN0YWNrJiwgVmVjdG9yPElkZW50aWZpZXI+JiBwYXJhbWV0ZXJzKTsKLSAgICAgICAg
Q29kZUdlbmVyYXRvcihFdmFsTm9kZSosIGNvbnN0IFNjb3BlQ2hhaW4mLCBTeW1ib2xUYWJsZSos
IENvZGVCbG9jayopOworICAgICAgICBDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiwgY29uc3QgU2Nv
cGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgRXZhbENvZGVCbG9jayosIFZhclN0YWNrJik7CiAKICAg
ICAgICAgY29uc3QgQ29tbW9uSWRlbnRpZmllcnMmIHByb3BlcnR5TmFtZXMoKSBjb25zdCB7IHJl
dHVybiAqbV9wcm9wZXJ0eU5hbWVzOyB9CiAKSW5kZXg6IFZNL01hY2hpbmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFZNL01hY2hpbmUuY3BwCShyZXZpc2lvbiAzMjI4NikKKysrIFZNL01hY2hpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NzYsMTAgKzU3NiwyNCBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpl
eGVjdXRlKEZ1bmN0aW9uQm9keU5vCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1ZSog
TWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBpbnQgcmVnaXN0ZXJP
ZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBKU1ZhbHVlKiogZXhjZXB0aW9uKQor
SlNWYWx1ZSogTWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBpbnQg
cmVnaXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBKU1ZhbHVlKiogZXhj
ZXB0aW9uLCBKU09iamVjdCogdmFyaWFibGVPYmplY3QpCiB7Ci0gICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSAmZXZhbE5vZGUtPmNvZGUoc2NvcGVDaGFpbik7Ci0KKyAgICBFdmFsQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSAmZXZhbE5vZGUtPmNvZGUoc2NvcGVDaGFpbik7CisgICAgCisgICAgaWYg
KCF2YXJpYWJsZU9iamVjdCkgeworICAgICAgICBTY29wZUNoYWluTm9kZSogbm9kZTsKKyAgICAg
ICAgCisgICAgICAgIGZvciAobm9kZSA9IHNjb3BlQ2hhaW47ICFub2RlLT5vYmplY3QtPmlzQWN0
aXZhdGlvbk9iamVjdCgpICYmIG5vZGUtPm5leHQ7IG5vZGUgPSBub2RlLT5uZXh0KSB7IH0KKyAg
ICAgICAgdmFyaWFibGVPYmplY3QgPSBub2RlLT5vYmplY3Q7CisgICAgfQorICAgIAorICAgIGZv
ciAoVmVjdG9yPElkZW50aWZpZXI+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gY29kZUJsb2NrLT5k
ZWNsYXJlZFZhcmlhYmxlcy5iZWdpbigpOyBpdGVyICE9IGNvZGVCbG9jay0+ZGVjbGFyZWRWYXJp
YWJsZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBJZGVudGlmaWVyIGlkZW50ID0gKml0ZXI7
CisgICAgICAgIAorICAgICAgICBpZiAoIXZhcmlhYmxlT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVj
LCBpZGVudCkpCisgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0KGV4ZWMsIGlkZW50LCBq
c1VuZGVmaW5lZCgpKTsKKyAgICB9CisgICAgCiAgICAgc2l6ZV90IG9sZFNpemUgPSByZWdpc3Rl
ckZpbGUtPnNpemUoKTsKICAgICBzaXplX3QgbmV3U2l6ZSA9IHJlZ2lzdGVyT2Zmc2V0ICsgY29k
ZUJsb2NrLT5udW1WYXJzICsgY29kZUJsb2NrLT5udW1UZW1wb3JhcmllczsKICAgICByZWdpc3Rl
ckZpbGUtPmdyb3cobmV3U2l6ZSk7CkBAIC01OTMsMjIgKzYwNywxMCBAQCBKU1ZhbHVlKiBNYWNo
aW5lOjpleGVjdXRlKEV2YWxOb2RlKiBldmFsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNW
YWx1ZSogTWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZVN0YWNrKiByZWdpc3RlckZpbGVTdGFj
aywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4sIEpTVmFsdWUqKiBleGNlcHRpb24pCitKU1Zh
bHVlKiBNYWNoaW5lOjpleGVjdXRlKEV2YWxOb2RlKiBldmFsTm9kZSwgRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogdGhpc09iaiwgUmVnaXN0ZXJGaWxlU3RhY2sqIHJlZ2lzdGVyRmlsZVN0YWNr
LCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbiwgSlNPYmpl
Y3QqIHZhcmlhYmxlT2JqZWN0KQogewogICAgIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlID0g
cmVnaXN0ZXJGaWxlU3RhY2stPmN1cnJlbnQoKTsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
ICZldmFsTm9kZS0+Y29kZShzY29wZUNoYWluKTsKLQotICAgIHNpemVfdCBvbGRTaXplID0gcmVn
aXN0ZXJGaWxlLT5zaXplKCk7Ci0gICAgc2l6ZV90IG5ld1NpemUgPSBvbGRTaXplICsgY29kZUJs
b2NrLT5udW1WYXJzICsgY29kZUJsb2NrLT5udW1UZW1wb3JhcmllczsKLSAgICByZWdpc3RlckZp
bGUtPmdyb3cobmV3U2l6ZSk7Ci0gICAgUmVnaXN0ZXIqIHIgPSAoKnJlZ2lzdGVyRmlsZS0+YmFz
ZVBvaW50ZXIoKSkgKyBvbGRTaXplICsgY29kZUJsb2NrLT5udW1WYXJzOwotICAgIAotICAgIHJb
UHJvZ3JhbUNvZGVUaGlzUmVnaXN0ZXJdLnUuanNWYWx1ZSA9IHRoaXNPYmo7Ci0gICAgSlNWYWx1
ZSogcmVzdWx0ID0gcHJpdmF0ZUV4ZWN1dGUoTm9ybWFsLCBleGVjLCByZWdpc3RlckZpbGUsIHIs
IHNjb3BlQ2hhaW4sIGNvZGVCbG9jaywgZXhjZXB0aW9uKTsKLSAgICAKLSAgICByZWdpc3RlckZp
bGUtPnNocmluayhvbGRTaXplKTsKLSAgICAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVy
biBNYWNoaW5lOjpleGVjdXRlKGV2YWxOb2RlLCBleGVjLCB0aGlzT2JqLCByZWdpc3RlckZpbGUs
IHJlZ2lzdGVyRmlsZS0+c2l6ZSgpLCBzY29wZUNoYWluLCBleGNlcHRpb24sIHZhcmlhYmxlT2Jq
ZWN0KTsKIH0KIAogSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9uRmxh
ZyBmbGFnLCBFeGVjU3RhdGUqIGV4ZWMsIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBSZWdp
c3RlciogciwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4sIENvZGVCbG9jayogY29kZUJsb2Nr
LCBKU1ZhbHVlKiogZXhjZXB0aW9uKQpJbmRleDogVk0vTWFjaGluZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFZNL01hY2hpbmUuaAkocmV2aXNpb24gMzIyODYpCisrKyBWTS9NYWNoaW5lLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTgwLDggKzgwLDggQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIAogICAgICAg
ICBKU1ZhbHVlKiBleGVjdXRlKFByb2dyYW1Ob2RlKiwgRXhlY1N0YXRlKiwgSlNPYmplY3QqIHRo
aXNPYmosIFJlZ2lzdGVyRmlsZVN0YWNrKiwgU2NvcGVDaGFpbiosIEpTVmFsdWUqKiBleGNlcHRp
b24pOwogICAgICAgICBKU1ZhbHVlKiBleGVjdXRlKEZ1bmN0aW9uQm9keU5vZGUqLCBjb25zdCBM
aXN0JiBhcmdzLCBKU09iamVjdCogdGhpc09iaiwgRXhlY1N0YXRlKiwgUmVnaXN0ZXJGaWxlU3Rh
Y2sqLCBTY29wZUNoYWluKiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbik7Ci0gICAgICAgIEpTVmFsdWUq
IGV4ZWN1dGUoRXZhbE5vZGUqLCBFeGVjU3RhdGUqLCBKU09iamVjdCogdGhpc09iaiwgUmVnaXN0
ZXJGaWxlKiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBTY29wZUNoYWluTm9kZSosIEpTVmFsdWUqKiBl
eGNlcHRpb24pOwotICAgICAgICBKU1ZhbHVlKiBleGVjdXRlKEV2YWxOb2RlKiwgRXhlY1N0YXRl
KiwgSlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZVN0YWNrKiwgU2NvcGVDaGFpbk5vZGUq
LCBKU1ZhbHVlKiogZXhjZXB0aW9uKTsKKyAgICAgICAgSlNWYWx1ZSogZXhlY3V0ZShFdmFsTm9k
ZSosIEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiB0aGlzT2JqLCBSZWdpc3RlckZpbGUqLCBpbnQgcmVn
aXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbiwgSlNPYmpl
Y3QqIHZhcmlhYmxlT2JqZWN0ID0gMCk7CisgICAgICAgIEpTVmFsdWUqIGV4ZWN1dGUoRXZhbE5v
ZGUqLCBFeGVjU3RhdGUqLCBKU09iamVjdCogdGhpc09iaiwgUmVnaXN0ZXJGaWxlU3RhY2sqLCBT
Y29wZUNoYWluTm9kZSosIEpTVmFsdWUqKiBleGNlcHRpb24sIEpTT2JqZWN0KiB2YXJpYWJsZU9i
amVjdCk7CiAgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIHR5cGVkZWYgZW51bSB7IE5v
cm1hbCwgSW5pdGlhbGl6ZUFuZFJldHVybiB9IEV4ZWN1dGlvbkZsYWc7CkluZGV4OiBranMvZnVu
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9mdW5jdGlvbi5jcHAJKHJldmlzaW9uIDMyMjg2
KQorKysga2pzL2Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIyLDcgKzcyMiw3IEBA
IEpTVmFsdWUqIGdsb2JhbEZ1bmNFdmFsKEV4ZWNTdGF0ZSogZXhlYywKICAgICBFdmFsRXhlY1N0
YXRlIG5ld0V4ZWMoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqLCBldmFsTm9kZS5nZXQoKSwgZXhlYywg
c2NvcGVDaGFpbiwgZ2xvYmFsT2JqZWN0KTsKIAogICAgIEpTVmFsdWUqIGV4Y2VwdGlvbiA9IDA7
Ci0gICAgSlNWYWx1ZSogdmFsdWUgPSBtYWNoaW5lKCkuZXhlY3V0ZShldmFsTm9kZS5nZXQoKSwg
Jm5ld0V4ZWMsIHRoaXNPYmosICZuZXdFeGVjLmR5bmFtaWNHbG9iYWxPYmplY3QoKS0+cmVnaXN0
ZXJGaWxlU3RhY2soKSwgc2NvcGVDaGFpbi5ub2RlKCksICZleGNlcHRpb24pOworICAgIEpTVmFs
dWUqIHZhbHVlID0gbWFjaGluZSgpLmV4ZWN1dGUoZXZhbE5vZGUuZ2V0KCksICZuZXdFeGVjLCB0
aGlzT2JqLCAmbmV3RXhlYy5keW5hbWljR2xvYmFsT2JqZWN0KCktPnJlZ2lzdGVyRmlsZVN0YWNr
KCksIHNjb3BlQ2hhaW4ubm9kZSgpLCAmZXhjZXB0aW9uLCBnbG9iYWxPYmplY3QpOwogCiAjaWYg
SkFWQVNDUklQVF9QUk9GSUxJTkcKICAgICBQcm9maWxlcjo6cHJvZmlsZXIoKS0+ZGlkRXhlY3V0
ZShleGVjLCBVU3RyaW5nKCksIDApOwpJbmRleDoga2pzL25vZGVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBranMvbm9kZXMuY3BwCShyZXZpc2lvbiAzMjI4NikKKysrIGtqcy9ub2Rlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2NTEsMTIgKzU2NTEsMTAgQEAgUmVnaXN0ZXJJRCogRXZhbE5vZGU6OmVt
aXRDb2RlKENvZGVHZW5lcgogdm9pZCBFdmFsTm9kZTo6Z2VuZXJhdGVDb2RlKFNjb3BlQ2hhaW5O
b2RlKiBzYykKIHsKICAgICBTY29wZUNoYWluIHNjb3BlQ2hhaW4oc2MpOwotICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KHNjb3Bl
Q2hhaW4uYm90dG9tKCkpOwotICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPmlzR2xvYmFsT2JqZWN0
KCkpOwogICAgIAotICAgIG1fY29kZS5zZXQobmV3IFByb2dyYW1Db2RlQmxvY2soc291cmNlVVJM
KCksIHVzZXNFdmFsKCksIG5lZWRzQ2xvc3VyZSgpLCBnbG9iYWxPYmplY3QpKTsKKyAgICBtX2Nv
ZGUuc2V0KG5ldyBFdmFsQ29kZUJsb2NrKHNvdXJjZVVSTCgpLCB1c2VzRXZhbCgpLCBuZWVkc0Ns
b3N1cmUoKSkpOwogICAgIAotICAgIENvZGVHZW5lcmF0b3IgZ2VuZXJhdG9yKHRoaXMsIHNjb3Bl
Q2hhaW4sIG5ldyBTeW1ib2xUYWJsZSgpLCBtX2NvZGUuZ2V0KCkpOworICAgIENvZGVHZW5lcmF0
b3IgZ2VuZXJhdG9yKHRoaXMsIHNjb3BlQ2hhaW4sIG5ldyBTeW1ib2xUYWJsZSgpLCBtX2NvZGUu
Z2V0KCksIG1fdmFyU3RhY2spOwogICAgIGdlbmVyYXRvci5nZW5lcmF0ZSgpOwogCiAgICAgbV9j
aGlsZHJlbi5zaHJpbmtDYXBhY2l0eSgwKTsKSW5kZXg6IGtqcy9ub2Rlcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtqcy9ub2Rlcy5oCShyZXZpc2lvbiAzMjI4NikKKysrIGtqcy9ub2Rlcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MCw2ICs1MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIENvbnN0
RGVjbE5vZGU7CiAgICAgY2xhc3MgRnVuY0RlY2xOb2RlOwogICAgIGNsYXNzIE5vZGU7CisgICAg
Y2xhc3MgRXZhbENvZGVCbG9jazsKICAgICBjbGFzcyBQcm9ncmFtQ29kZUJsb2NrOwogICAgIGNs
YXNzIFByb3BlcnR5TGlzdE5vZGU7CiAgICAgY2xhc3MgU291cmNlU3RyZWFtOwpAQCAtMjk4Myw3
ICsyOTg0LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIEpT
VmFsdWUqIGV4ZWN1dGUoRXhlY1N0YXRlKikgS0pTX0ZBU1RfQ0FMTDsKIAotICAgICAgICBQcm9n
cmFtQ29kZUJsb2NrJiBjb2RlKFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKSBLSlNfRkFTVF9D
QUxMCisgICAgICAgIEV2YWxDb2RlQmxvY2smIGNvZGUoU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hh
aW4pIEtKU19GQVNUX0NBTEwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NvZGUpCiAg
ICAgICAgICAgICAgICAgZ2VuZXJhdGVDb2RlKHNjb3BlQ2hhaW4pOwpAQCAtMjk5Nyw3ICsyOTk4
LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIHZvaWQgZ2VuZXJhdGVDb2RlKFNjb3BlQ2hh
aW5Ob2RlKikgS0pTX0ZBU1RfQ0FMTDsKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBLSlNfRkFTVF9DQUxMOwogCi0g
ICAgICAgIE93blB0cjxQcm9ncmFtQ29kZUJsb2NrPiBtX2NvZGU7CisgICAgICAgIE93blB0cjxF
dmFsQ29kZUJsb2NrPiBtX2NvZGU7CiAgICAgfTsKIAogICAgIGNsYXNzIEZ1bmN0aW9uQm9keU5v
ZGUgOiBwdWJsaWMgU2NvcGVOb2RlIHsK
</data>
<flag name="review"
          id="9056"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20718</attachid>
            <date>2008-04-21 00:32:12 -0700</date>
            <delta_ts>2008-04-21 00:33:15 -0700</delta_ts>
            <desc>Revised proposed patch</desc>
            <filename>evalvar.diff</filename>
            <type>text/plain</type>
            <size>9873</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyMjg2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMDQt
MjAgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHZh
cmlhYmxlIGRlY2xhcmF0aW9ucyBpbiBldmFsIGNvZGUuCisKKyAgICAgICAgKiBWTS9Db2RlQmxv
Y2suaDoKKyAgICAgICAgKEtKUzo6RXZhbENvZGVCbG9jazo6RXZhbENvZGVCbG9jayk6CisgICAg
ICAgICogVk0vQ29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6
OkNvZGVHZW5lcmF0b3IpOgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAg
KiBWTS9NYWNoaW5lLmNwcDoKKyAgICAgICAgKEtKUzo6TWFjaGluZTo6ZXhlY3V0ZSk6CisgICAg
ICAgICogVk0vTWFjaGluZS5oOgorICAgICAgICAqIGtqcy9mdW5jdGlvbi5jcHA6CisgICAgICAg
IChLSlM6Omdsb2JhbEZ1bmNFdmFsKToKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAg
ICAoS0pTOjpFdmFsTm9kZTo6Z2VuZXJhdGVDb2RlKToKKyAgICAgICAgKiBranMvbm9kZXMuaDoK
KyAgICAgICAgKEtKUzo6RXZhbE5vZGU6Oik6CisKIDIwMDgtMDQtMjAgIEdlb2ZmcmV5IEdhcmVu
ICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hv
d2lhay4KSW5kZXg6IFZNL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0NvZGVCbG9jay5o
CShyZXZpc2lvbiAzMjI4NikKKysrIFZNL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTUsNiArMTE1LDE1IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0OyAvLyBGb3IgcHJvZ3JhbSBhbmQgZXZhbCBub2RlcywgdGhlIGdsb2JhbCBv
YmplY3QgdGhhdCBtYXJrcyB0aGUgY29uc3RhbnQgcG9vbC4KICAgICB9OwogCisgICAgc3RydWN0
IEV2YWxDb2RlQmxvY2sgOiBwdWJsaWMgUHJvZ3JhbUNvZGVCbG9jayB7CisgICAgICAgIEV2YWxD
b2RlQmxvY2soY29uc3QgVVN0cmluZyYgc291cmNlVVJMXywgYm9vbCB1c2VzRXZhbF8sIGJvb2wg
bmVlZHNDbG9zdXJlXywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdF8pCisgICAgICAgICAg
ICA6IFByb2dyYW1Db2RlQmxvY2soc291cmNlVVJMXywgdXNlc0V2YWxfLCBuZWVkc0Nsb3N1cmVf
LCBnbG9iYWxPYmplY3RfKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8
SWRlbnRpZmllcj4gZGVjbGFyZWRWYXJpYWJsZXM7CisgICAgfTsKKwogfSAvLyBuYW1lc3BhY2Ug
S0pTCiAKICNlbmRpZiAvLyBDb2RlQmxvY2tfaApJbmRleDogVk0vQ29kZUdlbmVyYXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDMyMjg2KQorKysg
Vk0vQ29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCw3ICsyMzgsNyBAQCBD
b2RlR2VuZXJhdG9yOjpDb2RlR2VuZXJhdG9yKEZ1bmN0aW9uQm9kCiAgICAgfQogfQogCi1Db2Rl
R2VuZXJhdG9yOjpDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiBldmFsTm9kZSwgY29uc3QgU2NvcGVD
aGFpbiYgc2NvcGVDaGFpbiwgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaykKK0NvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGV2YWxOb2Rl
LCBjb25zdCBTY29wZUNoYWluJiBzY29wZUNoYWluLCBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUs
IEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9jaywgVmFyU3RhY2smIHZhclN0YWNrKQogICAgIDogbV9z
Y29wZUNoYWluKCZzY29wZUNoYWluKQogICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkK
ICAgICAsIG1fc2NvcGVOb2RlKGV2YWxOb2RlKQpAQCAtMjUwLDYgKzI1MCw5IEBAIENvZGVHZW5l
cmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGUKICAgICAsIG1fcHJvcGVydHlOYW1lcyhD
b21tb25JZGVudGlmaWVyczo6c2hhcmVkKCkpCiB7CiAgICAgYWRkVmFyKG1fcHJvcGVydHlOYW1l
cy0+dGhpc0lkZW50aWZpZXIpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFy
U3RhY2suc2l6ZSgpOyArK2kpCisgICAgICAgIGNvZGVCbG9jay0+ZGVjbGFyZWRWYXJpYWJsZXMu
YXBwZW5kKHZhclN0YWNrW2ldLmZpcnN0KTsKIH0KIAogdm9pZCBDb2RlR2VuZXJhdG9yOjphZGRQ
YXJhbWV0ZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCkluZGV4OiBWTS9Db2RlR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzMjI4NikKKysr
IFZNL0NvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBuYW1l
c3BhY2UgS0pTIHsKICAgICAgICAgCiAgICAgICAgIENvZGVHZW5lcmF0b3IoUHJvZ3JhbU5vZGUq
LCBjb25zdCBTY29wZUNoYWluJiwgU3ltYm9sVGFibGUqLCBDb2RlQmxvY2sqLCBWYXJTdGFjayYs
IEZ1bmN0aW9uU3RhY2smKTsKICAgICAgICAgQ29kZUdlbmVyYXRvcihGdW5jdGlvbkJvZHlOb2Rl
KiwgY29uc3QgU2NvcGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgQ29kZUJsb2NrKiwgVmFyU3RhY2sm
LCBGdW5jdGlvblN0YWNrJiwgVmVjdG9yPElkZW50aWZpZXI+JiBwYXJhbWV0ZXJzKTsKLSAgICAg
ICAgQ29kZUdlbmVyYXRvcihFdmFsTm9kZSosIGNvbnN0IFNjb3BlQ2hhaW4mLCBTeW1ib2xUYWJs
ZSosIENvZGVCbG9jayopOworICAgICAgICBDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiwgY29uc3Qg
U2NvcGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgRXZhbENvZGVCbG9jayosIFZhclN0YWNrJik7CiAK
ICAgICAgICAgY29uc3QgQ29tbW9uSWRlbnRpZmllcnMmIHByb3BlcnR5TmFtZXMoKSBjb25zdCB7
IHJldHVybiAqbV9wcm9wZXJ0eU5hbWVzOyB9CiAKSW5kZXg6IFZNL01hY2hpbmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFZNL01hY2hpbmUuY3BwCShyZXZpc2lvbiAzMjI4NikKKysrIFZNL01hY2hpbmUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzYsMTAgKzU3NiwyNCBAQCBKU1ZhbHVlKiBNYWNoaW5l
OjpleGVjdXRlKEZ1bmN0aW9uQm9keU5vCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1
ZSogTWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBpbnQgcmVnaXN0
ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBKU1ZhbHVlKiogZXhjZXB0aW9u
KQorSlNWYWx1ZSogTWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBp
bnQgcmVnaXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBKU1ZhbHVlKiog
ZXhjZXB0aW9uLCBKU09iamVjdCogdmFyaWFibGVPYmplY3QpCiB7Ci0gICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSAmZXZhbE5vZGUtPmNvZGUoc2NvcGVDaGFpbik7Ci0KKyAgICBFdmFsQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSAmZXZhbE5vZGUtPmNvZGUoc2NvcGVDaGFpbik7CisgICAgCisgICAg
aWYgKCF2YXJpYWJsZU9iamVjdCkgeworICAgICAgICBTY29wZUNoYWluTm9kZSogbm9kZTsKKyAg
ICAgICAgCisgICAgICAgIGZvciAobm9kZSA9IHNjb3BlQ2hhaW47ICFub2RlLT5vYmplY3QtPmlz
QWN0aXZhdGlvbk9iamVjdCgpICYmIG5vZGUtPm5leHQ7IG5vZGUgPSBub2RlLT5uZXh0KSB7IH0K
KyAgICAgICAgdmFyaWFibGVPYmplY3QgPSBub2RlLT5vYmplY3Q7CisgICAgfQorICAgIAorICAg
IGZvciAoVmVjdG9yPElkZW50aWZpZXI+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gY29kZUJsb2Nr
LT5kZWNsYXJlZFZhcmlhYmxlcy5iZWdpbigpOyBpdGVyICE9IGNvZGVCbG9jay0+ZGVjbGFyZWRW
YXJpYWJsZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBJZGVudGlmaWVyIGlkZW50ID0gKml0
ZXI7CisgICAgICAgIAorICAgICAgICBpZiAoIXZhcmlhYmxlT2JqZWN0LT5oYXNQcm9wZXJ0eShl
eGVjLCBpZGVudCkpCisgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0KGV4ZWMsIGlkZW50
LCBqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisgICAgCiAgICAgc2l6ZV90IG9sZFNpemUgPSByZWdp
c3RlckZpbGUtPnNpemUoKTsKICAgICBzaXplX3QgbmV3U2l6ZSA9IHJlZ2lzdGVyT2Zmc2V0ICsg
Y29kZUJsb2NrLT5udW1WYXJzICsgY29kZUJsb2NrLT5udW1UZW1wb3JhcmllczsKICAgICByZWdp
c3RlckZpbGUtPmdyb3cobmV3U2l6ZSk7CkBAIC01OTMsMjIgKzYwNywxMCBAQCBKU1ZhbHVlKiBN
YWNoaW5lOjpleGVjdXRlKEV2YWxOb2RlKiBldmFsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
SlNWYWx1ZSogTWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbE5vZGUsIEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZVN0YWNrKiByZWdpc3RlckZpbGVT
dGFjaywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4sIEpTVmFsdWUqKiBleGNlcHRpb24pCitK
U1ZhbHVlKiBNYWNoaW5lOjpleGVjdXRlKEV2YWxOb2RlKiBldmFsTm9kZSwgRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogdGhpc09iaiwgUmVnaXN0ZXJGaWxlU3RhY2sqIHJlZ2lzdGVyRmlsZVN0
YWNrLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbiwgSlNP
YmplY3QqIHZhcmlhYmxlT2JqZWN0KQogewogICAgIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxl
ID0gcmVnaXN0ZXJGaWxlU3RhY2stPmN1cnJlbnQoKTsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9j
ayA9ICZldmFsTm9kZS0+Y29kZShzY29wZUNoYWluKTsKLQotICAgIHNpemVfdCBvbGRTaXplID0g
cmVnaXN0ZXJGaWxlLT5zaXplKCk7Ci0gICAgc2l6ZV90IG5ld1NpemUgPSBvbGRTaXplICsgY29k
ZUJsb2NrLT5udW1WYXJzICsgY29kZUJsb2NrLT5udW1UZW1wb3JhcmllczsKLSAgICByZWdpc3Rl
ckZpbGUtPmdyb3cobmV3U2l6ZSk7Ci0gICAgUmVnaXN0ZXIqIHIgPSAoKnJlZ2lzdGVyRmlsZS0+
YmFzZVBvaW50ZXIoKSkgKyBvbGRTaXplICsgY29kZUJsb2NrLT5udW1WYXJzOwotICAgIAotICAg
IHJbUHJvZ3JhbUNvZGVUaGlzUmVnaXN0ZXJdLnUuanNWYWx1ZSA9IHRoaXNPYmo7Ci0gICAgSlNW
YWx1ZSogcmVzdWx0ID0gcHJpdmF0ZUV4ZWN1dGUoTm9ybWFsLCBleGVjLCByZWdpc3RlckZpbGUs
IHIsIHNjb3BlQ2hhaW4sIGNvZGVCbG9jaywgZXhjZXB0aW9uKTsKLSAgICAKLSAgICByZWdpc3Rl
ckZpbGUtPnNocmluayhvbGRTaXplKTsKLSAgICAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJl
dHVybiBNYWNoaW5lOjpleGVjdXRlKGV2YWxOb2RlLCBleGVjLCB0aGlzT2JqLCByZWdpc3RlckZp
bGUsIHJlZ2lzdGVyRmlsZS0+c2l6ZSgpLCBzY29wZUNoYWluLCBleGNlcHRpb24sIHZhcmlhYmxl
T2JqZWN0KTsKIH0KIAogSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9u
RmxhZyBmbGFnLCBFeGVjU3RhdGUqIGV4ZWMsIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBS
ZWdpc3RlciogciwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4sIENvZGVCbG9jayogY29kZUJs
b2NrLCBKU1ZhbHVlKiogZXhjZXB0aW9uKQpJbmRleDogVk0vTWFjaGluZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFZNL01hY2hpbmUuaAkocmV2aXNpb24gMzIyODYpCisrKyBWTS9NYWNoaW5lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTgwLDggKzgwLDggQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIAogICAg
ICAgICBKU1ZhbHVlKiBleGVjdXRlKFByb2dyYW1Ob2RlKiwgRXhlY1N0YXRlKiwgSlNPYmplY3Qq
IHRoaXNPYmosIFJlZ2lzdGVyRmlsZVN0YWNrKiwgU2NvcGVDaGFpbiosIEpTVmFsdWUqKiBleGNl
cHRpb24pOwogICAgICAgICBKU1ZhbHVlKiBleGVjdXRlKEZ1bmN0aW9uQm9keU5vZGUqLCBjb25z
dCBMaXN0JiBhcmdzLCBKU09iamVjdCogdGhpc09iaiwgRXhlY1N0YXRlKiwgUmVnaXN0ZXJGaWxl
U3RhY2sqLCBTY29wZUNoYWluKiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbik7Ci0gICAgICAgIEpTVmFs
dWUqIGV4ZWN1dGUoRXZhbE5vZGUqLCBFeGVjU3RhdGUqLCBKU09iamVjdCogdGhpc09iaiwgUmVn
aXN0ZXJGaWxlKiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBTY29wZUNoYWluTm9kZSosIEpTVmFsdWUq
KiBleGNlcHRpb24pOwotICAgICAgICBKU1ZhbHVlKiBleGVjdXRlKEV2YWxOb2RlKiwgRXhlY1N0
YXRlKiwgSlNPYmplY3QqIHRoaXNPYmosIFJlZ2lzdGVyRmlsZVN0YWNrKiwgU2NvcGVDaGFpbk5v
ZGUqLCBKU1ZhbHVlKiogZXhjZXB0aW9uKTsKKyAgICAgICAgSlNWYWx1ZSogZXhlY3V0ZShFdmFs
Tm9kZSosIEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiB0aGlzT2JqLCBSZWdpc3RlckZpbGUqLCBpbnQg
cmVnaXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5Ob2RlKiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbiwgSlNP
YmplY3QqIHZhcmlhYmxlT2JqZWN0ID0gMCk7CisgICAgICAgIEpTVmFsdWUqIGV4ZWN1dGUoRXZh
bE5vZGUqLCBFeGVjU3RhdGUqLCBKU09iamVjdCogdGhpc09iaiwgUmVnaXN0ZXJGaWxlU3RhY2sq
LCBTY29wZUNoYWluTm9kZSosIEpTVmFsdWUqKiBleGNlcHRpb24sIEpTT2JqZWN0KiB2YXJpYWJs
ZU9iamVjdCk7CiAgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIHR5cGVkZWYgZW51bSB7
IE5vcm1hbCwgSW5pdGlhbGl6ZUFuZFJldHVybiB9IEV4ZWN1dGlvbkZsYWc7CkluZGV4OiBranMv
ZnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9mdW5jdGlvbi5jcHAJKHJldmlzaW9uIDMy
Mjg2KQorKysga2pzL2Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIyLDcgKzcyMiw3
IEBAIEpTVmFsdWUqIGdsb2JhbEZ1bmNFdmFsKEV4ZWNTdGF0ZSogZXhlYywKICAgICBFdmFsRXhl
Y1N0YXRlIG5ld0V4ZWMoZ2xvYmFsT2JqZWN0LCB0aGlzT2JqLCBldmFsTm9kZS5nZXQoKSwgZXhl
Yywgc2NvcGVDaGFpbiwgZ2xvYmFsT2JqZWN0KTsKIAogICAgIEpTVmFsdWUqIGV4Y2VwdGlvbiA9
IDA7Ci0gICAgSlNWYWx1ZSogdmFsdWUgPSBtYWNoaW5lKCkuZXhlY3V0ZShldmFsTm9kZS5nZXQo
KSwgJm5ld0V4ZWMsIHRoaXNPYmosICZuZXdFeGVjLmR5bmFtaWNHbG9iYWxPYmplY3QoKS0+cmVn
aXN0ZXJGaWxlU3RhY2soKSwgc2NvcGVDaGFpbi5ub2RlKCksICZleGNlcHRpb24pOworICAgIEpT
VmFsdWUqIHZhbHVlID0gbWFjaGluZSgpLmV4ZWN1dGUoZXZhbE5vZGUuZ2V0KCksICZuZXdFeGVj
LCB0aGlzT2JqLCAmbmV3RXhlYy5keW5hbWljR2xvYmFsT2JqZWN0KCktPnJlZ2lzdGVyRmlsZVN0
YWNrKCksIHNjb3BlQ2hhaW4ubm9kZSgpLCAmZXhjZXB0aW9uLCBnbG9iYWxPYmplY3QpOwogCiAj
aWYgSkFWQVNDUklQVF9QUk9GSUxJTkcKICAgICBQcm9maWxlcjo6cHJvZmlsZXIoKS0+ZGlkRXhl
Y3V0ZShleGVjLCBVU3RyaW5nKCksIDApOwpJbmRleDoga2pzL25vZGVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBranMvbm9kZXMuY3BwCShyZXZpc2lvbiAzMjI4NikKKysrIGtqcy9ub2Rlcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU2NTQsOSArNTY1NCw5IEBAIHZvaWQgRXZhbE5vZGU6OmdlbmVyYXRl
Q29kZShTY29wZUNoYWluTm8KICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihzY29wZUNoYWluLmJvdHRvbSgpKTsKICAgICBBU1NF
UlQoZ2xvYmFsT2JqZWN0LT5pc0dsb2JhbE9iamVjdCgpKTsKICAgICAKLSAgICBtX2NvZGUuc2V0
KG5ldyBQcm9ncmFtQ29kZUJsb2NrKHNvdXJjZVVSTCgpLCB1c2VzRXZhbCgpLCBuZWVkc0Nsb3N1
cmUoKSwgZ2xvYmFsT2JqZWN0KSk7CisgICAgbV9jb2RlLnNldChuZXcgRXZhbENvZGVCbG9jayhz
b3VyY2VVUkwoKSwgdXNlc0V2YWwoKSwgbmVlZHNDbG9zdXJlKCksIGdsb2JhbE9iamVjdCkpOwog
ICAgIAotICAgIENvZGVHZW5lcmF0b3IgZ2VuZXJhdG9yKHRoaXMsIHNjb3BlQ2hhaW4sIG5ldyBT
eW1ib2xUYWJsZSgpLCBtX2NvZGUuZ2V0KCkpOworICAgIENvZGVHZW5lcmF0b3IgZ2VuZXJhdG9y
KHRoaXMsIHNjb3BlQ2hhaW4sIG5ldyBTeW1ib2xUYWJsZSgpLCBtX2NvZGUuZ2V0KCksIG1fdmFy
U3RhY2spOwogICAgIGdlbmVyYXRvci5nZW5lcmF0ZSgpOwogCiAgICAgbV9jaGlsZHJlbi5zaHJp
bmtDYXBhY2l0eSgwKTsKSW5kZXg6IGtqcy9ub2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9ub2Rl
cy5oCShyZXZpc2lvbiAzMjI4NikKKysrIGtqcy9ub2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw2ICs1MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIENvbnN0RGVjbE5vZGU7CiAg
ICAgY2xhc3MgRnVuY0RlY2xOb2RlOwogICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3MgRXZhbENv
ZGVCbG9jazsKICAgICBjbGFzcyBQcm9ncmFtQ29kZUJsb2NrOwogICAgIGNsYXNzIFByb3BlcnR5
TGlzdE5vZGU7CiAgICAgY2xhc3MgU291cmNlU3RyZWFtOwpAQCAtMjk4Myw3ICsyOTg0LDcgQEAg
bmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUqIGV4ZWN1
dGUoRXhlY1N0YXRlKikgS0pTX0ZBU1RfQ0FMTDsKIAotICAgICAgICBQcm9ncmFtQ29kZUJsb2Nr
JiBjb2RlKFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKSBLSlNfRkFTVF9DQUxMCisgICAgICAg
IEV2YWxDb2RlQmxvY2smIGNvZGUoU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pIEtKU19GQVNU
X0NBTEwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NvZGUpCiAgICAgICAgICAgICAg
ICAgZ2VuZXJhdGVDb2RlKHNjb3BlQ2hhaW4pOwpAQCAtMjk5Nyw3ICsyOTk4LDcgQEAgbmFtZXNw
YWNlIEtKUyB7CiAgICAgICAgIHZvaWQgZ2VuZXJhdGVDb2RlKFNjb3BlQ2hhaW5Ob2RlKikgS0pT
X0ZBU1RfQ0FMTDsKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBLSlNfRkFTVF9DQUxMOwogCi0gICAgICAgIE93blB0
cjxQcm9ncmFtQ29kZUJsb2NrPiBtX2NvZGU7CisgICAgICAgIE93blB0cjxFdmFsQ29kZUJsb2Nr
PiBtX2NvZGU7CiAgICAgfTsKIAogICAgIGNsYXNzIEZ1bmN0aW9uQm9keU5vZGUgOiBwdWJsaWMg
U2NvcGVOb2RlIHsK
</data>
<flag name="review"
          id="9058"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20761</attachid>
            <date>2008-04-22 19:16:42 -0700</date>
            <delta_ts>2008-04-22 19:59:43 -0700</delta_ts>
            <desc>Proposed patch implementing function declarations in eval code</desc>
            <filename>functioneval.diff</filename>
            <type>text/plain</type>
            <size>4385</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyNDE2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDgtMDQt
MjIgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGZ1
bmN0aW9uIGRlY2xhcmF0aW9ucyBpbiBldmFsIGNvZGUuCisKKyAgICAgICAgKiBWTS9Db2RlQmxv
Y2suaDoKKyAgICAgICAgKiBWTS9Db2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEtKUzo6Q29k
ZUdlbmVyYXRvcjo6Q29kZUdlbmVyYXRvcik6CisgICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5o
OgorICAgICAgICAqIFZNL01hY2hpbmUuY3BwOgorICAgICAgICAoS0pTOjpNYWNoaW5lOjpleGVj
dXRlKToKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAoS0pTOjpFdmFsTm9kZTo6
Z2VuZXJhdGVDb2RlKToKKwogMjAwOC0wNC0yMiAgQ2FtZXJvbiBad2FyaWNoICA8Y3d6d2FyaWNo
QHV3YXRlcmxvby5jYT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4OiBWTS9D
b2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlQmxvY2suaAkocmV2aXNpb24gMzI0MTYp
CisrKyBWTS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw3IEBAIG5h
bWVzcGFjZSBLSlMgewogICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPElkZW50aWZpZXI+IGRl
Y2xhcmVkVmFyaWFibGVzOworICAgICAgICBWZWN0b3I8SWRlbnRpZmllcj4gZGVjbGFyZWRGdW5j
dGlvbnM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgS0pTCkluZGV4OiBWTS9Db2RlR2VuZXJh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMzI0
MTYpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQwLDcgKzI0
MCw3IEBAIENvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRnVuY3Rpb25Cb2QKICAgICB9CiB9
CiAKLUNvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGV2YWxOb2RlLCBjb25z
dCBTY29wZUNoYWluJiBzY29wZUNoYWluLCBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUsIEV2YWxD
b2RlQmxvY2sqIGNvZGVCbG9jaywgVmFyU3RhY2smIHZhclN0YWNrKQorQ29kZUdlbmVyYXRvcjo6
Q29kZUdlbmVyYXRvcihFdmFsTm9kZSogZXZhbE5vZGUsIGNvbnN0IFNjb3BlQ2hhaW4mIHNjb3Bl
Q2hhaW4sIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSwgRXZhbENvZGVCbG9jayogY29kZUJsb2Nr
LCBWYXJTdGFjayYgdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2smIGZ1bmN0aW9uU3RhY2spCiAgICAg
OiBtX3Njb3BlQ2hhaW4oJnNjb3BlQ2hhaW4pCiAgICAgLCBtX3N5bWJvbFRhYmxlKHN5bWJvbFRh
YmxlKQogICAgICwgbV9zY29wZU5vZGUoZXZhbE5vZGUpCkBAIC0yNTYsNiArMjU2LDE1IEBAIENv
ZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGUKICAgICAKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHZhclN0YWNrLnNpemUoKTsgKytpKQogICAgICAgICBjb2RlQmxvY2st
PmRlY2xhcmVkVmFyaWFibGVzLmFwcGVuZCh2YXJTdGFja1tpXS5maXJzdCk7CisgICAgCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBmdW5jdGlvblN0YWNrLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIEZ1bmNEZWNsTm9kZSogZnVuY0RlY2wgPSBmdW5jdGlvblN0YWNrW2ldOworICAgICAgICBj
b25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGZ1bmNEZWNsLT5tX2lkZW50OworICAgICAgICAKKyAg
ICAgICAgY29kZUJsb2NrLT5kZWNsYXJlZEZ1bmN0aW9ucy5hcHBlbmQoaWRlbnQpOworICAgICAg
ICBtX2Z1bmN0aW9ucy5hZGQoaWRlbnQudXN0cmluZygpLnJlcCgpKTsKKyAgICAgICAgYWRkQ29u
c3RhbnQoZnVuY0RlY2wpOworICAgIH0KIH0KIAogdm9pZCBDb2RlR2VuZXJhdG9yOjphZGRQYXJh
bWV0ZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzMjQxNikKKysrIFZN
L0NvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQCBuYW1lc3Bh
Y2UgS0pTIHsKICAgICAgICAgCiAgICAgICAgIENvZGVHZW5lcmF0b3IoUHJvZ3JhbU5vZGUqLCBj
b25zdCBTY29wZUNoYWluJiwgU3ltYm9sVGFibGUqLCBDb2RlQmxvY2sqLCBWYXJTdGFjayYsIEZ1
bmN0aW9uU3RhY2smKTsKICAgICAgICAgQ29kZUdlbmVyYXRvcihGdW5jdGlvbkJvZHlOb2RlKiwg
Y29uc3QgU2NvcGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgQ29kZUJsb2NrKiwgVmFyU3RhY2smLCBG
dW5jdGlvblN0YWNrJiwgVmVjdG9yPElkZW50aWZpZXI+JiBwYXJhbWV0ZXJzKTsKLSAgICAgICAg
Q29kZUdlbmVyYXRvcihFdmFsTm9kZSosIGNvbnN0IFNjb3BlQ2hhaW4mLCBTeW1ib2xUYWJsZSos
IEV2YWxDb2RlQmxvY2sqLCBWYXJTdGFjayYpOworICAgICAgICBDb2RlR2VuZXJhdG9yKEV2YWxO
b2RlKiwgY29uc3QgU2NvcGVDaGFpbiYsIFN5bWJvbFRhYmxlKiwgRXZhbENvZGVCbG9jayosIFZh
clN0YWNrJiwgRnVuY3Rpb25TdGFjayYgZnVuY3Rpb25TdGFjayk7CiAKICAgICAgICAgY29uc3Qg
Q29tbW9uSWRlbnRpZmllcnMmIHByb3BlcnR5TmFtZXMoKSBjb25zdCB7IHJldHVybiAqbV9wcm9w
ZXJ0eU5hbWVzOyB9CiAKSW5kZXg6IFZNL01hY2hpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL01h
Y2hpbmUuY3BwCShyZXZpc2lvbiAzMjQxNikKKysrIFZNL01hY2hpbmUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MDAsNiArNjAwLDEwIEBAIEpTVmFsdWUqIE1hY2hpbmU6OmV4ZWN1dGUoRXZhbE5v
ZGUqIGV2YWwKICAgICAgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5wdXQoZXhlYywgaWRlbnQsIGpz
VW5kZWZpbmVkKCkpOwogICAgIH0KICAgICAKKyAgICBBU1NFUlQoY29kZUJsb2NrLT5mdW5jdGlv
bnMuc2l6ZSgpID09IGNvZGVCbG9jay0+ZGVjbGFyZWRGdW5jdGlvbnMuc2l6ZSgpKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNvZGVCbG9jay0+ZnVuY3Rpb25zLnNpemUoKTsgKytpKQor
ICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0KGV4ZWMsIGNvZGVCbG9jay0+ZGVjbGFyZWRGdW5j
dGlvbnNbaV0sIGNvZGVCbG9jay0+ZnVuY3Rpb25zW2ldLT5tYWtlRnVuY3Rpb24oZXhlYywgc2Nv
cGVDaGFpbikpOworICAgIAogICAgIHNpemVfdCBvbGRTaXplID0gcmVnaXN0ZXJGaWxlLT5zaXpl
KCk7CiAgICAgc2l6ZV90IG5ld1NpemUgPSByZWdpc3Rlck9mZnNldCArIGNvZGVCbG9jay0+bnVt
VmFycyArIGNvZGVCbG9jay0+bnVtVGVtcG9yYXJpZXMgKyBDYWxsRnJhbWVIZWFkZXJTaXplOwog
ICAgIHJlZ2lzdGVyRmlsZS0+Z3JvdyhuZXdTaXplKTsKSW5kZXg6IGtqcy9ub2Rlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga2pzL25vZGVzLmNwcAkocmV2aXNpb24gMzI0MTYpCisrKyBranMvbm9kZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzE3LDcgKzU3MTcsNyBAQCB2b2lkIEV2YWxOb2RlOjpn
ZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vCiAgICAgCiAgICAgbV9jb2RlLnNldChuZXcgRXZhbENv
ZGVCbG9jayhzb3VyY2VVUkwoKSwgdXNlc0V2YWwoKSwgbmVlZHNDbG9zdXJlKCksIGdsb2JhbE9i
amVjdCkpOwogICAgIAotICAgIENvZGVHZW5lcmF0b3IgZ2VuZXJhdG9yKHRoaXMsIHNjb3BlQ2hh
aW4sIG5ldyBTeW1ib2xUYWJsZSgpLCBtX2NvZGUuZ2V0KCksIG1fdmFyU3RhY2spOworICAgIENv
ZGVHZW5lcmF0b3IgZ2VuZXJhdG9yKHRoaXMsIHNjb3BlQ2hhaW4sIG5ldyBTeW1ib2xUYWJsZSgp
LCBtX2NvZGUuZ2V0KCksIG1fdmFyU3RhY2ssIG1fZnVuY3Rpb25TdGFjayk7CiAgICAgZ2VuZXJh
dG9yLmdlbmVyYXRlKCk7CiAKICAgICBtX2NoaWxkcmVuLnNocmlua0NhcGFjaXR5KDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20762</attachid>
            <date>2008-04-22 19:59:43 -0700</date>
            <delta_ts>2008-04-22 20:07:24 -0700</delta_ts>
            <desc>Revised proposed patch</desc>
            <filename>label.diff</filename>
            <type>text/plain</type>
            <size>5029</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyNDE2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDgtMDQt
MjIgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGZ1
bmN0aW9uIGRlY2xhcmF0aW9ucyBpbiBldmFsIGNvZGUuCisKKyAgICAgICAgKiBWTS9Db2RlQmxv
Y2suaDoKKyAgICAgICAgKiBWTS9Db2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEtKUzo6Q29k
ZUdlbmVyYXRvcjo6Q29kZUdlbmVyYXRvcik6CisgICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5o
OgorICAgICAgICAqIFZNL01hY2hpbmUuY3BwOgorICAgICAgICAoS0pTOjpNYWNoaW5lOjpleGVj
dXRlKToKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAoS0pTOjpFdmFsTm9kZTo6
Z2VuZXJhdGVDb2RlKToKKwogMjAwOC0wNC0yMiAgQ2FtZXJvbiBad2FyaWNoICA8Y3d6d2FyaWNo
QHV3YXRlcmxvby5jYT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4OiBWTS9D
b2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlQmxvY2suaAkocmV2aXNpb24gMzI0MTYp
CisrKyBWTS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSw4IEBAIG5h
bWVzcGFjZSBLSlMgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBWZWN0b3I8SWRl
bnRpZmllcj4gZGVjbGFyZWRWYXJpYWJsZXM7CisgICAgICAgIFZlY3RvcjxJZGVudGlmaWVyPiBk
ZWNsYXJlZFZhcmlhYmxlTmFtZXM7CisgICAgICAgIFZlY3RvcjxJZGVudGlmaWVyPiBkZWNsYXJl
ZEZ1bmN0aW9uTmFtZXM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgS0pTCkluZGV4OiBWTS9D
b2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJhdG9yLmNwcAkocmV2
aXNpb24gMzI0MTYpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQwLDcgKzI0MCw3IEBAIENvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRnVuY3Rpb25Cb2QK
ICAgICB9CiB9CiAKLUNvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGV2YWxO
b2RlLCBjb25zdCBTY29wZUNoYWluJiBzY29wZUNoYWluLCBTeW1ib2xUYWJsZSogc3ltYm9sVGFi
bGUsIEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9jaywgVmFyU3RhY2smIHZhclN0YWNrKQorQ29kZUdl
bmVyYXRvcjo6Q29kZUdlbmVyYXRvcihFdmFsTm9kZSogZXZhbE5vZGUsIGNvbnN0IFNjb3BlQ2hh
aW4mIHNjb3BlQ2hhaW4sIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSwgRXZhbENvZGVCbG9jayog
Y29kZUJsb2NrLCBWYXJTdGFjayYgdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2smIGZ1bmN0aW9uU3Rh
Y2spCiAgICAgOiBtX3Njb3BlQ2hhaW4oJnNjb3BlQ2hhaW4pCiAgICAgLCBtX3N5bWJvbFRhYmxl
KHN5bWJvbFRhYmxlKQogICAgICwgbV9zY29wZU5vZGUoZXZhbE5vZGUpCkBAIC0yNTUsNyArMjU1
LDE2IEBAIENvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGUKICAgICBhZGRW
YXIobV9wcm9wZXJ0eU5hbWVzLT50aGlzSWRlbnRpZmllcik7CiAgICAgCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB2YXJTdGFjay5zaXplKCk7ICsraSkKLSAgICAgICAgY29kZUJsb2NrLT5k
ZWNsYXJlZFZhcmlhYmxlcy5hcHBlbmQodmFyU3RhY2tbaV0uZmlyc3QpOworICAgICAgICBjb2Rl
QmxvY2stPmRlY2xhcmVkVmFyaWFibGVOYW1lcy5hcHBlbmQodmFyU3RhY2tbaV0uZmlyc3QpOwor
ICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnVuY3Rpb25TdGFjay5zaXplKCk7ICsr
aSkgeworICAgICAgICBGdW5jRGVjbE5vZGUqIGZ1bmNEZWNsID0gZnVuY3Rpb25TdGFja1tpXTsK
KyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBmdW5jRGVjbC0+bV9pZGVudDsKKyAg
ICAgICAgCisgICAgICAgIGNvZGVCbG9jay0+ZGVjbGFyZWRGdW5jdGlvbk5hbWVzLmFwcGVuZChp
ZGVudCk7CisgICAgICAgIG1fZnVuY3Rpb25zLmFkZChpZGVudC51c3RyaW5nKCkucmVwKCkpOwor
ICAgICAgICBhZGRDb25zdGFudChmdW5jRGVjbCk7CisgICAgfQogfQogCiB2b2lkIENvZGVHZW5l
cmF0b3I6OmFkZFBhcmFtZXRlcihjb25zdCBJZGVudGlmaWVyJiBpZGVudCkKSW5kZXg6IFZNL0Nv
ZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJhdG9yLmgJKHJldmlzaW9u
IDMyNDE2KQorKysgVk0vQ29kZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3
NCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICAKICAgICAgICAgQ29kZUdlbmVyYXRvcihQ
cm9ncmFtTm9kZSosIGNvbnN0IFNjb3BlQ2hhaW4mLCBTeW1ib2xUYWJsZSosIENvZGVCbG9jayos
IFZhclN0YWNrJiwgRnVuY3Rpb25TdGFjayYpOwogICAgICAgICBDb2RlR2VuZXJhdG9yKEZ1bmN0
aW9uQm9keU5vZGUqLCBjb25zdCBTY29wZUNoYWluJiwgU3ltYm9sVGFibGUqLCBDb2RlQmxvY2sq
LCBWYXJTdGFjayYsIEZ1bmN0aW9uU3RhY2smLCBWZWN0b3I8SWRlbnRpZmllcj4mIHBhcmFtZXRl
cnMpOwotICAgICAgICBDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiwgY29uc3QgU2NvcGVDaGFpbiYs
IFN5bWJvbFRhYmxlKiwgRXZhbENvZGVCbG9jayosIFZhclN0YWNrJik7CisgICAgICAgIENvZGVH
ZW5lcmF0b3IoRXZhbE5vZGUqLCBjb25zdCBTY29wZUNoYWluJiwgU3ltYm9sVGFibGUqLCBFdmFs
Q29kZUJsb2NrKiwgVmFyU3RhY2smLCBGdW5jdGlvblN0YWNrJiBmdW5jdGlvblN0YWNrKTsKIAog
ICAgICAgICBjb25zdCBDb21tb25JZGVudGlmaWVycyYgcHJvcGVydHlOYW1lcygpIGNvbnN0IHsg
cmV0dXJuICptX3Byb3BlcnR5TmFtZXM7IH0KIApJbmRleDogVk0vTWFjaGluZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVk0vTWFjaGluZS5jcHAJKHJldmlzaW9uIDMyNDE2KQorKysgVk0vTWFjaGluZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU5MywxMyArNTkzLDE3IEBAIEpTVmFsdWUqIE1hY2hpbmU6
OmV4ZWN1dGUoRXZhbE5vZGUqIGV2YWwKICAgICAgICAgdmFyaWFibGVPYmplY3QgPSBub2RlLT5v
YmplY3Q7CiAgICAgfQogICAgIAotICAgIGZvciAoVmVjdG9yPElkZW50aWZpZXI+Ojpjb25zdF9p
dGVyYXRvciBpdGVyID0gY29kZUJsb2NrLT5kZWNsYXJlZFZhcmlhYmxlcy5iZWdpbigpOyBpdGVy
ICE9IGNvZGVCbG9jay0+ZGVjbGFyZWRWYXJpYWJsZXMuZW5kKCk7ICsraXRlcikgeworICAgIGZv
ciAoVmVjdG9yPElkZW50aWZpZXI+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gY29kZUJsb2NrLT5k
ZWNsYXJlZFZhcmlhYmxlTmFtZXMuYmVnaW4oKTsgaXRlciAhPSBjb2RlQmxvY2stPmRlY2xhcmVk
VmFyaWFibGVOYW1lcy5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgIElkZW50aWZpZXIgaWRlbnQg
PSAqaXRlcjsKICAgICAgICAgCiAgICAgICAgIGlmICghdmFyaWFibGVPYmplY3QtPmhhc1Byb3Bl
cnR5KGV4ZWMsIGlkZW50KSkKICAgICAgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5wdXQoZXhlYywg
aWRlbnQsIGpzVW5kZWZpbmVkKCkpOwogICAgIH0KICAgICAKKyAgICBBU1NFUlQoY29kZUJsb2Nr
LT5mdW5jdGlvbnMuc2l6ZSgpID09IGNvZGVCbG9jay0+ZGVjbGFyZWRGdW5jdGlvbk5hbWVzLnNp
emUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb2RlQmxvY2stPmZ1bmN0aW9ucy5z
aXplKCk7ICsraSkKKyAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dChleGVjLCBjb2RlQmxvY2st
PmRlY2xhcmVkRnVuY3Rpb25OYW1lc1tpXSwgY29kZUJsb2NrLT5mdW5jdGlvbnNbaV0tPm1ha2VG
dW5jdGlvbihleGVjLCBzY29wZUNoYWluKSk7CisgICAgCiAgICAgc2l6ZV90IG9sZFNpemUgPSBy
ZWdpc3RlckZpbGUtPnNpemUoKTsKICAgICBzaXplX3QgbmV3U2l6ZSA9IHJlZ2lzdGVyT2Zmc2V0
ICsgY29kZUJsb2NrLT5udW1WYXJzICsgY29kZUJsb2NrLT5udW1UZW1wb3JhcmllcyArIENhbGxG
cmFtZUhlYWRlclNpemU7CiAgICAgcmVnaXN0ZXJGaWxlLT5ncm93KG5ld1NpemUpOwpJbmRleDog
a2pzL25vZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9kZXMuY3BwCShyZXZpc2lvbiAzMjQx
NikKKysrIGtqcy9ub2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3MTcsNyArNTcxNyw3IEBA
IHZvaWQgRXZhbE5vZGU6OmdlbmVyYXRlQ29kZShTY29wZUNoYWluTm8KICAgICAKICAgICBtX2Nv
ZGUuc2V0KG5ldyBFdmFsQ29kZUJsb2NrKHNvdXJjZVVSTCgpLCB1c2VzRXZhbCgpLCBuZWVkc0Ns
b3N1cmUoKSwgZ2xvYmFsT2JqZWN0KSk7CiAgICAgCi0gICAgQ29kZUdlbmVyYXRvciBnZW5lcmF0
b3IodGhpcywgc2NvcGVDaGFpbiwgbmV3IFN5bWJvbFRhYmxlKCksIG1fY29kZS5nZXQoKSwgbV92
YXJTdGFjayk7CisgICAgQ29kZUdlbmVyYXRvciBnZW5lcmF0b3IodGhpcywgc2NvcGVDaGFpbiwg
bmV3IFN5bWJvbFRhYmxlKCksIG1fY29kZS5nZXQoKSwgbV92YXJTdGFjaywgbV9mdW5jdGlvblN0
YWNrKTsKICAgICBnZW5lcmF0b3IuZ2VuZXJhdGUoKTsKIAogICAgIG1fY2hpbGRyZW4uc2hyaW5r
Q2FwYWNpdHkoMCk7Cg==
</data>
<flag name="review"
          id="9080"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>