<?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>101720</bug_id>
          
          <creation_ts>2012-11-09 00:25:00 -0800</creation_ts>
          <short_desc>If the DFG ArrayMode says that an access is on an OriginalArray, then the checks should always enforce this</short_desc>
          <delta_ts>2012-11-09 21:54:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>101718</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762654</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-09 00:25:00 -0800</bug_when>
    <thetext>This allows us to cheaply validate whether or not a JSArray still has sane prototype chain, even if we&apos;re not using a structure check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763315</commentid>
    <comment_count>1</comment_count>
      <attachid>173365</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-09 14:26:13 -0800</bug_when>
    <thetext>Created attachment 173365
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763337</commentid>
    <comment_count>2</comment_count>
      <attachid>173365</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-11-09 14:36:01 -0800</bug_when>
    <thetext>Comment on attachment 173365
the patch

r- after doing some rubber ducky. Gotta watch out for &quot;primordial&quot; array structures from other global objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763360</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-09 14:51:38 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 173365 [details])
&gt; r- after doing some rubber ducky. Gotta watch out for &quot;primordial&quot; array structures from other global objects.

Yeah. There&apos;s a much better way to do this.  Just go full retard with OriginalArray.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763493</commentid>
    <comment_count>4</comment_count>
      <attachid>173414</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-09 17:36:35 -0800</bug_when>
    <thetext>Created attachment 173414
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763512</commentid>
    <comment_count>5</comment_count>
      <attachid>173414</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-11-09 18:01:37 -0800</bug_when>
    <thetext>Comment on attachment 173414
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763594</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-09 21:54:49 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/134151</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173365</attachid>
            <date>2012-11-09 14:26:13 -0800</date>
            <delta_ts>2012-11-09 17:36:35 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>original.patch</filename>
            <type>text/plain</type>
            <size>10762</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MTExKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEyLTExLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIGluZGV4aW5nIHR5cGUgc2hvdWxkIHJlZmxlY3Qgd2hldGhlciBvciBub3QgdGhlIHByb3Rv
dHlwZSBvZiB0aGUgb2JqZWN0IGhhcyBldmVyIGNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5vdyBrbm93IHdoZW4gYW4gb2JqZWN0IGhh
cyBjaGFuZ2VkIHByb3RvdHlwZSBqdXN0IGJ5IGxvb2tpbmcgYXQgdGhlIGluZGV4aW5nCisgICAg
ICAgIHR5cGUuIFRoaXMgYWxsb3dzIHVzIHRvIHZlcmlmeSwganVzdCBieSBhbmQmY29tcGFyZSBv
biB0aGUgaW5kZXhpbmcgdHlwZSwgd2hldGhlcgorICAgICAgICBhbiBhcnJheSBpcyBzdGlsbCBp
biAib3JpZ2luYWwiIG1vZGUgZm9yIGFsbCBpbnRlbnRzIGFuZCBwdXJwb3NlczogaXQgd2lsbCB0
ZWxsCisgICAgICAgIHVzIHdoZXRoZXIgaXQncyBhbiBhcnJheSwgYW5kIGl0IHdpbGwgdGVsbCB1
cyB3aGV0aGVyIHRoZSBwcm90b3R5cGUgY2hhaW4gaXMKKyAgICAgICAgc3RpbGwgc2FuZS4KKyAg
ICAgICAgCisgICAgICAgIEFsc28gY2hhbmdlZCB0aGUgREZHIHRvIGFjdHVhbGx5IGNoZWNrIGZv
ciBhcnJheXMgYmVpbmcgaW4gb3JpZ2luYWwgc3RhdGUgZXZlbiBpZgorICAgICAgICB0aGUgY2hl
Y2sgZG9lcyBub3QgdXNlIHRoZSBzdHJ1Y3R1cmUuIFByZXZpb3VzbHksIG9yaWdpbmFsIGFycmF5
cyB3YXMganVzdCBhIGhpbnQKKyAgICAgICAgdGhhdCB3ZSBjb3VsZCB1c2UgYSBzdHJ1Y3R1cmUg
Y2hlY2sgZXZlbiBpZiB0aGUgc3RydWN0dXJlIHdhcyBwb2x5bW9ycGhpYy4gTm93CisgICAgICAg
IGl0J3MgYSBwcm9wZXJ0eSBvZiB0aGUgYXJyYXkgdGhhdCB3ZSBjaGVjayBldmVuIGlmIHdlIG9w
dCBvdXQgb2YgdGhlIHN0cnVjdHVyZQorICAgICAgICBjaGVja2luZyBvcHRpbWl6YXRpb24uCisg
ICAgICAgIAorICAgICAgICBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gbGV2ZXJhZ2Ugb3JpZ2luYWwg
YXJyYXlzIHdoZXJlIHRoZSBwcm90b3R5cGUgY2hhaW4gaXMgc3RpbGwKKyAgICAgICAgc2FuZSBm
b3Igb3B0aW1pemluZyBob2xlIGNoZWNrcywgd2hpY2ggaXMgdGhlIHRvcGljIG9mCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MTguCisKKyAgICAg
ICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6
OmFscmVhZHlDaGVja2VkKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpqdW1wU2xvd0ZvclVud2FudGVkQXJy
YXlNb2RlKToKKyAgICAgICAgKiBydW50aW1lL0luZGV4aW5nVHlwZS5oOgorICAgICAgICAoSlND
KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6Y2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbik6CisKIDIwMTItMTEtMDkgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTbyBUaGluZ3kgcHJvYmFibHkgaXNu
J3QgdGhlIGJlc3QgbmFtZSBmb3IgYSBjbGFzcywgc28KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAJKHJldmlzaW9uIDEzNDAwMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAy
LDE3ICsyMDIsMzAgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKFNwZWN1bGF0ZWRUeQog
CiBib29sIEFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQoQWJzdHJhY3RWYWx1ZSYgdmFsdWUsIElu
ZGV4aW5nVHlwZSBzaGFwZSkgY29uc3QKIHsKLSAgICBpZiAoaXNKU0FycmF5KCkpIHsKKyAgICBz
d2l0Y2ggKGFycmF5Q2xhc3MoKSkgeworICAgIGNhc2UgQXJyYXk6Ok9yaWdpbmFsQXJyYXk6Cisg
ICAgICAgIC8vIEFycmF5TW9kZXMgY2Fubm90IHRlbGwgdXMgaWYgd2UndmUgYWxyZWFkeSBjaGVj
a2VkIHdoZXRoZXIgdGhlIGFycmF5IGlzCisgICAgICAgIC8vIG9yaWdpbmFsLiBXZSBzaG91bGQg
Zml4IHRoaXMgYXQgc29tZSBwb2ludC4gQnV0IGl0J3MgcHJvYmFibHkgbm90IHN1cGVyCisgICAg
ICAgIC8vIGNyaXRpY2FsLCBzaW5jZSBhbGwgKGFsbW9zdCBhbGw/KSBjaGVja3MgZm9yIG9yaWdp
bmFsIGFycmF5cyB3aWxsIHR1cm4KKyAgICAgICAgLy8gaW50byBzdHJ1Y3R1cmUgY2hlY2tzLgor
ICAgICAgICByZXR1cm4gdmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuaGFzU2luZ2xldG9u
KCkKKyAgICAgICAgICAgICYmICh2YWx1ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVyZS5zaW5nbGV0
b24oKS0+aW5kZXhpbmdUeXBlKCkgJiBJbmRleGluZ1NoYXBlTWFzaykgPT0gc2hhcGUKKyAgICAg
ICAgICAgICYmICh2YWx1ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVyZS5zaW5nbGV0b24oKS0+aW5k
ZXhpbmdUeXBlKCkgJiBJc0FycmF5KQorICAgICAgICAgICAgJiYgISh2YWx1ZS5tX2N1cnJlbnRL
bm93blN0cnVjdHVyZS5zaW5nbGV0b24oKS0+aW5kZXhpbmdUeXBlSW5jbHVkaW5nSGlzdG9yeSgp
ICYgSGFzVW5vcmlnaW5hbFByb3RvdHlwZSk7CisgICAgICAgIAorICAgIGNhc2UgQXJyYXk6OkFy
cmF5OgogICAgICAgICBpZiAoYXJyYXlNb2Rlc0FscmVhZHlDaGVja2VkKHZhbHVlLm1fYXJyYXlN
b2RlcywgYXNBcnJheU1vZGVzKHNoYXBlIHwgSXNBcnJheSkpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIHJldHVybiB2YWx1ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVyZS5oYXNT
aW5nbGV0b24oKQogICAgICAgICAgICAgJiYgKHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJl
LnNpbmdsZXRvbigpLT5pbmRleGluZ1R5cGUoKSAmIEluZGV4aW5nU2hhcGVNYXNrKSA9PSBzaGFw
ZQogICAgICAgICAgICAgJiYgKHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLnNpbmdsZXRv
bigpLT5pbmRleGluZ1R5cGUoKSAmIElzQXJyYXkpOworICAgICAgICAKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBpZiAoYXJyYXlNb2Rlc0FscmVhZHlDaGVja2VkKHZhbHVlLm1fYXJyYXlNb2Rlcywg
YXNBcnJheU1vZGVzKHNoYXBlKSB8IGFzQXJyYXlNb2RlcyhzaGFwZSB8IElzQXJyYXkpKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gdmFsdWUubV9jdXJyZW50S25v
d25TdHJ1Y3R1cmUuaGFzU2luZ2xldG9uKCkKKyAgICAgICAgICAgICYmICh2YWx1ZS5tX2N1cnJl
bnRLbm93blN0cnVjdHVyZS5zaW5nbGV0b24oKS0+aW5kZXhpbmdUeXBlKCkgJiBJbmRleGluZ1No
YXBlTWFzaykgPT0gc2hhcGU7CiAgICAgfQotICAgIGlmIChhcnJheU1vZGVzQWxyZWFkeUNoZWNr
ZWQodmFsdWUubV9hcnJheU1vZGVzLCBhc0FycmF5TW9kZXMoc2hhcGUpIHwgYXNBcnJheU1vZGVz
KHNoYXBlIHwgSXNBcnJheSkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gdmFs
dWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuaGFzU2luZ2xldG9uKCkKLSAgICAgICAgJiYgKHZh
bHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLnNpbmdsZXRvbigpLT5pbmRleGluZ1R5cGUoKSAm
IEluZGV4aW5nU2hhcGVNYXNrKSA9PSBzaGFwZTsKIH0KIAogYm9vbCBBcnJheU1vZGU6OmFscmVh
ZHlDaGVja2VkKEFic3RyYWN0VmFsdWUmIHZhbHVlKSBjb25zdApAQCAtMjQwLDE3ICsyNTMsMjYg
QEAgYm9vbCBBcnJheU1vZGU6OmFscmVhZHlDaGVja2VkKEFic3RyYWN0VgogICAgICAgICByZXR1
cm4gYWxyZWFkeUNoZWNrZWQodmFsdWUsIEFycmF5U3RvcmFnZVNoYXBlKTsKICAgICAgICAgCiAg
ICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZToKLSAgICAgICAgaWYgKGlzSlNBcnJh
eSgpKSB7CisgICAgICAgIHN3aXRjaCAoYXJyYXlDbGFzcygpKSB7CisgICAgICAgIGNhc2UgQXJy
YXk6Ok9yaWdpbmFsQXJyYXk6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubV9jdXJyZW50S25v
d25TdHJ1Y3R1cmUuaGFzU2luZ2xldG9uKCkKKyAgICAgICAgICAgICAgICAmJiBoYXNBcnJheVN0
b3JhZ2UodmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuc2luZ2xldG9uKCktPmluZGV4aW5n
VHlwZSgpKQorICAgICAgICAgICAgICAgICYmICh2YWx1ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVy
ZS5zaW5nbGV0b24oKS0+aW5kZXhpbmdUeXBlKCkgJiBJc0FycmF5KQorICAgICAgICAgICAgICAg
ICYmICEodmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuc2luZ2xldG9uKCktPmluZGV4aW5n
VHlwZUluY2x1ZGluZ0hpc3RvcnkoKSAmIEhhc1Vub3JpZ2luYWxQcm90b3R5cGUpOworICAgICAg
ICAKKyAgICAgICAgY2FzZSBBcnJheTo6QXJyYXk6CiAgICAgICAgICAgICBpZiAoYXJyYXlNb2Rl
c0FscmVhZHlDaGVja2VkKHZhbHVlLm1fYXJyYXlNb2RlcywgYXNBcnJheU1vZGVzKEFycmF5V2l0
aEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9kZXMoQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFn
ZSkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLmhhc1NpbmdsZXRvbigpCiAgICAgICAgICAgICAg
ICAgJiYgaGFzQXJyYXlTdG9yYWdlKHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLnNpbmds
ZXRvbigpLT5pbmRleGluZ1R5cGUoKSkKICAgICAgICAgICAgICAgICAmJiAodmFsdWUubV9jdXJy
ZW50S25vd25TdHJ1Y3R1cmUuc2luZ2xldG9uKCktPmluZGV4aW5nVHlwZSgpICYgSXNBcnJheSk7
CisgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGFycmF5TW9kZXNB
bHJlYWR5Q2hlY2tlZCh2YWx1ZS5tX2FycmF5TW9kZXMsIGFzQXJyYXlNb2RlcyhOb25BcnJheVdp
dGhBcnJheVN0b3JhZ2UpIHwgYXNBcnJheU1vZGVzKEFycmF5V2l0aEFycmF5U3RvcmFnZSkgfCBh
c0FycmF5TW9kZXMoTm9uQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9k
ZXMoQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZSkpKQorICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJl
Lmhhc1NpbmdsZXRvbigpCisgICAgICAgICAgICAgICAgJiYgaGFzQXJyYXlTdG9yYWdlKHZhbHVl
Lm1fY3VycmVudEtub3duU3RydWN0dXJlLnNpbmdsZXRvbigpLT5pbmRleGluZ1R5cGUoKSk7CiAg
ICAgICAgIH0KLSAgICAgICAgaWYgKGFycmF5TW9kZXNBbHJlYWR5Q2hlY2tlZCh2YWx1ZS5tX2Fy
cmF5TW9kZXMsIGFzQXJyYXlNb2RlcyhOb25BcnJheVdpdGhBcnJheVN0b3JhZ2UpIHwgYXNBcnJh
eU1vZGVzKEFycmF5V2l0aEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9kZXMoTm9uQXJyYXlXaXRo
U2xvd1B1dEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9kZXMoQXJyYXlXaXRoU2xvd1B1dEFycmF5
U3RvcmFnZSkpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIHJldHVybiB2YWx1
ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVyZS5oYXNTaW5nbGV0b24oKQotICAgICAgICAgICAgJiYg
aGFzQXJyYXlTdG9yYWdlKHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLnNpbmdsZXRvbigp
LT5pbmRleGluZ1R5cGUoKSk7CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXk6OkFyZ3VtZW50czoK
ICAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9uQ2hlY2tlZCh2YWx1ZS5tX3R5cGUsIFNwZWNBcmd1
bWVudHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAJKHJldmlzaW9uIDEzNDAwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsMTMgKzM2MSwy
MSBAQCBjb25zdCBUeXBlZEFycmF5RGVzY3JpcHRvciogU3BlY3VsYXRpdmVKCiAKIEpJVENvbXBp
bGVyOjpKdW1wIFNwZWN1bGF0aXZlSklUOjpqdW1wU2xvd0ZvclVud2FudGVkQXJyYXlNb2RlKEdQ
UlJlZyB0ZW1wR1BSLCBBcnJheU1vZGUgYXJyYXlNb2RlLCBJbmRleGluZ1R5cGUgc2hhcGUsIGJv
b2wgaW52ZXJ0KQogewotICAgIGlmIChhcnJheU1vZGUuaXNKU0FycmF5KCkpIHsKKyAgICBzd2l0
Y2ggKGFycmF5TW9kZS5hcnJheUNsYXNzKCkpIHsKKyAgICBjYXNlIEFycmF5OjpPcmlnaW5hbEFy
cmF5OgorICAgICAgICBtX2ppdC5hbmQzMihUcnVzdGVkSW1tMzIoSXNBcnJheSB8IEluZGV4aW5n
U2hhcGVNYXNrIHwgSGFzVW5vcmlnaW5hbFByb3RvdHlwZSksIHRlbXBHUFIpOworICAgICAgICBy
ZXR1cm4gbV9qaXQuYnJhbmNoMzIoCisgICAgICAgICAgICBpbnZlcnQgPyBNYWNyb0Fzc2VtYmxl
cjo6RXF1YWwgOiBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHRlbXBHUFIsIFRydXN0ZWRJbW0z
MihJc0FycmF5IHwgc2hhcGUpKTsKKyAgICAgICAgCisgICAgY2FzZSBBcnJheTo6QXJyYXk6CiAg
ICAgICAgIG1faml0LmFuZDMyKFRydXN0ZWRJbW0zMihJc0FycmF5IHwgSW5kZXhpbmdTaGFwZU1h
c2spLCB0ZW1wR1BSKTsKICAgICAgICAgcmV0dXJuIG1faml0LmJyYW5jaDMyKAogICAgICAgICAg
ICAgaW52ZXJ0ID8gTWFjcm9Bc3NlbWJsZXI6OkVxdWFsIDogTWFjcm9Bc3NlbWJsZXI6Ok5vdEVx
dWFsLCB0ZW1wR1BSLCBUcnVzdGVkSW1tMzIoSXNBcnJheSB8IHNoYXBlKSk7CisgICAgICAgIAor
ICAgIGRlZmF1bHQ6CisgICAgICAgIG1faml0LmFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1No
YXBlTWFzayksIHRlbXBHUFIpOworICAgICAgICByZXR1cm4gbV9qaXQuYnJhbmNoMzIoaW52ZXJ0
ID8gTWFjcm9Bc3NlbWJsZXI6OkVxdWFsIDogTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCB0ZW1w
R1BSLCBUcnVzdGVkSW1tMzIoc2hhcGUpKTsKICAgICB9Ci0gICAgbV9qaXQuYW5kMzIoVHJ1c3Rl
ZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgdGVtcEdQUik7Ci0gICAgcmV0dXJuIG1faml0LmJy
YW5jaDMyKGludmVydCA/IE1hY3JvQXNzZW1ibGVyOjpFcXVhbCA6IE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMyKHNoYXBlKSk7CiB9CiAKIEpJVENvbXBpbGVy
OjpKdW1wTGlzdCBTcGVjdWxhdGl2ZUpJVDo6anVtcFNsb3dGb3JVbndhbnRlZEFycmF5TW9kZShH
UFJSZWcgdGVtcEdQUiwgQXJyYXlNb2RlIGFycmF5TW9kZSwgYm9vbCBpbnZlcnQpCkBAIC0zODks
OSArMzk3LDEzIEBAIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2ZUpJVDo6anUKICAg
ICAgICAgaWYgKGFycmF5TW9kZS5pc0pTQXJyYXkoKSkgewogICAgICAgICAgICAgaWYgKGFycmF5
TW9kZS5pc1Nsb3dQdXQoKSkgewogICAgICAgICAgICAgICAgIGlmIChpbnZlcnQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2xvdyA9IAotICAgICAgICAgICAgICAg
ICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdDMyKAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpaZXJvLCB0ZW1wR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKElzQXJyYXkpKTsKKyAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0
IHNsb3c7CisgICAgICAgICAgICAgICAgICAgIHNsb3cuYXBwZW5kKG1faml0LmJyYW5jaFRlc3Qz
MigKKyAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpaZXJvLCB0ZW1wR1BS
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKElzQXJyYXkpKSk7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChhcnJheU1vZGUuYXJyYXlDbGFzcygpID09IEFycmF5OjpPcmlnaW5hbEFycmF5
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzbG93LmFwcGVuZChtX2ppdC5icmFuY2hUZXN0
MzIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8s
IHRlbXBHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSGFzVW5vcmlnaW5hbFByb3Rv
dHlwZSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBtX2pp
dC5hbmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFwZU1hc2spLCB0ZW1wR1BSKTsKICAgICAg
ICAgICAgICAgICAgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZEltbTMyKEFycmF5U3RvcmFnZVNoYXBl
KSwgdGVtcEdQUik7CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoCkBAIC00MDUs
NiArNDE3LDExIEBAIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBTcGVjdWxhdGl2ZUpJVDo6anUKICAg
ICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2hUZXN0MzIoCiAgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6WmVy
bywgdGVtcEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJc0FycmF5KSkpOworICAg
ICAgICAgICAgICAgIGlmIChhcnJheU1vZGUuYXJyYXlDbGFzcygpID09IEFycmF5OjpPcmlnaW5h
bEFycmF5KSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0MzIoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHRlbXBHUFIsIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoSGFzVW5vcmlnaW5hbFByb3RvdHlwZSkpKTsKKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVN
YXNrKSwgdGVtcEdQUik7CiAgICAgICAgICAgICAgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZEltbTMy
KEFycmF5U3RvcmFnZVNoYXBlKSwgdGVtcEdQUik7CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZGV4aW5nVHlwZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZGV4aW5nVHlw
ZS5oCShyZXZpc2lvbiAxMzQwMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bmRleGluZ1R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBzdGF0aWMgY29u
c3QgSW5kZXhpbmdUeXBlIE51bWJlck9mSW5kZXhpCiAvLyBBZGRpdGlvbmFsIGZsYWdzIGZvciB0
cmFja2luZyB0aGUgaGlzdG9yeSBvZiB0aGUgdHlwZS4gVGhlc2UgYXJlIHVzdWFsbHkKIC8vIG1h
c2tlZCBvZmYgdW5sZXNzIHlvdSBhc2sgZm9yIHRoZW0gZGlyZWN0bHkuCiBzdGF0aWMgY29uc3Qg
SW5kZXhpbmdUeXBlIE1heUhhdmVJbmRleGVkQWNjZXNzb3JzICA9IDMyOworc3RhdGljIGNvbnN0
IEluZGV4aW5nVHlwZSBIYXNVbm9yaWdpbmFsUHJvdG90eXBlICAgPSA2NDsKIAogLy8gTGlzdCBv
ZiBhY2NlcHRhYmxlIGFycmF5IHR5cGVzLgogc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBOb25B
cnJheSAgICAgICAgICAgICAgICAgICAgICAgID0gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkocmV2aXNpb24gMTM0MDAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDE5LDYgKzQxOSw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjaGFuZ2VQcm90b3R5cGVUcmEK
ICAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxE
YXRhKTsKICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQ
cm9wZXJ0eVRhYmxlRm9yUGlubmluZyhnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICB0cmFu
c2l0aW9uLT5waW4oKTsKKyAgICB0cmFuc2l0aW9uLT5tX2luZGV4aW5nVHlwZSB8PSBIYXNVbm9y
aWdpbmFsUHJvdG90eXBlOwogCiAgICAgcmV0dXJuIHRyYW5zaXRpb247CiB9Cg==
</data>
<flag name="review"
          id="188038"
          type_id="1"
          status="-"
          setter="mhahnenberg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173414</attachid>
            <date>2012-11-09 17:36:35 -0800</date>
            <delta_ts>2012-11-09 18:01:36 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>original.patch</filename>
            <type>text/plain</type>
            <size>20393</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MTM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDEyLTExLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SWYgdGhlIERGRyBBcnJheU1vZGUgc2F5cyB0aGF0IGFuIGFjY2VzcyBpcyBvbiBhbiBPcmlnaW5h
bEFycmF5LCB0aGVuIHRoZSBjaGVja3Mgc2hvdWxkIGFsd2F5cyBlbmZvcmNlIHRoaXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHksICJv
cmlnaW5hbCIgYXJyYXlzIHdhcyBqdXN0IGEgaGludCB0aGF0IHdlIGNvdWxkIGZpbmQgdGhlIHN0
cnVjdHVyZQorICAgICAgICBvZiB0aGUgYXJyYXkgaWYgd2UgbmVlZGVkIHRvIGV2ZW4gaWYgdGhl
IGFycmF5IHByb2ZpbGUgZGlkbid0IGhhdmUgaXQgZHVlIHRvCisgICAgICAgIHBvbHltb3JwaGlz
bS4gTm93LCAib3JpZ2luYWwiIGFycmF5cyBhcmUgYSBwcm9wZXJ0eSB0aGF0IGlzIGFjdHVhbGx5
IGNoZWNrZWQ6CisgICAgICAgIGlmIGFuIGFycmF5IGFjY2VzcyBoYXMgQXJyYXlNb2RlOjphcnJh
eUNsYXNzKCkgPT0gQXJyYXk6Ok9yaWdpbmFsQXJyYXksIHRoZW4gd2UKKyAgICAgICAgY2FuIGJl
IHN1cmUgdGhhdCB0aGUgY29kZSBwZXJmb3JtaW5nIHRoZSBhY2Nlc3MgaXMgZGVhbGluZyB3aXRo
IG5vdCBqdXN0IGEKKyAgICAgICAgSlNBcnJheSwgYnV0IGEgSlNBcnJheSB0aGF0IGhhcyBubyBu
YW1lZCBwcm9wZXJ0aWVzLCBubyBpbmRleGVkIGFjY2Vzc29ycywgYW5kCisgICAgICAgIHRoZSBB
cnJheVByb3RvdHlwZSBhcyBpdHMgcHJvdG90eXBlLiBUaGlzIHdpbGwgYmUgdXNlZnVsIGZvciBv
cHRpbWl6YXRpb25zIHRoYXQKKyAgICAgICAgYXJlIGJlaW5nIGRvbmUgYXMgcGFydCBvZiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzIwLgorCisgICAgICAgICog
ZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0U3Rh
dGU6OmV4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdBcnJheU1vZGUuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkFycmF5TW9kZTo6b3JpZ2luYWxBcnJheVN0cnVjdHVyZSk6CisgICAgICAgIChE
RkcpOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQpOgorICAg
ICAgICAqIGRmZy9ERkdBcnJheU1vZGUuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChERkcp
OgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6d2l0aFByb2ZpbGUpOgorICAgICAgICAo
QXJyYXlNb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6OmJlbmVmaXRzRnJvbU9y
aWdpbmFsQXJyYXkpOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMp
OgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjpjaGVja0FycmF5KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpqdW1wU2xvd0ZvclVud2Fu
dGVkQXJyYXlNb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tB
cnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZh
bE9uU3RyaW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5VmFsT25JbnRUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkFyZ3VtZW50
cyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcmd1bWVu
dHNMZW5ndGgpOgorCiAyMDEyLTExLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IGluZGVudGF0aW9uIG9mIEJvb2xlYW5Qcm90b3R5cGUuaApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCShyZXZp
c2lvbiAxMzQwMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3Rh
dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUyLDcgKzE0NTIsNyBAQCBib29sIEFic3RyYWN0
U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kCiAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5j
bGVhcigpOyAvLyBUaGUgcmVzdWx0IGlzIG5vdCBhIEpTIHZhbHVlLgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENoZWNrQXJyYXk6IHsKLSAgICAgICAgaWYgKG5vZGUuYXJyYXlNb2RlKCkuYWxy
ZWFkeUNoZWNrZWQoZm9yTm9kZShub2RlLmNoaWxkMSgpKSkpIHsKKyAgICAgICAgaWYgKG5vZGUu
YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9ncmFwaCwgbm9kZSwgZm9yTm9kZShub2RlLmNo
aWxkMSgpKSkpIHsKICAgICAgICAgICAgIG1fZm91bmRDb25zdGFudHMgPSB0cnVlOwogICAgICAg
ICAgICAgbm9kZS5zZXRDYW5FeGl0KGZhbHNlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTUw
OCw3ICsxNTA4LDcgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBBcnJheWlmeTogewotICAgICAgICBpZiAo
bm9kZS5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChmb3JOb2RlKG5vZGUuY2hpbGQxKCkpKSkg
eworICAgICAgICBpZiAobm9kZS5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2dyYXBoLCBu
b2RlLCBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpKSkgewogICAgICAgICAgICAgbV9mb3VuZENvbnN0
YW50cyA9IHRydWU7CiAgICAgICAgICAgICBub2RlLnNldENhbkV4aXQoZmFsc2UpOwogICAgICAg
ICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1v
ZGUuY3BwCShyZXZpc2lvbiAxMzQwMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0FycmF5TW9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFC
TEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0VmFsdWUuaCIKKyNpbmNsdWRlICJE
RkdHcmFwaC5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKQEAgLTIwMCwy
MiArMjAxLDU4IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHkKICAg
ICB9CiB9CiAKLWJvb2wgQXJyYXlNb2RlOjphbHJlYWR5Q2hlY2tlZChBYnN0cmFjdFZhbHVlJiB2
YWx1ZSwgSW5kZXhpbmdUeXBlIHNoYXBlKSBjb25zdAorU3RydWN0dXJlKiBBcnJheU1vZGU6Om9y
aWdpbmFsQXJyYXlTdHJ1Y3R1cmUoR3JhcGgmIGdyYXBoLCBjb25zdCBDb2RlT3JpZ2luJiBjb2Rl
T3JpZ2luKSBjb25zdAogewotICAgIGlmIChpc0pTQXJyYXkoKSkgeworICAgIGlmICghaXNKU0Fy
cmF5V2l0aE9yaWdpbmFsU3RydWN0dXJlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBncmFwaC5nbG9iYWxPYmplY3RGb3IoY29k
ZU9yaWdpbik7CisgICAgCisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIEFycmF5OjpJ
bnQzMjoKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVy
ZUZvckluZGV4aW5nVHlwZShBcnJheVdpdGhJbnQzMik7CisgICAgY2FzZSBBcnJheTo6RG91Ymxl
OgorICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9y
SW5kZXhpbmdUeXBlKEFycmF5V2l0aERvdWJsZSk7CisgICAgY2FzZSBBcnJheTo6Q29udGlndW91
czoKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVyZUZv
ckluZGV4aW5nVHlwZShBcnJheVdpdGhDb250aWd1b3VzKTsKKyAgICBjYXNlIEFycmF5OjpBcnJh
eVN0b3JhZ2U6CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1
Y3R1cmVGb3JJbmRleGluZ1R5cGUoQXJyYXlXaXRoQXJyYXlTdG9yYWdlKTsKKyAgICBkZWZhdWx0
OgorICAgICAgICBDUkFTSCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK1N0cnVj
dHVyZSogQXJyYXlNb2RlOjpvcmlnaW5hbEFycmF5U3RydWN0dXJlKEdyYXBoJiBncmFwaCwgTm9k
ZSYgbm9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gb3JpZ2luYWxBcnJheVN0cnVjdHVyZShncmFw
aCwgbm9kZS5jb2RlT3JpZ2luKTsKK30KKworYm9vbCBBcnJheU1vZGU6OmFscmVhZHlDaGVja2Vk
KEdyYXBoJiBncmFwaCwgTm9kZSYgbm9kZSwgQWJzdHJhY3RWYWx1ZSYgdmFsdWUsIEluZGV4aW5n
VHlwZSBzaGFwZSkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGFycmF5Q2xhc3MoKSkgeworICAgIGNh
c2UgQXJyYXk6Ok9yaWdpbmFsQXJyYXk6CisgICAgICAgIHJldHVybiB2YWx1ZS5tX2N1cnJlbnRL
bm93blN0cnVjdHVyZS5oYXNTaW5nbGV0b24oKQorICAgICAgICAgICAgJiYgKHZhbHVlLm1fY3Vy
cmVudEtub3duU3RydWN0dXJlLnNpbmdsZXRvbigpLT5pbmRleGluZ1R5cGUoKSAmIEluZGV4aW5n
U2hhcGVNYXNrKSA9PSBzaGFwZQorICAgICAgICAgICAgJiYgKHZhbHVlLm1fY3VycmVudEtub3du
U3RydWN0dXJlLnNpbmdsZXRvbigpLT5pbmRleGluZ1R5cGUoKSAmIElzQXJyYXkpCisgICAgICAg
ICAgICAmJiBncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS5jb2RlT3JpZ2luKS0+aXNPcmlnaW5h
bEFycmF5U3RydWN0dXJlKHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLnNpbmdsZXRvbigp
KTsKKyAgICAgICAgCisgICAgY2FzZSBBcnJheTo6QXJyYXk6CiAgICAgICAgIGlmIChhcnJheU1v
ZGVzQWxyZWFkeUNoZWNrZWQodmFsdWUubV9hcnJheU1vZGVzLCBhc0FycmF5TW9kZXMoc2hhcGUg
fCBJc0FycmF5KSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIHZh
bHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLmhhc1NpbmdsZXRvbigpCiAgICAgICAgICAgICAm
JiAodmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuc2luZ2xldG9uKCktPmluZGV4aW5nVHlw
ZSgpICYgSW5kZXhpbmdTaGFwZU1hc2spID09IHNoYXBlCiAgICAgICAgICAgICAmJiAodmFsdWUu
bV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuc2luZ2xldG9uKCktPmluZGV4aW5nVHlwZSgpICYgSXNB
cnJheSk7CisgICAgICAgIAorICAgIGRlZmF1bHQ6CisgICAgICAgIGlmIChhcnJheU1vZGVzQWxy
ZWFkeUNoZWNrZWQodmFsdWUubV9hcnJheU1vZGVzLCBhc0FycmF5TW9kZXMoc2hhcGUpIHwgYXNB
cnJheU1vZGVzKHNoYXBlIHwgSXNBcnJheSkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIHJldHVybiB2YWx1ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVyZS5oYXNTaW5nbGV0b24o
KQorICAgICAgICAgICAgJiYgKHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLnNpbmdsZXRv
bigpLT5pbmRleGluZ1R5cGUoKSAmIEluZGV4aW5nU2hhcGVNYXNrKSA9PSBzaGFwZTsKICAgICB9
Ci0gICAgaWYgKGFycmF5TW9kZXNBbHJlYWR5Q2hlY2tlZCh2YWx1ZS5tX2FycmF5TW9kZXMsIGFz
QXJyYXlNb2RlcyhzaGFwZSkgfCBhc0FycmF5TW9kZXMoc2hhcGUgfCBJc0FycmF5KSkpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiB2YWx1ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVy
ZS5oYXNTaW5nbGV0b24oKQotICAgICAgICAmJiAodmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1
cmUuc2luZ2xldG9uKCktPmluZGV4aW5nVHlwZSgpICYgSW5kZXhpbmdTaGFwZU1hc2spID09IHNo
YXBlOwogfQogCi1ib29sIEFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQoQWJzdHJhY3RWYWx1ZSYg
dmFsdWUpIGNvbnN0Citib29sIEFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQoR3JhcGgmIGdyYXBo
LCBOb2RlJiBub2RlLCBBYnN0cmFjdFZhbHVlJiB2YWx1ZSkgY29uc3QKIHsKICAgICBzd2l0Y2gg
KHR5cGUoKSkgewogICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6CkBAIC0yMjgsMjkgKzI2NSwzNiBA
QCBib29sIEFycmF5TW9kZTo6YWxyZWFkeUNoZWNrZWQoQWJzdHJhY3RWCiAgICAgICAgIHJldHVy
biBzcGVjdWxhdGlvbkNoZWNrZWQodmFsdWUubV90eXBlLCBTcGVjU3RyaW5nKTsKICAgICAgICAg
CiAgICAgY2FzZSBBcnJheTo6SW50MzI6Ci0gICAgICAgIHJldHVybiBhbHJlYWR5Q2hlY2tlZCh2
YWx1ZSwgSW50MzJTaGFwZSk7CisgICAgICAgIHJldHVybiBhbHJlYWR5Q2hlY2tlZChncmFwaCwg
bm9kZSwgdmFsdWUsIEludDMyU2hhcGUpOwogICAgICAgICAKICAgICBjYXNlIEFycmF5OjpEb3Vi
bGU6Ci0gICAgICAgIHJldHVybiBhbHJlYWR5Q2hlY2tlZCh2YWx1ZSwgRG91YmxlU2hhcGUpOwor
ICAgICAgICByZXR1cm4gYWxyZWFkeUNoZWNrZWQoZ3JhcGgsIG5vZGUsIHZhbHVlLCBEb3VibGVT
aGFwZSk7CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6Ci0gICAgICAgIHJl
dHVybiBhbHJlYWR5Q2hlY2tlZCh2YWx1ZSwgQ29udGlndW91c1NoYXBlKTsKKyAgICAgICAgcmV0
dXJuIGFscmVhZHlDaGVja2VkKGdyYXBoLCBub2RlLCB2YWx1ZSwgQ29udGlndW91c1NoYXBlKTsK
ICAgICAgICAgCiAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgotICAgICAgICByZXR1cm4g
YWxyZWFkeUNoZWNrZWQodmFsdWUsIEFycmF5U3RvcmFnZVNoYXBlKTsKKyAgICAgICAgcmV0dXJu
IGFscmVhZHlDaGVja2VkKGdyYXBoLCBub2RlLCB2YWx1ZSwgQXJyYXlTdG9yYWdlU2hhcGUpOwog
ICAgICAgICAKICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOgotICAgICAgICBp
ZiAoaXNKU0FycmF5KCkpIHsKKyAgICAgICAgc3dpdGNoIChhcnJheUNsYXNzKCkpIHsKKyAgICAg
ICAgY2FzZSBBcnJheTo6T3JpZ2luYWxBcnJheToKKyAgICAgICAgICAgIENSQVNIKCk7CisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBjYXNlIEFycmF5OjpBcnJh
eToKICAgICAgICAgICAgIGlmIChhcnJheU1vZGVzQWxyZWFkeUNoZWNrZWQodmFsdWUubV9hcnJh
eU1vZGVzLCBhc0FycmF5TW9kZXMoQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSB8IGFzQXJyYXlNb2Rl
cyhBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gdmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUu
aGFzU2luZ2xldG9uKCkKICAgICAgICAgICAgICAgICAmJiBoYXNBcnJheVN0b3JhZ2UodmFsdWUu
bV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuc2luZ2xldG9uKCktPmluZGV4aW5nVHlwZSgpKQogICAg
ICAgICAgICAgICAgICYmICh2YWx1ZS5tX2N1cnJlbnRLbm93blN0cnVjdHVyZS5zaW5nbGV0b24o
KS0+aW5kZXhpbmdUeXBlKCkgJiBJc0FycmF5KTsKKyAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICBpZiAoYXJyYXlNb2Rlc0FscmVhZHlDaGVja2VkKHZhbHVlLm1fYXJyYXlN
b2RlcywgYXNBcnJheU1vZGVzKE5vbkFycmF5V2l0aEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9k
ZXMoQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSB8IGFzQXJyYXlNb2RlcyhOb25BcnJheVdpdGhTbG93
UHV0QXJyYXlTdG9yYWdlKSB8IGFzQXJyYXlNb2RlcyhBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9y
YWdlKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4g
dmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuaGFzU2luZ2xldG9uKCkKKyAgICAgICAgICAg
ICAgICAmJiBoYXNBcnJheVN0b3JhZ2UodmFsdWUubV9jdXJyZW50S25vd25TdHJ1Y3R1cmUuc2lu
Z2xldG9uKCktPmluZGV4aW5nVHlwZSgpKTsKICAgICAgICAgfQotICAgICAgICBpZiAoYXJyYXlN
b2Rlc0FscmVhZHlDaGVja2VkKHZhbHVlLm1fYXJyYXlNb2RlcywgYXNBcnJheU1vZGVzKE5vbkFy
cmF5V2l0aEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9kZXMoQXJyYXlXaXRoQXJyYXlTdG9yYWdl
KSB8IGFzQXJyYXlNb2RlcyhOb25BcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlKSB8IGFzQXJy
YXlNb2RlcyhBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlKSkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIHZhbHVlLm1fY3VycmVudEtub3duU3RydWN0dXJlLmhh
c1NpbmdsZXRvbigpCi0gICAgICAgICAgICAmJiBoYXNBcnJheVN0b3JhZ2UodmFsdWUubV9jdXJy
ZW50S25vd25TdHJ1Y3R1cmUuc2luZ2xldG9uKCktPmluZGV4aW5nVHlwZSgpKTsKICAgICAgICAg
CiAgICAgY2FzZSBBcnJheTo6QXJndW1lbnRzOgogICAgICAgICByZXR1cm4gc3BlY3VsYXRpb25D
aGVja2VkKHZhbHVlLm1fdHlwZSwgU3BlY0FyZ3VtZW50cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgJKHJldmlzaW9uIDEzNDAwMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkg
KzMzLDE1IEBACiAjaW5jbHVkZSAiQXJyYXlQcm9maWxlLmgiCiAjaW5jbHVkZSAiU3BlY3VsYXRl
ZFR5cGUuaCIKIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworbmFtZXNwYWNlIEpT
QyB7CiAKK3N0cnVjdCBDb2RlT3JpZ2luOworCituYW1lc3BhY2UgREZHIHsKKworY2xhc3MgR3Jh
cGg7CiBzdHJ1Y3QgQWJzdHJhY3RWYWx1ZTsKK3N0cnVjdCBOb2RlOwogCiAvLyBVc2UgYSBuYW1l
c3BhY2UgKyBlbnVtIGluc3RlYWQgb2YgZW51bSBhbG9uZSB0byBhdm9pZCB0aGUgbmFtZXNwYWNl
IGNvbGxpc2lvbgogLy8gdGhhdCB3b3VsZCBvdGhlcndpc2Ugb2NjdXIsIHNpbmNlIHdlIHNheSB0
aGluZ3MgbGlrZSAiSW50OEFycmF5IiBhbmQgIkpTQXJyYXkiCkBAIC0xNjEsNyArMTY3LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgbXlTcGVjdWxhdGlvbiA9IEFycmF5OjpJbkJvdW5kczsKICAg
ICAgICAgCiAgICAgICAgIGlmIChpc0pTQXJyYXkoKSkgewotICAgICAgICAgICAgaWYgKHByb2Zp
bGUtPnVzZXNPcmlnaW5hbEFycmF5U3RydWN0dXJlcygpKQorICAgICAgICAgICAgaWYgKHByb2Zp
bGUtPnVzZXNPcmlnaW5hbEFycmF5U3RydWN0dXJlcygpICYmIGJlbmVmaXRzRnJvbU9yaWdpbmFs
QXJyYXkoKSkKICAgICAgICAgICAgICAgICBteUFycmF5Q2xhc3MgPSBBcnJheTo6T3JpZ2luYWxB
cnJheTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBteUFycmF5Q2xhc3MgPSBB
cnJheTo6QXJyYXk7CkBAIC0xODMsNyArMTg5LDcgQEAgcHVibGljOgogICAgIAogICAgIEFycmF5
TW9kZSByZWZpbmUoU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlID0gU3BlY05vbmUpIGNvbnN0OwogICAgIAotICAgIGJvb2wgYWxy
ZWFkeUNoZWNrZWQoQWJzdHJhY3RWYWx1ZSYpIGNvbnN0OworICAgIGJvb2wgYWxyZWFkeUNoZWNr
ZWQoR3JhcGgmLCBOb2RlJiwgQWJzdHJhY3RWYWx1ZSYpIGNvbnN0OwogICAgIAogICAgIGNvbnN0
IGNoYXIqIHRvU3RyaW5nKCkgY29uc3Q7CiAgICAgCkBAIC0zMDMsNiArMzA5LDIzIEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgIH0KICAgICAKKyAgICBib29sIGJlbmVmaXRzRnJvbU9yaWdpbmFs
QXJyYXkoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICAgICAg
Y2FzZSBBcnJheTo6SW50MzI6CisgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKKyAgICAgICAg
Y2FzZSBBcnJheTo6Q29udGlndW91czoKKyAgICAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdl
OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gUmV0dXJucyAw
IGlmIHRoaXMgaXMgbm90IE9yaWdpbmFsQXJyYXkuCisgICAgU3RydWN0dXJlKiBvcmlnaW5hbEFy
cmF5U3RydWN0dXJlKEdyYXBoJiwgY29uc3QgQ29kZU9yaWdpbiYpIGNvbnN0OworICAgIFN0cnVj
dHVyZSogb3JpZ2luYWxBcnJheVN0cnVjdHVyZShHcmFwaCYsIE5vZGUmKSBjb25zdDsKKyAgICAK
ICAgICBib29sIGJlbmVmaXRzRnJvbVN0cnVjdHVyZUNoZWNrKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHN3aXRjaCAodHlwZSgpKSB7CkBAIC0zNzUsNyArMzk4LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgfQogICAgIH0KICAgICAKLSAgICBib29sIGFscmVhZHlDaGVja2VkKEFic3RyYWN0VmFsdWUm
LCBJbmRleGluZ1R5cGUgc2hhcGUpIGNvbnN0OworICAgIGJvb2wgYWxyZWFkeUNoZWNrZWQoR3Jh
cGgmLCBOb2RlJiwgQWJzdHJhY3RWYWx1ZSYsIEluZGV4aW5nVHlwZSBzaGFwZSkgY29uc3Q7CiAg
ICAgCiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3QgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAJKHJldmlz
aW9uIDEzNDAwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICAgICAg
ICAgIGNhc2UgQXJyYXlpZnk6IHsKLSAgICAgICAgICAgICAgICBpZiAoIW5vZGUuYXJyYXlNb2Rl
KCkuYWxyZWFkeUNoZWNrZWQobV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpKSkKKyAgICAg
ICAgICAgICAgICBpZiAoIW5vZGUuYXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9ncmFwaCwg
bm9kZSwgbV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpKSkKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgQVNTRVJUKG5vZGUucmVmQ291bnQoKSA9PSAxKTsK
ICAgICAgICAgICAgICAgICBub2RlLnNldE9wQW5kRGVmYXVsdEZsYWdzKFBoYW50b20pOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lv
biAxMzQwMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MjQsMzEgKzQyNCwxMiBAQCBwcml2YXRlOgogICAgICAgICAK
ICAgICAgICAgbV9ncmFwaC5yZWYoYXJyYXkpOwogCisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gYXJyYXlNb2RlLm9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmUobV9ncmFwaCwgY29kZU9yaWdp
bik7CisgICAgICAgIAogICAgICAgICBpZiAoYXJyYXlNb2RlLmRvZXNDb252ZXJzaW9uKCkpIHsK
ICAgICAgICAgICAgIGlmIChpbmRleCAhPSBOb05vZGUpCiAgICAgICAgICAgICAgICAgbV9ncmFw
aC5yZWYoaW5kZXgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSA9IDA7Ci0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSlNBcnJheVdpdGhPcmlnaW5h
bFN0cnVjdHVyZSgpKSB7Ci0gICAgICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IG1fZ3JhcGguYmFzZWxpbmVDb2RlQmxvY2tGb3IoY29kZU9yaWdpbiktPmdsb2JhbE9i
amVjdCgpOwotICAgICAgICAgICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewotICAg
ICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgotICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3R1cmUgPSBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5
cGUoQXJyYXlXaXRoSW50MzIpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6Ci0gICAgICAgICAgICAgICAgICAgIHN0cnVjdHVy
ZSA9IGdsb2JhbE9iamVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZShB
cnJheVdpdGhEb3VibGUpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1
cmUgPSBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGUo
QXJyYXlXaXRoQ29udGlndW91cyk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZToKLSAgICAgICAgICAgICAgICAgICAg
c3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhp
bmdUeXBlKEFycmF5V2l0aEFycmF5U3RvcmFnZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKHN0cnVjdHVyZSkgewogICAgICAgICAgICAgICAgIE5vZGUgYXJyYXlpZnkoQXJyYXlp
ZnlUb1N0cnVjdHVyZSwgY29kZU9yaWdpbiwgT3BJbmZvKHN0cnVjdHVyZSksIE9wSW5mbyhhcnJh
eU1vZGUuYXNXb3JkKCkpLCBhcnJheSwgaW5kZXgpOwogICAgICAgICAgICAgICAgIGFycmF5aWZ5
LnJlZigpOwpAQCAtNDYzLDExICs0NDQsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBt
X2luc2VydGlvblNldC5hcHBlbmQobV9pbmRleEluQmxvY2ssIGFycmF5aWZ5SW5kZXgpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTm9kZSBjaGVja0FycmF5
KENoZWNrQXJyYXksIGNvZGVPcmlnaW4sIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBhcnJh
eSk7Ci0gICAgICAgICAgICBjaGVja0FycmF5LnJlZigpOwotICAgICAgICAgICAgTm9kZUluZGV4
IGNoZWNrQXJyYXlJbmRleCA9IG1fZ3JhcGguc2l6ZSgpOwotICAgICAgICAgICAgbV9ncmFwaC5h
cHBlbmQoY2hlY2tBcnJheSk7Ci0gICAgICAgICAgICBtX2luc2VydGlvblNldC5hcHBlbmQobV9p
bmRleEluQmxvY2ssIGNoZWNrQXJyYXlJbmRleCk7CisgICAgICAgICAgICBpZiAoc3RydWN0dXJl
KSB7CisgICAgICAgICAgICAgICAgTm9kZSBjaGVja1N0cnVjdHVyZShDaGVja1N0cnVjdHVyZSwg
Y29kZU9yaWdpbiwgT3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHN0cnVjdHVyZSkpLCBh
cnJheSk7CisgICAgICAgICAgICAgICAgY2hlY2tTdHJ1Y3R1cmUucmVmKCk7CisgICAgICAgICAg
ICAgICAgTm9kZUluZGV4IGNoZWNrU3RydWN0dXJlSW5kZXggPSBtX2dyYXBoLnNpemUoKTsKKyAg
ICAgICAgICAgICAgICBtX2dyYXBoLmFwcGVuZChjaGVja1N0cnVjdHVyZSk7CisgICAgICAgICAg
ICAgICAgbV9pbnNlcnRpb25TZXQuYXBwZW5kKG1faW5kZXhJbkJsb2NrLCBjaGVja1N0cnVjdHVy
ZUluZGV4KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgTm9kZSBjaGVj
a0FycmF5KENoZWNrQXJyYXksIGNvZGVPcmlnaW4sIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkp
LCBhcnJheSk7CisgICAgICAgICAgICAgICAgY2hlY2tBcnJheS5yZWYoKTsKKyAgICAgICAgICAg
ICAgICBOb2RlSW5kZXggY2hlY2tBcnJheUluZGV4ID0gbV9ncmFwaC5zaXplKCk7CisgICAgICAg
ICAgICAgICAgbV9ncmFwaC5hcHBlbmQoY2hlY2tBcnJheSk7CisgICAgICAgICAgICAgICAgbV9p
bnNlcnRpb25TZXQuYXBwZW5kKG1faW5kZXhJbkJsb2NrLCBjaGVja0FycmF5SW5kZXgpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoIXN0b3JhZ2VDaGVj
ayhhcnJheU1vZGUpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDEzNDAwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsMTMg
KzM2MSwyMiBAQCBjb25zdCBUeXBlZEFycmF5RGVzY3JpcHRvciogU3BlY3VsYXRpdmVKCiAKIEpJ
VENvbXBpbGVyOjpKdW1wIFNwZWN1bGF0aXZlSklUOjpqdW1wU2xvd0ZvclVud2FudGVkQXJyYXlN
b2RlKEdQUlJlZyB0ZW1wR1BSLCBBcnJheU1vZGUgYXJyYXlNb2RlLCBJbmRleGluZ1R5cGUgc2hh
cGUsIGJvb2wgaW52ZXJ0KQogewotICAgIGlmIChhcnJheU1vZGUuaXNKU0FycmF5KCkpIHsKKyAg
ICBzd2l0Y2ggKGFycmF5TW9kZS5hcnJheUNsYXNzKCkpIHsKKyAgICBjYXNlIEFycmF5OjpPcmln
aW5hbEFycmF5OiB7CisgICAgICAgIENSQVNIKCk7CisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1w
IHJlc3VsdDsgLy8gSSBhbHJlYWR5IGtub3cgdGhhdCBWQysrIHRha2VzIHVua2luZGx5IHRvIHRo
ZSBleHByZXNzaW9uICJyZXR1cm4gSnVtcCgpIiwgc28gSSdtIGRvaW5nIGl0IHRoaXMgd2F5IGlu
IGFudGljaXBhdGlvbiBvZiBzb21lb25lIGV2ZW50dWFsbHkgdXNpbmcgVkMrKyB0byBjb21waWxl
IHRoZSBERkcuCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICBj
YXNlIEFycmF5OjpBcnJheToKICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKElzQXJy
YXkgfCBJbmRleGluZ1NoYXBlTWFzayksIHRlbXBHUFIpOwogICAgICAgICByZXR1cm4gbV9qaXQu
YnJhbmNoMzIoCiAgICAgICAgICAgICBpbnZlcnQgPyBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwgOiBN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHRlbXBHUFIsIFRydXN0ZWRJbW0zMihJc0FycmF5IHwg
c2hhcGUpKTsKKyAgICAgICAgCisgICAgZGVmYXVsdDoKKyAgICAgICAgbV9qaXQuYW5kMzIoVHJ1
c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgdGVtcEdQUik7CisgICAgICAgIHJldHVybiBt
X2ppdC5icmFuY2gzMihpbnZlcnQgPyBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwgOiBNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIHRlbXBHUFIsIFRydXN0ZWRJbW0zMihzaGFwZSkpOwogICAgIH0KLSAg
ICBtX2ppdC5hbmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFwZU1hc2spLCB0ZW1wR1BSKTsK
LSAgICByZXR1cm4gbV9qaXQuYnJhbmNoMzIoaW52ZXJ0ID8gTWFjcm9Bc3NlbWJsZXI6OkVxdWFs
IDogTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCB0ZW1wR1BSLCBUcnVzdGVkSW1tMzIoc2hhcGUp
KTsKIH0KIAogSklUQ29tcGlsZXI6Okp1bXBMaXN0IFNwZWN1bGF0aXZlSklUOjpqdW1wU2xvd0Zv
clVud2FudGVkQXJyYXlNb2RlKEdQUlJlZyB0ZW1wR1BSLCBBcnJheU1vZGUgYXJyYXlNb2RlLCBi
b29sIGludmVydCkKQEAgLTM4NiwxMiArMzk1LDEzIEBAIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBT
cGVjdWxhdGl2ZUpJVDo6anUKIAogICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZToKICAgICBj
YXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOiB7CisgICAgICAgIEFTU0VSVCghYXJyYXlN
b2RlLmlzSlNBcnJheVdpdGhPcmlnaW5hbFN0cnVjdHVyZSgpKTsKKyAgICAgICAgCiAgICAgICAg
IGlmIChhcnJheU1vZGUuaXNKU0FycmF5KCkpIHsKICAgICAgICAgICAgIGlmIChhcnJheU1vZGUu
aXNTbG93UHV0KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoaW52ZXJ0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIHNsb3cgPSAKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1faml0LmJyYW5jaFRlc3QzMigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6WmVybywgdGVtcEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJ
c0FycmF5KSk7CisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIHNsb3cgPSBt
X2ppdC5icmFuY2hUZXN0MzIoCisgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6WmVybywgdGVtcEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJc0FycmF5KSk7
CiAgICAgICAgICAgICAgICAgICAgIG1faml0LmFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1No
YXBlTWFzayksIHRlbXBHUFIpOwogICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdWIzMihUcnVz
dGVkSW1tMzIoQXJyYXlTdG9yYWdlU2hhcGUpLCB0ZW1wR1BSKTsKICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgKQEAgLTQ0OSw3ICs0NTksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
OjpjaGVja0FycmF5KE5vZGUmIG5vCiAgICAgCiAgICAgY29uc3QgVHlwZWRBcnJheURlc2NyaXB0
b3IqIHJlc3VsdCA9IHR5cGVkQXJyYXlEZXNjcmlwdG9yKG5vZGUuYXJyYXlNb2RlKCkpOwogICAg
IAotICAgIGlmIChub2RlLmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fc3RhdGUuZm9yTm9k
ZShub2RlLmNoaWxkMSgpKSkpIHsKKyAgICBpZiAobm9kZS5hcnJheU1vZGUoKS5hbHJlYWR5Q2hl
Y2tlZChtX2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkp
KSB7CiAgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTE5NTksNyArMTk2OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbE9uU3QKICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKICAg
ICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CiAKLSAgICBBU1NFUlQoQXJyYXlN
b2RlKEFycmF5OjpTdHJpbmcpLmFscmVhZHlDaGVja2VkKG1fc3RhdGUuZm9yTm9kZShub2RlLmNo
aWxkMSgpKSkpOworICAgIEFTU0VSVChBcnJheU1vZGUoQXJyYXk6OlN0cmluZykuYWxyZWFkeUNo
ZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkp
KSk7CiAKICAgICAvLyB1bnNpZ25lZCBjb21wYXJpc29uIHNvIHdlIGNhbiBmaWx0ZXIgb3V0IG5l
Z2F0aXZlIGluZGljZXMgYW5kIGluZGljZXMgdGhhdCBhcmUgdG9vIGxhcmdlCiAgICAgc3BlY3Vs
YXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFu
Y2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpKSk7CkBA
IC0yMzY4LDcgKzIzNzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxP
bkluCiAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICBHUFJSZWcgcmVzdWx0UmVn
ID0gcmVzdWx0LmdwcigpOwogCi0gICAgQVNTRVJUKG5vZGUuYXJyYXlNb2RlKCkuYWxyZWFkeUNo
ZWNrZWQobV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpKSk7CisgICAgQVNTRVJUKG5vZGUu
YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5m
b3JOb2RlKG5vZGUuY2hpbGQxKCkpKSk7CiAKICAgICBzcGVjdWxhdGlvbkNoZWNrKAogICAgICAg
ICBVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLApAQCAtMjUxOCw3ICsyNTI4LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbAogICAgIEdQUlJlZyBw
cm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3Rv
cmFnZS5ncHIoKTsKIAotICAgIEFTU0VSVChub2RlLmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2Vk
KG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKSkpOworICAgIEFTU0VSVChub2RlLmFycmF5
TW9kZSgpLmFscmVhZHlDaGVja2VkKG1faml0LmdyYXBoKCksIG5vZGUsIG1fc3RhdGUuZm9yTm9k
ZShub2RlLmNoaWxkMSgpKSkpOwogCiAgICAgRlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAg
ICBGUFJSZWcgcmVzdWx0UmVnID0gcmVzdWx0LmZwcigpOwpAQCAtMjU1NSw3ICsyNTY1LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRgogICAgIAogICAgIFNwZWN1
bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWVPcCh0aGlzLCB2YWx1ZVVzZSk7CiAgICAgCi0gICAgQVNT
RVJUX1VOVVNFRChiYXNlVXNlLCBub2RlLmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fc3Rh
dGUuZm9yTm9kZShiYXNlVXNlKSkpOworICAgIEFTU0VSVF9VTlVTRUQoYmFzZVVzZSwgbm9kZS5h
cnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2ppdC5ncmFwaCgpLCBtX2ppdC5ncmFwaCgpW21f
Y29tcGlsZUluZGV4XSwgbV9zdGF0ZS5mb3JOb2RlKGJhc2VVc2UpKSk7CiAgICAgCiAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICAKQEAgLTMzNzgsNyArMzM4OCw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uQXIKICAgICBpZiAoIW1fY29tcGlsZU9r
YXkpCiAgICAgICAgIHJldHVybjsKICAgCi0gICAgQVNTRVJUKEFycmF5TW9kZShBcnJheTo6QXJn
dW1lbnRzKS5hbHJlYWR5Q2hlY2tlZChtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkpKTsK
KyAgICBBU1NFUlQoQXJyYXlNb2RlKEFycmF5OjpBcmd1bWVudHMpLmFscmVhZHlDaGVja2VkKG1f
aml0LmdyYXBoKCksIG5vZGUsIG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKSkpOwogICAg
IAogICAgIC8vIFR3byByZWFsbHkgbGFtZSBjaGVja3MuCiAgICAgc3BlY3VsYXRpb25DaGVjaygK
QEAgLTM0MzUsNyArMzQ0NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcmd1
bWVudHMKICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAg
ICBBU1NFUlQoQXJyYXlNb2RlKEFycmF5OjpBcmd1bWVudHMpLmFscmVhZHlDaGVja2VkKG1fc3Rh
dGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKSkpOworICAgIEFTU0VSVChBcnJheU1vZGUoQXJyYXk6
OkFyZ3VtZW50cykuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5m
b3JOb2RlKG5vZGUuY2hpbGQxKCkpKSk7CiAgICAgCiAgICAgc3BlY3VsYXRpb25DaGVjaygKICAg
ICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgTm9Ob2RlLAo=
</data>
<flag name="review"
          id="188095"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>