<?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>50063</bug_id>
          
          <creation_ts>2010-11-25 03:33:48 -0800</creation_ts>
          <short_desc>[v8] Web Inspector: display name of an object constructor as the object&apos;s type</short_desc>
          <delta_ts>2010-11-29 08:05:54 -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>Web Inspector (Deprecated)</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangax</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>313670</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-25 03:33:48 -0800</bug_when>
    <thetext>Chrome&apos;s web inspector shows somewhat misleading &quot;representation&quot; of an object. Run this in web inspector&apos;s console:

function Parent(){} 
function Child(){} 
Child.prototype = new Parent;
new Child; // displayed as &quot;Parent&quot;, instead of expected &quot;Child&quot;

It looks like object representation is the result of evaluating non-standard &quot;name&quot; property of object&apos;s constructor (or something similar to that). Once `Child.prototype.constructor` is set to reference `Child`, object is represented as &quot;Child&quot;.

Would it be possible to change this behavior, so that `new Child` is represented as &quot;Child&quot; without setting `Child.prototype.constructor` to `Child`? (the latter is not always possible when working with 3rd party code)

Original Chromium bug: http://code.google.com/p/chromium/issues/detail?id=63383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313737</commentid>
    <comment_count>1</comment_count>
      <attachid>74869</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-25 06:41:27 -0800</bug_when>
    <thetext>Created attachment 74869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313738</commentid>
    <comment_count>2</comment_count>
      <attachid>74869</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-11-25 06:43:48 -0800</bug_when>
    <thetext>Comment on attachment 74869
Patch

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

&gt; WebCore/inspector/front-end/InjectedScript.js:432
&gt; +                // In Chromium DOM wrapper prototypes will have Object as their construcor name,

nit: construc[t]or</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313741</commentid>
    <comment_count>3</comment_count>
      <attachid>74871</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-25 06:50:55 -0800</bug_when>
    <thetext>Created attachment 74871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313749</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-25 07:02:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 74869 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74869&amp;action=review
&gt; 
&gt; &gt; WebCore/inspector/front-end/InjectedScript.js:432
&gt; &gt; +                // In Chromium DOM wrapper prototypes will have Object as their construcor name,
&gt; 
&gt; nit: construc[t]or

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313752</commentid>
    <comment_count>5</comment_count>
      <attachid>74871</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-11-25 07:08:54 -0800</bug_when>
    <thetext>Comment on attachment 74871
Patch

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

Please do renaming prior to landing.

&gt; WebCore/inspector/InjectedScriptHost.idl:41
&gt; +        [Custom] DOMObject constructorName(in DOMObject object);

internalConstructorName?

&gt; WebCore/inspector/front-end/InjectedScript.js:431
&gt; +            if (result === &quot;Object&quot;) {

If constructorName is Object, then we use constructor name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313762</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-25 07:26:29 -0800</bug_when>
    <thetext>Attachment 74871 did not build on chromium:
Build output: http://queues.webkit.org/results/6391041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313769</commentid>
    <comment_count>7</comment_count>
      <attachid>74879</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-25 08:01:07 -0800</bug_when>
    <thetext>Created attachment 74879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313770</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-25 08:02:16 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 74871 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74871&amp;action=review
&gt; 
&gt; Please do renaming prior to landing.
&gt; 
&gt; &gt; WebCore/inspector/InjectedScriptHost.idl:41
&gt; &gt; +        [Custom] DOMObject constructorName(in DOMObject object);
&gt; 
&gt; internalConstructorName?
&gt; 
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313796</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-25 09:05:16 -0800</bug_when>
    <thetext>Attachment 74879 did not build on chromium:
Build output: http://queues.webkit.org/results/6314046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314230</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-28 14:18:34 -0800</bug_when>
    <thetext>Attachment 74879 did not build on chromium:
Build output: http://queues.webkit.org/results/6410092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314414</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-29 08:05:54 -0800</bug_when>
    <thetext>Committed r72800</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74869</attachid>
            <date>2010-11-25 06:41:27 -0800</date>
            <delta_ts>2010-11-25 06:50:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50063-20101125174124.patch</filename>
            <type>text/plain</type>
            <size>11827</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMzQzYjBiNzhkYzZlYWNjYWY1OTA2Zjg3NWVjMDFkZjJjMjMwMzc4Li4wY2FiODNl
ODg1ZjI1Mzk2MWJiOGNjNDE3OGFhZmE1MDIzNzE3N2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMjUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZGlzcGxheSBuYW1lIG9mIGFuIG9iamVjdCBjb25zdHJ1Y3RvciBhcyB0aGUgb2JqZWN0J3Mg
dHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAw
NjMKKworICAgICAgICAqIGh0dHAvY29uZi9hcGFjaGUyLWh0dHBkLmNvbmY6CisgICAgICAgICog
aW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFt
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVudHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xl
LW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTEt
MjQgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTI4ZmVhMWIxMDgwN2MzMjQ3ZWQyOTBmYzFjYzYwN2M0ZWQ5MzQyMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLW9iamVjdC1jb25zdHJ1
Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxMTogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IFtvYmpl
Y3QgT2JqZWN0XQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBbb2JqZWN0IE9iamVjdF0KK1Rl
c3RzIHRoYXQgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGludm9rZWQgYXMgb2JqZWN0IGNvbnN0
cnVjdG9yIHdpbGwgYmUgZGlzcGxheWVkIGFzIGl0cyB0eXBlIGluIHRoZSBmcm9udC1lbmQuIEJ1
ZyA1MDA2My4KKworY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sOjExT2JqZWN0
Citjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0bWw6MTJPYmplY3QKK2NvbnNvbGUt
b2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRtbDoxM09iamVjdAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42YTA2NWUwOGJhZmM5NWY2ZDUzNjQxNWZlOTZhOTQ4YTY3OGQyNDQzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNv
bnN0cnVjdG9yLW5hbWUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
czIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gUGFyZW50KCkgeyB9CitmdW5j
dGlvbiBDaGlsZCgpIHsgfQorQ2hpbGQucHJvdG90eXBlID0gbmV3IFBhcmVudCgpOwordmFyIG91
dGVyID0geyBpbm5lcjogZnVuY3Rpb24oKSB7IH0gfTsKK2NvbnNvbGUubG9nKG5ldyBQYXJlbnQo
KSk7Citjb25zb2xlLmxvZyhuZXcgQ2hpbGQoKSk7Citjb25zb2xlLmxvZyhuZXcgb3V0ZXIuaW5u
ZXIoKSk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQ29u
c29sZU1lc3NhZ2VzKCk7CisgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7
CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCB0aGUgbmFt
ZSBvZiB0aGUgZnVuY3Rpb24gaW52b2tlZCBhcyBvYmplY3QgY29uc3RydWN0b3Igd2lsbCBiZSBk
aXNwbGF5ZWQgYXMgaXRzIHR5cGUgaW4gdGhlIGZyb250LWVuZC4KKzxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MyI+QnVnIDUwMDYzLjwvYT4KKzwv
cD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMjliZTAzYWVhNTMxODRkZTNhYjEz
NTNmZWZiZmRmODNlZjcyYzUwNy4uY2RkNmRhOTk5OGI0MTliYWM2YWY4OTNhMmI0OWI5YTMwMTY1
YWZlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZlbnRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2
OTogW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVudF0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2
NTA6IFtvYmplY3QgSFRNTFBhcmFncmFwaEVsZW1lbnRdCiBUZXN0cyBXZWJJbnNwZWN0b3IgZXh0
ZW5zaW9uIEFQSQogCiBTdGFydGVkIGV4dGVuc2lvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1u
YW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rv
ci9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mOTdiNmZmZTg5ZDU3MDI2N2FkZDU5NTBlMjUwNGIxM2ViMzg0ZWQwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUtb2Jq
ZWN0LWNvbnN0cnVjdG9yLW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDExOiBbb2JqZWN0IE9iamVjdF0KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMjogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFtvYmplY3Qg
T2JqZWN0XQorVGVzdHMgdGhhdCB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gaW52b2tlZCBhcyBv
YmplY3QgY29uc3RydWN0b3Igd2lsbCBiZSBkaXNwbGF5ZWQgYXMgaXRzIHR5cGUgaW4gdGhlIGZy
b250LWVuZC4gQnVnIDUwMDYzLgorCitjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0
bWw6MTFQYXJlbnQKK2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRtbDoxMkNoaWxk
Citjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0bWw6MTNvdXRlci5pbm5lcgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTcz
N2RjODhjYjI3NTIyYzljYWE3NzUzMGQ5YmE5YjFjZTU0ZWEwLi45YjIxZGE4Y2E4NzU0NzY3MTU5
OWM5MmFlMDIxMTVmNWUwZWY3NzQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEwLTExLTI1ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgbmFtZSBvZiBh
biBvYmplY3QgY29uc3RydWN0b3IgYXMgdGhlIG9iamVjdCdzIHR5cGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYzCisKKyAgICAgICAgTmFtZSBv
ZiB0aGUgZnVuY3Rpb24gdGhhdCBoYXMgY3JlYXRlZCBnaXZlbiBvYmplY3QgaXMgdXNlZCBhcyB0
aGUgb2JqZWN0J3MKKyAgICAgICAgdHlwZSB3aGVuIGl0J3MgZGlzcGxheWVkIGluIHRoZSBpbnNw
ZWN0b3IgZnJvbnQtZW5kKGluIGNhc2Ugb2YgVjgpLiBCZWZvcmUKKyAgICAgICAgdGhpcyBjaGFu
Z2UsIGl0IHdhcyBhbHdheXMgYSB2YWx1ZSBvZiB0aGUgb2JqZWN0J3MgY29uc3RydWN0b3IubmFt
ZSBwcm9wZXJ0eQorICAgICAgICB3aGljaCBpcyBjb25mdXNpbmcgaW4gc29tZSBjYXNlcyhzZWUg
dGhlIHRlc3QpLgorCisgICAgICAgIFJlbW92ZWQgY2hlY2sgZm9yIGpzRW5naW5lIGZyb20gdGhl
IEluamVjdGVkU2NyaXB0LmpzLCBhbGwgVk0tc3BlY2lmaWMgY29kZQorICAgICAgICBpcyBub3cg
ZW5jYXBzdWxhdGVkIG9uIHRoZSBiaW5kaW5ncyBsYXllci4KKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5hbWUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5h
bWVDYWxsYmFjayk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGw6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qczoKKyAgICAg
ICAgKGluamVjdGVkU2NyaXB0Q29uc3RydWN0b3IuKToKKwogMjAxMC0xMS0yNCAgSmlhbiBMaSAg
PGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNz
ZWxsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcAppbmRleCA5Y2Y0NjA0NTg4OThlZTE3NzA5ODI2YmRiMmNiNWExY2NkMDljMGQ3Li4z
M2ZmN2IxZGI3ZmMxZDM3ZWI2OTE4NWJmYzQwNzE2NDFhYWU0ZTQ4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtOTUsNyAr
OTUsNiBAQCBTY3JpcHRPYmplY3QgSW5qZWN0ZWRTY3JpcHRIb3N0OjpjcmVhdGVJbmplY3RlZFNj
cmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgU2NyaQogICAgIGFyZ3MuYXBwZW5kKHRvSlMoc2Ny
aXB0U3RhdGUsIGdsb2JhbE9iamVjdCwgdGhpcykpOwogICAgIGFyZ3MuYXBwZW5kKGdsb2JhbFRo
aXNWYWx1ZSk7CiAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIoaWQpKTsKLSAgICBhcmdzLmFwcGVu
ZChqc1N0cmluZyhzY3JpcHRTdGF0ZSwgU3RyaW5nKCJKU0MiKSkpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0gSlNDOjpjYWxsKHNjcmlwdFN0YXRlLCBmdW5jdGlvblZhbHVlLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIGdsb2JhbFRoaXNWYWx1ZSwgYXJncyk7CiAgICAgaWYgKHJlc3VsdC5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4gU2NyaXB0T2JqZWN0KHNjcmlwdFN0YXRlLCByZXN1bHQuZ2V0T2Jq
ZWN0KCkpOwpAQCAtMTM3LDYgKzEzNiwxNSBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
Ojpub2RlRm9ySWQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUp
OwogfQogCitKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5hbWUoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIFVTdHJpbmcgcmVzdWx0ID0gZXhlYy0+
YXJndW1lbnQoMCkudG9UaGlzT2JqZWN0KGV4ZWMpLT5jbGFzc05hbWUoKTsKKyAgICByZXR1cm4g
anNTdHJpbmcoZXhlYywgcmVzdWx0KTsKK30KKwogSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9z
dDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKaW5kZXggYjMwMDdhNDg0
YmE1NWY3YTI4N2Y5MjUyMWI0NjZjZDhjY2Q1ZjIyMS4uYTU1Y2ZjODY4NTI4ZmY3YWUxZTRhNWFm
OGEwODYwY2RjNGJmMGM0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtMTE0LDkgKzExNCw4IEBA
IFNjcmlwdE9iamVjdCBJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0KGNv
bnN0IFN0cmluZyYgc2NyaXB0U291cmNlCiAgICAgICBzY3JpcHRIb3N0V3JhcHBlciwKICAgICAg
IHdpbmRvd0dsb2JhbCwKICAgICAgIHY4OjpOdW1iZXI6Ok5ldyhpZCksCi0gICAgICB2ODo6U3Ry
aW5nOjpOZXcoInY4IikKICAgICB9OwotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGluamVjdGVk
U2NyaXB0VmFsdWUgPSB2ODo6RnVuY3Rpb246OkNhc3QoKnYpLT5DYWxsKHdpbmRvd0dsb2JhbCwg
NCwgYXJncyk7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gaW5qZWN0ZWRTY3JpcHRWYWx1ZSA9
IHY4OjpGdW5jdGlvbjo6Q2FzdCgqdiktPkNhbGwod2luZG93R2xvYmFsLCAzLCBhcmdzKTsKICAg
ICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5qZWN0ZWRTY3JpcHQodjg6Ok9iamVjdDo6Q2FzdCgq
aW5qZWN0ZWRTY3JpcHRWYWx1ZSkpOwogICAgIHJldHVybiBTY3JpcHRPYmplY3QoaW5zcGVjdGVk
U2NyaXB0U3RhdGUsIGluamVjdGVkU2NyaXB0KTsKIH0KQEAgLTE1NSw2ICsxNTQsMTggQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojpub2RlRm9ySWRDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICByZXR1cm4gdG9WOChub2RlKTsKIH0KIAordjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5hbWVDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiSW5qZWN0
ZWRTY3JpcHRIb3N0LmNvbnN0cnVjdG9yTmFtZSgpIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgaWYgKCFhcmdzWzBd
LT5Jc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgcmV0
dXJuIGFyZ3NbMF0tPlRvT2JqZWN0KCktPkdldENvbnN0cnVjdG9yTmFtZSgpOworfQorCiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OnB1c2hOb2RlUGF0aFRvRnJv
bnRlbmRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFU
UygiSW5qZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoKSIpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKaW5kZXggOWIyZWQ2YzE2M2QyYWZlNGQ2
YzMyOGZkZDY2MGExZjIyYmVhNjA3Ny4uOTRkMmY5YTMyMTE3ZTRmZDBmYTg1NTVkMDcxYjYyNTQ2
NmZiMzA4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0
LmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCkBAIC0z
OCw2ICszOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IG5v
ZGVGb3JJZChpbiBsb25nIG5vZGVJZCk7CiAgICAgICAgIFtDdXN0b21dIGludCBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGluIERPTU9iamVjdCBub2RlLCBpbiBib29sZWFuIHdpdGhDaGlsZHJlbiwg
aW4gYm9vbGVhbiBzZWxlY3RJblVJKTsKICAgICAgICAgbG9uZyBpbnNwZWN0ZWROb2RlKGluIHVu
c2lnbmVkIGxvbmcgbnVtKTsKKyAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGNvbnN0cnVjdG9y
TmFtZShpbiBET01PYmplY3Qgb2JqZWN0KTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCiAgICAgICAgIFtDdXN0
b21dIERPTU9iamVjdCBjdXJyZW50Q2FsbEZyYW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggZmZmNjY4MGIyMjQ2MjJkNmZjM2I1ZjE1
M2QzYjM3ZDRkMTg3NWIyYS4uMTBjY2EwNTMwMjEyNjI3MzE5ZWEzNDAwNmU5MjZkOWFiOTllOGIx
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwpA
QCAtMjYsNyArMjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi12YXIgaW5qZWN0ZWRTY3JpcHRD
b25zdHJ1Y3RvciA9IChmdW5jdGlvbiAoSW5qZWN0ZWRTY3JpcHRIb3N0LCBpbnNwZWN0ZWRXaW5k
b3csIGluamVjdGVkU2NyaXB0SWQsIGpzRW5naW5lKSB7Cit2YXIgaW5qZWN0ZWRTY3JpcHRDb25z
dHJ1Y3RvciA9IChmdW5jdGlvbiAoSW5qZWN0ZWRTY3JpcHRIb3N0LCBpbnNwZWN0ZWRXaW5kb3cs
IGluamVjdGVkU2NyaXB0SWQpIHsKIAogdmFyIEluamVjdGVkU2NyaXB0ID0gZnVuY3Rpb24oKQog
ewpAQCAtNDI3LDkgKzQyNywxNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICBjYXNl
ICJub2RlIjoKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWUob2JqKTsKKyAgICAg
ICAgICAgIHZhciByZXN1bHQgPSBJbmplY3RlZFNjcmlwdEhvc3QuY29uc3RydWN0b3JOYW1lKG9i
aik7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09PSAiT2JqZWN0IikgeworICAgICAgICAgICAg
ICAgIC8vIEluIENocm9taXVtIERPTSB3cmFwcGVyIHByb3RvdHlwZXMgd2lsbCBoYXZlIE9iamVj
dCBhcyB0aGVpciBjb25zdHJ1Y29yIG5hbWUsCisgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBy
ZWFsIERPTSB3cmFwcGVyIG5hbWUgZnJvbSB0aGUgY29uc3RydWN0b3IgcHJvcGVydHkuCisgICAg
ICAgICAgICAgICAgdmFyIGNvbnN0cnVjdG9yTmFtZSA9IG9iai5jb25zdHJ1Y3RvciAmJiBvYmou
Y29uc3RydWN0b3IubmFtZTsKKyAgICAgICAgICAgICAgICBpZiAoY29uc3RydWN0b3JOYW1lKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3JOYW1lOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgY2FzZSAiYXJyYXkiOgotICAg
ICAgICAgICAgdmFyIGNsYXNzTmFtZSA9IHRoaXMuX2NsYXNzTmFtZShvYmopOworICAgICAgICAg
ICAgdmFyIGNsYXNzTmFtZSA9IEluamVjdGVkU2NyaXB0SG9zdC5jb25zdHJ1Y3Rvck5hbWUob2Jq
KTsKICAgICAgICAgICAgIGlmICh0eXBlb2Ygb2JqLmxlbmd0aCA9PT0gIm51bWJlciIpCiAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lICs9ICJbIiArIG9iai5sZW5ndGggKyAiXSI7CiAgICAgICAg
ICAgICByZXR1cm4gY2xhc3NOYW1lOwpAQCAtNDU1LDI1ICs0NjMsNiBAQCBJbmplY3RlZFNjcmlw
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiAiIiArIG9iajsKICAgICB9LAogCi0gICAg
X2NsYXNzTmFtZTogZnVuY3Rpb24ob2JqKQotICAgIHsKLSAgICAgICAgLy8gV2UgY2FuJ3QgdXNl
IHRoZSBzYW1lIGNvZGUgZm9yIGZldGNoaW5nIGNsYXNzIG5hbWVzIG9mIHRoZSBkb20gYmluZGlu
Z3MgcHJvdG90eXBlIGNoYWluLgotICAgICAgICAvLyBCb3RoIG9mIHRoZSBtZXRob2RzIGJlbG93
IHJlc3VsdCBpbiAiT2JqZWN0IiBuYW1lcyBvbiB0aGUgZm9yZWlnbiBlbmdpbmUgYmluZGluZ3Mu
Ci0gICAgICAgIC8vIEkgZ2F2ZSB1cCBhbmQgYW0gdXNpbmcgYSBjaGVjayBiZWxvdyB0byBkaXN0
aW5ndWlzaCBiZXR3ZWVuIHRoZSBlZ2luZSBiaW5naW5ncy4KLQotICAgICAgICBpZiAoanNFbmdp
bmUgPT0gIkpTQyIpIHsKLSAgICAgICAgICAgIHZhciBzdHIgPSBpbnNwZWN0ZWRXaW5kb3cuT2Jq
ZWN0ID8gaW5zcGVjdGVkV2luZG93Lk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmop
IDogdGhpcy5fdG9TdHJpbmcob2JqKTsKLSAgICAgICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgv
Xlxbb2JqZWN0ICguKilcXSQvaSwgIiQxIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAvLyBWOAotICAgICAgICAgICAgaWYgKGlzRmluaXRlKG9iai5sZW5ndGgpICYmIHR5cGVvZiBv
YmouY2FsbGVlID09PSAiZnVuY3Rpb24iKSB7Ci0gICAgICAgICAgICAgICAgLy8gQXJndW1lbnRz
LmNvbnN0cnVjdG9yID09PSBPYmplY3QgaW4gVjgKLSAgICAgICAgICAgICAgICByZXR1cm4gIkFy
Z3VtZW50cyI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gb2JqLmNvbnN0cnVj
dG9yICYmIG9iai5jb25zdHJ1Y3Rvci5uYW1lIHx8ICJPYmplY3QiOwotICAgICAgICB9Ci0gICAg
fSwKLQogICAgIF9sb2dFdmVudDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICBjb25z
b2xlLmxvZyhldmVudC50eXBlLCBldmVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74871</attachid>
            <date>2010-11-25 06:50:55 -0800</date>
            <delta_ts>2010-11-25 08:00:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50063-20101125175049.patch</filename>
            <type>text/plain</type>
            <size>11828</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMzQzYjBiNzhkYzZlYWNjYWY1OTA2Zjg3NWVjMDFkZjJjMjMwMzc4Li4wY2FiODNl
ODg1ZjI1Mzk2MWJiOGNjNDE3OGFhZmE1MDIzNzE3N2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMjUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZGlzcGxheSBuYW1lIG9mIGFuIG9iamVjdCBjb25zdHJ1Y3RvciBhcyB0aGUgb2JqZWN0J3Mg
dHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAw
NjMKKworICAgICAgICAqIGh0dHAvY29uZi9hcGFjaGUyLWh0dHBkLmNvbmY6CisgICAgICAgICog
aW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFt
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVudHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xl
LW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTEt
MjQgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTI4ZmVhMWIxMDgwN2MzMjQ3ZWQyOTBmYzFjYzYwN2M0ZWQ5MzQyMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLW9iamVjdC1jb25zdHJ1
Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxMTogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IFtvYmpl
Y3QgT2JqZWN0XQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBbb2JqZWN0IE9iamVjdF0KK1Rl
c3RzIHRoYXQgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGludm9rZWQgYXMgb2JqZWN0IGNvbnN0
cnVjdG9yIHdpbGwgYmUgZGlzcGxheWVkIGFzIGl0cyB0eXBlIGluIHRoZSBmcm9udC1lbmQuIEJ1
ZyA1MDA2My4KKworY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sOjExT2JqZWN0
Citjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0bWw6MTJPYmplY3QKK2NvbnNvbGUt
b2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRtbDoxM09iamVjdAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42YTA2NWUwOGJhZmM5NWY2ZDUzNjQxNWZlOTZhOTQ4YTY3OGQyNDQzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNv
bnN0cnVjdG9yLW5hbWUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
czIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gUGFyZW50KCkgeyB9CitmdW5j
dGlvbiBDaGlsZCgpIHsgfQorQ2hpbGQucHJvdG90eXBlID0gbmV3IFBhcmVudCgpOwordmFyIG91
dGVyID0geyBpbm5lcjogZnVuY3Rpb24oKSB7IH0gfTsKK2NvbnNvbGUubG9nKG5ldyBQYXJlbnQo
KSk7Citjb25zb2xlLmxvZyhuZXcgQ2hpbGQoKSk7Citjb25zb2xlLmxvZyhuZXcgb3V0ZXIuaW5u
ZXIoKSk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQ29u
c29sZU1lc3NhZ2VzKCk7CisgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7
CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCB0aGUgbmFt
ZSBvZiB0aGUgZnVuY3Rpb24gaW52b2tlZCBhcyBvYmplY3QgY29uc3RydWN0b3Igd2lsbCBiZSBk
aXNwbGF5ZWQgYXMgaXRzIHR5cGUgaW4gdGhlIGZyb250LWVuZC4KKzxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MyI+QnVnIDUwMDYzLjwvYT4KKzwv
cD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMjliZTAzYWVhNTMxODRkZTNhYjEz
NTNmZWZiZmRmODNlZjcyYzUwNy4uY2RkNmRhOTk5OGI0MTliYWM2YWY4OTNhMmI0OWI5YTMwMTY1
YWZlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZlbnRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2
OTogW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVudF0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2
NTA6IFtvYmplY3QgSFRNTFBhcmFncmFwaEVsZW1lbnRdCiBUZXN0cyBXZWJJbnNwZWN0b3IgZXh0
ZW5zaW9uIEFQSQogCiBTdGFydGVkIGV4dGVuc2lvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1u
YW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rv
ci9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mOTdiNmZmZTg5ZDU3MDI2N2FkZDU5NTBlMjUwNGIxM2ViMzg0ZWQwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUtb2Jq
ZWN0LWNvbnN0cnVjdG9yLW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDExOiBbb2JqZWN0IE9iamVjdF0KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMjogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFtvYmplY3Qg
T2JqZWN0XQorVGVzdHMgdGhhdCB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gaW52b2tlZCBhcyBv
YmplY3QgY29uc3RydWN0b3Igd2lsbCBiZSBkaXNwbGF5ZWQgYXMgaXRzIHR5cGUgaW4gdGhlIGZy
b250LWVuZC4gQnVnIDUwMDYzLgorCitjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0
bWw6MTFQYXJlbnQKK2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRtbDoxMkNoaWxk
Citjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0bWw6MTNvdXRlci5pbm5lcgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTcz
N2RjODhjYjI3NTIyYzljYWE3NzUzMGQ5YmE5YjFjZTU0ZWEwLi45YjIxZGE4Y2E4NzU0NzY3MTU5
OWM5MmFlMDIxMTVmNWUwZWY3NzQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEwLTExLTI1ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgbmFtZSBvZiBh
biBvYmplY3QgY29uc3RydWN0b3IgYXMgdGhlIG9iamVjdCdzIHR5cGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYzCisKKyAgICAgICAgTmFtZSBv
ZiB0aGUgZnVuY3Rpb24gdGhhdCBoYXMgY3JlYXRlZCBnaXZlbiBvYmplY3QgaXMgdXNlZCBhcyB0
aGUgb2JqZWN0J3MKKyAgICAgICAgdHlwZSB3aGVuIGl0J3MgZGlzcGxheWVkIGluIHRoZSBpbnNw
ZWN0b3IgZnJvbnQtZW5kKGluIGNhc2Ugb2YgVjgpLiBCZWZvcmUKKyAgICAgICAgdGhpcyBjaGFu
Z2UsIGl0IHdhcyBhbHdheXMgYSB2YWx1ZSBvZiB0aGUgb2JqZWN0J3MgY29uc3RydWN0b3IubmFt
ZSBwcm9wZXJ0eQorICAgICAgICB3aGljaCBpcyBjb25mdXNpbmcgaW4gc29tZSBjYXNlcyhzZWUg
dGhlIHRlc3QpLgorCisgICAgICAgIFJlbW92ZWQgY2hlY2sgZm9yIGpzRW5naW5lIGZyb20gdGhl
IEluamVjdGVkU2NyaXB0LmpzLCBhbGwgVk0tc3BlY2lmaWMgY29kZQorICAgICAgICBpcyBub3cg
ZW5jYXBzdWxhdGVkIG9uIHRoZSBiaW5kaW5ncyBsYXllci4KKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5hbWUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5h
bWVDYWxsYmFjayk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGw6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qczoKKyAgICAg
ICAgKGluamVjdGVkU2NyaXB0Q29uc3RydWN0b3IuKToKKwogMjAxMC0xMS0yNCAgSmlhbiBMaSAg
PGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNz
ZWxsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcAppbmRleCA5Y2Y0NjA0NTg4OThlZTE3NzA5ODI2YmRiMmNiNWExY2NkMDljMGQ3Li4z
M2ZmN2IxZGI3ZmMxZDM3ZWI2OTE4NWJmYzQwNzE2NDFhYWU0ZTQ4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtOTUsNyAr
OTUsNiBAQCBTY3JpcHRPYmplY3QgSW5qZWN0ZWRTY3JpcHRIb3N0OjpjcmVhdGVJbmplY3RlZFNj
cmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgU2NyaQogICAgIGFyZ3MuYXBwZW5kKHRvSlMoc2Ny
aXB0U3RhdGUsIGdsb2JhbE9iamVjdCwgdGhpcykpOwogICAgIGFyZ3MuYXBwZW5kKGdsb2JhbFRo
aXNWYWx1ZSk7CiAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIoaWQpKTsKLSAgICBhcmdzLmFwcGVu
ZChqc1N0cmluZyhzY3JpcHRTdGF0ZSwgU3RyaW5nKCJKU0MiKSkpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0gSlNDOjpjYWxsKHNjcmlwdFN0YXRlLCBmdW5jdGlvblZhbHVlLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIGdsb2JhbFRoaXNWYWx1ZSwgYXJncyk7CiAgICAgaWYgKHJlc3VsdC5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4gU2NyaXB0T2JqZWN0KHNjcmlwdFN0YXRlLCByZXN1bHQuZ2V0T2Jq
ZWN0KCkpOwpAQCAtMTM3LDYgKzEzNiwxNSBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
Ojpub2RlRm9ySWQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUp
OwogfQogCitKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5hbWUoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIFVTdHJpbmcgcmVzdWx0ID0gZXhlYy0+
YXJndW1lbnQoMCkudG9UaGlzT2JqZWN0KGV4ZWMpLT5jbGFzc05hbWUoKTsKKyAgICByZXR1cm4g
anNTdHJpbmcoZXhlYywgcmVzdWx0KTsKK30KKwogSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9z
dDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKaW5kZXggYjMwMDdhNDg0
YmE1NWY3YTI4N2Y5MjUyMWI0NjZjZDhjY2Q1ZjIyMS4uYTU1Y2ZjODY4NTI4ZmY3YWUxZTRhNWFm
OGEwODYwY2RjNGJmMGM0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtMTE0LDkgKzExNCw4IEBA
IFNjcmlwdE9iamVjdCBJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0KGNv
bnN0IFN0cmluZyYgc2NyaXB0U291cmNlCiAgICAgICBzY3JpcHRIb3N0V3JhcHBlciwKICAgICAg
IHdpbmRvd0dsb2JhbCwKICAgICAgIHY4OjpOdW1iZXI6Ok5ldyhpZCksCi0gICAgICB2ODo6U3Ry
aW5nOjpOZXcoInY4IikKICAgICB9OwotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGluamVjdGVk
U2NyaXB0VmFsdWUgPSB2ODo6RnVuY3Rpb246OkNhc3QoKnYpLT5DYWxsKHdpbmRvd0dsb2JhbCwg
NCwgYXJncyk7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gaW5qZWN0ZWRTY3JpcHRWYWx1ZSA9
IHY4OjpGdW5jdGlvbjo6Q2FzdCgqdiktPkNhbGwod2luZG93R2xvYmFsLCAzLCBhcmdzKTsKICAg
ICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5qZWN0ZWRTY3JpcHQodjg6Ok9iamVjdDo6Q2FzdCgq
aW5qZWN0ZWRTY3JpcHRWYWx1ZSkpOwogICAgIHJldHVybiBTY3JpcHRPYmplY3QoaW5zcGVjdGVk
U2NyaXB0U3RhdGUsIGluamVjdGVkU2NyaXB0KTsKIH0KQEAgLTE1NSw2ICsxNTQsMTggQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojpub2RlRm9ySWRDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICByZXR1cm4gdG9WOChub2RlKTsKIH0KIAordjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5hbWVDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiSW5qZWN0
ZWRTY3JpcHRIb3N0LmNvbnN0cnVjdG9yTmFtZSgpIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgaWYgKCFhcmdzWzBd
LT5Jc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgcmV0
dXJuIGFyZ3NbMF0tPlRvT2JqZWN0KCktPkdldENvbnN0cnVjdG9yTmFtZSgpOworfQorCiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OnB1c2hOb2RlUGF0aFRvRnJv
bnRlbmRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFU
UygiSW5qZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoKSIpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKaW5kZXggOWIyZWQ2YzE2M2QyYWZlNGQ2
YzMyOGZkZDY2MGExZjIyYmVhNjA3Ny4uOTRkMmY5YTMyMTE3ZTRmZDBmYTg1NTVkMDcxYjYyNTQ2
NmZiMzA4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0
LmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCkBAIC0z
OCw2ICszOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IG5v
ZGVGb3JJZChpbiBsb25nIG5vZGVJZCk7CiAgICAgICAgIFtDdXN0b21dIGludCBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKGluIERPTU9iamVjdCBub2RlLCBpbiBib29sZWFuIHdpdGhDaGlsZHJlbiwg
aW4gYm9vbGVhbiBzZWxlY3RJblVJKTsKICAgICAgICAgbG9uZyBpbnNwZWN0ZWROb2RlKGluIHVu
c2lnbmVkIGxvbmcgbnVtKTsKKyAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGNvbnN0cnVjdG9y
TmFtZShpbiBET01PYmplY3Qgb2JqZWN0KTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCiAgICAgICAgIFtDdXN0
b21dIERPTU9iamVjdCBjdXJyZW50Q2FsbEZyYW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggZmZmNjY4MGIyMjQ2MjJkNmZjM2I1ZjE1
M2QzYjM3ZDRkMTg3NWIyYS4uMDdmZGU1N2ZlY2RkMzkxNTEyMzUwZDNhY2E0ODRhYzI0YTRjZjZh
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwpA
QCAtMjYsNyArMjYsNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi12YXIgaW5qZWN0ZWRTY3JpcHRD
b25zdHJ1Y3RvciA9IChmdW5jdGlvbiAoSW5qZWN0ZWRTY3JpcHRIb3N0LCBpbnNwZWN0ZWRXaW5k
b3csIGluamVjdGVkU2NyaXB0SWQsIGpzRW5naW5lKSB7Cit2YXIgaW5qZWN0ZWRTY3JpcHRDb25z
dHJ1Y3RvciA9IChmdW5jdGlvbiAoSW5qZWN0ZWRTY3JpcHRIb3N0LCBpbnNwZWN0ZWRXaW5kb3cs
IGluamVjdGVkU2NyaXB0SWQpIHsKIAogdmFyIEluamVjdGVkU2NyaXB0ID0gZnVuY3Rpb24oKQog
ewpAQCAtNDI3LDkgKzQyNywxNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICBjYXNl
ICJub2RlIjoKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWUob2JqKTsKKyAgICAg
ICAgICAgIHZhciByZXN1bHQgPSBJbmplY3RlZFNjcmlwdEhvc3QuY29uc3RydWN0b3JOYW1lKG9i
aik7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09PSAiT2JqZWN0IikgeworICAgICAgICAgICAg
ICAgIC8vIEluIENocm9taXVtIERPTSB3cmFwcGVyIHByb3RvdHlwZXMgd2lsbCBoYXZlIE9iamVj
dCBhcyB0aGVpciBjb25zdHJ1Y3RvciBuYW1lLAorICAgICAgICAgICAgICAgIC8vIGdldCB0aGUg
cmVhbCBET00gd3JhcHBlciBuYW1lIGZyb20gdGhlIGNvbnN0cnVjdG9yIHByb3BlcnR5LgorICAg
ICAgICAgICAgICAgIHZhciBjb25zdHJ1Y3Rvck5hbWUgPSBvYmouY29uc3RydWN0b3IgJiYgb2Jq
LmNvbnN0cnVjdG9yLm5hbWU7CisgICAgICAgICAgICAgICAgaWYgKGNvbnN0cnVjdG9yTmFtZSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yTmFtZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIGNhc2UgImFycmF5IjoKLSAg
ICAgICAgICAgIHZhciBjbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWUob2JqKTsKKyAgICAgICAg
ICAgIHZhciBjbGFzc05hbWUgPSBJbmplY3RlZFNjcmlwdEhvc3QuY29uc3RydWN0b3JOYW1lKG9i
aik7CiAgICAgICAgICAgICBpZiAodHlwZW9mIG9iai5sZW5ndGggPT09ICJudW1iZXIiKQogICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZSArPSAiWyIgKyBvYmoubGVuZ3RoICsgIl0iOwogICAgICAg
ICAgICAgcmV0dXJuIGNsYXNzTmFtZTsKQEAgLTQ1NSwyNSArNDYzLDYgQEAgSW5qZWN0ZWRTY3Jp
cHQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gIiIgKyBvYmo7CiAgICAgfSwKIAotICAg
IF9jbGFzc05hbWU6IGZ1bmN0aW9uKG9iaikKLSAgICB7Ci0gICAgICAgIC8vIFdlIGNhbid0IHVz
ZSB0aGUgc2FtZSBjb2RlIGZvciBmZXRjaGluZyBjbGFzcyBuYW1lcyBvZiB0aGUgZG9tIGJpbmRp
bmdzIHByb3RvdHlwZSBjaGFpbi4KLSAgICAgICAgLy8gQm90aCBvZiB0aGUgbWV0aG9kcyBiZWxv
dyByZXN1bHQgaW4gIk9iamVjdCIgbmFtZXMgb24gdGhlIGZvcmVpZ24gZW5naW5lIGJpbmRpbmdz
LgotICAgICAgICAvLyBJIGdhdmUgdXAgYW5kIGFtIHVzaW5nIGEgY2hlY2sgYmVsb3cgdG8gZGlz
dGluZ3Vpc2ggYmV0d2VlbiB0aGUgZWdpbmUgYmluZ2luZ3MuCi0KLSAgICAgICAgaWYgKGpzRW5n
aW5lID09ICJKU0MiKSB7Ci0gICAgICAgICAgICB2YXIgc3RyID0gaW5zcGVjdGVkV2luZG93Lk9i
amVjdCA/IGluc3BlY3RlZFdpbmRvdy5PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2Jq
KSA6IHRoaXMuX3RvU3RyaW5nKG9iaik7Ci0gICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2Uo
L15cW29iamVjdCAoLiopXF0kL2ksICIkMSIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgLy8gVjgKLSAgICAgICAgICAgIGlmIChpc0Zpbml0ZShvYmoubGVuZ3RoKSAmJiB0eXBlb2Yg
b2JqLmNhbGxlZSA9PT0gImZ1bmN0aW9uIikgewotICAgICAgICAgICAgICAgIC8vIEFyZ3VtZW50
cy5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0IGluIFY4Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJB
cmd1bWVudHMiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG9iai5jb25zdHJ1
Y3RvciAmJiBvYmouY29uc3RydWN0b3IubmFtZSB8fCAiT2JqZWN0IjsKLSAgICAgICAgfQotICAg
IH0sCi0KICAgICBfbG9nRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgY29u
c29sZS5sb2coZXZlbnQudHlwZSwgZXZlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74879</attachid>
            <date>2010-11-25 08:01:07 -0800</date>
            <delta_ts>2010-11-29 08:05:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50063-20101125190104.patch</filename>
            <type>text/plain</type>
            <size>11876</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMzQzYjBiNzhkYzZlYWNjYWY1OTA2Zjg3NWVjMDFkZjJjMjMwMzc4Li4wY2FiODNl
ODg1ZjI1Mzk2MWJiOGNjNDE3OGFhZmE1MDIzNzE3N2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMjUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZGlzcGxheSBuYW1lIG9mIGFuIG9iamVjdCBjb25zdHJ1Y3RvciBhcyB0aGUgb2JqZWN0J3Mg
dHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAw
NjMKKworICAgICAgICAqIGh0dHAvY29uZi9hcGFjaGUyLWh0dHBkLmNvbmY6CisgICAgICAgICog
aW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFt
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVudHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xl
LW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTEt
MjQgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTI4ZmVhMWIxMDgwN2MzMjQ3ZWQyOTBmYzFjYzYwN2M0ZWQ5MzQyMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLW9iamVjdC1jb25zdHJ1
Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxMTogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IFtvYmpl
Y3QgT2JqZWN0XQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBbb2JqZWN0IE9iamVjdF0KK1Rl
c3RzIHRoYXQgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGludm9rZWQgYXMgb2JqZWN0IGNvbnN0
cnVjdG9yIHdpbGwgYmUgZGlzcGxheWVkIGFzIGl0cyB0eXBlIGluIHRoZSBmcm9udC1lbmQuIEJ1
ZyA1MDA2My4KKworY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sOjExT2JqZWN0
Citjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0bWw6MTJPYmplY3QKK2NvbnNvbGUt
b2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRtbDoxM09iamVjdAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42YTA2NWUwOGJhZmM5NWY2ZDUzNjQxNWZlOTZhOTQ4YTY3OGQyNDQzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtb2JqZWN0LWNv
bnN0cnVjdG9yLW5hbWUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
czIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gUGFyZW50KCkgeyB9CitmdW5j
dGlvbiBDaGlsZCgpIHsgfQorQ2hpbGQucHJvdG90eXBlID0gbmV3IFBhcmVudCgpOwordmFyIG91
dGVyID0geyBpbm5lcjogZnVuY3Rpb24oKSB7IH0gfTsKK2NvbnNvbGUubG9nKG5ldyBQYXJlbnQo
KSk7Citjb25zb2xlLmxvZyhuZXcgQ2hpbGQoKSk7Citjb25zb2xlLmxvZyhuZXcgb3V0ZXIuaW5u
ZXIoKSk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQ29u
c29sZU1lc3NhZ2VzKCk7CisgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7
CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCB0aGUgbmFt
ZSBvZiB0aGUgZnVuY3Rpb24gaW52b2tlZCBhcyBvYmplY3QgY29uc3RydWN0b3Igd2lsbCBiZSBk
aXNwbGF5ZWQgYXMgaXRzIHR5cGUgaW4gdGhlIGZyb250LWVuZC4KKzxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MyI+QnVnIDUwMDYzLjwvYT4KKzwv
cD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMjliZTAzYWVhNTMxODRkZTNhYjEz
NTNmZWZiZmRmODNlZjcyYzUwNy4uY2RkNmRhOTk5OGI0MTliYWM2YWY4OTNhMmI0OWI5YTMwMTY1
YWZlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtZXZlbnRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1ldmVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2
OTogW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVudF0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2
NTA6IFtvYmplY3QgSFRNTFBhcmFncmFwaEVsZW1lbnRdCiBUZXN0cyBXZWJJbnNwZWN0b3IgZXh0
ZW5zaW9uIEFQSQogCiBTdGFydGVkIGV4dGVuc2lvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1u
YW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rv
ci9jb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mOTdiNmZmZTg5ZDU3MDI2N2FkZDU5NTBlMjUwNGIxM2ViMzg0ZWQwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUtb2Jq
ZWN0LWNvbnN0cnVjdG9yLW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDExOiBbb2JqZWN0IE9iamVjdF0KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMjogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFtvYmplY3Qg
T2JqZWN0XQorVGVzdHMgdGhhdCB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gaW52b2tlZCBhcyBv
YmplY3QgY29uc3RydWN0b3Igd2lsbCBiZSBkaXNwbGF5ZWQgYXMgaXRzIHR5cGUgaW4gdGhlIGZy
b250LWVuZC4gQnVnIDUwMDYzLgorCitjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0
bWw6MTFQYXJlbnQKK2NvbnNvbGUtb2JqZWN0LWNvbnN0cnVjdG9yLW5hbWUuaHRtbDoxMkNoaWxk
Citjb25zb2xlLW9iamVjdC1jb25zdHJ1Y3Rvci1uYW1lLmh0bWw6MTNvdXRlci5pbm5lcgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTcz
N2RjODhjYjI3NTIyYzljYWE3NzUzMGQ5YmE5YjFjZTU0ZWEwLi45YjIxZGE4Y2E4NzU0NzY3MTU5
OWM5MmFlMDIxMTVmNWUwZWY3NzQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEwLTExLTI1ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgbmFtZSBvZiBh
biBvYmplY3QgY29uc3RydWN0b3IgYXMgdGhlIG9iamVjdCdzIHR5cGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYzCisKKyAgICAgICAgTmFtZSBv
ZiB0aGUgZnVuY3Rpb24gdGhhdCBoYXMgY3JlYXRlZCBnaXZlbiBvYmplY3QgaXMgdXNlZCBhcyB0
aGUgb2JqZWN0J3MKKyAgICAgICAgdHlwZSB3aGVuIGl0J3MgZGlzcGxheWVkIGluIHRoZSBpbnNw
ZWN0b3IgZnJvbnQtZW5kKGluIGNhc2Ugb2YgVjgpLiBCZWZvcmUKKyAgICAgICAgdGhpcyBjaGFu
Z2UsIGl0IHdhcyBhbHdheXMgYSB2YWx1ZSBvZiB0aGUgb2JqZWN0J3MgY29uc3RydWN0b3IubmFt
ZSBwcm9wZXJ0eQorICAgICAgICB3aGljaCBpcyBjb25mdXNpbmcgaW4gc29tZSBjYXNlcyhzZWUg
dGhlIHRlc3QpLgorCisgICAgICAgIFJlbW92ZWQgY2hlY2sgZm9yIGpzRW5naW5lIGZyb20gdGhl
IEluamVjdGVkU2NyaXB0LmpzLCBhbGwgVk0tc3BlY2lmaWMgY29kZQorICAgICAgICBpcyBub3cg
ZW5jYXBzdWxhdGVkIG9uIHRoZSBiaW5kaW5ncyBsYXllci4KKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvY29uc29sZS1vYmplY3QtY29uc3RydWN0b3ItbmFtZS5odG1sCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5hbWUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZUluamVjdGVkU2NyaXB0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojpjb25zdHJ1Y3Rvck5h
bWVDYWxsYmFjayk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGw6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qczoKKyAgICAg
ICAgKGluamVjdGVkU2NyaXB0Q29uc3RydWN0b3IuKToKKwogMjAxMC0xMS0yNCAgSmlhbiBMaSAg
PGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNz
ZWxsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcAppbmRleCA5Y2Y0NjA0NTg4OThlZTE3NzA5ODI2YmRiMmNiNWExY2NkMDljMGQ3Li5k
ZTcyZGVhNmVmOWM0OWEyODIzM2MzZGU4NDIxZTRkY2M0YmQzMzQ2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtOTUsNyAr
OTUsNiBAQCBTY3JpcHRPYmplY3QgSW5qZWN0ZWRTY3JpcHRIb3N0OjpjcmVhdGVJbmplY3RlZFNj
cmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgU2NyaQogICAgIGFyZ3MuYXBwZW5kKHRvSlMoc2Ny
aXB0U3RhdGUsIGdsb2JhbE9iamVjdCwgdGhpcykpOwogICAgIGFyZ3MuYXBwZW5kKGdsb2JhbFRo
aXNWYWx1ZSk7CiAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIoaWQpKTsKLSAgICBhcmdzLmFwcGVu
ZChqc1N0cmluZyhzY3JpcHRTdGF0ZSwgU3RyaW5nKCJKU0MiKSkpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0gSlNDOjpjYWxsKHNjcmlwdFN0YXRlLCBmdW5jdGlvblZhbHVlLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIGdsb2JhbFRoaXNWYWx1ZSwgYXJncyk7CiAgICAgaWYgKHJlc3VsdC5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4gU2NyaXB0T2JqZWN0KHNjcmlwdFN0YXRlLCByZXN1bHQuZ2V0T2Jq
ZWN0KCkpOwpAQCAtMTM3LDYgKzEzNiwxNSBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
Ojpub2RlRm9ySWQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUp
OwogfQogCitKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjppbnRlcm5hbENvbnN0cnVjdG9y
TmFtZShFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgVVN0cmluZyByZXN1bHQg
PSBleGVjLT5hcmd1bWVudCgwKS50b1RoaXNPYmplY3QoZXhlYyktPmNsYXNzTmFtZSgpOworICAg
IHJldHVybiBqc1N0cmluZyhleGVjLCByZXN1bHQpOworfQorCiBKU1ZhbHVlIEpTSW5qZWN0ZWRT
Y3JpcHRIb3N0OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAppbmRleCBi
MzAwN2E0ODRiYTU1ZjdhMjg3ZjkyNTIxYjQ2NmNkOGNjZDVmMjIxLi44MWFkOTU1NjNlYWEyYjk2
ZTkwYzRiOTdiYzMyMzJmMDc1OTdkZThkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCkBAIC0xMTQsOSAr
MTE0LDggQEAgU2NyaXB0T2JqZWN0IEluamVjdGVkU2NyaXB0SG9zdDo6Y3JlYXRlSW5qZWN0ZWRT
Y3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHRTb3VyY2UKICAgICAgIHNjcmlwdEhvc3RXcmFwcGVy
LAogICAgICAgd2luZG93R2xvYmFsLAogICAgICAgdjg6Ok51bWJlcjo6TmV3KGlkKSwKLSAgICAg
IHY4OjpTdHJpbmc6Ok5ldygidjgiKQogICAgIH07Ci0gICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
aW5qZWN0ZWRTY3JpcHRWYWx1ZSA9IHY4OjpGdW5jdGlvbjo6Q2FzdCgqdiktPkNhbGwod2luZG93
R2xvYmFsLCA0LCBhcmdzKTsKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBpbmplY3RlZFNjcmlw
dFZhbHVlID0gdjg6OkZ1bmN0aW9uOjpDYXN0KCp2KS0+Q2FsbCh3aW5kb3dHbG9iYWwsIDMsIGFy
Z3MpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbmplY3RlZFNjcmlwdCh2ODo6T2JqZWN0
OjpDYXN0KCppbmplY3RlZFNjcmlwdFZhbHVlKSk7CiAgICAgcmV0dXJuIFNjcmlwdE9iamVjdChp
bnNwZWN0ZWRTY3JpcHRTdGF0ZSwgaW5qZWN0ZWRTY3JpcHQpOwogfQpAQCAtMTU1LDYgKzE1NCwx
OCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6Om5vZGVGb3JJ
ZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAgIHJldHVybiB0b1Y4KG5vZGUpOwogfQog
Cit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OmludGVybmFsQ29u
c3RydWN0b3JOYW1lQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJ
TkNfU1RBVFMoIkluamVjdGVkU2NyaXB0SG9zdC5pbnRlcm5hbENvbnN0cnVjdG9yTmFtZSgpIik7
CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOworCisgICAgaWYgKCFhcmdzWzBdLT5Jc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOworCisgICAgcmV0dXJuIGFyZ3NbMF0tPlRvT2JqZWN0KCktPkdldENvbnN0
cnVjdG9yTmFtZSgpOworfQorCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlw
dEhvc3Q6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQogewogICAgIElOQ19TVEFUUygiSW5qZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0
aFRvRnJvbnRlbmQoKSIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRIb3N0LmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwK
aW5kZXggOWIyZWQ2YzE2M2QyYWZlNGQ2YzMyOGZkZDY2MGExZjIyYmVhNjA3Ny4uNWZiNTdiNDQ1
OTBlOTdlMjZlMzRlZjJiMjI3Y2FiOGM3NTlmYTc3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdEhvc3QuaWRsCkBAIC0zOCw2ICszOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgW0N1c3RvbV0gRE9NT2JqZWN0IG5vZGVGb3JJZChpbiBsb25nIG5vZGVJZCk7CiAgICAgICAg
IFtDdXN0b21dIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGluIERPTU9iamVjdCBub2RlLCBp
biBib29sZWFuIHdpdGhDaGlsZHJlbiwgaW4gYm9vbGVhbiBzZWxlY3RJblVJKTsKICAgICAgICAg
bG9uZyBpbnNwZWN0ZWROb2RlKGluIHVuc2lnbmVkIGxvbmcgbnVtKTsKKyAgICAgICAgW0N1c3Rv
bV0gRE9NT2JqZWN0IGludGVybmFsQ29uc3RydWN0b3JOYW1lKGluIERPTU9iamVjdCBvYmplY3Qp
OwogCiAjaWYgZGVmaW5lZChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFX0pB
VkFTQ1JJUFRfREVCVUdHRVIKICAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGN1cnJlbnRDYWxs
RnJhbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3Rl
ZFNjcmlwdC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5q
cwppbmRleCBmZmY2NjgwYjIyNDYyMmQ2ZmMzYjVmMTUzZDNiMzdkNGQxODc1YjJhLi4xMDY2Njhm
ZTRlYWIwNjkwMWE1NmQ5MmY2MmYxMzA1ZjdiOGEwZTY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCkBAIC0yNiw3ICsyNiw3IEBACiAgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLXZhciBpbmplY3RlZFNjcmlwdENvbnN0cnVjdG9yID0gKGZ1bmN0aW9uIChJ
bmplY3RlZFNjcmlwdEhvc3QsIGluc3BlY3RlZFdpbmRvdywgaW5qZWN0ZWRTY3JpcHRJZCwganNF
bmdpbmUpIHsKK3ZhciBpbmplY3RlZFNjcmlwdENvbnN0cnVjdG9yID0gKGZ1bmN0aW9uIChJbmpl
Y3RlZFNjcmlwdEhvc3QsIGluc3BlY3RlZFdpbmRvdywgaW5qZWN0ZWRTY3JpcHRJZCkgewogCiB2
YXIgSW5qZWN0ZWRTY3JpcHQgPSBmdW5jdGlvbigpCiB7CkBAIC00MjcsOSArNDI3LDE3IEBAIElu
amVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
ICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgIGNhc2UgIm5vZGUiOgotICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2NsYXNzTmFtZShvYmopOworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEluamVj
dGVkU2NyaXB0SG9zdC5pbnRlcm5hbENvbnN0cnVjdG9yTmFtZShvYmopOworICAgICAgICAgICAg
aWYgKHJlc3VsdCA9PT0gIk9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAvLyBJbiBDaHJvbWl1
bSBET00gd3JhcHBlciBwcm90b3R5cGVzIHdpbGwgaGF2ZSBPYmplY3QgYXMgdGhlaXIgY29uc3Ry
dWN0b3IgbmFtZSwKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHJlYWwgRE9NIHdyYXBwZXIg
bmFtZSBmcm9tIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eS4KKyAgICAgICAgICAgICAgICB2YXIg
Y29uc3RydWN0b3JOYW1lID0gb2JqLmNvbnN0cnVjdG9yICYmIG9iai5jb25zdHJ1Y3Rvci5uYW1l
OworICAgICAgICAgICAgICAgIGlmIChjb25zdHJ1Y3Rvck5hbWUpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjb25zdHJ1Y3Rvck5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICBjYXNlICJhcnJheSI6Ci0gICAgICAgICAgICB2YXIgY2xh
c3NOYW1lID0gdGhpcy5fY2xhc3NOYW1lKG9iaik7CisgICAgICAgICAgICB2YXIgY2xhc3NOYW1l
ID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmludGVybmFsQ29uc3RydWN0b3JOYW1lKG9iaik7CiAgICAg
ICAgICAgICBpZiAodHlwZW9mIG9iai5sZW5ndGggPT09ICJudW1iZXIiKQogICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZSArPSAiWyIgKyBvYmoubGVuZ3RoICsgIl0iOwogICAgICAgICAgICAgcmV0
dXJuIGNsYXNzTmFtZTsKQEAgLTQ1NSwyNSArNDYzLDYgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gIiIgKyBvYmo7CiAgICAgfSwKIAotICAgIF9jbGFzc05h
bWU6IGZ1bmN0aW9uKG9iaikKLSAgICB7Ci0gICAgICAgIC8vIFdlIGNhbid0IHVzZSB0aGUgc2Ft
ZSBjb2RlIGZvciBmZXRjaGluZyBjbGFzcyBuYW1lcyBvZiB0aGUgZG9tIGJpbmRpbmdzIHByb3Rv
dHlwZSBjaGFpbi4KLSAgICAgICAgLy8gQm90aCBvZiB0aGUgbWV0aG9kcyBiZWxvdyByZXN1bHQg
aW4gIk9iamVjdCIgbmFtZXMgb24gdGhlIGZvcmVpZ24gZW5naW5lIGJpbmRpbmdzLgotICAgICAg
ICAvLyBJIGdhdmUgdXAgYW5kIGFtIHVzaW5nIGEgY2hlY2sgYmVsb3cgdG8gZGlzdGluZ3Vpc2gg
YmV0d2VlbiB0aGUgZWdpbmUgYmluZ2luZ3MuCi0KLSAgICAgICAgaWYgKGpzRW5naW5lID09ICJK
U0MiKSB7Ci0gICAgICAgICAgICB2YXIgc3RyID0gaW5zcGVjdGVkV2luZG93Lk9iamVjdCA/IGlu
c3BlY3RlZFdpbmRvdy5PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA6IHRoaXMu
X3RvU3RyaW5nKG9iaik7Ci0gICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL15cW29iamVj
dCAoLiopXF0kL2ksICIkMSIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gVjgK
LSAgICAgICAgICAgIGlmIChpc0Zpbml0ZShvYmoubGVuZ3RoKSAmJiB0eXBlb2Ygb2JqLmNhbGxl
ZSA9PT0gImZ1bmN0aW9uIikgewotICAgICAgICAgICAgICAgIC8vIEFyZ3VtZW50cy5jb25zdHJ1
Y3RvciA9PT0gT2JqZWN0IGluIFY4Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJBcmd1bWVudHMi
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG9iai5jb25zdHJ1Y3RvciAmJiBv
YmouY29uc3RydWN0b3IubmFtZSB8fCAiT2JqZWN0IjsKLSAgICAgICAgfQotICAgIH0sCi0KICAg
ICBfbG9nRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgY29uc29sZS5sb2co
ZXZlbnQudHlwZSwgZXZlbnQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>