<?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>97618</bug_id>
          
          <creation_ts>2012-09-25 17:16:55 -0700</creation_ts>
          <short_desc>JSC should dump object size inference statistics</short_desc>
          <delta_ts>2012-09-25 19:27: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>728089</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-25 17:16:55 -0700</bug_when>
    <thetext>JSC should dump object size inference statistics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728095</commentid>
    <comment_count>1</comment_count>
      <attachid>165704</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-25 17:42:45 -0700</bug_when>
    <thetext>Created attachment 165704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728102</commentid>
    <comment_count>2</comment_count>
      <attachid>165704</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-25 17:55:52 -0700</bug_when>
    <thetext>Comment on attachment 165704
Patch

Attachment 165704 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14037193</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728104</commentid>
    <comment_count>3</comment_count>
      <attachid>165704</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-25 17:58:33 -0700</bug_when>
    <thetext>Comment on attachment 165704
Patch

Attachment 165704 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14031278</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728107</commentid>
    <comment_count>4</comment_count>
      <attachid>165706</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-25 18:03:31 -0700</bug_when>
    <thetext>Created attachment 165706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728155</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-25 19:27:27 -0700</bug_when>
    <thetext>Committed r129586: &lt;http://trac.webkit.org/changeset/129586&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165704</attachid>
            <date>2012-09-25 17:42:45 -0700</date>
            <delta_ts>2012-09-25 18:03:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97618-20120925174204.patch</filename>
            <type>text/plain</type>
            <size>12385</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI5NTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBA
CisyMDEyLTA5LTI1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgSlNDIHNob3VsZCBkdW1wIG9iamVjdCBzaXplIGluZmVyZW5jZSBzdGF0aXN0aWNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzYxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGFuIG9wdGlv
biB0byBkdW1wIG9iamVjdCBzaXplIGluZmVyZW5jZSBzdGF0aXN0aWNzLgorCisgICAgICAgIFRv
IHNlZSBzdGF0aXN0aWNzIG9uIGxpdmUgb2JqZWN0czoKKworICAgICAgICAgICAganNjIC0tc2hv
d0hlYXBTdGF0aXN0aWNzPTEKKworICAgICAgICBUbyBzZWUgY3VtdWxhdGl2ZSBzdGF0aXN0aWNz
IG9uIGFsbCBvYmplY3RzIGV2ZXIgYWxsb2NhdGVkOgorCisgICAgICAgICAgICBqc2MgLS1zaG93
SGVhcFN0YXRpc3RpY3M9MSAtLW9iamVjdHNBcmVJbW1vcnRhbD0xCisKKyAgICAgICAgICAgIChU
aGlzIGlzIHVzZWZ1bCBmb3Igc2hvd2luZyBHQyBjaHVybiBjYXVzZWQgYnkgb3Zlci1hbGxvY2F0
aW9uLikKKworICAgICAgICBUbyBzdXBwb3J0IHRoaXMgc2Vjb25kIG1vZGUsIEkgcmVmYWN0b3Jl
ZCBab21iaWVzIHRvIHNlcGFyYXRlIG91dCB0aGVpcgorICAgICAgICBpbW1vcnRhbGl0eSBmZWF0
dXJlIHNvIEkgY291bGQgcmV1c2UgaXQuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAg
ICAgICAoSlNDOjpNYXJrT2JqZWN0KTogSGVscGVyIGZvciBtYWtpbmcgdGhpbmdzIGltbW9ydGFs
LiBXZSBoYXZlIHRvIGNoZWNrZWQKKyAgICAgICAgZm9yIGJlaW5nIHphcHBlZCBiZWNhdXNlIGJs
b2NrcyBzdGFydCBvdXQgaW4gdGhpcyBzdGF0ZS4KKworICAgICAgICAoSlNDOjpTdG9yYWdlU3Rh
dGlzdGljcyk6IEdhdGhlciBzdGF0aXN0aWNzIGJ5IHdhbGtpbmcgdGhlIGhlYXAuIElnbm9yZQor
ICAgICAgICBhcnJheXMgYW5kIGhhc2ggdGFibGVzIGZvciBub3cgYmVjYXVzZSB0aGV5J3JlIG5v
dCBvdXIgZm9jdXMuIChXZSdsbAorICAgICAgICByZW1vdmUgdGhlc2UgZXhjZXB0aW9ucyBpbiBm
dXR1cmUuKQorCisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3QpOiBNb3ZlZCB6b21iaWZ5IHRv
IHRoZSBlbmQgc28gaXQgd291bGRuJ3QgaW50ZXJmZXJlCisgICAgICAgIHdpdGggc3RhdGlzdGlj
cyBnYXRoZXJpbmcuCisKKyAgICAgICAgKEpTQzo6SGVhcDo6c2hvd1N0YXRpc3RpY3MpOgorICAg
ICAgICAoSlNDOjpIZWFwOjptYXJrQWxsT2JqZWN0cyk6IEZhY3RvcmVkIG91dCBoZWxwZXIsIHNv
IHN0YXRpc3RpY3MgY291bGQKKyAgICAgICAgdGFrZSBhZHZhbnRhZ2Ugb2YgaW1tb3J0YWwgb2Jq
ZWN0cy4KKworICAgICAgICAoWm9tYmlmeSk6IERvbid0IG1hcmsgaW1tb3J0YWwgb2JqZWN0cyAt
LSB0aGF0J3MgYW5vdGhlciBjbGFzcydzIGpvYiBub3cuCisKKyAgICAgICAgKEpTQzo6Wm9tYmlm
eTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkhlYXA6OnpvbWJpZnlEZWFkT2JqZWN0cyk6
IFRha2UgYWR2YW50YWdlIG9mIGZvckVhY2hEZWFkQ2VsbCBpbnN0ZWFkCisgICAgICAgIG9mIHJv
bGxpbmcgb3VyIG93bi4KKworICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAoSGVhcCk6
CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoTWFya2VkU3BhY2UpOgor
ICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6Zm9yRWFjaERlYWRDZWxsKTogQWRkZWQsIHNvIGNs
aWVudHMgZG9uJ3QgaGF2ZSB0byBkbworICAgICAgICB0aGUgaXRlcmF0aW9uIGxvZ2ljIHRoZW1z
ZWx2ZXMuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpP
cHRpb25zOjppbml0aWFsaXplKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDogTmV3IG9w
dGlvbnMsIGxpc3RlZCBhYm92ZS4gTWFrZSBzdXJlIHRvIGluaXRpYWxpemUKKyAgICAgICAgYmFz
ZWQgb24gZW52aXJvbm1lbnQgdmFyaWFibGUgZmlyc3QsIHNvIHdlIGNhbiBvdmVycmlkZSB3aXRo
IHNwZWNpZmljIHNldHRpbmdzLgorCiAyMDEyLTA5LTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgSlNDIGJpbmRpbmdzIGFwcGVhciB0byBzb21ldGltZXMgaWdu
b3JlIHRoZSBwb3NzaWJpbGl0eSBvZiBhcnJheXMgYmVpbmcgaW4gc3BhcnNlIG1vZGUKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxMjk1NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDYg
KzE3NiwxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZFRocmVhZFN0YXRlKEpTCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK3N0cnVjdCBNYXJrT2JqZWN0IDogcHVibGljIE1hcmtlZEJsb2Nr
OjpWb2lkRnVuY3RvciB7CisgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCogY2VsbCkKKyAgICB7
CisgICAgICAgIGlmIChjZWxsLT5pc1phcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBIZWFwOjpoZWFwKGNlbGwpLT5zZXRNYXJrZWQoY2VsbCk7CisgICAgfQorfTsKKwogc3Ry
dWN0IENvdW50IDogcHVibGljIE1hcmtlZEJsb2NrOjpDb3VudEZ1bmN0b3IgewogICAgIHZvaWQg
b3BlcmF0b3IoKShKU0NlbGwqKSB7IGNvdW50KDEpOyB9CiB9OwpAQCAtMjI2LDYgKzIzNSw3NCBA
QCBpbmxpbmUgUGFzc093blB0cjxUeXBlQ291bnRTZXQ+IFJlY29yZFR5CiAgICAgcmV0dXJuIG1f
dHlwZUNvdW50U2V0LnJlbGVhc2UoKTsKIH0KIAorY2xhc3MgU3RvcmFnZVN0YXRpc3RpY3MgOiBw
dWJsaWMgTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBTdG9yYWdlU3Rh
dGlzdGljcygpOworCisgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCopOworCisgICAgc2l6ZV90
IG9iamVjdFdpdGhPdXRPZkxpbmVTdG9yYWdlQ291bnQoKTsKKyAgICBzaXplX3Qgb2JqZWN0Q291
bnQoKTsKKworICAgIHNpemVfdCBzdG9yYWdlU2l6ZSgpOworICAgIHNpemVfdCBzdG9yYWdlQ2Fw
YWNpdHkoKTsKKworcHJpdmF0ZToKKyAgICBzaXplX3QgbV9vYmplY3RXaXRoT3V0T2ZMaW5lU3Rv
cmFnZUNvdW50OworICAgIHNpemVfdCBtX29iamVjdENvdW50OworICAgIHNpemVfdCBtX3N0b3Jh
Z2VTaXplOworICAgIHNpemVfdCBtX3N0b3JhZ2VDYXBhY2l0eTsKK307CisKK2lubGluZSBTdG9y
YWdlU3RhdGlzdGljczo6U3RvcmFnZVN0YXRpc3RpY3MoKQorICAgIDogbV9vYmplY3RXaXRoT3V0
T2ZMaW5lU3RvcmFnZUNvdW50KDApCisgICAgLCBtX29iamVjdENvdW50KDApCisgICAgLCBtX3N0
b3JhZ2VTaXplKDApCisgICAgLCBtX3N0b3JhZ2VDYXBhY2l0eSgwKQoreworfQorCitpbmxpbmUg
dm9pZCBTdG9yYWdlU3RhdGlzdGljczo6b3BlcmF0b3IoKShKU0NlbGwqIGNlbGwpCit7CisgICAg
aWYgKCFjZWxsLT5pc09iamVjdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBKU09iamVjdCog
b2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oY2VsbCk7CisgICAgaWYgKGhhc0luZGV4ZWRQcm9w
ZXJ0aWVzKG9iamVjdC0+c3RydWN0dXJlKCktPmluZGV4aW5nVHlwZSgpKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG9iamVjdC0+c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9u
YXJ5KCkpCisgICAgICAgIHJldHVybjsKKworICAgICsrbV9vYmplY3RDb3VudDsKKyAgICBpZiAo
IW9iamVjdC0+aGFzSW5saW5lU3RvcmFnZSgpKQorICAgICAgICArK21fb2JqZWN0V2l0aE91dE9m
TGluZVN0b3JhZ2VDb3VudDsKKyAgICBtX3N0b3JhZ2VTaXplICs9IG9iamVjdC0+c3RydWN0dXJl
KCktPnRvdGFsU3RvcmFnZVNpemUoKSAqIHNpemVvZihXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+
KTsKKyAgICBtX3N0b3JhZ2VDYXBhY2l0eSArPSBvYmplY3QtPnN0cnVjdHVyZSgpLT50b3RhbFN0
b3JhZ2VDYXBhY2l0eSgpICogc2l6ZW9mKFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4pOyAKK30K
KworaW5saW5lIHNpemVfdCBTdG9yYWdlU3RhdGlzdGljczo6b2JqZWN0V2l0aE91dE9mTGluZVN0
b3JhZ2VDb3VudCgpCit7CisgICAgcmV0dXJuIG1fb2JqZWN0V2l0aE91dE9mTGluZVN0b3JhZ2VD
b3VudDsKK30KKworaW5saW5lIHNpemVfdCBTdG9yYWdlU3RhdGlzdGljczo6b2JqZWN0Q291bnQo
KQoreworICAgIHJldHVybiBtX29iamVjdENvdW50OworfQorCisKK2lubGluZSBzaXplX3QgU3Rv
cmFnZVN0YXRpc3RpY3M6OnN0b3JhZ2VTaXplKCkKK3sKKyAgICByZXR1cm4gbV9zdG9yYWdlU2l6
ZTsKK30KKworCitpbmxpbmUgc2l6ZV90IFN0b3JhZ2VTdGF0aXN0aWNzOjpzdG9yYWdlQ2FwYWNp
dHkoKQoreworICAgIHJldHVybiBtX3N0b3JhZ2VDYXBhY2l0eTsKK30KKwogfSAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCiAKIEhlYXA6OkhlYXAoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBIZWFw
VHlwZSBoZWFwVHlwZSkKQEAgLTc1Myw5ICs4MzAsNiBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoU3dl
ZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAgIG1fb2JqZWN0U3BhY2UucmVzZXRBbGxvY2F0b3Jz
KCk7CiAgICAgfQogICAgIAotICAgIGlmIChPcHRpb25zOjp1c2Vab21iaWVNb2RlKCkpCi0gICAg
ICAgIHpvbWJpZnlEZWFkT2JqZWN0cygpOwotCiAgICAgc2l6ZV90IGN1cnJlbnRIZWFwU2l6ZSA9
IHNpemUoKTsKICAgICBpZiAoZnVsbEdDKSB7CiAgICAgICAgIG1fc2l6ZUFmdGVyTGFzdENvbGxl
Y3QgPSBjdXJyZW50SGVhcFNpemU7CkBAIC03NjksMTAgKzg0Myw0MiBAQCB2b2lkIEhlYXA6OmNv
bGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgbV9ieXRlc0FsbG9jYXRlZCA9IDA7CiAg
ICAgZG91YmxlIGxhc3RHQ0VuZFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CiAgICAgbV9sYXN0
R0NMZW5ndGggPSBsYXN0R0NFbmRUaW1lIC0gbGFzdEdDU3RhcnRUaW1lOworCiAgICAgaWYgKG1f
b3BlcmF0aW9uSW5Qcm9ncmVzcyAhPSBDb2xsZWN0aW9uKQogICAgICAgICBDUkFTSCgpOwogICAg
IG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9IE5vT3BlcmF0aW9uOwogICAgIEpBVkFTQ1JJUFRDT1JF
X0dDX0VORCgpOworCisgICAgaWYgKE9wdGlvbnM6OnVzZVpvbWJpZU1vZGUoKSkKKyAgICAgICAg
em9tYmlmeURlYWRPYmplY3RzKCk7CisKKyAgICBpZiAoT3B0aW9uczo6b2JqZWN0c0FyZUltbW9y
dGFsKCkpCisgICAgICAgIG1hcmtEZWFkT2JqZWN0cygpOworCisgICAgaWYgKE9wdGlvbnM6OnNo
b3dIZWFwU3RhdGlzdGljcygpKQorICAgICAgICBzaG93U3RhdGlzdGljcygpOworfQorCit2b2lk
IEhlYXA6OnNob3dTdGF0aXN0aWNzKCkKK3sKKyAgICBkYXRhTG9nKCJcbj09PSBIZWFwIFN0YXRp
c3RpY3M6ID09PVxuIik7CisgICAgZGF0YUxvZygic2l6ZTogJWxka0JcbiIsIG1fc2l6ZUFmdGVy
TGFzdENvbGxlY3QgLyBLQik7CisgICAgZGF0YUxvZygiY2FwYWNpdHk6ICVsZGtCXG4iLCBjYXBh
Y2l0eSgpIC8gS0IpOworICAgIGRhdGFMb2coInBhdXNlIHRpbWU6ICVsZm1zXG5cbiIsIG1fbGFz
dEdDTGVuZ3RoKTsKKworICAgIFN0b3JhZ2VTdGF0aXN0aWNzIHN0b3JhZ2VTdGF0aXN0aWNzOwor
ICAgIG1fb2JqZWN0U3BhY2UuZm9yRWFjaExpdmVDZWxsKHN0b3JhZ2VTdGF0aXN0aWNzKTsKKyAg
ICBkYXRhTG9nKCJ3YXN0ZWQgLnByb3BlcnR5IHN0b3JhZ2U6ICVsZGtCICglbGQlJSlcbiIsCisg
ICAgICAgIChzdG9yYWdlU3RhdGlzdGljcy5zdG9yYWdlQ2FwYWNpdHkoKSAtIHN0b3JhZ2VTdGF0
aXN0aWNzLnN0b3JhZ2VTaXplKCkpIC8gS0IsCisgICAgICAgIChzdG9yYWdlU3RhdGlzdGljcy5z
dG9yYWdlQ2FwYWNpdHkoKSAtIHN0b3JhZ2VTdGF0aXN0aWNzLnN0b3JhZ2VTaXplKCkpICogMTAw
IC8gc3RvcmFnZVN0YXRpc3RpY3Muc3RvcmFnZUNhcGFjaXR5KCkpOworICAgIGRhdGFMb2coIm9i
amVjdHMgd2l0aCBvdXQtb2YtbGluZSAucHJvcGVydHkgc3RvcmFnZTogJWxkICglbGQlJSlcbiIs
CisgICAgICAgIHN0b3JhZ2VTdGF0aXN0aWNzLm9iamVjdFdpdGhPdXRPZkxpbmVTdG9yYWdlQ291
bnQoKSwKKyAgICAgICAgc3RvcmFnZVN0YXRpc3RpY3Mub2JqZWN0V2l0aE91dE9mTGluZVN0b3Jh
Z2VDb3VudCgpICogMTAwIC8gc3RvcmFnZVN0YXRpc3RpY3Mub2JqZWN0Q291bnQoKSk7Cit9CisK
K3ZvaWQgSGVhcDo6bWFya0RlYWRPYmplY3RzKCkKK3sKKyAgICBtX29iamVjdFNwYWNlLmZvckVh
Y2hEZWFkQ2VsbDxNYXJrT2JqZWN0PigpOwogfQogCiB2b2lkIEhlYXA6OnNldEFjdGl2aXR5Q2Fs
bGJhY2soR0NBY3Rpdml0eUNhbGxiYWNrKiBhY3Rpdml0eUNhbGxiYWNrKQpAQCAtODQ0LDE4ICs5
NTAsMTAgQEAgdm9pZCBIZWFwOjpkaWRTdGFydFZNU2h1dGRvd24oKQogICAgIGxhc3RDaGFuY2VU
b0ZpbmFsaXplKCk7CiB9CiAKLWNsYXNzIFpvbWJpZnlDZWxsRnVuY3RvciA6IHB1YmxpYyBNYXJr
ZWRCbG9jazo6Vm9pZEZ1bmN0b3IgeworY2xhc3MgWm9tYmlmeSA6IHB1YmxpYyBNYXJrZWRCbG9j
azo6Vm9pZEZ1bmN0b3IgewogcHVibGljOgotICAgIFpvbWJpZnlDZWxsRnVuY3RvcihzaXplX3Qg
Y2VsbFNpemUpCi0gICAgICAgIDogbV9jZWxsU2l6ZShjZWxsU2l6ZSkKLSAgICB7Ci0gICAgfQot
CiAgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCogY2VsbCkKICAgICB7Ci0gICAgICAgIGlmIChP
cHRpb25zOjp6b21iaWVzQXJlSW1tb3J0YWwoKSkKLSAgICAgICAgICAgIE1hcmtlZEJsb2NrOjpi
bG9ja0ZvcihjZWxsKS0+c2V0TWFya2VkKGNlbGwpOwotCiAgICAgICAgIHZvaWQqKiBjdXJyZW50
ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGNlbGwpOwogCiAgICAgICAgIC8vIFdlIHdhbnQg
dG8gbWFpbnRhaW4gemFwcGVkLW5lc3MgYmVjYXVzZSB0aGF0J3MgaG93IHdlIGtub3cgaWYgd2Un
dmUgY2FsbGVkIApAQCAtODYzLDMwICs5NjEsMTcgQEAgcHVibGljOgogICAgICAgICBpZiAoY2Vs
bC0+aXNaYXBwZWQoKSkKICAgICAgICAgICAgIGN1cnJlbnQrKzsKIAotICAgICAgICB2b2lkKiBs
aW1pdCA9IHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPihjZWxsKSAr
IG1fY2VsbFNpemUpOworICAgICAgICB2b2lkKiBsaW1pdCA9IHN0YXRpY19jYXN0PHZvaWQqPihy
ZWludGVycHJldF9jYXN0PGNoYXIqPihjZWxsKSArIE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxs
KS0+Y2VsbFNpemUoKSk7CiAgICAgICAgIGZvciAoOyBjdXJyZW50IDwgbGltaXQ7IGN1cnJlbnQr
KykKICAgICAgICAgICAgICpjdXJyZW50ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHhiYmFk
YmVlZik7CiAgICAgfQotCi1wcml2YXRlOgotICAgIHNpemVfdCBtX2NlbGxTaXplOwotfTsKLQot
Y2xhc3MgWm9tYmlmeUJsb2NrRnVuY3RvciA6IHB1YmxpYyBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0
b3IgewotcHVibGljOgotICAgIHZvaWQgb3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spCi0g
ICAgewotICAgICAgICBab21iaWZ5Q2VsbEZ1bmN0b3IgZnVuY3RvcihibG9jay0+Y2VsbFNpemUo
KSk7Ci0gICAgICAgIGJsb2NrLT5mb3JFYWNoRGVhZENlbGwoZnVuY3Rvcik7Ci0gICAgfQogfTsK
IAogdm9pZCBIZWFwOjp6b21iaWZ5RGVhZE9iamVjdHMoKQogeworICAgIC8vIFN3ZWVwIG5vdyBi
ZWNhdXNlIGRlc3RydWN0b3JzIHdpbGwgY3Jhc2ggb25jZSB3ZSdyZSB6b21iaWZpZWQuCiAgICAg
bV9vYmplY3RTcGFjZS5zd2VlcCgpOwotCi0gICAgWm9tYmlmeUJsb2NrRnVuY3RvciBmdW5jdG9y
OwotICAgIG1fb2JqZWN0U3BhY2UuZm9yRWFjaEJsb2NrKGZ1bmN0b3IpOworICAgIG1fb2JqZWN0
U3BhY2UuZm9yRWFjaERlYWRDZWxsPFpvbWJpZnk+KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTI5NTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUs
NiArMTQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNp
emVfdCBwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgpOwogICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSBQYXNzT3duUHRyPFR5cGVDb3VudFNldD4gcHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cygp
OwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBQYXNzT3duUHRyPFR5cGVDb3VudFNldD4gb2Jq
ZWN0VHlwZUNvdW50cygpOworICAgICAgICB2b2lkIHNob3dTdGF0aXN0aWNzKCk7CiAKICAgICAg
ICAgdm9pZCBwdXNoVGVtcFNvcnRWZWN0b3IoVmVjdG9yPFZhbHVlU3RyaW5nUGFpcj4qKTsKICAg
ICAgICAgdm9pZCBwb3BUZW1wU29ydFZlY3RvcihWZWN0b3I8VmFsdWVTdHJpbmdQYWlyPiopOwpA
QCAtMjA1LDcgKzIwNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmFsaXpl
VW5jb25kaXRpb25hbEZpbmFsaXplcnMoKTsKICAgICAgICAgdm9pZCBkZWxldGVVbm1hcmtlZENv
bXBpbGVkQ29kZSgpOwogICAgICAgICB2b2lkIHpvbWJpZnlEZWFkT2JqZWN0cygpOwotIAorICAg
ICAgICB2b2lkIG1hcmtEZWFkT2JqZWN0cygpOworCiAgICAgICAgIFJlZ2lzdGVyRmlsZSYgcmVn
aXN0ZXJGaWxlKCk7CiAgICAgICAgIEJsb2NrQWxsb2NhdG9yJiBibG9ja0FsbG9jYXRvcigpOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgJKHJldmlzaW9u
IDEyOTU3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTk1LDYgKzk1LDggQEAgcHVibGljOgogICAgIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaExp
dmVDZWxsKEZ1bmN0b3ImKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFt
ZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZvckVhY2hMaXZlQ2VsbCgpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaERlYWRD
ZWxsKEZ1bmN0b3ImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBG
dW5jdG9yOjpSZXR1cm5UeXBlIGZvckVhY2hEZWFkQ2VsbCgpOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaEJsb2NrKEZ1
bmN0b3ImKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9y
OjpSZXR1cm5UeXBlIGZvckVhY2hCbG9jaygpOwogICAgIApAQCAtMTU2LDYgKzE1OCwyMiBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdHlwZW5hCiAgICAgcmV0dXJuIGZvckVh
Y2hMaXZlQ2VsbChmdW5jdG9yKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gaW5s
aW5lIHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgTWFya2VkU3BhY2U6OmZvckVhY2hEZWFk
Q2VsbChGdW5jdG9yJiBmdW5jdG9yKQoreworICAgIGNhbm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0Rh
dGEoKTsKKworICAgIEJsb2NrSXRlcmF0b3IgZW5kID0gbV9ibG9ja3Muc2V0KCkuZW5kKCk7Cisg
ICAgZm9yIChCbG9ja0l0ZXJhdG9yIGl0ID0gbV9ibG9ja3Muc2V0KCkuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+Zm9yRWFjaERlYWRDZWxsKGZ1bmN0b3IpOworICAg
IHJldHVybiBmdW5jdG9yLnJldHVyblZhbHVlKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3I+IGlubGluZSB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIE1hcmtlZFNwYWNlOjpm
b3JFYWNoRGVhZENlbGwoKQoreworICAgIEZ1bmN0b3IgZnVuY3RvcjsKKyAgICByZXR1cm4gZm9y
RWFjaERlYWRDZWxsKGZ1bmN0b3IpOworfQorCiBpbmxpbmUgTWFya2VkQWxsb2NhdG9yJiBNYXJr
ZWRTcGFjZTo6Zmlyc3RBbGxvY2F0b3IoKQogewogICAgIHJldHVybiBtX25vcm1hbFNwYWNlLnBy
ZWNpc2VBbGxvY2F0b3JzWzBdOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5jcHAJKHJldmlzaW9uIDEyOTU3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDExIEBAIHZv
aWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgSlNDX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9O
KQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogICAgICAgICAKKyNpZiBVU0UoQ0YpIHx8IE9TKFVO
SVgpCisgICAgb2JqZWN0c0FyZUltbW9ydGFsKCkgPSAhIWdldGVudigiSlNJbW1vcnRhbFpvbWJp
ZUVuYWJsZWQiKTsKKyAgICB1c2Vab21iaWVNb2RlKCkgPSAhIWdldGVudigiSlNJbW1vcnRhbFpv
bWJpZUVuYWJsZWQiKSB8fCAhIWdldGVudigiSlNab21iaWVFbmFibGVkIik7CisjZW5kaWYKKwog
ICAgIC8vIEFsbG93IGVudmlyb25tZW50IHZhcnMgdG8gb3ZlcnJpZGUgb3B0aW9ucyBpZiBhcHBs
aWNhYmxlLgogICAgIC8vIFRoZSBldm4gdmFyIHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgb3B0
aW9uIHByZWZpeGVkIHdpdGgKICAgICAvLyAiSlNDXyIuCkBAIC0xNDksMTEgKzE1NCw2IEBAIHZv
aWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgdXNlUmVnRXhwSklUKCkgPSBmYWxzZTsKICNl
bmRpZgogCi0jaWYgVVNFKENGKSB8fCBPUyhVTklYKQotICAgIHpvbWJpZXNBcmVJbW1vcnRhbCgp
ID0gISFnZXRlbnYoIkpTSW1tb3J0YWxab21iaWVFbmFibGVkIik7Ci0gICAgdXNlWm9tYmllTW9k
ZSgpID0gem9tYmllc0FyZUltbW9ydGFsKCkgfHwgISFnZXRlbnYoIkpTWm9tYmllRW5hYmxlZCIp
OwotI2VuZGlmCi0KICAgICAvLyBEbyByYW5nZSBjaGVja3Mgd2hlcmUgbmVlZGVkIGFuZCBtYWtl
IGNvcnJlY3Rpb25zIHRvIHRoZSBvcHRpb25zOgogICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRp
bWl6ZUFmdGVyTG9uZ1dhcm1VcCgpID49IHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAo
KSk7CiAgICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSB0aHJl
c2hvbGRGb3JPcHRpbWl6ZVNvb24oKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCShyZXZpc2lvbiAxMjk1NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICB2KHVuc2lnbmVkLCBmb3JjZWRXZWFrUmFuZG9tU2VlZCwgMCkgXAog
ICAgIFwKICAgICB2KGJvb2wsIHVzZVpvbWJpZU1vZGUsIGZhbHNlKSBcCi0gICAgdihib29sLCB6
b21iaWVzQXJlSW1tb3J0YWwsIGZhbHNlKSAKKyAgICB2KGJvb2wsIG9iamVjdHNBcmVJbW1vcnRh
bCwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHNob3dIZWFwU3RhdGlzdGljcywgZmFsc2UpCiAKIAog
Y2xhc3MgT3B0aW9ucyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165706</attachid>
            <date>2012-09-25 18:03:31 -0700</date>
            <delta_ts>2012-09-25 18:45:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97618-20120925180250.patch</filename>
            <type>text/plain</type>
            <size>12589</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI5NTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBA
CisyMDEyLTA5LTI1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgSlNDIHNob3VsZCBkdW1wIG9iamVjdCBzaXplIGluZmVyZW5jZSBzdGF0aXN0aWNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzYxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGFuIG9wdGlv
biB0byBkdW1wIG9iamVjdCBzaXplIGluZmVyZW5jZSBzdGF0aXN0aWNzLgorCisgICAgICAgIFRv
IHNlZSBzdGF0aXN0aWNzIG9uIGxpdmUgb2JqZWN0czoKKworICAgICAgICAgICAganNjIC0tc2hv
d0hlYXBTdGF0aXN0aWNzPTEKKworICAgICAgICBUbyBzZWUgY3VtdWxhdGl2ZSBzdGF0aXN0aWNz
IG9uIGFsbCBvYmplY3RzIGV2ZXIgYWxsb2NhdGVkOgorCisgICAgICAgICAgICBqc2MgLS1zaG93
SGVhcFN0YXRpc3RpY3M9MSAtLW9iamVjdHNBcmVJbW1vcnRhbD0xCisKKyAgICAgICAgICAgIChU
aGlzIGlzIHVzZWZ1bCBmb3Igc2hvd2luZyBHQyBjaHVybiBjYXVzZWQgYnkgb3Zlci1hbGxvY2F0
aW9uLikKKworICAgICAgICBUbyBzdXBwb3J0IHRoaXMgc2Vjb25kIG1vZGUsIEkgcmVmYWN0b3Jl
ZCBab21iaWVzIHRvIHNlcGFyYXRlIG91dCB0aGVpcgorICAgICAgICBpbW1vcnRhbGl0eSBmZWF0
dXJlIHNvIEkgY291bGQgcmV1c2UgaXQuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAg
ICAgICAoSlNDOjpNYXJrT2JqZWN0KTogSGVscGVyIGZvciBtYWtpbmcgdGhpbmdzIGltbW9ydGFs
LiBXZSBoYXZlIHRvIGNoZWNrZWQKKyAgICAgICAgZm9yIGJlaW5nIHphcHBlZCBiZWNhdXNlIGJs
b2NrcyBzdGFydCBvdXQgaW4gdGhpcyBzdGF0ZS4KKworICAgICAgICAoSlNDOjpTdG9yYWdlU3Rh
dGlzdGljcyk6IEdhdGhlciBzdGF0aXN0aWNzIGJ5IHdhbGtpbmcgdGhlIGhlYXAuIElnbm9yZQor
ICAgICAgICBhcnJheXMgYW5kIGhhc2ggdGFibGVzIGZvciBub3cgYmVjYXVzZSB0aGV5J3JlIG5v
dCBvdXIgZm9jdXMuIChXZSdsbAorICAgICAgICByZW1vdmUgdGhlc2UgZXhjZXB0aW9ucyBpbiBm
dXR1cmUuKQorCisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3QpOiBNb3ZlZCB6b21iaWZ5IHRv
IHRoZSBlbmQgc28gaXQgd291bGRuJ3QgaW50ZXJmZXJlCisgICAgICAgIHdpdGggc3RhdGlzdGlj
cyBnYXRoZXJpbmcuCisKKyAgICAgICAgKEpTQzo6SGVhcDo6c2hvd1N0YXRpc3RpY3MpOgorICAg
ICAgICAoSlNDOjpIZWFwOjptYXJrQWxsT2JqZWN0cyk6IEZhY3RvcmVkIG91dCBoZWxwZXIsIHNv
IHN0YXRpc3RpY3MgY291bGQKKyAgICAgICAgdGFrZSBhZHZhbnRhZ2Ugb2YgaW1tb3J0YWwgb2Jq
ZWN0cy4KKworICAgICAgICAoWm9tYmlmeSk6IERvbid0IG1hcmsgaW1tb3J0YWwgb2JqZWN0cyAt
LSB0aGF0J3MgYW5vdGhlciBjbGFzcydzIGpvYiBub3cuCisKKyAgICAgICAgKEpTQzo6Wm9tYmlm
eTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkhlYXA6OnpvbWJpZnlEZWFkT2JqZWN0cyk6
IFRha2UgYWR2YW50YWdlIG9mIGZvckVhY2hEZWFkQ2VsbCBpbnN0ZWFkCisgICAgICAgIG9mIHJv
bGxpbmcgb3VyIG93bi4KKworICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAoSGVhcCk6
CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoTWFya2VkU3BhY2UpOgor
ICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6Zm9yRWFjaERlYWRDZWxsKTogQWRkZWQsIHNvIGNs
aWVudHMgZG9uJ3QgaGF2ZSB0byBkbworICAgICAgICB0aGUgaXRlcmF0aW9uIGxvZ2ljIHRoZW1z
ZWx2ZXMuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpP
cHRpb25zOjppbml0aWFsaXplKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDogTmV3IG9w
dGlvbnMsIGxpc3RlZCBhYm92ZS4gTWFrZSBzdXJlIHRvIGluaXRpYWxpemUKKyAgICAgICAgYmFz
ZWQgb24gZW52aXJvbm1lbnQgdmFyaWFibGUgZmlyc3QsIHNvIHdlIGNhbiBvdmVycmlkZSB3aXRo
IHNwZWNpZmljIHNldHRpbmdzLgorCiAyMDEyLTA5LTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgSlNDIGJpbmRpbmdzIGFwcGVhciB0byBzb21ldGltZXMgaWdu
b3JlIHRoZSBwb3NzaWJpbGl0eSBvZiBhcnJheXMgYmVpbmcgaW4gc3BhcnNlIG1vZGUKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxMjk1NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDYg
KzE3NiwxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZFRocmVhZFN0YXRlKEpTCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK3N0cnVjdCBNYXJrT2JqZWN0IDogcHVibGljIE1hcmtlZEJsb2Nr
OjpWb2lkRnVuY3RvciB7CisgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCogY2VsbCkKKyAgICB7
CisgICAgICAgIGlmIChjZWxsLT5pc1phcHBlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBIZWFwOjpoZWFwKGNlbGwpLT5zZXRNYXJrZWQoY2VsbCk7CisgICAgfQorfTsKKwogc3Ry
dWN0IENvdW50IDogcHVibGljIE1hcmtlZEJsb2NrOjpDb3VudEZ1bmN0b3IgewogICAgIHZvaWQg
b3BlcmF0b3IoKShKU0NlbGwqKSB7IGNvdW50KDEpOyB9CiB9OwpAQCAtMjI2LDYgKzIzNSw3NCBA
QCBpbmxpbmUgUGFzc093blB0cjxUeXBlQ291bnRTZXQ+IFJlY29yZFR5CiAgICAgcmV0dXJuIG1f
dHlwZUNvdW50U2V0LnJlbGVhc2UoKTsKIH0KIAorY2xhc3MgU3RvcmFnZVN0YXRpc3RpY3MgOiBw
dWJsaWMgTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBTdG9yYWdlU3Rh
dGlzdGljcygpOworCisgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCopOworCisgICAgc2l6ZV90
IG9iamVjdFdpdGhPdXRPZkxpbmVTdG9yYWdlQ291bnQoKTsKKyAgICBzaXplX3Qgb2JqZWN0Q291
bnQoKTsKKworICAgIHNpemVfdCBzdG9yYWdlU2l6ZSgpOworICAgIHNpemVfdCBzdG9yYWdlQ2Fw
YWNpdHkoKTsKKworcHJpdmF0ZToKKyAgICBzaXplX3QgbV9vYmplY3RXaXRoT3V0T2ZMaW5lU3Rv
cmFnZUNvdW50OworICAgIHNpemVfdCBtX29iamVjdENvdW50OworICAgIHNpemVfdCBtX3N0b3Jh
Z2VTaXplOworICAgIHNpemVfdCBtX3N0b3JhZ2VDYXBhY2l0eTsKK307CisKK2lubGluZSBTdG9y
YWdlU3RhdGlzdGljczo6U3RvcmFnZVN0YXRpc3RpY3MoKQorICAgIDogbV9vYmplY3RXaXRoT3V0
T2ZMaW5lU3RvcmFnZUNvdW50KDApCisgICAgLCBtX29iamVjdENvdW50KDApCisgICAgLCBtX3N0
b3JhZ2VTaXplKDApCisgICAgLCBtX3N0b3JhZ2VDYXBhY2l0eSgwKQoreworfQorCitpbmxpbmUg
dm9pZCBTdG9yYWdlU3RhdGlzdGljczo6b3BlcmF0b3IoKShKU0NlbGwqIGNlbGwpCit7CisgICAg
aWYgKCFjZWxsLT5pc09iamVjdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBKU09iamVjdCog
b2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oY2VsbCk7CisgICAgaWYgKGhhc0luZGV4ZWRQcm9w
ZXJ0aWVzKG9iamVjdC0+c3RydWN0dXJlKCktPmluZGV4aW5nVHlwZSgpKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG9iamVjdC0+c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9u
YXJ5KCkpCisgICAgICAgIHJldHVybjsKKworICAgICsrbV9vYmplY3RDb3VudDsKKyAgICBpZiAo
IW9iamVjdC0+aGFzSW5saW5lU3RvcmFnZSgpKQorICAgICAgICArK21fb2JqZWN0V2l0aE91dE9m
TGluZVN0b3JhZ2VDb3VudDsKKyAgICBtX3N0b3JhZ2VTaXplICs9IG9iamVjdC0+c3RydWN0dXJl
KCktPnRvdGFsU3RvcmFnZVNpemUoKSAqIHNpemVvZihXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+
KTsKKyAgICBtX3N0b3JhZ2VDYXBhY2l0eSArPSBvYmplY3QtPnN0cnVjdHVyZSgpLT50b3RhbFN0
b3JhZ2VDYXBhY2l0eSgpICogc2l6ZW9mKFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4pOyAKK30K
KworaW5saW5lIHNpemVfdCBTdG9yYWdlU3RhdGlzdGljczo6b2JqZWN0V2l0aE91dE9mTGluZVN0
b3JhZ2VDb3VudCgpCit7CisgICAgcmV0dXJuIG1fb2JqZWN0V2l0aE91dE9mTGluZVN0b3JhZ2VD
b3VudDsKK30KKworaW5saW5lIHNpemVfdCBTdG9yYWdlU3RhdGlzdGljczo6b2JqZWN0Q291bnQo
KQoreworICAgIHJldHVybiBtX29iamVjdENvdW50OworfQorCisKK2lubGluZSBzaXplX3QgU3Rv
cmFnZVN0YXRpc3RpY3M6OnN0b3JhZ2VTaXplKCkKK3sKKyAgICByZXR1cm4gbV9zdG9yYWdlU2l6
ZTsKK30KKworCitpbmxpbmUgc2l6ZV90IFN0b3JhZ2VTdGF0aXN0aWNzOjpzdG9yYWdlQ2FwYWNp
dHkoKQoreworICAgIHJldHVybiBtX3N0b3JhZ2VDYXBhY2l0eTsKK30KKwogfSAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCiAKIEhlYXA6OkhlYXAoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBIZWFw
VHlwZSBoZWFwVHlwZSkKQEAgLTc1Myw5ICs4MzAsNiBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoU3dl
ZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAgIG1fb2JqZWN0U3BhY2UucmVzZXRBbGxvY2F0b3Jz
KCk7CiAgICAgfQogICAgIAotICAgIGlmIChPcHRpb25zOjp1c2Vab21iaWVNb2RlKCkpCi0gICAg
ICAgIHpvbWJpZnlEZWFkT2JqZWN0cygpOwotCiAgICAgc2l6ZV90IGN1cnJlbnRIZWFwU2l6ZSA9
IHNpemUoKTsKICAgICBpZiAoZnVsbEdDKSB7CiAgICAgICAgIG1fc2l6ZUFmdGVyTGFzdENvbGxl
Y3QgPSBjdXJyZW50SGVhcFNpemU7CkBAIC03NjksMTAgKzg0Myw0OCBAQCB2b2lkIEhlYXA6OmNv
bGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgbV9ieXRlc0FsbG9jYXRlZCA9IDA7CiAg
ICAgZG91YmxlIGxhc3RHQ0VuZFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CiAgICAgbV9sYXN0
R0NMZW5ndGggPSBsYXN0R0NFbmRUaW1lIC0gbGFzdEdDU3RhcnRUaW1lOworCiAgICAgaWYgKG1f
b3BlcmF0aW9uSW5Qcm9ncmVzcyAhPSBDb2xsZWN0aW9uKQogICAgICAgICBDUkFTSCgpOwogICAg
IG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9IE5vT3BlcmF0aW9uOwogICAgIEpBVkFTQ1JJUFRDT1JF
X0dDX0VORCgpOworCisgICAgaWYgKE9wdGlvbnM6OnVzZVpvbWJpZU1vZGUoKSkKKyAgICAgICAg
em9tYmlmeURlYWRPYmplY3RzKCk7CisKKyAgICBpZiAoT3B0aW9uczo6b2JqZWN0c0FyZUltbW9y
dGFsKCkpCisgICAgICAgIG1hcmtEZWFkT2JqZWN0cygpOworCisgICAgaWYgKE9wdGlvbnM6OnNo
b3dIZWFwU3RhdGlzdGljcygpKQorICAgICAgICBzaG93U3RhdGlzdGljcygpOworfQorCit2b2lk
IEhlYXA6OnNob3dTdGF0aXN0aWNzKCkKK3sKKyAgICBkYXRhTG9nKCJcbj09PSBIZWFwIFN0YXRp
c3RpY3M6ID09PVxuIik7CisgICAgZGF0YUxvZygic2l6ZTogJWxka0JcbiIsIHN0YXRpY19jYXN0
PGxvbmc+KG1fc2l6ZUFmdGVyTGFzdENvbGxlY3QgLyBLQikpOworICAgIGRhdGFMb2coImNhcGFj
aXR5OiAlbGRrQlxuIiwgc3RhdGljX2Nhc3Q8bG9uZz4oY2FwYWNpdHkoKSAvIEtCKSk7CisgICAg
ZGF0YUxvZygicGF1c2UgdGltZTogJWxmbXNcblxuIiwgbV9sYXN0R0NMZW5ndGgpOworCisgICAg
U3RvcmFnZVN0YXRpc3RpY3Mgc3RvcmFnZVN0YXRpc3RpY3M7CisgICAgbV9vYmplY3RTcGFjZS5m
b3JFYWNoTGl2ZUNlbGwoc3RvcmFnZVN0YXRpc3RpY3MpOworICAgIGRhdGFMb2coIndhc3RlZCAu
cHJvcGVydHkgc3RvcmFnZTogJWxka0IgKCVsZCUlKVxuIiwKKyAgICAgICAgc3RhdGljX2Nhc3Q8
bG9uZz4oCisgICAgICAgICAgICAoc3RvcmFnZVN0YXRpc3RpY3Muc3RvcmFnZUNhcGFjaXR5KCkg
LSBzdG9yYWdlU3RhdGlzdGljcy5zdG9yYWdlU2l6ZSgpKSAvIEtCKSwKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8bG9uZz4oCisgICAgICAgICAgICAoc3RvcmFnZVN0YXRpc3RpY3Muc3RvcmFnZUNhcGFj
aXR5KCkgLSBzdG9yYWdlU3RhdGlzdGljcy5zdG9yYWdlU2l6ZSgpKSAqIDEwMAorICAgICAgICAg
ICAgICAgIC8gc3RvcmFnZVN0YXRpc3RpY3Muc3RvcmFnZUNhcGFjaXR5KCkpKTsKKyAgICBkYXRh
TG9nKCJvYmplY3RzIHdpdGggb3V0LW9mLWxpbmUgLnByb3BlcnR5IHN0b3JhZ2U6ICVsZCAoJWxk
JSUpXG4iLAorICAgICAgICBzdGF0aWNfY2FzdDxsb25nPigKKyAgICAgICAgICAgIHN0b3JhZ2VT
dGF0aXN0aWNzLm9iamVjdFdpdGhPdXRPZkxpbmVTdG9yYWdlQ291bnQoKSksCisgICAgICAgIHN0
YXRpY19jYXN0PGxvbmc+KAorICAgICAgICAgICAgc3RvcmFnZVN0YXRpc3RpY3Mub2JqZWN0V2l0
aE91dE9mTGluZVN0b3JhZ2VDb3VudCgpICogMTAwCisgICAgICAgICAgICAgICAgLyBzdG9yYWdl
U3RhdGlzdGljcy5vYmplY3RDb3VudCgpKSk7Cit9CisKK3ZvaWQgSGVhcDo6bWFya0RlYWRPYmpl
Y3RzKCkKK3sKKyAgICBtX29iamVjdFNwYWNlLmZvckVhY2hEZWFkQ2VsbDxNYXJrT2JqZWN0Pigp
OwogfQogCiB2b2lkIEhlYXA6OnNldEFjdGl2aXR5Q2FsbGJhY2soR0NBY3Rpdml0eUNhbGxiYWNr
KiBhY3Rpdml0eUNhbGxiYWNrKQpAQCAtODQ0LDE4ICs5NTYsMTAgQEAgdm9pZCBIZWFwOjpkaWRT
dGFydFZNU2h1dGRvd24oKQogICAgIGxhc3RDaGFuY2VUb0ZpbmFsaXplKCk7CiB9CiAKLWNsYXNz
IFpvbWJpZnlDZWxsRnVuY3RvciA6IHB1YmxpYyBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3Igewor
Y2xhc3MgWm9tYmlmeSA6IHB1YmxpYyBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgewogcHVibGlj
OgotICAgIFpvbWJpZnlDZWxsRnVuY3RvcihzaXplX3QgY2VsbFNpemUpCi0gICAgICAgIDogbV9j
ZWxsU2l6ZShjZWxsU2l6ZSkKLSAgICB7Ci0gICAgfQotCiAgICAgdm9pZCBvcGVyYXRvcigpKEpT
Q2VsbCogY2VsbCkKICAgICB7Ci0gICAgICAgIGlmIChPcHRpb25zOjp6b21iaWVzQXJlSW1tb3J0
YWwoKSkKLSAgICAgICAgICAgIE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKS0+c2V0TWFya2Vk
KGNlbGwpOwotCiAgICAgICAgIHZvaWQqKiBjdXJyZW50ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kio+KGNlbGwpOwogCiAgICAgICAgIC8vIFdlIHdhbnQgdG8gbWFpbnRhaW4gemFwcGVkLW5lc3Mg
YmVjYXVzZSB0aGF0J3MgaG93IHdlIGtub3cgaWYgd2UndmUgY2FsbGVkIApAQCAtODYzLDMwICs5
NjcsMTcgQEAgcHVibGljOgogICAgICAgICBpZiAoY2VsbC0+aXNaYXBwZWQoKSkKICAgICAgICAg
ICAgIGN1cnJlbnQrKzsKIAotICAgICAgICB2b2lkKiBsaW1pdCA9IHN0YXRpY19jYXN0PHZvaWQq
PihyZWludGVycHJldF9jYXN0PGNoYXIqPihjZWxsKSArIG1fY2VsbFNpemUpOworICAgICAgICB2
b2lkKiBsaW1pdCA9IHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPihj
ZWxsKSArIE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKS0+Y2VsbFNpemUoKSk7CiAgICAgICAg
IGZvciAoOyBjdXJyZW50IDwgbGltaXQ7IGN1cnJlbnQrKykKICAgICAgICAgICAgICpjdXJyZW50
ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHhiYmFkYmVlZik7CiAgICAgfQotCi1wcml2YXRl
OgotICAgIHNpemVfdCBtX2NlbGxTaXplOwotfTsKLQotY2xhc3MgWm9tYmlmeUJsb2NrRnVuY3Rv
ciA6IHB1YmxpYyBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgewotcHVibGljOgotICAgIHZvaWQg
b3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spCi0gICAgewotICAgICAgICBab21iaWZ5Q2Vs
bEZ1bmN0b3IgZnVuY3RvcihibG9jay0+Y2VsbFNpemUoKSk7Ci0gICAgICAgIGJsb2NrLT5mb3JF
YWNoRGVhZENlbGwoZnVuY3Rvcik7Ci0gICAgfQogfTsKIAogdm9pZCBIZWFwOjp6b21iaWZ5RGVh
ZE9iamVjdHMoKQogeworICAgIC8vIFN3ZWVwIG5vdyBiZWNhdXNlIGRlc3RydWN0b3JzIHdpbGwg
Y3Jhc2ggb25jZSB3ZSdyZSB6b21iaWZpZWQuCiAgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgpOwot
Ci0gICAgWm9tYmlmeUJsb2NrRnVuY3RvciBmdW5jdG9yOwotICAgIG1fb2JqZWN0U3BhY2UuZm9y
RWFjaEJsb2NrKGZ1bmN0b3IpOworICAgIG1fb2JqZWN0U3BhY2UuZm9yRWFjaERlYWRDZWxsPFpv
bWJpZnk+KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAkocmV2aXNpb24gMTI5NTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNiArMTQ1LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBwcm90ZWN0ZWRHbG9iYWxPYmpl
Y3RDb3VudCgpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBQYXNzT3duUHRyPFR5cGVDb3Vu
dFNldD4gcHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cygpOwogICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSBQYXNzT3duUHRyPFR5cGVDb3VudFNldD4gb2JqZWN0VHlwZUNvdW50cygpOworICAgICAg
ICB2b2lkIHNob3dTdGF0aXN0aWNzKCk7CiAKICAgICAgICAgdm9pZCBwdXNoVGVtcFNvcnRWZWN0
b3IoVmVjdG9yPFZhbHVlU3RyaW5nUGFpcj4qKTsKICAgICAgICAgdm9pZCBwb3BUZW1wU29ydFZl
Y3RvcihWZWN0b3I8VmFsdWVTdHJpbmdQYWlyPiopOwpAQCAtMjA1LDcgKzIwNiw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMo
KTsKICAgICAgICAgdm9pZCBkZWxldGVVbm1hcmtlZENvbXBpbGVkQ29kZSgpOwogICAgICAgICB2
b2lkIHpvbWJpZnlEZWFkT2JqZWN0cygpOwotIAorICAgICAgICB2b2lkIG1hcmtEZWFkT2JqZWN0
cygpOworCiAgICAgICAgIFJlZ2lzdGVyRmlsZSYgcmVnaXN0ZXJGaWxlKCk7CiAgICAgICAgIEJs
b2NrQWxsb2NhdG9yJiBibG9ja0FsbG9jYXRvcigpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgJKHJldmlzaW9uIDEyOTU3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDYgKzk1
LDggQEAgcHVibGljOgogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVu
YW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaExpdmVDZWxsKEZ1bmN0b3ImKTsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZv
ckVhY2hMaXZlQ2VsbCgpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1l
IEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaERlYWRDZWxsKEZ1bmN0b3ImKTsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZvckVh
Y2hEZWFkQ2VsbCgpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1
bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaEJsb2NrKEZ1bmN0b3ImKTsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZvckVhY2hCbG9j
aygpOwogICAgIApAQCAtMTU2LDYgKzE1OCwyMiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9y
PiBpbmxpbmUgdHlwZW5hCiAgICAgcmV0dXJuIGZvckVhY2hMaXZlQ2VsbChmdW5jdG9yKTsKIH0K
IAordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5lIHR5cGVuYW1lIEZ1bmN0b3I6OlJl
dHVyblR5cGUgTWFya2VkU3BhY2U6OmZvckVhY2hEZWFkQ2VsbChGdW5jdG9yJiBmdW5jdG9yKQor
eworICAgIGNhbm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEoKTsKKworICAgIEJsb2NrSXRlcmF0
b3IgZW5kID0gbV9ibG9ja3Muc2V0KCkuZW5kKCk7CisgICAgZm9yIChCbG9ja0l0ZXJhdG9yIGl0
ID0gbV9ibG9ja3Muc2V0KCkuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0
KS0+Zm9yRWFjaERlYWRDZWxsKGZ1bmN0b3IpOworICAgIHJldHVybiBmdW5jdG9yLnJldHVyblZh
bHVlKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IGlubGluZSB0eXBlbmFtZSBG
dW5jdG9yOjpSZXR1cm5UeXBlIE1hcmtlZFNwYWNlOjpmb3JFYWNoRGVhZENlbGwoKQoreworICAg
IEZ1bmN0b3IgZnVuY3RvcjsKKyAgICByZXR1cm4gZm9yRWFjaERlYWRDZWxsKGZ1bmN0b3IpOwor
fQorCiBpbmxpbmUgTWFya2VkQWxsb2NhdG9yJiBNYXJrZWRTcGFjZTo6Zmlyc3RBbGxvY2F0b3Io
KQogewogICAgIHJldHVybiBtX25vcm1hbFNwYWNlLnByZWNpc2VBbGxvY2F0b3JzWzBdOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlzaW9uIDEy
OTU3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDExIEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgp
CiAgICAgSlNDX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElP
TgogICAgICAgICAKKyNpZiBVU0UoQ0YpIHx8IE9TKFVOSVgpCisgICAgb2JqZWN0c0FyZUltbW9y
dGFsKCkgPSAhIWdldGVudigiSlNJbW1vcnRhbFpvbWJpZUVuYWJsZWQiKTsKKyAgICB1c2Vab21i
aWVNb2RlKCkgPSAhIWdldGVudigiSlNJbW1vcnRhbFpvbWJpZUVuYWJsZWQiKSB8fCAhIWdldGVu
digiSlNab21iaWVFbmFibGVkIik7CisjZW5kaWYKKwogICAgIC8vIEFsbG93IGVudmlyb25tZW50
IHZhcnMgdG8gb3ZlcnJpZGUgb3B0aW9ucyBpZiBhcHBsaWNhYmxlLgogICAgIC8vIFRoZSBldm4g
dmFyIHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgb3B0aW9uIHByZWZpeGVkIHdpdGgKICAgICAv
LyAiSlNDXyIuCkBAIC0xNDksMTEgKzE1NCw2IEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgp
CiAgICAgdXNlUmVnRXhwSklUKCkgPSBmYWxzZTsKICNlbmRpZgogCi0jaWYgVVNFKENGKSB8fCBP
UyhVTklYKQotICAgIHpvbWJpZXNBcmVJbW1vcnRhbCgpID0gISFnZXRlbnYoIkpTSW1tb3J0YWxa
b21iaWVFbmFibGVkIik7Ci0gICAgdXNlWm9tYmllTW9kZSgpID0gem9tYmllc0FyZUltbW9ydGFs
KCkgfHwgISFnZXRlbnYoIkpTWm9tYmllRW5hYmxlZCIpOwotI2VuZGlmCi0KICAgICAvLyBEbyBy
YW5nZSBjaGVja3Mgd2hlcmUgbmVlZGVkIGFuZCBtYWtlIGNvcnJlY3Rpb25zIHRvIHRoZSBvcHRp
b25zOgogICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpID49
IHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSk7CiAgICAgQVNTRVJUKHRocmVzaG9s
ZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+PSB0aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb24oKSk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAx
Mjk1NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEyMSw3ICsxMjEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB2KHVuc2ln
bmVkLCBmb3JjZWRXZWFrUmFuZG9tU2VlZCwgMCkgXAogICAgIFwKICAgICB2KGJvb2wsIHVzZVpv
bWJpZU1vZGUsIGZhbHNlKSBcCi0gICAgdihib29sLCB6b21iaWVzQXJlSW1tb3J0YWwsIGZhbHNl
KSAKKyAgICB2KGJvb2wsIG9iamVjdHNBcmVJbW1vcnRhbCwgZmFsc2UpIFwKKyAgICB2KGJvb2ws
IHNob3dIZWFwU3RhdGlzdGljcywgZmFsc2UpCiAKIAogY2xhc3MgT3B0aW9ucyB7Cg==
</data>
<flag name="review"
          id="177835"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>