<?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>62330</bug_id>
          
          <creation_ts>2011-06-08 14:52:57 -0700</creation_ts>
          <short_desc>[Qt] JSC Bridge: convert QtConnectionObject to use JSC API</short_desc>
          <delta_ts>2011-06-13 06:42:02 -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>
          
          <blocked>60842</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Marcelo de Oliveira Filho">cmarcelo</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>417567</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-06-08 14:52:57 -0700</bug_when>
    <thetext>[Qt] JSC Bridge: convert QtConnectionObject to use JSC API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417569</commentid>
    <comment_count>1</comment_count>
      <attachid>96488</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-06-08 14:53:55 -0700</bug_when>
    <thetext>Created attachment 96488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417571</commentid>
    <comment_count>2</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-06-08 14:57:15 -0700</bug_when>
    <thetext>I think this patch is in a good shape to be reviewed, I still want to remove the limitation of 10 arguments, but it is a minor change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417585</commentid>
    <comment_count>3</comment_count>
      <attachid>96488</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-08 15:12:21 -0700</bug_when>
    <thetext>Comment on attachment 96488
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=96488&amp;action=review

&gt; Source/WebCore/bridge/qt/qt_runtime.h:224
&gt; +    JSObjectRef m_receiver;
&gt; +    JSObjectRef m_receiverFunction;

These used to be protected, and now they aren&apos;t -- you probably want to gcProtect/Unprotect these if you want to maintain the same semantics as those that already exist</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417658</commentid>
    <comment_count>4</comment_count>
      <attachid>96503</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-06-08 16:09:20 -0700</bug_when>
    <thetext>Created attachment 96503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417664</commentid>
    <comment_count>5</comment_count>
      <attachid>96503</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-08 16:15:07 -0700</bug_when>
    <thetext>Comment on attachment 96503
Patch

This looks sensible to me, but i&apos;ll hold off on r+ for someone familiar with qt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417723</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-06-08 18:00:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 96503 [details])
&gt; This looks sensible to me, but i&apos;ll hold off on r+ for someone familiar with qt

&quot;dry&quot; r=me (dry since I&apos;m not yet a reviewer)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418204</commentid>
    <comment_count>7</comment_count>
      <attachid>96503</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-06-09 13:04:23 -0700</bug_when>
    <thetext>Comment on attachment 96503
Patch

rs=me based on Noam&apos;s assessment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419532</commentid>
    <comment_count>8</comment_count>
      <attachid>96503</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-13 06:41:58 -0700</bug_when>
    <thetext>Comment on attachment 96503
Patch

Clearing flags on attachment: 96503

Committed r88635: &lt;http://trac.webkit.org/changeset/88635&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419533</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-13 06:42:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96488</attachid>
            <date>2011-06-08 14:53:55 -0700</date>
            <delta_ts>2011-06-08 16:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62330-20110608185353.patch</filename>
            <type>text/plain</type>
            <size>13737</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NjM5OGMxMGU2ZWY0NGQ3
OTY5ODAwNmIyODQwNmZhZmFlN2U4YzY4Li4xNjdmOGRiYzQ1N2U3Y2MzZWRlYWRjMjJlZWNkNmY2
M2NkMzFkOTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDYtMDggIENhaW8g
TWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEpT
QyBCcmlkZ2U6IGNvbnZlcnQgUXRDb25uZWN0aW9uT2JqZWN0IHRvIHVzZSBKU0MgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMzMAorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGRyYWZ0IHBhdGNoIGJ5IE5vYW0gUm9zZW50
aGFsIGluIGJ1ZyA2MDg0Mi4KKyAgICAgICAgUXQgQVBJIGF1dG90ZXN0cyBjb3ZlciB0aGUgYnJp
ZGdlIGJlaGF2aW9yIGFuZCBwYXNzIGFmdGVyIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBicmlk
Z2UvcXQvcXRfcnVudGltZS5oOiBDaGFuZ2UgUXRDb25uZWN0aW9uT2JqZWN0IHRvIHVzZSBKU0Mg
QVBJIHR5cGVzLiBJbgorICAgICAgICBwYXJ0aWN1bGFyLCB3ZSBnb3QgcmlkIG9mIFN0cm9uZzxK
U09iamVjdD4gbWVtYmVycy4gUmVuYW1lZCBzb21lIG1lbWJlcnMgYW5kCisgICAgICAgIGFyZ3Vt
ZW50cyB0byBmb2xsb3cgZXhpc3RpbmcgbmFtaW5nIGluIFFPYmplY3Q6OmNvbm5lY3QoKS4KKwor
ICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNhbGwpOiBVc2UgYSBuZXcgaGVscGVyIGZ1
bmN0aW9uCisgICAgICAgIHRvIGNyZWF0ZSBhIGNvbm5lY3Rpb24sIHBhc3NpbmcgdGhlIEV4ZWNT
dGF0ZSogdGhhdCB3aWxsIGJlIHVzZWQgd2hlbiB0aGUKKyAgICAgICAgY29ubmVjdGlvbiBpcyBh
Y3RpdmF0ZWQgKHNpZ25hbCBlbWl0dGVkKS4gVXNlIEpTQyBBUEkgdHlwZXMgd2hlbiBsb29raW5n
IHVwCisgICAgICAgIHRoZSBtYXRjaGluZyBzaWduYWwgdG8gZGlzY29ubmVjdC4KKworICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UXRDb25uZWN0aW9uT2JqZWN0OjpRdENvbm5lY3Rpb25PYmplY3Qp
OiBSZW1vdmVkIHRoZSBBU1NFUlQoKQorICAgICAgICBzaW5jZSB3ZSBkb24ndCBob2xkIFByb3Rl
Y3RkUHRycyAoaW4gY3VycmVudCBjb2RlIHdlcmUgU3Ryb25nPD4pIGFueW1vcmUKKworICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UXRDb25uZWN0aW9uT2JqZWN0Ojp+UXRDb25uZWN0aW9uT2JqZWN0
KTogRXhwbGFpbiB3aHkgaXMgc2FmZQorICAgICAgICB0byB1c2UgbV9vcmlnaW5hbFNlbmRlciBo
ZXJlLgorCisgICAgICAgIChKU0M6OkJpbmRpbmdzOjppc0phdmFTY3JpcHRGdW5jdGlvbik6IEhl
bHBlciBmdW5jdGlvbiB0byBpZGVudGlmeSB3aGV0aGVyIGEKKyAgICAgICAgSlNPYmplY3RSZWYg
aXMgYSBKUyBmdW5jdGlvbiAoaW4gY29udHJhc3QgdG8gYSBuYXRpdmUgZnVuY3Rpb24gZXhwb3Nl
ZCB0byBKUykuCisKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0Q29ubmVjdGlvbk9iamVjdDo6
ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdENvbm5lY3Rpb25PYmplY3Q6Om1h
dGNoKToKKyAgICAgICAgQm90aCB1cGRhdGVkIHRvIHVzZSBKU0MgQVBJIHdoZW4gYXBwbGlhYmxl
LiBOb3RlIHRoYXQgY29udmVydFFWYXJpYW50VG9WYWx1ZQorICAgICAgICBzdGlsbCByZXR1cm5z
IEpTQyBpbnRlcm5hbCB0eXBlcywgd2lsbCBiZSBoYW5kbGVkIGluIGEgZGlmZmVyZW50IHBhdGNo
LgorCisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdENvbm5lY3Rpb25PYmplY3Q6OmNyZWF0ZVdp
dGhJbnRlcm5hbEpTQyk6CisgICAgICAgIENvbnZlbmluY2UgZm9yIHRoZSBleGlzdGluZyBjYWxs
ZXIgdW50aWwgaXQgaXMgY29udmVydGVkIHRvIEpTQyBhcyB3ZWxsLgorCiAyMDExLTA2LTA4ICBK
YW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBUb255IEdlbnRpbGNvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5j
cHAKaW5kZXggMWMxZGY3NGI2Y2M2Y2M0NjNlOTgzMjIxZjllN2JhNDVjOWY3ZjEzMi4uODg0NjVl
NTA3OWEyMzU1MWEzZDc0ZjQ3MDAyMWUyNzJhNTMyYTA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgInF0X3J1bnRpbWUuaCIKIAorI2luY2x1ZGUgIkFQSUNhc3QuaCIKICNpbmNs
dWRlICJCb29sZWFuT2JqZWN0LmgiCiAjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVk
ZSAiRGF0ZU1hdGguaCIKQEAgLTE2NDIsNyArMTY0Myw4IEBAIEVuY29kZWRKU1ZhbHVlIFF0UnVu
dGltZUNvbm5lY3Rpb25NZXRob2Q6OmNhbGwoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAg
ICAgIC8vICByZWNlaXZlciBmdW5jdGlvbiBbZnJvbSBhcmd1bWVudHNdCiAgICAgICAgICAgICAg
ICAgLy8gIHJlY2VpdmVyIHRoaXMgb2JqZWN0IFtmcm9tIGFyZ3VtZW50c10KIAotICAgICAgICAg
ICAgICAgIFF0Q29ubmVjdGlvbk9iamVjdCogY29ubiA9IG5ldyBRdENvbm5lY3Rpb25PYmplY3Qo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBkLT5tX2luc3RhbmNlLCBzaWduYWxJbmRleCwgdGhpc09iamVj
dCwgZnVuY09iamVjdCk7CisgICAgICAgICAgICAgICAgRXhlY1N0YXRlKiBnbG9iYWxFeGVjID0g
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgICAgICAgICAg
ICAgUXRDb25uZWN0aW9uT2JqZWN0KiBjb25uID0gUXRDb25uZWN0aW9uT2JqZWN0OjpjcmVhdGVX
aXRoSW50ZXJuYWxKU0MoZ2xvYmFsRXhlYywgZC0+bV9pbnN0YW5jZSwgc2lnbmFsSW5kZXgsIHRo
aXNPYmplY3QsIGZ1bmNPYmplY3QpOwogICAgICAgICAgICAgICAgIGJvb2wgb2sgPSBRTWV0YU9i
amVjdDo6Y29ubmVjdChzZW5kZXIsIHNpZ25hbEluZGV4LCBjb25uLCBjb25uLT5tZXRhT2JqZWN0
KCktPm1ldGhvZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICBpZiAoIW9rKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGRlbGV0ZSBjb25uOwpAQCAtMTY2MCw5ICsxNjYyLDEzIEBAIEVuY29kZWRK
U1ZhbHVlIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNhbGwoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgICAgIFFMaXN0PFF0Q29ubmVjdGlvbk9iamVjdCo+IGNvbm5zID0gY29ubmVj
dGlvbnMudmFsdWVzKHNlbmRlcik7CiAgICAgICAgICAgICAgICAgYm9vbCByZXQgPSBmYWxzZTsK
IAorICAgICAgICAgICAgICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gOjp0b1JlZihleGVjKTsK
KyAgICAgICAgICAgICAgICBKU09iamVjdFJlZiByZWNlaXZlciA9IDo6dG9SZWYodGhpc09iamVj
dCk7CisgICAgICAgICAgICAgICAgSlNPYmplY3RSZWYgcmVjZWl2ZXJGdW5jdGlvbiA9IDo6dG9S
ZWYoZnVuY09iamVjdCk7CisKICAgICAgICAgICAgICAgICBmb3JlYWNoKFF0Q29ubmVjdGlvbk9i
amVjdCogY29ubiwgY29ubnMpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gSXMgdGhpcyB0aGUg
cmlnaHQgY29ubmVjdGlvbj8KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvbm4tPm1hdGNoKHNl
bmRlciwgc2lnbmFsSW5kZXgsIHRoaXNPYmplY3QsIGZ1bmNPYmplY3QpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChjb25uLT5tYXRjaChjb250ZXh0LCBzZW5kZXIsIHNpZ25hbEluZGV4LCBy
ZWNlaXZlciwgcmVjZWl2ZXJGdW5jdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IFllcCwgZGlzY29ubmVjdCBpdAogICAgICAgICAgICAgICAgICAgICAgICAgUU1ldGFPYmplY3Q6
OmRpc2Nvbm5lY3Qoc2VuZGVyLCBzaWduYWxJbmRleCwgY29ubiwgY29ubi0+bWV0YU9iamVjdCgp
LT5tZXRob2RPZmZzZXQoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29ubjsg
Ly8gdGhpcyB3aWxsIGFsc28gcmVtb3ZlIGl0IGZyb20gdGhlIG1hcApAQCAtMTczNiwyMSArMTc0
MiwyMiBAQCBKU1ZhbHVlIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6Omxlbmd0aEdldHRlcihF
eGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudAogCiAvLyA9PT09PT09PT09PT09PT0KIAot
UXRDb25uZWN0aW9uT2JqZWN0OjpRdENvbm5lY3Rpb25PYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3RhbmNlLCBpbnQgc2lnbmFsSW5kZXgs
IEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU09iamVjdCogZnVuY09iamVjdCkKLSAgICA6IG1faW5z
dGFuY2UoaW5zdGFuY2UpCitRdENvbm5lY3Rpb25PYmplY3Q6OlF0Q29ubmVjdGlvbk9iamVjdChK
U0NvbnRleHRSZWYgY29udGV4dCwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBzZW5kZXJJbnN0YW5j
ZSwgaW50IHNpZ25hbEluZGV4LCBKU09iamVjdFJlZiByZWNlaXZlciwgSlNPYmplY3RSZWYgcmVj
ZWl2ZXJGdW5jdGlvbikKKyAgICA6IFFPYmplY3Qoc2VuZGVySW5zdGFuY2UtPmdldE9iamVjdCgp
KQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3NlbmRlckluc3RhbmNlKHNlbmRl
ckluc3RhbmNlKQorICAgICwgbV9vcmlnaW5hbFNlbmRlcihtX3NlbmRlckluc3RhbmNlLT5nZXRP
YmplY3QoKSkKICAgICAsIG1fc2lnbmFsSW5kZXgoc2lnbmFsSW5kZXgpCi0gICAgLCBtX29yaWdp
bmFsT2JqZWN0KG1faW5zdGFuY2UtPmdldE9iamVjdCgpKQotICAgICwgbV90aGlzT2JqZWN0KGds
b2JhbERhdGEsIHRoaXNPYmplY3QpCi0gICAgLCBtX2Z1bmNPYmplY3QoZ2xvYmFsRGF0YSwgZnVu
Y09iamVjdCkKKyAgICAsIG1fcmVjZWl2ZXIocmVjZWl2ZXIpCisgICAgLCBtX3JlY2VpdmVyRnVu
Y3Rpb24ocmVjZWl2ZXJGdW5jdGlvbikKIHsKLSAgICBzZXRQYXJlbnQobV9vcmlnaW5hbE9iamVj
dCk7Ci0gICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7IC8v
IHNvIG91ciBQcm90ZWN0ZWRQdHJzIGFyZSBzYWZlCiB9CiAKIFF0Q29ubmVjdGlvbk9iamVjdDo6
flF0Q29ubmVjdGlvbk9iamVjdCgpCiB7Ci0gICAgLy8gUmVtb3ZlIHVzIGZyb20gdGhlIG1hcCBv
ZiBhY3RpdmUgY29ubmVjdGlvbnMKLSAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpjb25u
ZWN0aW9ucy5yZW1vdmUobV9vcmlnaW5hbE9iamVjdCwgdGhpcyk7CisgICAgLy8gV2UgY2FuIHNh
ZmVseSB1c2UgbV9vcmlnaW5hbFNlbmRlciBiZWNhdXNlIGNvbm5lY3Rpb24gb2JqZWN0IHdpbGwg
bmV2ZXIgb3V0bGl2ZSB0aGUgc2VuZGVyLAorICAgIC8vIHdoaWNoIGlzIGl0cyBRT2JqZWN0IHBh
cmVudC4KKyAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpjb25uZWN0aW9ucy5yZW1vdmUo
bV9vcmlnaW5hbFNlbmRlciwgdGhpcyk7CiB9CiAKIHN0YXRpYyBjb25zdCB1aW50IHF0X21ldGFf
ZGF0YV9RdENvbm5lY3Rpb25PYmplY3RbXSA9IHsKQEAgLTE3OTEsNiArMTc5OCw3IEBAIHZvaWQg
KlF0Q29ubmVjdGlvbk9iamVjdDo6cXRfbWV0YWNhc3QoY29uc3QgY2hhciAqX2NsbmFtZSkKICAg
ICByZXR1cm4gUU9iamVjdDo6cXRfbWV0YWNhc3QoX2NsbmFtZSk7CiB9CiAKKy8vIFRoaXMgaXMg
d2hhdCBtb2Mgd291bGQgZ2VuZXJhdGUgZXhjZXB0IGJ5IHRoZSBmYWN0IHRoYXQgd2UgcGFzcyBh
bGwgYXJndW1lbnRzIHRvIG91ciBleGVjdXRlKCkgc2xvdC4KIGludCBRdENvbm5lY3Rpb25PYmpl
Y3Q6OnF0X21ldGFjYWxsKFFNZXRhT2JqZWN0OjpDYWxsIF9jLCBpbnQgX2lkLCB2b2lkICoqX2Ep
CiB7CiAgICAgX2lkID0gUU9iamVjdDo6cXRfbWV0YWNhbGwoX2MsIF9pZCwgX2EpOwpAQCAtMTgw
NSw2NSArMTgxMyw2NCBAQCBpbnQgUXRDb25uZWN0aW9uT2JqZWN0OjpxdF9tZXRhY2FsbChRTWV0
YU9iamVjdDo6Q2FsbCBfYywgaW50IF9pZCwgdm9pZCAqKl9hKQogICAgIHJldHVybiBfaWQ7CiB9
CiAKLXZvaWQgUXRDb25uZWN0aW9uT2JqZWN0OjpleGVjdXRlKHZvaWQgKiphcmd2KQorc3RhdGlj
IGJvb2wgaXNKYXZhU2NyaXB0RnVuY3Rpb24oSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIFFP
YmplY3QqIG9iaiA9IG1faW5zdGFuY2UtPmdldE9iamVjdCgpOwotICAgIGlmIChvYmopIHsKLSAg
ICAgICAgY29uc3QgUU1ldGFPYmplY3QqIG1ldGEgPSBvYmotPm1ldGFPYmplY3QoKTsKLSAgICAg
ICAgY29uc3QgUU1ldGFNZXRob2QgbWV0aG9kID0gbWV0YS0+bWV0aG9kKG1fc2lnbmFsSW5kZXgp
OwotCi0gICAgICAgIFFMaXN0PFFCeXRlQXJyYXk+IHBhcmFtZXRlclR5cGVzID0gbWV0aG9kLnBh
cmFtZXRlclR5cGVzKCk7Ci0KLSAgICAgICAgaW50IGFyZ2MgPSBwYXJhbWV0ZXJUeXBlcy5jb3Vu
dCgpOwotCi0gICAgICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0KLSAg
ICAgICAgLy8gIyMjIFNob3VsZCB0aGUgSW50ZXJwcmV0ZXIvRXhlY1N0YXRlIGNvbWUgZnJvbSBz
b21ld2hlcmUgZWxzZT8KLSAgICAgICAgUmVmUHRyPFJvb3RPYmplY3Q+IHJvID0gbV9pbnN0YW5j
ZS0+cm9vdE9iamVjdCgpOwotICAgICAgICBpZiAocm8pIHsKLSAgICAgICAgICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxvYmogPSByby0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgICAgICBpZiAo
Z2xvYmFsb2JqKSB7Ci0gICAgICAgICAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsb2Jq
LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGV4ZWMpIHsKLSAgICAgICAgICAg
ICAgICAgICAgLy8gQnVpbGQgdGhlIGFyZ3VtZW50IGxpc3QgKHVwIHRvIHRoZSBmb3JtYWwgYXJn
dW1lbnQgbGVuZ3RoIG9mIHRoZSBzbG90KQotICAgICAgICAgICAgICAgICAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBsOwotICAgICAgICAgICAgICAgICAgICAvLyAjIyMgRHJvcEFsbExvY2tzPwot
ICAgICAgICAgICAgICAgICAgICBpbnQgZnVuY0FyZ0MgPSBtX2Z1bmNPYmplY3QtPmdldChleGVj
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b0ludDMyKGV4ZWMpOwotICAgICAgICAg
ICAgICAgICAgICBpbnQgYXJnVG90YWwgPSBxTWF4KGZ1bmNBcmdDLCBhcmdjKTsKLSAgICAgICAg
ICAgICAgICAgICAgZm9yKGludCBpPTA7IGkgPCBhcmdUb3RhbDsgaSsrKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaSA8IGFyZ2MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgYXJnVHlwZSA9IFFNZXRhVHlwZTo6dHlwZShwYXJhbWV0ZXJUeXBlcy5hdChpKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5hcHBlbmQoY29udmVydFFWYXJpYW50VG9WYWx1
ZShleGVjLCBybywgUVZhcmlhbnQoYXJnVHlwZSwgYXJndltpKzFdKSkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLmFwcGVu
ZChqc1VuZGVmaW5lZCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgfQorICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIHJldHVybiB0b0pTKG9iamVj
dCktPmdldENhbGxEYXRhKGNhbGxEYXRhKSA9PSBDYWxsVHlwZUpTOworfQogCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGJvb2wgd2l0aFF0U2VuZGVyU3RhY2sgPSBtX2Z1bmNPYmplY3QtPmlu
aGVyaXRzKCZKU0Z1bmN0aW9uOjpzX2luZm8pOwotICAgICAgICAgICAgICAgICAgICBpZiAod2l0
aFF0U2VuZGVyU3RhY2spCi0gICAgICAgICAgICAgICAgICAgICAgICBRdEluc3RhbmNlOjpxdFNl
bmRlclN0YWNrKCktPnB1c2goUU9iamVjdDo6c2VuZGVyKCkpOwordm9pZCBRdENvbm5lY3Rpb25P
YmplY3Q6OmV4ZWN1dGUodm9pZCoqIGFyZ3YpCit7CisgICAgUU9iamVjdCogc2VuZGVyID0gbV9z
ZW5kZXJJbnN0YW5jZS0+Z2V0T2JqZWN0KCk7CisgICAgaWYgKCFzZW5kZXIpIHsKKyAgICAgICAg
cVdhcm5pbmcoKSA8PCAic2VuZGVyIGRlbGV0ZWQsIGNhbm5vdCBkZWxpdmVyIHNpZ25hbCI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgQ2FsbERhdGEgY2Fs
bERhdGE7Ci0gICAgICAgICAgICAgICAgICAgIENhbGxUeXBlIGNhbGxUeXBlID0gbV9mdW5jT2Jq
ZWN0LT5nZXRDYWxsRGF0YShjYWxsRGF0YSk7Ci0gICAgICAgICAgICAgICAgICAgIGNhbGwoZXhl
YywgbV9mdW5jT2JqZWN0LmdldCgpLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fdGhpc09iamVjdC5n
ZXQoKSwgbCk7CisgICAgQVNTRVJUKHNlbmRlciA9PSBtX29yaWdpbmFsU2VuZGVyKTsKIAotICAg
ICAgICAgICAgICAgICAgICBpZiAod2l0aFF0U2VuZGVyU3RhY2spCi0gICAgICAgICAgICAgICAg
ICAgICAgICBRdEluc3RhbmNlOjpxdFNlbmRlclN0YWNrKCktPnBvcCgpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8v
IEEgc3RyYW5nZSBwbGFjZSB0byBiZSAtIGEgZGVsZXRlZCBvYmplY3QgZW1pdHRlZCBhIHNpZ25h
bCBoZXJlLgotICAgICAgICBxV2FybmluZygpIDw8ICJzZW5kZXIgZGVsZXRlZCwgY2Fubm90IGRl
bGl2ZXIgc2lnbmFsIjsKKyAgICBjb25zdCBRTWV0YU9iamVjdCogbWV0YSA9IHNlbmRlci0+bWV0
YU9iamVjdCgpOworICAgIGNvbnN0IFFNZXRhTWV0aG9kIG1ldGhvZCA9IG1ldGEtPm1ldGhvZCht
X3NpZ25hbEluZGV4KTsKKworICAgIFFMaXN0PFFCeXRlQXJyYXk+IHBhcmFtZXRlclR5cGVzID0g
bWV0aG9kLnBhcmFtZXRlclR5cGVzKCk7CisKKyAgICBpbnQgYXJnYyA9IHBhcmFtZXRlclR5cGVz
LmNvdW50KCk7CisgICAgaWYgKGFyZ2MgPiAxMCkKKyAgICAgICAgYXJnYyA9IDEwOworCisgICAg
V1RGOjpGaXhlZEFycmF5PEpTVmFsdWVSZWYsIDEwPiBhcmdzOworCisgICAgLy8gVE9ETzogcmVt
b3ZlIG9uY2UgY29udmVyc2lvbiBmdW5jdGlvbnMgdXNlIEpTQyBBUEkuCisgICAgRXhlY1N0YXRl
KiBleGVjID0gOjp0b0pTKG1fY29udGV4dCk7CisgICAgUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3RP
YmplY3QgPSBtX3NlbmRlckluc3RhbmNlLT5yb290T2JqZWN0KCk7CisKKyAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGFyZ2M7IGkrKykgeworICAgICAgICBpbnQgYXJnVHlwZSA9IFFNZXRhVHlwZTo6
dHlwZShwYXJhbWV0ZXJUeXBlcy5hdChpKSk7CisgICAgICAgIGFyZ3NbaV0gPSA6OnRvUmVmKGV4
ZWMsIGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoZXhlYywgcm9vdE9iamVjdCwgUVZhcmlhbnQoYXJn
VHlwZSwgYXJndltpKzFdKSkpOwogICAgIH0KKworICAgIGNvbnN0IGJvb2wgdXBkYXRlUXRTZW5k
ZXIgPSBpc0phdmFTY3JpcHRGdW5jdGlvbihtX3JlY2VpdmVyRnVuY3Rpb24pOworICAgIGlmICh1
cGRhdGVRdFNlbmRlcikKKyAgICAgICAgUXRJbnN0YW5jZTo6cXRTZW5kZXJTdGFjaygpLT5wdXNo
KFFPYmplY3Q6OnNlbmRlcigpKTsKKworICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24obV9jb250
ZXh0LCBtX3JlY2VpdmVyRnVuY3Rpb24sIG1fcmVjZWl2ZXIsIGFyZ2MsIGFyZ3MuZGF0YSgpLCAw
KTsKKworICAgIGlmICh1cGRhdGVRdFNlbmRlcikKKyAgICAgICAgUXRJbnN0YW5jZTo6cXRTZW5k
ZXJTdGFjaygpLT5wb3AoKTsKIH0KIAotYm9vbCBRdENvbm5lY3Rpb25PYmplY3Q6Om1hdGNoKFFP
YmplY3QqIHNlbmRlciwgaW50IHNpZ25hbEluZGV4LCBKU09iamVjdCogdGhpc09iamVjdCwgSlNP
YmplY3QgKmZ1bmNPYmplY3QpCitib29sIFF0Q29ubmVjdGlvbk9iamVjdDo6bWF0Y2goSlNDb250
ZXh0UmVmIGNvbnRleHQsIFFPYmplY3QqIHNlbmRlciwgaW50IHNpZ25hbEluZGV4LCBKU09iamVj
dFJlZiByZWNlaXZlciwgSlNPYmplY3RSZWYgcmVjZWl2ZXJGdW5jdGlvbikKIHsKLSAgICBpZiAo
bV9vcmlnaW5hbE9iamVjdCA9PSBzZW5kZXIgJiYgbV9zaWduYWxJbmRleCA9PSBzaWduYWxJbmRl
eAotICAgICAgICAmJiB0aGlzT2JqZWN0ID09IChKU09iamVjdCopbV90aGlzT2JqZWN0LmdldCgp
ICYmIGZ1bmNPYmplY3QgPT0gKEpTT2JqZWN0KiltX2Z1bmNPYmplY3QuZ2V0KCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc2VuZGVyICE9IG1fb3Jp
Z2luYWxTZW5kZXIgfHwgc2lnbmFsSW5kZXggIT0gbV9zaWduYWxJbmRleCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIEpTVmFsdWVSZWYqIGlnbm9yZWRFeGNlcHRpb24gPSAwOworICAgIGNv
bnN0IGJvb2wgcmVjZWl2ZXJNYXRjaCA9ICghcmVjZWl2ZXIgJiYgIW1fcmVjZWl2ZXIpIHx8IEpT
VmFsdWVJc0VxdWFsKGNvbnRleHQsIHJlY2VpdmVyLCBtX3JlY2VpdmVyLCBpZ25vcmVkRXhjZXB0
aW9uKTsKKyAgICByZXR1cm4gcmVjZWl2ZXJNYXRjaCAmJiBKU1ZhbHVlSXNFcXVhbChjb250ZXh0
LCByZWNlaXZlckZ1bmN0aW9uLCBtX3JlY2VpdmVyRnVuY3Rpb24sIGlnbm9yZWRFeGNlcHRpb24p
OworfQorCitRdENvbm5lY3Rpb25PYmplY3QqIFF0Q29ubmVjdGlvbk9iamVjdDo6Y3JlYXRlV2l0
aEludGVybmFsSlNDKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBzZW5k
ZXJJbnN0YW5jZSwgaW50IHNpZ25hbEluZGV4LCBKU09iamVjdCogcmVjZWl2ZXIsIEpTT2JqZWN0
KiByZWNlaXZlckZ1bmN0aW9uKQoreworICAgIHJldHVybiBuZXcgUXRDb25uZWN0aW9uT2JqZWN0
KDo6dG9SZWYoZXhlYyksIHNlbmRlckluc3RhbmNlLCBzaWduYWxJbmRleCwgOjp0b1JlZihyZWNl
aXZlciksIDo6dG9SZWYocmVjZWl2ZXJGdW5jdGlvbikpOwogfQogCiAvLyA9PT09PT09PT09PT09
PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCmluZGV4IDRkMjg4NzMzY2Y3OWFi
ZmIyMzZiNGJkYTQ1MTcyYWYzNjVjNDhmMDguLjNkMDk0ODFkMjNjYmVkYWMyNjZhNjBjMzZhZmZk
NTE5MThmM2NlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaApAQCAtMjEs
OCArMjEsNyBAQAogI2RlZmluZSBCSU5ESU5HU19RVF9SVU5USU1FX0hfCiAKICNpbmNsdWRlICJC
cmlkZ2VKU0MuaCIKLSNpbmNsdWRlICJDb21wbGV0aW9uLmgiCi0jaW5jbHVkZSAiU3Ryb25nLmgi
CisjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgogI2luY2x1ZGUgIldlYWsuaCIKICNpbmNsdWRlICJy
dW50aW1lX21ldGhvZC5oIgogCkBAIC0xOTIsMjggKzE5MSwzNyBAQCBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBRdENvbm5lY3Rpb25PYmplY3Q7CiB9OwogCi1jbGFzcyBRdENvbm5lY3Rpb25P
YmplY3Q6IHB1YmxpYyBRT2JqZWN0CisvLyBBIFF0Q29ubmVjdGlvbk9iamVjdCByZXByZXNlbnRz
IGEgY29ubmVjdGlvbiBjcmVhdGVkIGluc2lkZSBKUy4gSXQgd2lsbCBjb25uZWN0IGl0cyBvd24g
ZXhlY3V0ZSgpIHNsb3QKKy8vIHdpdGggdGhlIGFwcHJvcHJpYXRlIHNpZ25hbCBvZiAnc2VuZGVy
Jy4gV2hlbiBleGVjdXRlKCkgaXMgY2FsbGVkLCBpdCB3aWxsIGNhbGwgSlMgJ3JlY2VpdmVyRnVu
Y3Rpb24nLgorY2xhc3MgUXRDb25uZWN0aW9uT2JqZWN0IDogcHVibGljIFFPYmplY3QKIHsKIHB1
YmxpYzoKLSAgICBRdENvbm5lY3Rpb25PYmplY3QoSlNHbG9iYWxEYXRhJiwgUGFzc1JlZlB0cjxR
dEluc3RhbmNlPiBpbnN0YW5jZSwgaW50IHNpZ25hbEluZGV4LCBKU09iamVjdCogdGhpc09iamVj
dCwgSlNPYmplY3QqIGZ1bmNPYmplY3QpOworICAgIFF0Q29ubmVjdGlvbk9iamVjdChKU0NvbnRl
eHRSZWYsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gc2VuZGVySW5zdGFuY2UsIGludCBzaWduYWxJ
bmRleCwgSlNPYmplY3RSZWYgcmVjZWl2ZXIsIEpTT2JqZWN0UmVmIHJlY2VpdmVyRnVuY3Rpb24p
OwogICAgIH5RdENvbm5lY3Rpb25PYmplY3QoKTsKIAorICAgIC8vIEV4cGxpY2l0bHkgZGVmaW5l
IHRoZXNlIGJlY2F1c2Ugd2FudCBhIGN1c3RvbSBxdF9tZXRhY2FsbCgpLCBzbyB3ZSBjYW4ndCB1
c2UgUV9PQkpFQ1QgbWFjcm8uCiAgICAgc3RhdGljIGNvbnN0IFFNZXRhT2JqZWN0IHN0YXRpY01l
dGFPYmplY3Q7CiAgICAgdmlydHVhbCBjb25zdCBRTWV0YU9iamVjdCAqbWV0YU9iamVjdCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCAqcXRfbWV0YWNhc3QoY29uc3QgY2hhciAqKTsKICAgICB2
aXJ0dWFsIGludCBxdF9tZXRhY2FsbChRTWV0YU9iamVjdDo6Q2FsbCwgaW50LCB2b2lkICoqYXJn
dik7CiAKLSAgICBib29sIG1hdGNoKFFPYmplY3QgKnNlbmRlciwgaW50IHNpZ25hbEluZGV4LCBK
U09iamVjdCogdGhpc09iamVjdCwgSlNPYmplY3QgKmZ1bmNPYmplY3QpOwotCi0gICAgLy8gYWN0
dWFsIHNsb3Q6CiAgICAgdm9pZCBleGVjdXRlKHZvaWQgKiphcmd2KTsKIAorICAgIGJvb2wgbWF0
Y2goSlNDb250ZXh0UmVmLCBRT2JqZWN0KiBzZW5kZXIsIGludCBzaWduYWxJbmRleCwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgSlNPYmplY3RSZWYgZnVuY09iamVjdCk7CisKKyAgICAvLyBOb3Rl
OiBmb3IgY2FsbGVycyB1c2luZyBKU0MgaW50ZXJuYWxzLCByZW1vdmUgb25jZSB3ZSBkb24ndCBu
ZWVkIGFueW1vcmUuCisgICAgc3RhdGljIFF0Q29ubmVjdGlvbk9iamVjdCogY3JlYXRlV2l0aElu
dGVybmFsSlNDKEV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gc2VuZGVySW5zdGFu
Y2UsIGludCBzaWduYWxJbmRleCwgSlNPYmplY3QqIHJlY2VpdmVyLCBKU09iamVjdCogcmVjZWl2
ZXJGdW5jdGlvbik7CisKIHByaXZhdGU6Ci0gICAgUmVmUHRyPFF0SW5zdGFuY2U+IG1faW5zdGFu
Y2U7CisgICAgSlNDb250ZXh0UmVmIG1fY29udGV4dDsKKyAgICBSZWZQdHI8UXRJbnN0YW5jZT4g
bV9zZW5kZXJJbnN0YW5jZTsKKworICAgIC8vIFdlIHVzZSB0aGlzIGFzIGtleSBpbiBhY3RpdmUg
Y29ubmVjdGlvbnMgbXVsdGltYXAuCisgICAgUU9iamVjdCogbV9vcmlnaW5hbFNlbmRlcjsKKwog
ICAgIGludCBtX3NpZ25hbEluZGV4OwotICAgIFFPYmplY3QqIG1fb3JpZ2luYWxPYmplY3Q7IC8v
IG9ubHkgdXNlZCBhcyBhIGtleSwgbm90IGRlcmVmZXJlbmNlZAotICAgIFN0cm9uZzxKU09iamVj
dD4gbV90aGlzT2JqZWN0OwotICAgIFN0cm9uZzxKU09iamVjdD4gbV9mdW5jT2JqZWN0OworICAg
IEpTT2JqZWN0UmVmIG1fcmVjZWl2ZXI7CisgICAgSlNPYmplY3RSZWYgbV9yZWNlaXZlckZ1bmN0
aW9uOwogfTsKIAogUVZhcmlhbnQgY29udmVydFZhbHVlVG9RVmFyaWFudChFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgdmFsdWUsIFFNZXRhVHlwZTo6VHlwZSBoaW50LCBpbnQgKmRpc3RhbmNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96503</attachid>
            <date>2011-06-08 16:09:20 -0700</date>
            <delta_ts>2011-06-13 06:41:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62330-20110608200918.patch</filename>
            <type>text/plain</type>
            <size>14576</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NjM5OGMxMGU2ZWY0NGQ3
OTY5ODAwNmIyODQwNmZhZmFlN2U4YzY4Li43NTU3OGRhNDM2OGVlZDEwMWNmMDFjZjdjYTJiOWJl
MTA5MGNkOGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDYtMDggIENhaW8g
TWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEpT
QyBCcmlkZ2U6IGNvbnZlcnQgUXRDb25uZWN0aW9uT2JqZWN0IHRvIHVzZSBKU0MgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjMzMAorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGRyYWZ0IHBhdGNoIGJ5IE5vYW0gUm9zZW50
aGFsIGluIGJ1ZyA2MDg0Mi4KKyAgICAgICAgUXQgQVBJIGF1dG90ZXN0cyBjb3ZlciB0aGUgYnJp
ZGdlIGJlaGF2aW9yIGFuZCBwYXNzIGFmdGVyIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBicmlk
Z2UvcXQvcXRfcnVudGltZS5oOiBDaGFuZ2UgUXRDb25uZWN0aW9uT2JqZWN0IHRvIHVzZSBKU0Mg
QVBJIHR5cGVzLiBJbgorICAgICAgICBwYXJ0aWN1bGFyLCB3ZSBnb3QgcmlkIG9mIFN0cm9uZzxK
U09iamVjdD4gbWVtYmVycy4gUmVuYW1lZCBzb21lIG1lbWJlcnMgYW5kCisgICAgICAgIGFyZ3Vt
ZW50cyB0byBmb2xsb3cgZXhpc3RpbmcgbmFtaW5nIGluIFFPYmplY3Q6OmNvbm5lY3QoKS4KKwor
ICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNhbGwpOiBVc2UgYSBuZXcgaGVscGVyIGZ1
bmN0aW9uCisgICAgICAgIHRvIGNyZWF0ZSBhIGNvbm5lY3Rpb24sIHBhc3NpbmcgdGhlIEV4ZWNT
dGF0ZSogdGhhdCB3aWxsIGJlIHVzZWQgd2hlbiB0aGUKKyAgICAgICAgY29ubmVjdGlvbiBpcyBh
Y3RpdmF0ZWQgKHNpZ25hbCBlbWl0dGVkKS4gVXNlIEpTQyBBUEkgdHlwZXMgd2hlbiBsb29raW5n
IHVwCisgICAgICAgIHRoZSBtYXRjaGluZyBzaWduYWwgdG8gZGlzY29ubmVjdC4KKworICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UXRDb25uZWN0aW9uT2JqZWN0OjpRdENvbm5lY3Rpb25PYmplY3Qp
OiBVc2UgSlNDIEFQSSB0bworICAgICAgICBwcm90ZWN0IHRoZSByZWNlaXZlciBhbmQgcmVjZWl2
ZXJGdW5jdGlvbiBmcm9tIGJlaW5nIGdhcmJhZ2UKKyAgICAgICAgY29sbGVjdGVkLiBSZW1vdmVk
IHRoZSBBU1NFUlQoKSBzaW5jZSB3ZSBkb24ndCBob2xkIFByb3RlY3RlZFB0cnMgKGluIGN1cnJl
bnQKKyAgICAgICAgY29kZSB3ZXJlIFN0cm9uZzw+KSBhbnltb3JlLgorCisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpRdENvbm5lY3Rpb25PYmplY3Q6On5RdENvbm5lY3Rpb25PYmplY3QpOiBFeHBs
YWluIHdoeSBpcyBzYWZlCisgICAgICAgIHRvIHVzZSBtX29yaWdpbmFsU2VuZGVyIGhlcmUuIFVu
cHJvdGVjdCB2YWx1ZXMgdGhhdCB3ZSBwcm90ZWN0ZWQgaW4gY29uc3RydWN0b3IuCisKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OmlzSmF2YVNjcmlwdEZ1bmN0aW9uKTogSGVscGVyIGZ1bmN0aW9u
IHRvIGlkZW50aWZ5IHdoZXRoZXIgYQorICAgICAgICBKU09iamVjdFJlZiBpcyBhIEpTIGZ1bmN0
aW9uIChpbiBjb250cmFzdCB0byBhIG5hdGl2ZSBmdW5jdGlvbiBleHBvc2VkIHRvIEpTKS4KKwor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRDb25uZWN0aW9uT2JqZWN0OjpleGVjdXRlKToKKyAg
ICAgICAgKEpTQzo6QmluZGluZ3M6OlF0Q29ubmVjdGlvbk9iamVjdDo6bWF0Y2gpOgorICAgICAg
ICBCb3RoIHVwZGF0ZWQgdG8gdXNlIEpTQyBBUEkgd2hlbiBhcHBsaWFibGUuIE5vdGUgdGhhdCBj
b252ZXJ0UVZhcmlhbnRUb1ZhbHVlCisgICAgICAgIHN0aWxsIHJldHVybnMgSlNDIGludGVybmFs
IHR5cGVzLCB3aWxsIGJlIGhhbmRsZWQgaW4gYSBkaWZmZXJlbnQgcGF0Y2guCisKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OlF0Q29ubmVjdGlvbk9iamVjdDo6Y3JlYXRlV2l0aEludGVybmFsSlND
KToKKyAgICAgICAgQ29udmVuaW5jZSBmb3IgdGhlIGV4aXN0aW5nIGNhbGxlciB1bnRpbCBpdCBp
cyBjb252ZXJ0ZWQgdG8gSlNDIGFzIHdlbGwuCisKIDIwMTEtMDYtMDggIEphbWVzIFNpbW9uc2Vu
ICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgR2Vu
dGlsY29yZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCAxYzFk
Zjc0YjZjYzZjYzQ2M2U5ODMyMjFmOWU3YmE0NWM5ZjdmMTMyLi5hYjQwNDMxNjBlN2NjMzhkN2Iz
YWQ1NTM4Zjg0OTA1ZjMyODY4NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuY3BwCkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
cXRfcnVudGltZS5oIgogCisjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkJvb2xlYW5P
YmplY3QuaCIKICNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJEYXRlTWF0aC5o
IgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIkpTUmV0YWluUHRy
LmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1l
QXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgpAQCAtMTY0Miw3ICsxNjQ0
LDggQEAgRW5jb2RlZEpTVmFsdWUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y2FsbChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgLy8gIHJlY2VpdmVyIGZ1bmN0aW9uIFtmcm9t
IGFyZ3VtZW50c10KICAgICAgICAgICAgICAgICAvLyAgcmVjZWl2ZXIgdGhpcyBvYmplY3QgW2Zy
b20gYXJndW1lbnRzXQogCi0gICAgICAgICAgICAgICAgUXRDb25uZWN0aW9uT2JqZWN0KiBjb25u
ID0gbmV3IFF0Q29ubmVjdGlvbk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGQtPm1faW5zdGFu
Y2UsIHNpZ25hbEluZGV4LCB0aGlzT2JqZWN0LCBmdW5jT2JqZWN0KTsKKyAgICAgICAgICAgICAg
ICBFeGVjU3RhdGUqIGdsb2JhbEV4ZWMgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmds
b2JhbEV4ZWMoKTsKKyAgICAgICAgICAgICAgICBRdENvbm5lY3Rpb25PYmplY3QqIGNvbm4gPSBR
dENvbm5lY3Rpb25PYmplY3Q6OmNyZWF0ZVdpdGhJbnRlcm5hbEpTQyhnbG9iYWxFeGVjLCBkLT5t
X2luc3RhbmNlLCBzaWduYWxJbmRleCwgdGhpc09iamVjdCwgZnVuY09iamVjdCk7CiAgICAgICAg
ICAgICAgICAgYm9vbCBvayA9IFFNZXRhT2JqZWN0Ojpjb25uZWN0KHNlbmRlciwgc2lnbmFsSW5k
ZXgsIGNvbm4sIGNvbm4tPm1ldGFPYmplY3QoKS0+bWV0aG9kT2Zmc2V0KCkpOwogICAgICAgICAg
ICAgICAgIGlmICghb2spIHsKICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbm47CkBAIC0x
NjYwLDkgKzE2NjMsMTMgQEAgRW5jb2RlZEpTVmFsdWUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhv
ZDo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgUUxpc3Q8UXRDb25uZWN0
aW9uT2JqZWN0Kj4gY29ubnMgPSBjb25uZWN0aW9ucy52YWx1ZXMoc2VuZGVyKTsKICAgICAgICAg
ICAgICAgICBib29sIHJldCA9IGZhbHNlOwogCisgICAgICAgICAgICAgICAgSlNDb250ZXh0UmVm
IGNvbnRleHQgPSA6OnRvUmVmKGV4ZWMpOworICAgICAgICAgICAgICAgIEpTT2JqZWN0UmVmIHJl
Y2VpdmVyID0gOjp0b1JlZih0aGlzT2JqZWN0KTsKKyAgICAgICAgICAgICAgICBKU09iamVjdFJl
ZiByZWNlaXZlckZ1bmN0aW9uID0gOjp0b1JlZihmdW5jT2JqZWN0KTsKKwogICAgICAgICAgICAg
ICAgIGZvcmVhY2goUXRDb25uZWN0aW9uT2JqZWN0KiBjb25uLCBjb25ucykgewogICAgICAgICAg
ICAgICAgICAgICAvLyBJcyB0aGlzIHRoZSByaWdodCBjb25uZWN0aW9uPwotICAgICAgICAgICAg
ICAgICAgICBpZiAoY29ubi0+bWF0Y2goc2VuZGVyLCBzaWduYWxJbmRleCwgdGhpc09iamVjdCwg
ZnVuY09iamVjdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbm4tPm1hdGNoKGNvbnRl
eHQsIHNlbmRlciwgc2lnbmFsSW5kZXgsIHJlY2VpdmVyLCByZWNlaXZlckZ1bmN0aW9uKSkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gWWVwLCBkaXNjb25uZWN0IGl0CiAgICAgICAgICAg
ICAgICAgICAgICAgICBRTWV0YU9iamVjdDo6ZGlzY29ubmVjdChzZW5kZXIsIHNpZ25hbEluZGV4
LCBjb25uLCBjb25uLT5tZXRhT2JqZWN0KCktPm1ldGhvZE9mZnNldCgpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlbGV0ZSBjb25uOyAvLyB0aGlzIHdpbGwgYWxzbyByZW1vdmUgaXQgZnJv
bSB0aGUgbWFwCkBAIC0xNzM2LDIxICsxNzQzLDI3IEBAIEpTVmFsdWUgUXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50
CiAKIC8vID09PT09PT09PT09PT09PQogCi1RdENvbm5lY3Rpb25PYmplY3Q6OlF0Q29ubmVjdGlv
bk9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4g
aW5zdGFuY2UsIGludCBzaWduYWxJbmRleCwgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTT2JqZWN0
KiBmdW5jT2JqZWN0KQotICAgIDogbV9pbnN0YW5jZShpbnN0YW5jZSkKK1F0Q29ubmVjdGlvbk9i
amVjdDo6UXRDb25uZWN0aW9uT2JqZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0LCBQYXNzUmVmUHRy
PFF0SW5zdGFuY2U+IHNlbmRlckluc3RhbmNlLCBpbnQgc2lnbmFsSW5kZXgsIEpTT2JqZWN0UmVm
IHJlY2VpdmVyLCBKU09iamVjdFJlZiByZWNlaXZlckZ1bmN0aW9uKQorICAgIDogUU9iamVjdChz
ZW5kZXJJbnN0YW5jZS0+Z2V0T2JqZWN0KCkpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAg
ICAsIG1fc2VuZGVySW5zdGFuY2Uoc2VuZGVySW5zdGFuY2UpCisgICAgLCBtX29yaWdpbmFsU2Vu
ZGVyKG1fc2VuZGVySW5zdGFuY2UtPmdldE9iamVjdCgpKQogICAgICwgbV9zaWduYWxJbmRleChz
aWduYWxJbmRleCkKLSAgICAsIG1fb3JpZ2luYWxPYmplY3QobV9pbnN0YW5jZS0+Z2V0T2JqZWN0
KCkpCi0gICAgLCBtX3RoaXNPYmplY3QoZ2xvYmFsRGF0YSwgdGhpc09iamVjdCkKLSAgICAsIG1f
ZnVuY09iamVjdChnbG9iYWxEYXRhLCBmdW5jT2JqZWN0KQorICAgICwgbV9yZWNlaXZlcihyZWNl
aXZlcikKKyAgICAsIG1fcmVjZWl2ZXJGdW5jdGlvbihyZWNlaXZlckZ1bmN0aW9uKQogewotICAg
IHNldFBhcmVudChtX29yaWdpbmFsT2JqZWN0KTsKLSAgICBBU1NFUlQoSlNMb2NrOjpjdXJyZW50
VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsgLy8gc28gb3VyIFByb3RlY3RlZFB0cnMgYXJlIHNhZmUK
KyAgICBKU1ZhbHVlUHJvdGVjdChtX2NvbnRleHQsIG1fcmVjZWl2ZXIpOworICAgIEpTVmFsdWVQ
cm90ZWN0KG1fY29udGV4dCwgbV9yZWNlaXZlckZ1bmN0aW9uKTsKIH0KIAogUXRDb25uZWN0aW9u
T2JqZWN0Ojp+UXRDb25uZWN0aW9uT2JqZWN0KCkKIHsKLSAgICAvLyBSZW1vdmUgdXMgZnJvbSB0
aGUgbWFwIG9mIGFjdGl2ZSBjb25uZWN0aW9ucwotICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRo
b2Q6OmNvbm5lY3Rpb25zLnJlbW92ZShtX29yaWdpbmFsT2JqZWN0LCB0aGlzKTsKKyAgICAvLyBX
ZSBjYW4gc2FmZWx5IHVzZSBtX29yaWdpbmFsU2VuZGVyIGJlY2F1c2UgY29ubmVjdGlvbiBvYmpl
Y3Qgd2lsbCBuZXZlciBvdXRsaXZlIHRoZSBzZW5kZXIsCisgICAgLy8gd2hpY2ggaXMgaXRzIFFP
YmplY3QgcGFyZW50LgorICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmNvbm5lY3Rpb25z
LnJlbW92ZShtX29yaWdpbmFsU2VuZGVyLCB0aGlzKTsKKworICAgIEpTVmFsdWVVbnByb3RlY3Qo
bV9jb250ZXh0LCBtX3JlY2VpdmVyKTsKKyAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwg
bV9yZWNlaXZlckZ1bmN0aW9uKTsKIH0KIAogc3RhdGljIGNvbnN0IHVpbnQgcXRfbWV0YV9kYXRh
X1F0Q29ubmVjdGlvbk9iamVjdFtdID0gewpAQCAtMTc5MSw2ICsxODA0LDcgQEAgdm9pZCAqUXRD
b25uZWN0aW9uT2JqZWN0OjpxdF9tZXRhY2FzdChjb25zdCBjaGFyICpfY2xuYW1lKQogICAgIHJl
dHVybiBRT2JqZWN0OjpxdF9tZXRhY2FzdChfY2xuYW1lKTsKIH0KIAorLy8gVGhpcyBpcyB3aGF0
IG1vYyB3b3VsZCBnZW5lcmF0ZSBleGNlcHQgYnkgdGhlIGZhY3QgdGhhdCB3ZSBwYXNzIGFsbCBh
cmd1bWVudHMgdG8gb3VyIGV4ZWN1dGUoKSBzbG90LgogaW50IFF0Q29ubmVjdGlvbk9iamVjdDo6
cXRfbWV0YWNhbGwoUU1ldGFPYmplY3Q6OkNhbGwgX2MsIGludCBfaWQsIHZvaWQgKipfYSkKIHsK
ICAgICBfaWQgPSBRT2JqZWN0OjpxdF9tZXRhY2FsbChfYywgX2lkLCBfYSk7CkBAIC0xODA1LDY1
ICsxODE5LDY0IEBAIGludCBRdENvbm5lY3Rpb25PYmplY3Q6OnF0X21ldGFjYWxsKFFNZXRhT2Jq
ZWN0OjpDYWxsIF9jLCBpbnQgX2lkLCB2b2lkICoqX2EpCiAgICAgcmV0dXJuIF9pZDsKIH0KIAot
dm9pZCBRdENvbm5lY3Rpb25PYmplY3Q6OmV4ZWN1dGUodm9pZCAqKmFyZ3YpCitzdGF0aWMgYm9v
bCBpc0phdmFTY3JpcHRGdW5jdGlvbihKU09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgUU9iamVj
dCogb2JqID0gbV9pbnN0YW5jZS0+Z2V0T2JqZWN0KCk7Ci0gICAgaWYgKG9iaikgewotICAgICAg
ICBjb25zdCBRTWV0YU9iamVjdCogbWV0YSA9IG9iai0+bWV0YU9iamVjdCgpOwotICAgICAgICBj
b25zdCBRTWV0YU1ldGhvZCBtZXRob2QgPSBtZXRhLT5tZXRob2QobV9zaWduYWxJbmRleCk7Ci0K
LSAgICAgICAgUUxpc3Q8UUJ5dGVBcnJheT4gcGFyYW1ldGVyVHlwZXMgPSBtZXRob2QucGFyYW1l
dGVyVHlwZXMoKTsKLQotICAgICAgICBpbnQgYXJnYyA9IHBhcmFtZXRlclR5cGVzLmNvdW50KCk7
Ci0KLSAgICAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLQotICAgICAg
ICAvLyAjIyMgU2hvdWxkIHRoZSBJbnRlcnByZXRlci9FeGVjU3RhdGUgY29tZSBmcm9tIHNvbWV3
aGVyZSBlbHNlPwotICAgICAgICBSZWZQdHI8Um9vdE9iamVjdD4gcm8gPSBtX2luc3RhbmNlLT5y
b290T2JqZWN0KCk7Ci0gICAgICAgIGlmIChybykgewotICAgICAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbG9iaiA9IHJvLT5nbG9iYWxPYmplY3QoKTsKLSAgICAgICAgICAgIGlmIChnbG9i
YWxvYmopIHsKLSAgICAgICAgICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxvYmotPmds
b2JhbEV4ZWMoKTsKLSAgICAgICAgICAgICAgICBpZiAoZXhlYykgewotICAgICAgICAgICAgICAg
ICAgICAvLyBCdWlsZCB0aGUgYXJndW1lbnQgbGlzdCAodXAgdG8gdGhlIGZvcm1hbCBhcmd1bWVu
dCBsZW5ndGggb2YgdGhlIHNsb3QpCi0gICAgICAgICAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50
QnVmZmVyIGw7Ci0gICAgICAgICAgICAgICAgICAgIC8vICMjIyBEcm9wQWxsTG9ja3M/Ci0gICAg
ICAgICAgICAgICAgICAgIGludCBmdW5jQXJnQyA9IG1fZnVuY09iamVjdC0+Z2V0KGV4ZWMsIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvSW50MzIoZXhlYyk7Ci0gICAgICAgICAgICAg
ICAgICAgIGludCBhcmdUb3RhbCA9IHFNYXgoZnVuY0FyZ0MsIGFyZ2MpOwotICAgICAgICAgICAg
ICAgICAgICBmb3IoaW50IGk9MDsgaSA8IGFyZ1RvdGFsOyBpKyspIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChpIDwgYXJnYykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBhcmdUeXBlID0gUU1ldGFUeXBlOjp0eXBlKHBhcmFtZXRlclR5cGVzLmF0KGkpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsLmFwcGVuZChjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKGV4
ZWMsIHJvLCBRVmFyaWFudChhcmdUeXBlLCBhcmd2W2krMV0pKSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwuYXBwZW5kKGpz
VW5kZWZpbmVkKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB9CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+
Z2V0Q2FsbERhdGEoY2FsbERhdGEpID09IENhbGxUeXBlSlM7Cit9CiAKLSAgICAgICAgICAgICAg
ICAgICAgY29uc3QgYm9vbCB3aXRoUXRTZW5kZXJTdGFjayA9IG1fZnVuY09iamVjdC0+aW5oZXJp
dHMoJkpTRnVuY3Rpb246OnNfaW5mbyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh3aXRoUXRT
ZW5kZXJTdGFjaykKLSAgICAgICAgICAgICAgICAgICAgICAgIFF0SW5zdGFuY2U6OnF0U2VuZGVy
U3RhY2soKS0+cHVzaChRT2JqZWN0OjpzZW5kZXIoKSk7Cit2b2lkIFF0Q29ubmVjdGlvbk9iamVj
dDo6ZXhlY3V0ZSh2b2lkKiogYXJndikKK3sKKyAgICBRT2JqZWN0KiBzZW5kZXIgPSBtX3NlbmRl
ckluc3RhbmNlLT5nZXRPYmplY3QoKTsKKyAgICBpZiAoIXNlbmRlcikgeworICAgICAgICBxV2Fy
bmluZygpIDw8ICJzZW5kZXIgZGVsZXRlZCwgY2Fubm90IGRlbGl2ZXIgc2lnbmFsIjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0
YTsKLSAgICAgICAgICAgICAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBtX2Z1bmNPYmplY3Qt
PmdldENhbGxEYXRhKGNhbGxEYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgY2FsbChleGVjLCBt
X2Z1bmNPYmplY3QuZ2V0KCksIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV90aGlzT2JqZWN0LmdldCgp
LCBsKTsKKyAgICBBU1NFUlQoc2VuZGVyID09IG1fb3JpZ2luYWxTZW5kZXIpOwogCi0gICAgICAg
ICAgICAgICAgICAgIGlmICh3aXRoUXRTZW5kZXJTdGFjaykKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFF0SW5zdGFuY2U6OnF0U2VuZGVyU3RhY2soKS0+cG9wKCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBz
dHJhbmdlIHBsYWNlIHRvIGJlIC0gYSBkZWxldGVkIG9iamVjdCBlbWl0dGVkIGEgc2lnbmFsIGhl
cmUuCi0gICAgICAgIHFXYXJuaW5nKCkgPDwgInNlbmRlciBkZWxldGVkLCBjYW5ub3QgZGVsaXZl
ciBzaWduYWwiOworICAgIGNvbnN0IFFNZXRhT2JqZWN0KiBtZXRhID0gc2VuZGVyLT5tZXRhT2Jq
ZWN0KCk7CisgICAgY29uc3QgUU1ldGFNZXRob2QgbWV0aG9kID0gbWV0YS0+bWV0aG9kKG1fc2ln
bmFsSW5kZXgpOworCisgICAgUUxpc3Q8UUJ5dGVBcnJheT4gcGFyYW1ldGVyVHlwZXMgPSBtZXRo
b2QucGFyYW1ldGVyVHlwZXMoKTsKKworICAgIEpTVmFsdWVSZWYqIGlnbm9yZWRFeGNlcHRpb24g
PSAwOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBsZW5ndGhQcm9wZXJ0eShKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibGVuZ3RoIikpOworICAgIGludCByZWNlaXZlckxlbmd0
aCA9IGludChKU1ZhbHVlVG9OdW1iZXIobV9jb250ZXh0LCBKU09iamVjdEdldFByb3BlcnR5KG1f
Y29udGV4dCwgbV9yZWNlaXZlckZ1bmN0aW9uLCBsZW5ndGhQcm9wZXJ0eS5nZXQoKSwgaWdub3Jl
ZEV4Y2VwdGlvbiksIGlnbm9yZWRFeGNlcHRpb24pKTsKKyAgICBpbnQgYXJnYyA9IHFNYXgocGFy
YW1ldGVyVHlwZXMuY291bnQoKSwgcmVjZWl2ZXJMZW5ndGgpOworICAgIFdURjo6VmVjdG9yPEpT
VmFsdWVSZWY+IGFyZ3MoYXJnYyk7CisKKyAgICAvLyBUT0RPOiByZW1vdmUgb25jZSBjb252ZXJz
aW9uIGZ1bmN0aW9ucyB1c2UgSlNDIEFQSS4KKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSA6OnRvSlMo
bV9jb250ZXh0KTsKKyAgICBSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCA9IG1fc2VuZGVy
SW5zdGFuY2UtPnJvb3RPYmplY3QoKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsg
aSsrKSB7CisgICAgICAgIGludCBhcmdUeXBlID0gUU1ldGFUeXBlOjp0eXBlKHBhcmFtZXRlclR5
cGVzLmF0KGkpKTsKKyAgICAgICAgYXJnc1tpXSA9IDo6dG9SZWYoZXhlYywgY29udmVydFFWYXJp
YW50VG9WYWx1ZShleGVjLCByb290T2JqZWN0LCBRVmFyaWFudChhcmdUeXBlLCBhcmd2W2krMV0p
KSk7CiAgICAgfQorCisgICAgY29uc3QgYm9vbCB1cGRhdGVRdFNlbmRlciA9IGlzSmF2YVNjcmlw
dEZ1bmN0aW9uKG1fcmVjZWl2ZXJGdW5jdGlvbik7CisgICAgaWYgKHVwZGF0ZVF0U2VuZGVyKQor
ICAgICAgICBRdEluc3RhbmNlOjpxdFNlbmRlclN0YWNrKCktPnB1c2goUU9iamVjdDo6c2VuZGVy
KCkpOworCisgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihtX2NvbnRleHQsIG1fcmVjZWl2ZXJG
dW5jdGlvbiwgbV9yZWNlaXZlciwgYXJnYywgYXJncy5kYXRhKCksIDApOworCisgICAgaWYgKHVw
ZGF0ZVF0U2VuZGVyKQorICAgICAgICBRdEluc3RhbmNlOjpxdFNlbmRlclN0YWNrKCktPnBvcCgp
OwogfQogCi1ib29sIFF0Q29ubmVjdGlvbk9iamVjdDo6bWF0Y2goUU9iamVjdCogc2VuZGVyLCBp
bnQgc2lnbmFsSW5kZXgsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU09iamVjdCAqZnVuY09iamVj
dCkKK2Jvb2wgUXRDb25uZWN0aW9uT2JqZWN0OjptYXRjaChKU0NvbnRleHRSZWYgY29udGV4dCwg
UU9iamVjdCogc2VuZGVyLCBpbnQgc2lnbmFsSW5kZXgsIEpTT2JqZWN0UmVmIHJlY2VpdmVyLCBK
U09iamVjdFJlZiByZWNlaXZlckZ1bmN0aW9uKQogewotICAgIGlmIChtX29yaWdpbmFsT2JqZWN0
ID09IHNlbmRlciAmJiBtX3NpZ25hbEluZGV4ID09IHNpZ25hbEluZGV4Ci0gICAgICAgICYmIHRo
aXNPYmplY3QgPT0gKEpTT2JqZWN0KiltX3RoaXNPYmplY3QuZ2V0KCkgJiYgZnVuY09iamVjdCA9
PSAoSlNPYmplY3QqKW1fZnVuY09iamVjdC5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChzZW5kZXIgIT0gbV9vcmlnaW5hbFNlbmRlciB8fCBz
aWduYWxJbmRleCAhPSBtX3NpZ25hbEluZGV4KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
SlNWYWx1ZVJlZiogaWdub3JlZEV4Y2VwdGlvbiA9IDA7CisgICAgY29uc3QgYm9vbCByZWNlaXZl
ck1hdGNoID0gKCFyZWNlaXZlciAmJiAhbV9yZWNlaXZlcikgfHwgSlNWYWx1ZUlzRXF1YWwoY29u
dGV4dCwgcmVjZWl2ZXIsIG1fcmVjZWl2ZXIsIGlnbm9yZWRFeGNlcHRpb24pOworICAgIHJldHVy
biByZWNlaXZlck1hdGNoICYmIEpTVmFsdWVJc0VxdWFsKGNvbnRleHQsIHJlY2VpdmVyRnVuY3Rp
b24sIG1fcmVjZWl2ZXJGdW5jdGlvbiwgaWdub3JlZEV4Y2VwdGlvbik7Cit9CisKK1F0Q29ubmVj
dGlvbk9iamVjdCogUXRDb25uZWN0aW9uT2JqZWN0OjpjcmVhdGVXaXRoSW50ZXJuYWxKU0MoRXhl
Y1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IHNlbmRlckluc3RhbmNlLCBpbnQg
c2lnbmFsSW5kZXgsIEpTT2JqZWN0KiByZWNlaXZlciwgSlNPYmplY3QqIHJlY2VpdmVyRnVuY3Rp
b24pCit7CisgICAgcmV0dXJuIG5ldyBRdENvbm5lY3Rpb25PYmplY3QoOjp0b1JlZihleGVjKSwg
c2VuZGVySW5zdGFuY2UsIHNpZ25hbEluZGV4LCA6OnRvUmVmKHJlY2VpdmVyKSwgOjp0b1JlZihy
ZWNlaXZlckZ1bmN0aW9uKSk7CiB9CiAKIC8vID09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggNGQyODg3MzNjZjc5YWJmYjIzNmI0YmRhNDUxNzJh
ZjM2NWM0OGYwOC4uM2QwOTQ4MWQyM2NiZWRhYzI2NmE2MGMzNmFmZmQ1MTkxOGYzY2VkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0yMSw4ICsyMSw3IEBACiAjZGVm
aW5lIEJJTkRJTkdTX1FUX1JVTlRJTUVfSF8KIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgotI2lu
Y2x1ZGUgIkNvbXBsZXRpb24uaCIKLSNpbmNsdWRlICJTdHJvbmcuaCIKKyNpbmNsdWRlICJKYXZh
U2NyaXB0LmgiCiAjaW5jbHVkZSAiV2Vhay5oIgogI2luY2x1ZGUgInJ1bnRpbWVfbWV0aG9kLmgi
CiAKQEAgLTE5MiwyOCArMTkxLDM3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFF0Q29u
bmVjdGlvbk9iamVjdDsKIH07CiAKLWNsYXNzIFF0Q29ubmVjdGlvbk9iamVjdDogcHVibGljIFFP
YmplY3QKKy8vIEEgUXRDb25uZWN0aW9uT2JqZWN0IHJlcHJlc2VudHMgYSBjb25uZWN0aW9uIGNy
ZWF0ZWQgaW5zaWRlIEpTLiBJdCB3aWxsIGNvbm5lY3QgaXRzIG93biBleGVjdXRlKCkgc2xvdAor
Ly8gd2l0aCB0aGUgYXBwcm9wcmlhdGUgc2lnbmFsIG9mICdzZW5kZXInLiBXaGVuIGV4ZWN1dGUo
KSBpcyBjYWxsZWQsIGl0IHdpbGwgY2FsbCBKUyAncmVjZWl2ZXJGdW5jdGlvbicuCitjbGFzcyBR
dENvbm5lY3Rpb25PYmplY3QgOiBwdWJsaWMgUU9iamVjdAogewogcHVibGljOgotICAgIFF0Q29u
bmVjdGlvbk9iamVjdChKU0dsb2JhbERhdGEmLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3Rh
bmNlLCBpbnQgc2lnbmFsSW5kZXgsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU09iamVjdCogZnVu
Y09iamVjdCk7CisgICAgUXRDb25uZWN0aW9uT2JqZWN0KEpTQ29udGV4dFJlZiwgUGFzc1JlZlB0
cjxRdEluc3RhbmNlPiBzZW5kZXJJbnN0YW5jZSwgaW50IHNpZ25hbEluZGV4LCBKU09iamVjdFJl
ZiByZWNlaXZlciwgSlNPYmplY3RSZWYgcmVjZWl2ZXJGdW5jdGlvbik7CiAgICAgflF0Q29ubmVj
dGlvbk9iamVjdCgpOwogCisgICAgLy8gRXhwbGljaXRseSBkZWZpbmUgdGhlc2UgYmVjYXVzZSB3
YW50IGEgY3VzdG9tIHF0X21ldGFjYWxsKCksIHNvIHdlIGNhbid0IHVzZSBRX09CSkVDVCBtYWNy
by4KICAgICBzdGF0aWMgY29uc3QgUU1ldGFPYmplY3Qgc3RhdGljTWV0YU9iamVjdDsKICAgICB2
aXJ0dWFsIGNvbnN0IFFNZXRhT2JqZWN0ICptZXRhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkICpxdF9tZXRhY2FzdChjb25zdCBjaGFyICopOwogICAgIHZpcnR1YWwgaW50IHF0X21l
dGFjYWxsKFFNZXRhT2JqZWN0OjpDYWxsLCBpbnQsIHZvaWQgKiphcmd2KTsKIAotICAgIGJvb2wg
bWF0Y2goUU9iamVjdCAqc2VuZGVyLCBpbnQgc2lnbmFsSW5kZXgsIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0LCBKU09iamVjdCAqZnVuY09iamVjdCk7Ci0KLSAgICAvLyBhY3R1YWwgc2xvdDoKICAgICB2
b2lkIGV4ZWN1dGUodm9pZCAqKmFyZ3YpOwogCisgICAgYm9vbCBtYXRjaChKU0NvbnRleHRSZWYs
IFFPYmplY3QqIHNlbmRlciwgaW50IHNpZ25hbEluZGV4LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBKU09iamVjdFJlZiBmdW5jT2JqZWN0KTsKKworICAgIC8vIE5vdGU6IGZvciBjYWxsZXJzIHVz
aW5nIEpTQyBpbnRlcm5hbHMsIHJlbW92ZSBvbmNlIHdlIGRvbid0IG5lZWQgYW55bW9yZS4KKyAg
ICBzdGF0aWMgUXRDb25uZWN0aW9uT2JqZWN0KiBjcmVhdGVXaXRoSW50ZXJuYWxKU0MoRXhlY1N0
YXRlKiwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBzZW5kZXJJbnN0YW5jZSwgaW50IHNpZ25hbElu
ZGV4LCBKU09iamVjdCogcmVjZWl2ZXIsIEpTT2JqZWN0KiByZWNlaXZlckZ1bmN0aW9uKTsKKwog
cHJpdmF0ZToKLSAgICBSZWZQdHI8UXRJbnN0YW5jZT4gbV9pbnN0YW5jZTsKKyAgICBKU0NvbnRl
eHRSZWYgbV9jb250ZXh0OworICAgIFJlZlB0cjxRdEluc3RhbmNlPiBtX3NlbmRlckluc3RhbmNl
OworCisgICAgLy8gV2UgdXNlIHRoaXMgYXMga2V5IGluIGFjdGl2ZSBjb25uZWN0aW9ucyBtdWx0
aW1hcC4KKyAgICBRT2JqZWN0KiBtX29yaWdpbmFsU2VuZGVyOworCiAgICAgaW50IG1fc2lnbmFs
SW5kZXg7Ci0gICAgUU9iamVjdCogbV9vcmlnaW5hbE9iamVjdDsgLy8gb25seSB1c2VkIGFzIGEg
a2V5LCBub3QgZGVyZWZlcmVuY2VkCi0gICAgU3Ryb25nPEpTT2JqZWN0PiBtX3RoaXNPYmplY3Q7
Ci0gICAgU3Ryb25nPEpTT2JqZWN0PiBtX2Z1bmNPYmplY3Q7CisgICAgSlNPYmplY3RSZWYgbV9y
ZWNlaXZlcjsKKyAgICBKU09iamVjdFJlZiBtX3JlY2VpdmVyRnVuY3Rpb247CiB9OwogCiBRVmFy
aWFudCBjb252ZXJ0VmFsdWVUb1FWYXJpYW50KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1
ZSwgUU1ldGFUeXBlOjpUeXBlIGhpbnQsIGludCAqZGlzdGFuY2UpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>