<?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>21814</bug_id>
          
          <creation_ts>2008-10-22 16:01:38 -0700</creation_ts>
          <short_desc>The name property of JSFunctions should not be put directly</short_desc>
          <delta_ts>2011-10-03 13:52:20 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>20813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96252</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-22 16:01:38 -0700</bug_when>
    <thetext>According to the opcode sampler, the creation of new function objects is 8% of total time on the V8 Earley-Boyer benchmark. One of the things that stands out here is that three properties are added to every new JSFunction using putDirect(). We should make the addition of these properties more efficient in a similar fashion to the way the creation of singleton objects uses fewer StructureIDs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96263</commentid>
    <comment_count>1</comment_count>
      <attachid>24581</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-10-22 16:39:10 -0700</bug_when>
    <thetext>Created attachment 24581
Preallocated StructureIDs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96744</commentid>
    <comment_count>2</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-27 11:20:21 -0700</bug_when>
    <thetext>This patch is not so relevant after r37859, because the prototype property is now created lazily. The only property that is still put on a JSFunction is the name property, which could be stored on the FunctionBodyNode and not actually created. I&apos;ll rename this bug to reflect this change.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96949</commentid>
    <comment_count>3</comment_count>
      <attachid>24739</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-28 22:19:53 -0700</bug_when>
    <thetext>Created attachment 24739
Patch in progress

This is strangely a slowdown on the V8 benchmark suite, and I am not sure why. It still needs to make JSFunction::getOwnPropertySlot() work correctly for &apos;name&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236932</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-11 11:27:31 -0700</bug_when>
    <thetext>Does this bug still track an actionable issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477223</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-10-03 13:52:20 -0700</bug_when>
    <thetext>We now have a solution for this in ToT, we cache a transitioned structure for functions that have assigned space for the name.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24581</attachid>
            <date>2008-10-22 16:39:10 -0700</date>
            <delta_ts>2010-06-10 16:12:58 -0700</delta_ts>
            <desc>Preallocated StructureIDs</desc>
            <filename>preallocate.diff</filename>
            <type>text/plain</type>
            <size>8681</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9JbnRlcm5hbEZ1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvSW50ZXJu
YWxGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDM3Nzg4KQorKysga2pzL0ludGVybmFsRnVuY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxOSBAQCBJbnRlcm5hbEZ1bmN0aW9uOjpJ
bnRlcm5hbEZ1bmN0aW9uKEpTR2xvCiAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEtPnByb3BlcnR5
TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGdsb2JhbERhdGEsIG5hbWUudXN0cmluZygpKSwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRl
cm5hbEZ1bmN0aW9uKFByZUJ1aWx0U3RydWN0dXJlSURUeXBlIHByZUJ1aWx0U3RydWN0dXJlSUQs
IEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxTdHJ1Y3R1cmVJRD4gc3RydWN0
dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQorICAgIDogSlNPYmplY3QocHJlQnVpbHRTdHJ1
Y3R1cmVJRCwgc3RydWN0dXJlKQoreworICAgIHB1dERpcmVjdE9mZnNldChzdHJ1Y3R1cmVJRCgp
LT5wcm9wZXJ0eU1hcCgpLmdldChnbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5uYW1lKSwganNT
dHJpbmcoZ2xvYmFsRGF0YSwgbmFtZS51c3RyaW5nKCkpKTsKK30KKworUGFzc1JlZlB0cjxTdHJ1
Y3R1cmVJRD4gSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlSURGb3JGYXN0Q3JlYXRp
b24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBKU1ZhbHVlUHRyIHByb3RvdHlwZSkKK3sKKyAg
ICBSZWZQdHI8U3RydWN0dXJlSUQ+IHN0cnVjdHVyZUlEID0gSW50ZXJuYWxGdW5jdGlvbjo6Y3Jl
YXRlU3RydWN0dXJlSUQocHJvdG90eXBlKTsKKyAgICBzdHJ1Y3R1cmVJRC0+YWRkUHJvcGVydHlX
aXRob3V0VHJhbnNpdGlvbihnbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcmV0dXJuIHN0cnVjdHVyZUlELnJlbGVh
c2UoKTsKK30KKwogY29uc3QgVVN0cmluZyYgSW50ZXJuYWxGdW5jdGlvbjo6bmFtZShKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEpCiB7CiAgICAgcmV0dXJuIGFzU3RyaW5nKGdldERpcmVjdChnbG9i
YWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5uYW1lKSktPnZhbHVlKCk7CkluZGV4OiBranMvSW50ZXJu
YWxGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9JbnRlcm5hbEZ1bmN0aW9uLmgJKHJldmlz
aW9uIDM3Nzg4KQorKysga2pzL0ludGVybmFsRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsMTQgKzM4LDE3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGNvbnN0IFVTdHJpbmcm
IG5hbWUoSlNHbG9iYWxEYXRhKik7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlSUQ+IGNyZWF0ZVN0cnVjdHVyZUlEKEpTVmFsdWVQdHIgcHJvdG8pIAotICAgICAgICB7IAot
ICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZUlEOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9i
amVjdFR5cGUsIEltcGxlbWVudHNIYXNJbnN0YW5jZSkpOyAKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3RydWN0dXJlSUQ+IGNyZWF0ZVN0cnVjdHVyZUlEKEpTVmFsdWVQdHIgcHJvdG90eXBl
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlSUQ6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIEltcGxlbWVudHNIYXNJbnN0YW5jZSkpOwogICAg
ICAgICB9CiAKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlSUQ+IGNyZWF0ZVN0
cnVjdHVyZUlERm9yRmFzdENyZWF0aW9uKEpTR2xvYmFsRGF0YSosIEpTVmFsdWVQdHIgcHJvdG90
eXBlKTsKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgSW50ZXJuYWxGdW5jdGlvbihQYXNzUmVm
UHRyPFN0cnVjdHVyZUlEPiBzdHJ1Y3R1cmUpIDogSlNPYmplY3Qoc3RydWN0dXJlKSB7IH0KICAg
ICAgICAgSW50ZXJuYWxGdW5jdGlvbihKU0dsb2JhbERhdGEqLCBQYXNzUmVmUHRyPFN0cnVjdHVy
ZUlEPiwgY29uc3QgSWRlbnRpZmllciYpOworICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKFByZUJ1
aWx0U3RydWN0dXJlSURUeXBlLCBKU0dsb2JhbERhdGEqLCBQYXNzUmVmUHRyPFN0cnVjdHVyZUlE
PiwgY29uc3QgSWRlbnRpZmllciYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpID0gMDsKSW5kZXg6IGtqcy9KU0Z1bmN0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBranMvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDM3Nzg4KQor
Kysga2pzL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxMyBAQCBK
U0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgCiB7CiB9CiAKK0pTRnVuY3Rp
b246OkpTRnVuY3Rpb24oUHJlQnVpbHRTdHJ1Y3R1cmVJRFR5cGUgcHJlQnVpbHRTdHJ1Y3R1cmVJ
RCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBGdW5jdGlvbkJvZHlO
b2RlKiBib2R5LCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCisgICAgOiBCYXNlKHBy
ZUJ1aWx0U3RydWN0dXJlSUQsICZleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+ZnVuY3Rpb25TdHJ1Y3R1cmVGb3JGYXN0Q3JlYXRpb24oKSwgbmFtZSkKKyAg
ICAsIG1fYm9keShib2R5KQorICAgICwgbV9zY29wZUNoYWluKHNjb3BlQ2hhaW5Ob2RlKQorewor
fQorCiBKU0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigpCiB7CiAjaWYgRU5BQkxFKENUSSkgCkBAIC02
Myw2ICs3MCwxMyBAQCBKU0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigpCiAjZW5kaWYKIH0KIAorUGFz
c1JlZlB0cjxTdHJ1Y3R1cmVJRD4gSlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlSURGb3JGYXN0
Q3JlYXRpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBKU1ZhbHVlUHRyIHByb3RvdHlwZSkK
K3sKKyAgICBSZWZQdHI8U3RydWN0dXJlSUQ+IHN0cnVjdHVyZUlEID0gQmFzZTo6Y3JlYXRlU3Ry
dWN0dXJlSURGb3JGYXN0Q3JlYXRpb24oZ2xvYmFsRGF0YSwgcHJvdG90eXBlKTsKKyAgICBzdHJ1
Y3R1cmVJRC0+YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbihnbG9iYWxEYXRhLT5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIERvbnREZWxldGUpOworICAgIHJldHVybiBzdHJ1Y3R1cmVJRC5y
ZWxlYXNlKCk7Cit9CisKIHZvaWQgSlNGdW5jdGlvbjo6bWFyaygpCiB7CiAgICAgQmFzZTo6bWFy
aygpOwpJbmRleDoga2pzL0pTRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvSlNGdW5jdGlv
bi5oCShyZXZpc2lvbiAzNzc4OCkKKysrIGtqcy9KU0Z1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTRnVuY3Rpb24oUGFz
c1JlZlB0cjxKU0M6OlN0cnVjdHVyZUlEPiBzdCkgOiBJbnRlcm5hbEZ1bmN0aW9uKHN0KSwgbV9z
Y29wZUNoYWluKE5vU2NvcGVDaGFpbigpKSB7fQogICAgIHB1YmxpYzoKICAgICAgICAgSlNGdW5j
dGlvbihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgRnVuY3Rpb25Cb2R5Tm9kZSosIFNj
b3BlQ2hhaW5Ob2RlKik7CisgICAgICAgIEpTRnVuY3Rpb24oUHJlQnVpbHRTdHJ1Y3R1cmVJRFR5
cGUsIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBGdW5jdGlvbkJvZHlOb2RlKiwgU2Nv
cGVDaGFpbk5vZGUqKTsKICAgICAgICAgfkpTRnVuY3Rpb24oKTsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKQEAgLTY1LDYgKzY2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwogCisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZUlEPiBjcmVhdGVTdHJ1Y3R1cmVJREZvckZhc3RDcmVhdGlvbihKU0dsb2Jh
bERhdGEqLCBKU1ZhbHVlUHRyIHByb3RvdHlwZSk7CisKICAgICAgICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIHByaXZhdGUKICAgICAgICAgUmVmUHRyPEZ1bmN0aW9uQm9keU5vZGU+IG1fYm9k
eTsKIApJbmRleDoga2pzL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvSlNH
bG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAzNzc4OCkKKysrIGtqcy9KU0dsb2JhbE9iamVjdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTT2Jq
ZWN0KiBsYXN0SW5Qcm90b3R5cGVDCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVl
UHRyIHByb3RvdHlwZSkKIHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBKU0dsb2JhbE9iamVjdDo6
Z2xvYmFsRXhlYygpOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9IEpTR2xvYmFsT2Jq
ZWN0OjpnbG9iYWxEYXRhKCk7CiAKICAgICAvLyBQcm90b3R5cGVzCiAKQEAgLTIwOSw2ICsyMTAs
OCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVlUHRyIHByCiAgICAgZCgpLT5l
bXB0eU9iamVjdFN0cnVjdHVyZSA9IGQoKS0+b2JqZWN0UHJvdG90eXBlLT5pbmhlcml0b3JJRCgp
OwogCiAgICAgZCgpLT5mdW5jdGlvblN0cnVjdHVyZSA9IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVj
dHVyZUlEKGQoKS0+ZnVuY3Rpb25Qcm90b3R5cGUpOworICAgIGQoKS0+ZnVuY3Rpb25TdHJ1Y3R1
cmVGb3JGYXN0Q3JlYXRpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmVJREZvckZhc3RD
cmVhdGlvbihnbG9iYWxEYXRhLCBkKCktPmZ1bmN0aW9uUHJvdG90eXBlKTsKKwogICAgIGQoKS0+
Y2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZSA9IEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3Ry
dWN0dXJlSUQoZCgpLT5mdW5jdGlvblByb3RvdHlwZSk7CiAgICAgZCgpLT5hcmd1bWVudHNTdHJ1
Y3R1cmUgPSBBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZUlEKGQoKS0+b2JqZWN0UHJvdG90eXBl
KTsKICAgICBkKCktPmNhbGxiYWNrQ29uc3RydWN0b3JTdHJ1Y3R1cmUgPSBKU0NhbGxiYWNrQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZUlEKGQoKS0+b2JqZWN0UHJvdG90eXBlKTsKSW5kZXg6
IGtqcy9KU0dsb2JhbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9KU0dsb2JhbE9iamVjdC5o
CShyZXZpc2lvbiAzNzc4OCkKKysrIGtqcy9KU0dsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzAsNiArMTMwLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBSZWZQdHI8
U3RydWN0dXJlSUQ+IHJlZ0V4cFN0cnVjdHVyZTsKICAgICAgICAgICAgIFJlZlB0cjxTdHJ1Y3R1
cmVJRD4gc3RyaW5nT2JqZWN0U3RydWN0dXJlOwogCisgICAgICAgICAgICBSZWZQdHI8U3RydWN0
dXJlSUQ+IGZ1bmN0aW9uU3RydWN0dXJlRm9yRmFzdENyZWF0aW9uOworCiAgICAgICAgICAgICBT
eW1ib2xUYWJsZSBzeW1ib2xUYWJsZTsKICAgICAgICAgICAgIHVuc2lnbmVkIHByb2ZpbGVHcm91
cDsKIApAQCAtMjEyLDYgKzIxNCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJ1Y3R1
cmVJRCogcmVnRXhwU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gZCgpLT5yZWdFeHBTdHJ1Y3R1
cmUuZ2V0KCk7IH0KICAgICAgICAgU3RydWN0dXJlSUQqIHN0cmluZ09iamVjdFN0cnVjdHVyZSgp
IGNvbnN0IHsgcmV0dXJuIGQoKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAKKyAg
ICAgICAgU3RydWN0dXJlSUQqIGZ1bmN0aW9uU3RydWN0dXJlRm9yRmFzdENyZWF0aW9uKCkgY29u
c3QgeyByZXR1cm4gZCgpLT5mdW5jdGlvblN0cnVjdHVyZUZvckZhc3RDcmVhdGlvbi5nZXQoKTsg
fQorCiAgICAgICAgIHZvaWQgc2V0UHJvZmlsZUdyb3VwKHVuc2lnbmVkIHZhbHVlKSB7IGQoKS0+
cHJvZmlsZUdyb3VwID0gdmFsdWU7IH0KICAgICAgICAgdW5zaWduZWQgcHJvZmlsZUdyb3VwKCkg
Y29uc3QgeyByZXR1cm4gZCgpLT5wcm9maWxlR3JvdXA7IH0KIApJbmRleDoga2pzL0pTT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga2pzL0pTT2JqZWN0LmgJKHJldmlzaW9uIDM3Nzg4KQorKysga2pz
L0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICBwdWJsaWM6CiAgICAgICAgIGV4cGxpY2l0IEpTT2JqZWN0KFBhc3NSZWZQdHI8
U3RydWN0dXJlSUQ+KTsKKyAgICAgICAgZW51bSBQcmVCdWlsdFN0cnVjdHVyZUlEVHlwZSB7IFBy
ZUJ1aWx0U3RydWN0dXJlSUQgfTsKKyAgICAgICAgZXhwbGljaXQgSlNPYmplY3QoUHJlQnVpbHRT
dHJ1Y3R1cmVJRFR5cGUsIFBhc3NSZWZQdHI8U3RydWN0dXJlSUQ+KTsKIAogICAgICAgICB2aXJ0
dWFsIHZvaWQgbWFyaygpOwogCkBAIC0yMTgsNiArMjIwLDIzIEBAIGlubGluZSBKU09iamVjdDo6
SlNPYmplY3QoUGFzc1JlZlB0cjxTdHIKICAgICBBU1NFUlQocHJvdG90eXBlKCktPmlzTnVsbCgp
IHx8IEhlYXA6OmhlYXAodGhpcykgPT0gSGVhcDo6aGVhcChwcm90b3R5cGUoKSkpOwogfQogCitp
bmxpbmUgSlNPYmplY3Q6OkpTT2JqZWN0KFByZUJ1aWx0U3RydWN0dXJlSURUeXBlLCBQYXNzUmVm
UHRyPFN0cnVjdHVyZUlEPiBzdHJ1Y3R1cmVJRCkKKyAgICA6IEpTQ2VsbChzdHJ1Y3R1cmVJRC5y
ZWxlYXNlUmVmKCkpIC8vIH5KU09iamVjdCBiYWxhbmNlcyB0aGlzIHJlZigpCit7CisgICAgQVNT
RVJUKG1fc3RydWN0dXJlSUQpOworICAgIEFTU0VSVChwcm90b3R5cGUoKS0+aXNOdWxsKCkgfHwg
SGVhcDo6aGVhcCh0aGlzKSA9PSBIZWFwOjpoZWFwKHByb3RvdHlwZSgpKSk7CisKKyAgICBzaXpl
X3QgY2FwYWNpdHkgPSBtX3N0cnVjdHVyZUlELT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwor
ICAgIGlmIChjYXBhY2l0eSA8PSBpbmxpbmVTdG9yYWdlQ2FwYWNpdHkpCisgICAgICAgIG1fcHJv
cGVydHlTdG9yYWdlID0gbV9pbmxpbmVTdG9yYWdlOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9w
ZXJ0eVN0b3JhZ2UgPSBuZXcgSlNWYWx1ZVB0cltjYXBhY2l0eV07CisKKyAgICBzaXplX3QgcHJv
cGVydGllc0luU3RydWN0dXJlSUQgPSBtX3N0cnVjdHVyZUlELT5wcm9wZXJ0eU1hcCgpLnN0b3Jh
Z2VTaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzSW5TdHJ1Y3R1
cmVJRDsgKytpKQorICAgICAgICBtX3Byb3BlcnR5U3RvcmFnZVtpXSA9IGpzVW5kZWZpbmVkKCk7
Cit9CisKIGlubGluZSBKU09iamVjdDo6fkpTT2JqZWN0KCkKIHsKICAgICBBU1NFUlQobV9zdHJ1
Y3R1cmVJRCk7CkluZGV4OiBranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9ub2Rlcy5j
cHAJKHJldmlzaW9uIDM3Nzg4KQorKysga2pzL25vZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTg5MywxMCArMTg5MywxMiBAQCBSZWdpc3RlcklEKiBGdW5jRXhwck5vZGU6OmVtaXRDb2RlKENv
ZGVHCiAKIEpTRnVuY3Rpb24qIEZ1bmNFeHByTm9kZTo6bWFrZUZ1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiB7Ci0gICAgSlNGdW5jdGlvbiogZnVu
YyA9IG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCBtX2lkZW50LCBtX2JvZHkuZ2V0KCksIHNj
b3BlQ2hhaW4pOworICAgIEpTRnVuY3Rpb24qIGZ1bmMgPSBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24o
SlNPYmplY3Q6OlByZUJ1aWx0U3RydWN0dXJlSUQsIGV4ZWMsIG1faWRlbnQsIG1fYm9keS5nZXQo
KSwgc2NvcGVDaGFpbik7CisKICAgICBKU09iamVjdCogcHJvdG8gPSBjb25zdHJ1Y3RFbXB0eU9i
amVjdChleGVjKTsKICAgICBwcm90by0+cHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5j
b25zdHJ1Y3RvciwgZnVuYywgRG9udEVudW0pOwotICAgIGZ1bmMtPnB1dERpcmVjdChleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90bywgRG9udERlbGV0ZSk7CisKKyAgICBmdW5j
LT5wdXREaXJlY3RPZmZzZXQoZnVuYy0+c3RydWN0dXJlSUQoKS0+cHJvcGVydHlNYXAoKS5nZXQo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSksIHByb3RvKTsKIAogICAgIC8qIAogICAg
ICAgICBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJl
bmNlZCBmcm9tIGluc2lkZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24739</attachid>
            <date>2008-10-28 22:19:53 -0700</date>
            <delta_ts>2008-10-28 22:19:53 -0700</delta_ts>
            <desc>Patch in progress</desc>
            <filename>name.diff</filename>
            <type>text/plain</type>
            <size>14431</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS5l
eHAJKHJldmlzaW9uIDM3OTQ5KQorKysgSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTUsNyArMTU1LDYgQEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0RDJFdgogX19aTjNK
U0MxNEpTR2xvYmFsT2JqZWN0bndFbVBOU18xMkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDMTRjb25z
dHJ1Y3RBcnJheUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0MxNUpTV3Jh
cHBlck9iamVjdDRtYXJrRXYKLV9fWk4zSlNDMTZGdW5jdGlvbkJvZHlOb2RlMTNmaW5pc2hQYXJz
aW5nRVBOU18xMElkZW50aWZpZXJFbQogX19aTjNKU0MxNkZ1bmN0aW9uQm9keU5vZGUxNGNvcHlQ
YXJhbWV0ZXJzRXYKIF9fWk4zSlNDMTZGdW5jdGlvbkJvZHlOb2RlNmNyZWF0ZUVQTlNfMTJKU0ds
b2JhbERhdGFFUE5TXzE0U291cmNlRWxlbWVudHNFUE4zV1RGNlZlY3RvcklTdDRwYWlySU5TXzEw
SWRlbnRpZmllckVqRUxtMTZFRUVQTlM2X0lOUzVfNlJlZlB0cklOU18xMkZ1bmNEZWNsTm9kZUVF
RUxtMTZFRUVSS05TXzEwU291cmNlQ29kZUVqaQogX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb240
aW5mb0UKSW5kZXg6IFZNL0NvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0NvZGVH
ZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAzNzk0OSkKKysrIFZNL0NvZGVHZW5lcmF0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDEsOCArMjQxLDkgQEAgQ29kZUdlbmVyYXRvcjo6Q29kZUdlbmVy
YXRvcihQcm9ncmFtTm9kZQogCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnVuY3Rp
b25TdGFjay5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgRnVuY0RlY2xOb2RlKiBmdW5jRGVj
bCA9IGZ1bmN0aW9uU3RhY2tbaV0uZ2V0KCk7Ci0gICAgICAgICAgICBnbG9iYWxPYmplY3QtPnJl
bW92ZURpcmVjdChmdW5jRGVjbC0+bV9pZGVudCk7IC8vIE1ha2Ugc3VyZSBvdXIgbmV3IGZ1bmN0
aW9uIGlzIG5vdCBzaGFkb3dlZCBieSBhbiBvbGQgcHJvcGVydHkuCi0gICAgICAgICAgICBlbWl0
TmV3RnVuY3Rpb24oYWRkR2xvYmFsVmFyKGZ1bmNEZWNsLT5tX2lkZW50LCBmYWxzZSksIGZ1bmNE
ZWNsKTsKKyAgICAgICAgICAgIElkZW50aWZpZXImIG5hbWUgPSBmdW5jRGVjbC0+Ym9keSgpLT5u
YW1lKCk7CisgICAgICAgICAgICBnbG9iYWxPYmplY3QtPnJlbW92ZURpcmVjdChuYW1lKTsgLy8g
TWFrZSBzdXJlIG91ciBuZXcgZnVuY3Rpb24gaXMgbm90IHNoYWRvd2VkIGJ5IGFuIG9sZCBwcm9w
ZXJ0eS4KKyAgICAgICAgICAgIGVtaXROZXdGdW5jdGlvbihhZGRHbG9iYWxWYXIobmFtZSwgZmFs
c2UpLCBmdW5jRGVjbCk7CiAgICAgICAgIH0KIAogICAgICAgICBWZWN0b3I8UmVnaXN0ZXJJRCos
IDMyPiBuZXdWYXJzOwpAQCAtMjU3LDcgKzI1OCw3IEBAIENvZGVHZW5lcmF0b3I6OkNvZGVHZW5l
cmF0b3IoUHJvZ3JhbU5vZGUKICAgICB9IGVsc2UgewogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGZ1bmN0aW9uU3RhY2suc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIEZ1bmNEZWNs
Tm9kZSogZnVuY0RlY2wgPSBmdW5jdGlvblN0YWNrW2ldLmdldCgpOwotICAgICAgICAgICAgZ2xv
YmFsT2JqZWN0LT5wdXRXaXRoQXR0cmlidXRlcyhleGVjLCBmdW5jRGVjbC0+bV9pZGVudCwgZnVu
Y0RlY2wtPm1ha2VGdW5jdGlvbihleGVjLCBzY29wZUNoYWluLm5vZGUoKSksIERvbnREZWxldGUp
OworICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5wdXRXaXRoQXR0cmlidXRlcyhleGVjLCBmdW5j
RGVjbC0+Ym9keSgpLT5uYW1lKCksIGZ1bmNEZWNsLT5tYWtlRnVuY3Rpb24oZXhlYywgc2NvcGVD
aGFpbi5ub2RlKCkpLCBEb250RGVsZXRlKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHZhclN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBpZiAoZ2xv
YmFsT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCB2YXJTdGFja1tpXS5maXJzdCkpCkBAIC0zMTIs
OSArMzEzLDkgQEAgQ29kZUdlbmVyYXRvcjo6Q29kZUdlbmVyYXRvcihGdW5jdGlvbkJvZAogICAg
IGNvbnN0IE5vZGU6OkZ1bmN0aW9uU3RhY2smIGZ1bmN0aW9uU3RhY2sgPSBmdW5jdGlvbkJvZHkt
PmZ1bmN0aW9uU3RhY2soKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9uU3Rh
Y2suc2l6ZSgpOyArK2kpIHsKICAgICAgICAgRnVuY0RlY2xOb2RlKiBmdW5jRGVjbCA9IGZ1bmN0
aW9uU3RhY2tbaV0uZ2V0KCk7Ci0gICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gZnVu
Y0RlY2wtPm1faWRlbnQ7Ci0gICAgICAgIG1fZnVuY3Rpb25zLmFkZChpZGVudC51c3RyaW5nKCku
cmVwKCkpOwotICAgICAgICBlbWl0TmV3RnVuY3Rpb24oYWRkVmFyKGlkZW50LCBmYWxzZSksIGZ1
bmNEZWNsKTsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSA9IGZ1bmNEZWNsLT5ib2R5
KCktPm5hbWUoKTsKKyAgICAgICAgbV9mdW5jdGlvbnMuYWRkKG5hbWUudXN0cmluZygpLnJlcCgp
KTsKKyAgICAgICAgZW1pdE5ld0Z1bmN0aW9uKGFkZFZhcihuYW1lLCBmYWxzZSksIGZ1bmNEZWNs
KTsKICAgICB9CiAKICAgICBjb25zdCBOb2RlOjpWYXJTdGFjayYgdmFyU3RhY2sgPSBmdW5jdGlv
bkJvZHktPnZhclN0YWNrKCk7CkluZGV4OiBWTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBW
TS9NYWNoaW5lLmNwcAkocmV2aXNpb24gMzc5NDkpCisrKyBWTS9NYWNoaW5lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA1Niw3ICsxMDU2LDcgQEAgSlNWYWx1ZSogTWFjaGluZTo6ZXhlY3V0ZShF
dmFsTm9kZSogZXZhbAogICAgICAgICBOb2RlOjpGdW5jdGlvblN0YWNrOjpjb25zdF9pdGVyYXRv
ciBmdW5jdGlvblN0YWNrRW5kID0gZnVuY3Rpb25TdGFjay5lbmQoKTsKICAgICAgICAgZm9yIChO
b2RlOjpGdW5jdGlvblN0YWNrOjpjb25zdF9pdGVyYXRvciBpdCA9IGZ1bmN0aW9uU3RhY2suYmVn
aW4oKTsgaXQgIT0gZnVuY3Rpb25TdGFja0VuZDsgKytpdCkgewogICAgICAgICAgICAgUHV0UHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0KGNhbGxGcmFt
ZSwgKCppdCktPm1faWRlbnQsICgqaXQpLT5tYWtlRnVuY3Rpb24oY2FsbEZyYW1lLCBzY29wZUNo
YWluKSwgc2xvdCk7CisgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0KGNhbGxGcmFtZSwg
KCppdCktPmJvZHkoKS0+bmFtZSgpLCAoKml0KS0+bWFrZUZ1bmN0aW9uKGNhbGxGcmFtZSwgc2Nv
cGVDaGFpbiksIHNsb3QpOwogICAgICAgICB9CiAKICAgICB9CkluZGV4OiBranMvbm9kZXMyc3Ry
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9kZXMyc3RyaW5nLmNwcAkocmV2aXNpb24gMzc5
NDkpCisrKyBranMvbm9kZXMyc3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI1LDEyICs5
MjUsMTIgQEAgdm9pZCBQYXJhbWV0ZXJOb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJlYQogCiB2b2lk
IEZ1bmNEZWNsTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtJiBzKSBjb25zdAogewotICAgIHMg
PDwgRW5kbCA8PCAiZnVuY3Rpb24gIiA8PCBtX2lkZW50IDw8ICcoJyA8PCBtX3BhcmFtZXRlciA8
PCAnKScgPDwgbV9ib2R5OworICAgIHMgPDwgRW5kbCA8PCAiZnVuY3Rpb24gIiA8PCBtX2JvZHkt
Pm5hbWUoKSA8PCAnKCcgPDwgbV9wYXJhbWV0ZXIgPDwgJyknIDw8IG1fYm9keTsKIH0KIAogdm9p
ZCBGdW5jRXhwck5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSYgcykgY29uc3QKIHsKLSAgICBz
IDw8ICJmdW5jdGlvbiAiIDw8IG1faWRlbnQgPDwgJygnIDw8IG1fcGFyYW1ldGVyIDw8ICcpJyA8
PCBtX2JvZHk7CisgICAgcyA8PCAiZnVuY3Rpb24gIiA8PCBtX2JvZHktPm5hbWUoKSA8PCAnKCcg
PDwgbV9wYXJhbWV0ZXIgPDwgJyknIDw8IG1fYm9keTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9ub2Rlcy5jcHAJKHJldmlz
aW9uIDM3OTQ5KQorKysga2pzL25vZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2OCwyMCAr
MTc2OCwyMyBAQCBGdW5jdGlvbkJvZHlOb2RlOjp+RnVuY3Rpb25Cb2R5Tm9kZSgpCiAgICAgICAg
IGZhc3RGcmVlKG1fcGFyYW1ldGVycyk7CiB9CiAKLXZvaWQgRnVuY3Rpb25Cb2R5Tm9kZTo6Zmlu
aXNoUGFyc2luZyhjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcmFtZXRlck5vZGUqIGZpcnN0
UGFyYW1ldGVyKQordm9pZCBGdW5jdGlvbkJvZHlOb2RlOjpmaW5pc2hQYXJzaW5nKGNvbnN0IElk
ZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFyYW1ldGVyTm9kZSog
Zmlyc3RQYXJhbWV0ZXIpCiB7CisgICAgbV9uYW1lID0gbmFtZTsKKwogICAgIFZlY3RvcjxJZGVu
dGlmaWVyPiBwYXJhbWV0ZXJzOwogICAgIGZvciAoUGFyYW1ldGVyTm9kZSogcGFyYW1ldGVyID0g
Zmlyc3RQYXJhbWV0ZXI7IHBhcmFtZXRlcjsgcGFyYW1ldGVyID0gcGFyYW1ldGVyLT5uZXh0UGFy
YW0oKSkKICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQocGFyYW1ldGVyLT5pZGVudCgpKTsKICAg
ICBzaXplX3QgY291bnQgPSBwYXJhbWV0ZXJzLnNpemUoKTsKIAogICAgIHNldFNvdXJjZShzb3Vy
Y2UpOwotICAgIGZpbmlzaFBhcnNpbmcocGFyYW1ldGVycy5yZWxlYXNlQnVmZmVyKCksIGNvdW50
KTsKKyAgICBmaW5pc2hQYXJzaW5nKG5hbWUsIHBhcmFtZXRlcnMucmVsZWFzZUJ1ZmZlcigpLCBj
b3VudCk7CiB9CiAKLXZvaWQgRnVuY3Rpb25Cb2R5Tm9kZTo6ZmluaXNoUGFyc2luZyhJZGVudGlm
aWVyKiBwYXJhbWV0ZXJzLCBzaXplX3QgcGFyYW1ldGVyQ291bnQpCit2b2lkIEZ1bmN0aW9uQm9k
eU5vZGU6OmZpbmlzaFBhcnNpbmcoY29uc3QgSWRlbnRpZmllciYgbmFtZSwgSWRlbnRpZmllciog
cGFyYW1ldGVycywgc2l6ZV90IHBhcmFtZXRlckNvdW50KQogewogICAgIEFTU0VSVCghc291cmNl
KCkuaXNOdWxsKCkpOworICAgIG1fbmFtZSA9IG5hbWU7CiAgICAgbV9wYXJhbWV0ZXJzID0gcGFy
YW1ldGVyczsKICAgICBtX3BhcmFtZXRlckNvdW50ID0gcGFyYW1ldGVyQ291bnQ7CiB9CkBAIC0x
ODcyLDcgKzE4NzUsNyBAQCBJZGVudGlmaWVyKiBGdW5jdGlvbkJvZHlOb2RlOjpjb3B5UGFyYW1l
CiAKIEpTRnVuY3Rpb24qIEZ1bmNEZWNsTm9kZTo6bWFrZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiB7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykg
SlNGdW5jdGlvbihleGVjLCBtX2lkZW50LCBtX2JvZHkuZ2V0KCksIHNjb3BlQ2hhaW4pOworICAg
IHJldHVybiBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhlYywgbV9ib2R5LmdldCgpLCBzY29wZUNo
YWluKTsKIH0KIAogUmVnaXN0ZXJJRCogRnVuY0RlY2xOb2RlOjplbWl0Q29kZShDb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogZHN0KQpAQCAtMTg4OSw3ICsxODkyLDcgQEAgUmVnaXN0ZXJJRCog
RnVuY0V4cHJOb2RlOjplbWl0Q29kZShDb2RlRwogCiBKU0Z1bmN0aW9uKiBGdW5jRXhwck5vZGU6
Om1ha2VGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWlu
KQogewotICAgIEpTRnVuY3Rpb24qIGZ1bmMgPSBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhlYywg
bV9pZGVudCwgbV9ib2R5LmdldCgpLCBzY29wZUNoYWluKTsKKyAgICBKU0Z1bmN0aW9uKiBmdW5j
ID0gbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIG1fYm9keS5nZXQoKSwgc2NvcGVDaGFpbik7
CiAKICAgICAvKiAKICAgICAgICAgVGhlIElkZW50aWZpZXIgaW4gYSBGdW5jdGlvbkV4cHJlc3Np
b24gY2FuIGJlIHJlZmVyZW5jZWQgZnJvbSBpbnNpZGUKQEAgLTE4OTksOCArMTkwMiw4IEBAIEpT
RnVuY3Rpb24qIEZ1bmNFeHByTm9kZTo6bWFrZUZ1bmN0aW9uKEUKICAgICAgICAgZG9lcyBub3Qg
YWZmZWN0IHRoZSBzY29wZSBlbmNsb3NpbmcgdGhlIEZ1bmN0aW9uRXhwcmVzc2lvbi4KICAgICAg
Ki8KIAotICAgIGlmICghbV9pZGVudC5pc051bGwoKSkgewotICAgICAgICBKU1N0YXRpY1Njb3Bl
T2JqZWN0KiBmdW5jdGlvblNjb3BlT2JqZWN0ID0gbmV3IChleGVjKSBKU1N0YXRpY1Njb3BlT2Jq
ZWN0KGV4ZWMsIG1faWRlbnQsIGZ1bmMsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSk7CisgICAgaWYg
KCFtX2JvZHktPm5hbWUoKS5pc051bGwoKSkgeworICAgICAgICBKU1N0YXRpY1Njb3BlT2JqZWN0
KiBmdW5jdGlvblNjb3BlT2JqZWN0ID0gbmV3IChleGVjKSBKU1N0YXRpY1Njb3BlT2JqZWN0KGV4
ZWMsIG1fYm9keS0+bmFtZSgpLCBmdW5jLCBSZWFkT25seSB8IERvbnREZWxldGUpOwogICAgICAg
ICBmdW5jLT5zY29wZSgpLnB1c2goZnVuY3Rpb25TY29wZU9iamVjdCk7CiAgICAgfQogCkluZGV4
OiBranMvbm9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9kZXMuaAkocmV2aXNpb24gMzc5NDkp
CisrKyBranMvbm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2Myw3ICsyMjYzLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdENvZGUoQ29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgSlNDX0ZBU1RfQ0FMTDsKICAgICAgICAgCiAgICAg
ICAgIFN5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSgpIHsgcmV0dXJuIG1fc3ltYm9sVGFibGU7IH0g
Ly8gRklYTUU6IFJlbW92ZSB0aGlzCi0gICAgICAgIAorCisgICAgICAgIElkZW50aWZpZXImIG5h
bWUoKSB7IHJldHVybiBtX25hbWU7IH0KKwogICAgICAgICBDb2RlQmxvY2smIGJ5dGVDb2RlKFNj
b3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKSBKU0NfRkFTVF9DQUxMCiAgICAgICAgIHsKICAgICAg
ICAgICAgIEFTU0VSVChzY29wZUNoYWluKTsKQEAgLTIyODUsOCArMjI4Nyw4IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHZvaWQgbWFyaygpOwogCi0gICAgICAgIHZvaWQgZmluaXNoUGFy
c2luZyhjb25zdCBTb3VyY2VDb2RlJiwgUGFyYW1ldGVyTm9kZSopOwotICAgICAgICB2b2lkIGZp
bmlzaFBhcnNpbmcoSWRlbnRpZmllciogcGFyYW1ldGVycywgc2l6ZV90IHBhcmFtZXRlckNvdW50
KTsKKyAgICAgICAgdm9pZCBmaW5pc2hQYXJzaW5nKGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNv
bnN0IFNvdXJjZUNvZGUmLCBQYXJhbWV0ZXJOb2RlKik7CisgICAgICAgIHZvaWQgZmluaXNoUGFy
c2luZyhjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBJZGVudGlmaWVyKiBwYXJhbWV0ZXJzLCBzaXpl
X3QgcGFyYW1ldGVyQ291bnQpOwogICAgICAgICAKICAgICAgICAgVVN0cmluZyB0b1NvdXJjZVN0
cmluZygpIGNvbnN0IEpTQ19GQVNUX0NBTEwgeyByZXR1cm4gVVN0cmluZygieyIpICsgc291cmNl
KCkudG9TdHJpbmcoKSArIFVTdHJpbmcoIn0iKTsgfQogCkBAIC0yMzEwLDYgKzIzMTIsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGdlbmVyYXRlQ29kZShT
Y29wZUNoYWluTm9kZSopIEpTQ19GQVNUX0NBTEw7CiAKKyAgICAgICAgSWRlbnRpZmllciBtX25h
bWU7CiAgICAgICAgIElkZW50aWZpZXIqIG1fcGFyYW1ldGVyczsKICAgICAgICAgc2l6ZV90IG1f
cGFyYW1ldGVyQ291bnQ7CiAgICAgICAgIFN5bWJvbFRhYmxlIG1fc3ltYm9sVGFibGU7CkBAIC0y
MzE5LDEzICsyMzIyLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgRnVuY0V4cHJO
b2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEZ1bmNF
eHByTm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIGlkZW50
LCBGdW5jdGlvbkJvZHlOb2RlKiBib2R5LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcmFt
ZXRlck5vZGUqIHBhcmFtZXRlciA9IDApIEpTQ19GQVNUX0NBTEwKKyAgICAgICAgRnVuY0V4cHJO
b2RlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRnVu
Y3Rpb25Cb2R5Tm9kZSogYm9keSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJhbWV0ZXJO
b2RlKiBwYXJhbWV0ZXIgPSAwKSBKU0NfRkFTVF9DQUxMCiAgICAgICAgICAgICA6IEV4cHJlc3Np
b25Ob2RlKGdsb2JhbERhdGEpCi0gICAgICAgICAgICAsIG1faWRlbnQoaWRlbnQpCiAgICAgICAg
ICAgICAsIG1fcGFyYW1ldGVyKHBhcmFtZXRlcikKICAgICAgICAgICAgICwgbV9ib2R5KGJvZHkp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fYm9keS0+ZmluaXNoUGFyc2luZyhzb3VyY2UsIG1f
cGFyYW1ldGVyLmdldCgpKTsKKyAgICAgICAgICAgIG1fYm9keS0+ZmluaXNoUGFyc2luZyhuYW1l
LCBzb3VyY2UsIG1fcGFyYW1ldGVyLmdldCgpKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1
YWwgUmVnaXN0ZXJJRCogZW1pdENvZGUoQ29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkg
SlNDX0ZBU1RfQ0FMTDsKQEAgLTIzMzksMjAgKzIzNDEsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgcHJpdmF0ZToKICAgICAgICAgLy8gVXNlZCBmb3Igc3RyZWFtVG8KICAgICAgICAgZnJpZW5k
IGNsYXNzIFByb3BlcnR5Tm9kZTsKLSAgICAgICAgSWRlbnRpZmllciBtX2lkZW50OwogICAgICAg
ICBSZWZQdHI8UGFyYW1ldGVyTm9kZT4gbV9wYXJhbWV0ZXI7CiAgICAgICAgIFJlZlB0cjxGdW5j
dGlvbkJvZHlOb2RlPiBtX2JvZHk7CiAgICAgfTsKIAogICAgIGNsYXNzIEZ1bmNEZWNsTm9kZSA6
IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEZ1bmNEZWNsTm9k
ZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBGdW5j
dGlvbkJvZHlOb2RlKiBib2R5LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcmFtZXRlck5v
ZGUqIHBhcmFtZXRlciA9IDApIEpTQ19GQVNUX0NBTEwKKyAgICAgICAgRnVuY0RlY2xOb2RlKEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRnVuY3Rpb25C
b2R5Tm9kZSogYm9keSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJhbWV0ZXJOb2RlKiBw
YXJhbWV0ZXIgPSAwKSBKU0NfRkFTVF9DQUxMCiAgICAgICAgICAgICA6IFN0YXRlbWVudE5vZGUo
Z2xvYmFsRGF0YSkKLSAgICAgICAgICAgICwgbV9pZGVudChpZGVudCkKICAgICAgICAgICAgICwg
bV9wYXJhbWV0ZXIocGFyYW1ldGVyKQogICAgICAgICAgICAgLCBtX2JvZHkoYm9keSkKICAgICAg
ICAgewotICAgICAgICAgICAgbV9ib2R5LT5maW5pc2hQYXJzaW5nKHNvdXJjZSwgbV9wYXJhbWV0
ZXIuZ2V0KCkpOworICAgICAgICAgICAgbV9ib2R5LT5maW5pc2hQYXJzaW5nKG5hbWUsIHNvdXJj
ZSwgbV9wYXJhbWV0ZXIuZ2V0KCkpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBKU0NfRkFT
VF9DQUxMOwpAQCAtMjM2MCw4ICsyMzYwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0mKSBjb25zdCBKU0NfRkFTVF9DQUxMOwog
ICAgICAgICBKU0Z1bmN0aW9uKiBtYWtlRnVuY3Rpb24oRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5v
ZGUqKSBKU0NfRkFTVF9DQUxMOwogCi0gICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsKLQogICAg
ICAgICBGdW5jdGlvbkJvZHlOb2RlKiBib2R5KCkgeyByZXR1cm4gbV9ib2R5LmdldCgpOyB9CiAK
ICAgICBwcml2YXRlOgpJbmRleDogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAzNzk0
OSkKKysrIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY3LDcgKzY3LDcgQEAgQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdAog
fQogCiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IKLUpTT2JqZWN0KiBj
b25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNv
bnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFtZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBp
bnQgbGluZU51bWJlcikKK0pTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBVU3RyaW5n
JiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyKQogewogICAgIFVTdHJpbmcgcCgiIik7CiAgICAg
VVN0cmluZyBib2R5OwpAQCAtMTI1LDExICsxMjUsMTEgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1
bmN0aW9uKEV4ZWNTdGF0ZSogZQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBTeW50
YXhFcnJvciwgIlN5bnRheCBlcnJvciBpbiBwYXJhbWV0ZXIgbGlzdCIpOwogICAgIH0KICAgICBz
aXplX3QgY291bnQgPSBwYXJhbWV0ZXJzLnNpemUoKTsKLSAgICBmdW5jdGlvbkJvZHktPmZpbmlz
aFBhcnNpbmcocGFyYW1ldGVycy5yZWxlYXNlQnVmZmVyKCksIGNvdW50KTsKKyAgICBmdW5jdGlv
bkJvZHktPmZpbmlzaFBhcnNpbmcoSWRlbnRpZmllcihleGVjLCBVU3RyaW5nOjpudWxsKCkpLCBw
YXJhbWV0ZXJzLnJlbGVhc2VCdWZmZXIoKSwgY291bnQpOwogCiAgICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBTY29wZUNo
YWluIHNjb3BlQ2hhaW4oZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+Z2xvYmFsVGhpc1ZhbHVlKCkpOwotICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3
IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb25Cb2R5LmdldCgp
LCBzY29wZUNoYWluLm5vZGUoKSk7CisgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGV4
ZWMpIEpTRnVuY3Rpb24oZXhlYywgZnVuY3Rpb25Cb2R5LmdldCgpLCBzY29wZUNoYWluLm5vZGUo
KSk7CiAKICAgICBKU09iamVjdCogcHJvdG90eXBlID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhl
Yyk7CiAgICAgcHJvdG90eXBlLT5wdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmNvbnN0
cnVjdG9yLCBmdW5jdGlvbiwgRG9udEVudW0pOwpJbmRleDogcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgJKHJldmlzaW9u
IDM3OTQ5KQorKysgcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgQ2xh
c3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdDsgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gaW5mbzsKIAotICAgICAgICBjb25zdCBVU3RyaW5nJiBuYW1lKEpTR2xvYmFsRGF0YSopOwor
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFVTdHJpbmcmIG5hbWUoSlNHbG9iYWxEYXRhKik7CiAKICAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlSUQ+IGNyZWF0ZVN0cnVjdHVyZUlEKEpT
VmFsdWUqIHByb3RvKSAKICAgICAgICAgeyAKSW5kZXg6IHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkocmV2aXNpb24gMzc5NDkpCisr
KyBydW50aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw4ICs0NSw4IEBA
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNGdW5jdGlvbik7CiAKIGNvbnN0IENsYXNzSW5m
byBKU0Z1bmN0aW9uOjppbmZvID0geyAiRnVuY3Rpb24iLCAwLCAwLCAwIH07CiAKLUpTRnVuY3Rp
b246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBG
dW5jdGlvbkJvZHlOb2RlKiBib2R5LCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCi0g
ICAgOiBCYXNlKCZleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgbmFtZSkKK0pTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhl
Y1N0YXRlKiBleGVjLCBGdW5jdGlvbkJvZHlOb2RlKiBib2R5LCBTY29wZUNoYWluTm9kZSogc2Nv
cGVDaGFpbk5vZGUpCisgICAgOiBCYXNlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVu
Y3Rpb25TdHJ1Y3R1cmUoKSkKICAgICAsIG1fYm9keShib2R5KQogICAgICwgbV9zY29wZUNoYWlu
KHNjb3BlQ2hhaW5Ob2RlKQogewpAQCAtODIsNiArODIsMTEgQEAgSlNWYWx1ZSogSlNGdW5jdGlv
bjo6Y2FsbChFeGVjU3RhdGUqIGV4ZQogICAgIHJldHVybiBleGVjLT5tYWNoaW5lKCktPmV4ZWN1
dGUobV9ib2R5LmdldCgpLCBleGVjLCB0aGlzLCB0aGlzVmFsdWUtPnRvVGhpc09iamVjdChleGVj
KSwgYXJncywgbV9zY29wZUNoYWluLm5vZGUoKSwgZXhlYy0+ZXhjZXB0aW9uU2xvdCgpKTsKIH0K
IAorY29uc3QgVVN0cmluZyYgSlNGdW5jdGlvbjo6bmFtZShKU0dsb2JhbERhdGEqKQoreworICAg
IHJldHVybiBtX2JvZHktPm5hbWUoKS51c3RyaW5nKCk7Cit9CisKIEpTVmFsdWUqIEpTRnVuY3Rp
b246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGFz
RnVuY3Rpb24oc2xvdC5zbG90QmFzZSgpKTsKSW5kZXg6IHJ1bnRpbWUvSlNGdW5jdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHJ1bnRpbWUvSlNGdW5jdGlvbi5oCShyZXZpc2lvbiAzNzk0OSkKKysrIHJ1
bnRpbWUvSlNGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKICAgICAg
ICAgSlNGdW5jdGlvbihQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlSUQ+IHN0KSA6IEludGVybmFs
RnVuY3Rpb24oc3QpLCBtX3Njb3BlQ2hhaW4oTm9TY29wZUNoYWluKCkpIHt9CiAgICAgcHVibGlj
OgotICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBGdW5j
dGlvbkJvZHlOb2RlKiwgU2NvcGVDaGFpbk5vZGUqKTsKKyAgICAgICAgSlNGdW5jdGlvbihFeGVj
U3RhdGUqLCBGdW5jdGlvbkJvZHlOb2RlKiwgU2NvcGVDaGFpbk5vZGUqKTsKICAgICAgICAgfkpT
RnVuY3Rpb24oKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTU0LDYgKzU0
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3QoRXhlY1N0
YXRlKiwgY29uc3QgQXJnTGlzdCYpOwogICAgICAgICBKU1ZhbHVlKiBjYWxsKEV4ZWNTdGF0ZSos
IEpTVmFsdWUqIHRoaXNWYWx1ZSwgY29uc3QgQXJnTGlzdCYpOwogCisgICAgICAgIHZpcnR1YWwg
Y29uc3QgVVN0cmluZyYgbmFtZShKU0dsb2JhbERhdGEqKTsKKwogICAgICAgICAvLyBOb3RlOiBS
ZXR1cm5zIGEgbnVsbCBpZGVudGlmaWVyIGZvciBhbnkgcGFyYW1ldGVycyB0aGF0IHdpbGwgbmV2
ZXIgZ2V0IHNldAogICAgICAgICAvLyBkdWUgdG8gYSBsYXRlciBwYXJhbWV0ZXIgd2l0aCB0aGUg
c2FtZSBuYW1lLgogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBnZXRQYXJhbWV0ZXJOYW1lKGlu
dCBpbmRleCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>