<?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>60712</bug_id>
          
          <creation_ts>2011-05-12 11:14:01 -0700</creation_ts>
          <short_desc>Regression caused by changeset 86281</short_desc>
          <delta_ts>2011-05-12 18:19:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jia Pu">jiapu.mail</reporter>
          <assigned_to name="Jia Pu">jiapu.mail</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddavidso</cc>
    
    <cc>jberlin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>402979</commentid>
    <comment_count>0</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 11:14:01 -0700</bug_when>
    <thetext>Next typing after canceling a reversion panel would hang.
&lt;rdar://problem/9427970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403015</commentid>
    <comment_count>1</comment_count>
      <attachid>93316</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 11:32:33 -0700</bug_when>
    <thetext>Created attachment 93316
Patch (v1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403018</commentid>
    <comment_count>2</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 11:33:53 -0700</bug_when>
    <thetext>Verified this patch with all existing automatic and manual autocorrection tests. I probably forgot to run manual tests on the offending changeset. Otherwise I would have caught this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403027</commentid>
    <comment_count>3</comment_count>
      <attachid>93316</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-12 11:39:31 -0700</bug_when>
    <thetext>Comment on attachment 93316
Patch (v1)

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

I’m really worried about the thread-safety issues here.

&gt; Source/WebKit/mac/ChangeLog:10
&gt; +        Need to clear m_view pointer in handleAcceptedReplacement(), since this function can be invoked
&gt; +        by AppKit on different thread without going through dismissInternal().

Does this code have enough locking for this to be called on a different thread!?

&gt; Source/WebKit2/ChangeLog:10
&gt; +        Need to clear m_view pointer in handleAcceptedReplacement(), since this function can be invoked
&gt; +        by AppKit on different thread without going through dismissInternal().

Does this code have enough locking for this to be called on a different thread!?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403070</commentid>
    <comment_count>4</comment_count>
      <attachid>93316</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-05-12 12:19:11 -0700</bug_when>
    <thetext>Comment on attachment 93316
Patch (v1)

Thanks for the review, Darin! Committed in http://trac.webkit.org/changeset/86371</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403079</commentid>
    <comment_count>5</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 12:33:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 93316 [details])
&gt; Thanks for the review, Darin! Committed in http://trac.webkit.org/changeset/86371

Jessie, actually Darin raised a valid concern. I&apos;m talking to some AppKit folks to gain better understanding on the threading model. I may have another change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403081</commentid>
    <comment_count>6</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-05-12 12:40:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 93316 [details] [details])
&gt; &gt; Thanks for the review, Darin! Committed in http://trac.webkit.org/changeset/86371
&gt; 
&gt; Jessie, actually Darin raised a valid concern. I&apos;m talking to some AppKit folks to gain better understanding on the threading model. I may have another change.

That was a total fail by me. It was meant for another bug, not this one. Sorry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403209</commentid>
    <comment_count>7</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 15:32:47 -0700</bug_when>
    <thetext>Reopen since it was closed by mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403212</commentid>
    <comment_count>8</comment_count>
      <attachid>93357</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 15:34:39 -0700</bug_when>
    <thetext>Created attachment 93357
Patch (v2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403222</commentid>
    <comment_count>9</comment_count>
      <attachid>93357</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 16:02:13 -0700</bug_when>
    <thetext>Comment on attachment 93357
Patch (v2)

Having looked at the AppKit source code, it seems all callbacks eventually are delivered on main thread. So we really don&apos;t need any locking here. I will upload another patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403241</commentid>
    <comment_count>10</comment_count>
      <attachid>93365</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 16:40:49 -0700</bug_when>
    <thetext>Created attachment 93365
Patch (v3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403273</commentid>
    <comment_count>11</comment_count>
      <attachid>93365</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-12 17:27:43 -0700</bug_when>
    <thetext>Comment on attachment 93365
Patch (v3)

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

&gt; Source/WebKit/mac/ChangeLog:14
&gt; +        Since now we don&apos;t have distincation between dismiss() and dismissSoon(). dismissSoon() has

Typo: distinction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403279</commentid>
    <comment_count>12</comment_count>
      <attachid>93374</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-12 17:32:47 -0700</bug_when>
    <thetext>Created attachment 93374
Patch (v4)

Fixed typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403292</commentid>
    <comment_count>13</comment_count>
      <attachid>93374</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-12 18:19:23 -0700</bug_when>
    <thetext>Comment on attachment 93374
Patch (v4)

Clearing flags on attachment: 93374

Committed r86406: &lt;http://trac.webkit.org/changeset/86406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403293</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-12 18:19:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93316</attachid>
            <date>2011-05-12 11:32:33 -0700</date>
            <delta_ts>2011-05-12 15:34:31 -0700</delta_ts>
            <desc>Patch (v1)</desc>
            <filename>bug-60712-20110512113232.patch</filename>
            <type>text/plain</type>
            <size>7399</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYzNDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYWUyOTczZWZjNzEwZjNh
ODViNDNiNTRlODA2ZTNlMmFmMDU3NTg2Li44NTBlNTBjMjI4Y2E4MjAyZDgyODQ2NGM2ZGE4ODM1
YWFiYjcyMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMTIgIEppYSBQ
dSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVncmVzc2lvbiBjYXVzZWQgYnkgY2hhbmdlc2V0IDg2MjgxCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDcxMgorCisgICAgICAg
IENoYW5nZWQgd29yZGluZyBpbiBzb21lIHRlc3RzIHRvIHJlZmxlY3QgQXBwS2l0IFVJIGNoYW5n
ZS4KKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8tZW5k
LW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
YXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1s
OgorCiAyMDExLTA1LTEyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBdHRlbXB0ZWQgV2luQ2Fpcm8gYnVpbGQgZml4IGFmdGVyIHI4NjE2OSwgcGFydCBJSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0
ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1sIGIvU291cmNlL1dlYkNvcmUv
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0ZS10by1lbmQtb2Ytd29yZC10by1zaG93
LXJldmVyc2lvbi5odG1sCmluZGV4IDI0MmZjYjI3MDUxZjVmMjU1NDE5ODUxZTIwZTkwYTY5MDJm
OGE4MTUuLmFiZDk3OWEwNGE4MDFhODAxMTlhYmQzYTVlNTQ4Y2EzN2E2NWI4MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8t
ZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGVsZXRlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ct
cmV2ZXJzaW9uLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXY+PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgcmV2ZXJz
aW9uIHBhbmVsIGlzIHNob3duIHdoZW4gdXNlciBtb3ZlcyBjYXJyZXQgdG8gcHJldmlvdXNseSBj
b3JyZWN0ZWQgd29yZCB1c2luZyBkZWxldGUga2V5LjwvcD4KLTxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBFU0Mga2V5LCB0aGVuIHNwYWNlIGtleS4gWW91IHNob3Vs
ZCBzZWUgdGhlIHBocmFzZSAidGhlIG1lc2FnZSIuIDwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBkb3duIGtleSBmb2xsb3dlZCBieSBzcGFjZSBrZXkuIFlv
dSBzaG91bGQgc2VlIHRoZSBwaHJhc2UgInRoZSBtZXNhZ2UiLiA8L3A+CiA8cCAgc3R5bGU9ImNv
bG9yOmdyZWVuIj5Ob3RlLCB0aGlzIHRlc3QgY2FuIGZhaWwgZHVlIHRvIHVzZXIgc3BlY2lmaWMg
c3BlbGwgY2hlY2tpbmcgZGF0YS4gSWYgdGhlIHVzZXIgaGFzIHByZXZpb3VzbHkgZnJlcXVlbnRs
eSByZXZlcnQgJ21lc3NhZ2UnIHRvICdtZXNhZ2UnLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBm
aWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxpbmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxsLnNlcnZpY2Ug
cHJvY2Vzcy48L3A+CiA8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRp
bmciPgogPHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9tb3ZlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ct
cmV2ZXJzaW9uLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rp
b24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1sCmluZGV4IDU1Nzk5
MTVjZmJlNWE3NTg4MjI5ZWQwZjE5ZTE1MTlhNTkwMjAwOGMuLmNlMDE3MGE5MjdhZmQzZmZiM2I2
ZDdkZWU3YjRiOTMyYTA5NTMzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10
ZXN0cy9hdXRvY29ycmVjdGlvbi9tb3ZlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ctcmV2ZXJzaW9u
Lmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL21v
dmUtdG8tZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbApAQCAtMzIsNyArMzIsNyBA
QCBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKIDwvaGVhZD4KIDxib2R5PgogPGRpdj48cD5UaGlz
IHRlc3QgdmVyaWZpZXMgdGhhdCByZXZlcnNpb24gcGFuZWwgaXMgc2hvd24gd2hlbiB1c2VyIG1v
dmVzIGNhcnJldCB0byBwcmV2aW91c2x5IGNvcnJlY3RlZCB3b3JkPC9wPgotPHA+QWZ0ZXIgc2Vl
aW5nIHRoZSByZXZlcnNpb24gcGFuZWwsIHByZXNzIEVTQyBrZXksIHRoZW4gc3BhY2Uga2V5LiBZ
b3Ugc2hvdWxkIHNlZSB0aGUgcGhyYXNlICJ0aGUgbWVzYWdlIi4gPC9wPgorPHA+QWZ0ZXIgc2Vl
aW5nIHRoZSByZXZlcnNpb24gcGFuZWwsIHByZXNzIGRvd24ga2V5IGZvbGxvd2VkIGJ5IHJldHVy
biBrZXkuIFlvdSBzaG91bGQgc2VlIHRoZSBwaHJhc2UgInRoZSBtZXNhZ2UiLiA8L3A+CiA8cCAg
c3R5bGU9ImNvbG9yOmdyZWVuIj5Ob3RlLCB0aGlzIHRlc3QgY2FuIGZhaWwgZHVlIHRvIHVzZXIg
c3BlY2lmaWMgc3BlbGwgY2hlY2tpbmcgZGF0YS4gSWYgdGhlIHVzZXIgaGFzIHByZXZpb3VzbHkg
ZnJlcXVlbnRseSByZXZlcnQgJ21lc3NhZ2UnIHRvICdtZXNhZ2UnLiBUbyBmaXggdGhpcywgcmVt
b3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxpbmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxs
LnNlcnZpY2UgcHJvY2Vzcy48L3A+CiA8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0icm9vdCIgY2xh
c3M9ImVkaXRpbmciPgogPHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBmOTNiODcwN2Y3M2NmMzBmN2Y2MzFjODlhM2FiZmM0YzcxY2ZkOTRiLi44OTY2NDU2YTRmNjdi
NjRkNDkzYjBjNmE1MTg0ZmY3NmRjODMyNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTEtMDUtMTIgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVncmVzc2lvbiBjYXVzZWQgYnkg
Y2hhbmdlc2V0IDg2MjgxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MDcxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTQyNzk3MD4KKworICAgICAg
ICBOZWVkIHRvIGNsZWFyIG1fdmlldyBwb2ludGVyIGluIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1l
bnQoKSwgc2luY2UgdGhpcyBmdW5jdGlvbiBjYW4gYmUgaW52b2tlZAorICAgICAgICBieSBBcHBL
aXQgb24gZGlmZmVyZW50IHRocmVhZCB3aXRob3V0IGdvaW5nIHRocm91Z2ggZGlzbWlzc0ludGVy
bmFsKCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW06Cisg
ICAgICAgIChDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3NJbnRlcm5hbCk6CisgICAgICAgIChDb3Jy
ZWN0aW9uUGFuZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQpOgorCiAyMDExLTA1LTEyICBO
aWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tCmluZGV4IDM0ODMwM2NkMTg1ODE0YWNkM2MyZjA5MTY5
NjI0OTRkMmU1MmI1YmIuLmRmZWNmM2VjYTY1MDY3OTY5NzMxMWI3MzkxYWEyYjhjNGNlNmFlY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25Q
YW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9u
UGFuZWwubW0KQEAgLTEwNyw3ICsxMDcsNiBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlz
c0ludGVybmFsKFJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwgcmVhc29uLAogICAg
IG1fcmVhc29uRm9yRGlzbWlzc2luZyA9IHJlYXNvbjsKICAgICBtX3Jlc3VsdEZvclN5bmNocm9u
b3VzRGlzbWlzc2FsLmNsZWFyKCk7CiAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENo
ZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uSW5kaWNhdG9yRm9yVmlldzptX3ZpZXcuZ2V0KCldOwot
ICAgIG1fdmlldy5jbGVhcigpOwogfQogCiB2b2lkIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0
b2NvcnJlY3Rpb25SZXNwb25zZShXZWJWaWV3KiB2aWV3LCBOU0NvcnJlY3Rpb25SZXNwb25zZSBy
ZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFN0cmluZykKQEAgLTE0MSw4ICsxNDAsMTEgQEAgdm9pZCBDb3JyZWN0aW9uUGFuZWw6
OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQs
IE4KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAotICAgIGlmICghbV93YXNEaXNtaXNzZWRF
eHRlcm5hbGx5KQorICAgIGlmIChtX3ZpZXcpIHsKICAgICAgICAgW21fdmlldy5nZXQoKSBoYW5k
bGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQ6YWNjZXB0ZWRSZXBsYWNlbWVudF07CisgICAgICAgIG1f
dmlldy5jbGVhcigpOworICAgIH0KKwogICAgIGlmIChhY2NlcHRlZFJlcGxhY2VtZW50KQogICAg
ICAgICBtX3Jlc3VsdEZvclN5bmNocm9ub3VzRGlzbWlzc2FsLmFkb3B0TlMoW2FjY2VwdGVkUmVw
bGFjZW1lbnQgY29weV0pOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk1NTQwMzY2NGMwODRkMmZiZDll
MTQzMGMxNWI3MjJmYTIzZTYzZGUuLjI0NjJlNGY2MTI3ZDI1Y2RhNGEzMGJkZTUzZDZkMDgyOTYw
ZmQ1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wNS0xMiAgSmlhIFB1ICA8
anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWdyZXNzaW9uIGNhdXNlZCBieSBjaGFuZ2VzZXQgODYyODEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzEyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS85NDI3OTcwPgorCisgICAgICAgIE5lZWQgdG8gY2xlYXIgbV92aWV3IHBvaW50
ZXIgaW4gaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCgpLCBzaW5jZSB0aGlzIGZ1bmN0aW9uIGNh
biBiZSBpbnZva2VkCisgICAgICAgIGJ5IEFwcEtpdCBvbiBkaWZmZXJlbnQgdGhyZWFkIHdpdGhv
dXQgZ29pbmcgdGhyb3VnaCBkaXNtaXNzSW50ZXJuYWwoKS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvQ29ycmVjdGlvblBhbmVsLm1tOgorICAgICAgICAoV2ViS2l0OjpDb3JyZWN0aW9uUGFu
ZWw6OmRpc21pc3NJbnRlcm5hbCk6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6
aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCk6CisKIDIwMTEtMDUtMTAgIFRvbnkgR2VudGlsY29y
ZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBh
bmVsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0K
aW5kZXggNzIyNjJlMWMzZTQxZTU0YzgwNTgxZmNiZWUxMmE5M2I5MzI1ZTQ2MS4uMDBjZDAwNDk1
MzM0NjNlMjM0OTdkNWJmMzRlOThiOGYzYTM5ZjA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0KQEAgLTExNCw3ICsxMTQsNiBAQCB2b2lk
IENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzc0ludGVybmFsKFJlYXNvbkZvckRpc21pc3NpbmdDb3Jy
ZWN0aW9uUGFuZWwgcmVhc29uLAogICAgIG1fcmVhc29uRm9yRGlzbWlzc2luZyA9IHJlYXNvbjsK
ICAgICBtX3Jlc3VsdEZvclN5bmNocm9ub3VzRGlzbWlzc2FsLmNsZWFyKCk7CiAgICAgW1tOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uSW5kaWNhdG9y
Rm9yVmlldzptX3ZpZXcuZ2V0KCldOwotICAgIG1fdmlldy5jbGVhcigpOwogfQogCiB2b2lkIENv
cnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXS1ZpZXcqIHZpZXcs
IE5TQ29ycmVjdGlvblJlc3BvbnNlIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKQpAQCAtMTQ4LDggKzE0NywxMSBA
QCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmlu
ZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTgogICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0g
ICAgaWYgKCFtX3dhc0Rpc21pc3NlZEV4dGVybmFsbHkpCisgICAgaWYgKG1fdmlldykgewogICAg
ICAgICBbbV92aWV3LmdldCgpIGhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdDphY2NlcHRlZFJl
cGxhY2VtZW50XTsKKyAgICAgICAgbV92aWV3LmNsZWFyKCk7CisgICAgfQorCiAgICAgaWYgKGFj
Y2VwdGVkUmVwbGFjZW1lbnQpCiAgICAgICAgIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNz
YWwuYWRvcHROUyhbYWNjZXB0ZWRSZXBsYWNlbWVudCBjb3B5XSk7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93357</attachid>
            <date>2011-05-12 15:34:39 -0700</date>
            <delta_ts>2011-05-12 16:02:13 -0700</delta_ts>
            <desc>Patch (v2)</desc>
            <filename>bug-60712-20110512153438.patch</filename>
            <type>text/plain</type>
            <size>15820</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYzNDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYWUyOTczZWZjNzEwZjNh
ODViNDNiNTRlODA2ZTNlMmFmMDU3NTg2Li44NTBlNTBjMjI4Y2E4MjAyZDgyODQ2NGM2ZGE4ODM1
YWFiYjcyMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMTIgIEppYSBQ
dSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVncmVzc2lvbiBjYXVzZWQgYnkgY2hhbmdlc2V0IDg2MjgxCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDcxMgorCisgICAgICAg
IENoYW5nZWQgd29yZGluZyBpbiBzb21lIHRlc3RzIHRvIHJlZmxlY3QgQXBwS2l0IFVJIGNoYW5n
ZS4KKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8tZW5k
LW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
YXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1s
OgorCiAyMDExLTA1LTEyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBdHRlbXB0ZWQgV2luQ2Fpcm8gYnVpbGQgZml4IGFmdGVyIHI4NjE2OSwgcGFydCBJSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0
ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1sIGIvU291cmNlL1dlYkNvcmUv
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0ZS10by1lbmQtb2Ytd29yZC10by1zaG93
LXJldmVyc2lvbi5odG1sCmluZGV4IDI0MmZjYjI3MDUxZjVmMjU1NDE5ODUxZTIwZTkwYTY5MDJm
OGE4MTUuLmFhZDEzNzY4ODMyODRkYWY4NTNlOTZkZTI5ZGQ5MzlkOGViN2M1ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8t
ZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGVsZXRlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ct
cmV2ZXJzaW9uLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXY+PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgcmV2ZXJz
aW9uIHBhbmVsIGlzIHNob3duIHdoZW4gdXNlciBtb3ZlcyBjYXJyZXQgdG8gcHJldmlvdXNseSBj
b3JyZWN0ZWQgd29yZCB1c2luZyBkZWxldGUga2V5LjwvcD4KLTxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBFU0Mga2V5LCB0aGVuIHNwYWNlIGtleS4gWW91IHNob3Vs
ZCBzZWUgdGhlIHBocmFzZSAidGhlIG1lc2FnZSIuIDwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBkb3duIGtleSBmb2xsb3dlZCBieSByZXR1cm4ga2V5LiBZ
b3Ugc2hvdWxkIHNlZSB0aGUgcGhyYXNlICJ0aGUgbWVzYWdlIi4gPC9wPgogPHAgIHN0eWxlPSJj
b2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmlj
IHNwZWxsIGNoZWNraW5nIGRhdGEuIElmIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5IGZyZXF1ZW50
bHkgcmV2ZXJ0ICdtZXNzYWdlJyB0byAnbWVzYWdlJy4gVG8gZml4IHRoaXMsIHJlbW92ZSBhbGwg
ZmlsZXMgaW4gfi9MaWJyYXJ5L1NwZWxsaW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVsbC5zZXJ2aWNl
IHByb2Nlc3MuPC9wPgogPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0
aW5nIj4KIDxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93
LXJldmVyc2lvbi5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0
aW9uL21vdmUtdG8tZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbAppbmRleCA1NTc5
OTE1Y2ZiZTVhNzU4ODIyOWVkMGYxOWUxNTE5YTU5MDIwMDhjLi5jZTAxNzBhOTI3YWZkM2ZmYjNi
NmQ3ZGVlN2I0YjkzMmEwOTUzM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwt
dGVzdHMvYXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lv
bi5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9t
b3ZlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ctcmV2ZXJzaW9uLmh0bWwKQEAgLTMyLDcgKzMyLDcg
QEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXY+PHA+VGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgcmV2ZXJzaW9uIHBhbmVsIGlzIHNob3duIHdoZW4gdXNlciBt
b3ZlcyBjYXJyZXQgdG8gcHJldmlvdXNseSBjb3JyZWN0ZWQgd29yZDwvcD4KLTxwPkFmdGVyIHNl
ZWluZyB0aGUgcmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBFU0Mga2V5LCB0aGVuIHNwYWNlIGtleS4g
WW91IHNob3VsZCBzZWUgdGhlIHBocmFzZSAidGhlIG1lc2FnZSIuIDwvcD4KKzxwPkFmdGVyIHNl
ZWluZyB0aGUgcmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBkb3duIGtleSBmb2xsb3dlZCBieSByZXR1
cm4ga2V5LiBZb3Ugc2hvdWxkIHNlZSB0aGUgcGhyYXNlICJ0aGUgbWVzYWdlIi4gPC9wPgogPHAg
IHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2Vy
IHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIElmIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5
IGZyZXF1ZW50bHkgcmV2ZXJ0ICdtZXNzYWdlJyB0byAnbWVzYWdlJy4gVG8gZml4IHRoaXMsIHJl
bW92ZSBhbGwgZmlsZXMgaW4gfi9MaWJyYXJ5L1NwZWxsaW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVs
bC5zZXJ2aWNlIHByb2Nlc3MuPC9wPgogPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNs
YXNzPSJlZGl0aW5nIj4KIDxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZjkzYjg3MDdmNzNjZjMwZjdmNjMxYzg5YTNhYmZjNGM3MWNmZDk0Yi4uNmY5ZjMzNTFjYWYw
NTBjZDRlZTczNzZjZmZmYTQ1MzJjNTgxNWQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDExLTA1LTEyICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gY2F1c2VkIGJ5
IGNoYW5nZXNldCA4NjI4MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjA3MTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk0Mjc5NzA+CisKKyAgICAg
ICAgUmVtb3ZlZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlLiBJdCdzIGd1cmFudGVlZCB0aGF0IGhh
bmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoKSB0cmlnZ2VyZWQgYnkKKyAgICAgICAgZGlzbWlzc0lu
dGVybmFsKCkgd2lsbCByZXR1cm4gYmVmb3JlIGRpc21pc3NJbnRlcm5hbCgpIHJldHVybnMuIFNv
IHdlIGRvbid0IG5lZWQgdG8gdXNlIHRoZQorICAgICAgICBjb25kaXRpb24gdG8gY29vcmRpbmF0
ZSBiZXR3ZWVuIHRoZXNlIHR3byBmdW5jdGlvbi4KKworICAgICAgICBzaW5jZSBoYW5kbGVBY2Nl
cHRlZFJlcGxhY2VtZW50KCkgY2FuIGJlIGludm9rZWQgYnkgQXBwS2l0IG9uIGRpZmZlcmVudCB0
aHJlYWQgd2l0aG91dCBnb2luZworICAgICAgICB0aHJvdWdoIGRpc21pc3NJbnRlcm5hbCgpLiBX
ZSBhZGRlZCBtX2NhbGxiYWNrTG9jayB0byBwcmV2ZW50IHJhY2luZy4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0NvcnJlY3Rpb25QYW5lbC5tbToKKyAgICAgICAgKENvcnJlY3Rpb25QYW5lbDo6Q29ycmVjdGlv
blBhbmVsKToKKyAgICAgICAgKENvcnJlY3Rpb25QYW5lbDo6c2hvdyk6CisgICAgICAgIChDb3Jy
ZWN0aW9uUGFuZWw6OmRpc21pc3NTb29uKToKKyAgICAgICAgKENvcnJlY3Rpb25QYW5lbDo6ZGlz
bWlzc0ludGVybmFsKToKKyAgICAgICAgKENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRS
ZXBsYWNlbWVudCk6CisKIDIwMTEtMDUtMTIgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oCmluZGV4
IDcxZTIwNzIxODU3OWQ3NTM0M2E0MzMyZmFmNWFmZGZhMDI5M2MxNzguLjRjMzg5MGU3ZjViM2Iw
ZTFkOTIxYmVlZDQ3OGZiYmE5NzYzZjY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oCkBAIC01MSw5ICs1MSw4IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3dhc0Rpc21pc3NlZEV4dGVybmFsbHk7CiAgICAgV2ViQ29yZTo6UmVh
c29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCBtX3JlYXNvbkZvckRpc21pc3Npbmc7CiAg
ICAgUmV0YWluUHRyPFdlYlZpZXc+IG1fdmlldzsKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IG1f
cmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNzYWw7Ci0gICAgUmV0YWluUHRyPE5TQ29uZGl0aW9u
PiBtX3Jlc3VsdENvbmRpdGlvbjsKLSAgICBib29sIG1faXNEaXNtaXNzaW5nOworICAgIFJldGFp
blB0cjxOU1N0cmluZz4gbV9yZXN1bHRGb3JEaXNtaXNzYWw7CisgICAgUmV0YWluUHRyPE5TTG9j
az4gbV9jYWxsYmFja0xvY2s7CiB9OwogCiAjZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tCmluZGV4
IDM0ODMwM2NkMTg1ODE0YWNkM2MyZjA5MTY5NjI0OTRkMmU1MmI1YmIuLjk2MDRlM2EzNjM4MTBk
YzBiM2JmNjFlOTQ0Yzk2ODVlOTk5NGY4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW0KQEAgLTQ2LDggKzQ2LDcgQEAgc3Rh
dGljIGlubGluZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGNvcnJlY3Rpb25JbmRpY2F0b3JU
eXBlKENvcnJlY3Rpb25QYW5lbEkKIENvcnJlY3Rpb25QYW5lbDo6Q29ycmVjdGlvblBhbmVsKCkK
ICAgICA6IG1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxseShmYWxzZSkKICAgICAsIG1fcmVhc29uRm9y
RGlzbWlzc2luZyhSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsSWdub3JlZCkKLSAg
ICAsIG1fcmVzdWx0Q29uZGl0aW9uKEFkb3B0TlMsIFtbTlNDb25kaXRpb24gYWxsb2NdIGluaXRd
KQotICAgICwgbV9pc0Rpc21pc3NpbmcoZmFsc2UpCisgICAgLCBtX2NhbGxiYWNrTG9jayhBZG9w
dE5TLCBbW05TTG9jayBhbGxvY10gaW5pdF0pCiB7CiB9CiAKQEAgLTc5LDcgKzc4LDYgQEAgdm9p
ZCBDb3JyZWN0aW9uUGFuZWw6OnNob3coV2ViVmlldyogdmlldywgQ29ycmVjdGlvblBhbmVsSW5m
bzo6UGFuZWxUeXBlIHR5cGUsIGMKICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hl
Y2tlcl0gc2hvd0NvcnJlY3Rpb25JbmRpY2F0b3JPZlR5cGU6aW5kaWNhdG9yVHlwZSBwcmltYXJ5
U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBhbHRlcm5hdGl2ZVN0cmluZ3M6YWx0
ZXJuYXRpdmVTdHJpbmdzIGZvclN0cmluZ0luUmVjdDpbdmlldyBjb252ZXJ0UmVjdDpib3VuZGlu
Z0JveE9mUmVwbGFjZWRTdHJpbmcgZnJvbVZpZXc6bmlsXSB2aWV3Om1fdmlldy5nZXQoKSBjb21w
bGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nKiBhY2NlcHRlZFN0cmluZykgewogICAgICAgICBoYW5k
bGVBY2NlcHRlZFJlcGxhY2VtZW50KGFjY2VwdGVkU3RyaW5nLCByZXBsYWNlZFN0cmluZ0FzTlNT
dHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZywgaW5kaWNhdG9yVHlwZSk7CiAgICAg
fV07Ci0gICAgbV9pc0Rpc21pc3NpbmcgPSBmYWxzZTsKIH0KIAogdm9pZCBDb3JyZWN0aW9uUGFu
ZWw6OmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24pCkBA
IC04OSwxMiArODcsOCBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzcyhSZWFzb25Gb3JE
aXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbikKIAogU3RyaW5nIENvcnJlY3Rpb25QYW5l
bDo6ZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24p
CiB7Ci0gICAgZGlzbWlzc0ludGVybmFsKHJlYXNvbiwgdHJ1ZSk7Ci0gICAgW21fcmVzdWx0Q29u
ZGl0aW9uLmdldCgpIGxvY2tdOwotICAgIHdoaWxlIChtX2lzRGlzbWlzc2luZykKLSAgICAgICAg
W21fcmVzdWx0Q29uZGl0aW9uLmdldCgpIHdhaXRdOwotICAgIFttX3Jlc3VsdENvbmRpdGlvbi5n
ZXQoKSB1bmxvY2tdOwotICAgIHJldHVybiBtX3Jlc3VsdEZvclN5bmNocm9ub3VzRGlzbWlzc2Fs
LmdldCgpOworICAgIGRpc21pc3MocmVhc29uKTsKKyAgICByZXR1cm4gbV9yZXN1bHRGb3JEaXNt
aXNzYWwuZ2V0KCk7CiB9CiAKIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwo
UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24sIGJvb2wgZGlzbWlzc2lu
Z0V4dGVybmFsbHkpCkBAIC0xMDIsMTIgKzk2LDEwIEBAIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpk
aXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24s
CiAgICAgaWYgKCFpc1Nob3dpbmcoKSkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICBt
X2lzRGlzbWlzc2luZyA9IHRydWU7CiAgICAgbV93YXNEaXNtaXNzZWRFeHRlcm5hbGx5ID0gZGlz
bWlzc2luZ0V4dGVybmFsbHk7CiAgICAgbV9yZWFzb25Gb3JEaXNtaXNzaW5nID0gcmVhc29uOwot
ICAgIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNzYWwuY2xlYXIoKTsKKyAgICBtX3Jlc3Vs
dEZvckRpc21pc3NhbC5jbGVhcigpOwogICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxD
aGVja2VyXSBkaXNtaXNzQ29ycmVjdGlvbkluZGljYXRvckZvclZpZXc6bV92aWV3LmdldCgpXTsK
LSAgICBtX3ZpZXcuY2xlYXIoKTsKIH0KIAogdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1
dG9jb3JyZWN0aW9uUmVzcG9uc2UoV2ViVmlldyogdmlldywgTlNDb3JyZWN0aW9uUmVzcG9uc2Ug
cmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRTdHJpbmcpCkBAIC0xMTYsOSArMTA4LDIxIEBAIHZvaWQgQ29ycmVjdGlvblBhbmVs
OjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdlYlZpZXcqIHZpZXcsIE5TQ29ycmVjdGlv
blJlCiB9CiAKIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50
KE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2VtZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3Ry
aW5nKiBwcm9wb3NlZFJlcGxhY2VtZW50LCAgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSBjb3Jy
ZWN0aW9uSW5kaWNhdG9yVHlwZSkKLXsKK3sgICAgCisgICAgTlNJbnRlZ2VyIGRvY3VtZW50VGFn
OworICAgIGlmICghW21fY2FsbGJhY2tMb2NrLmdldCgpIHRyeUxvY2tdKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKG1fdmlldykgeworICAgICAgICBkb2N1bWVudFRhZyA9IFttX3ZpZXcuZ2V0
KCkgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOworICAgICAgICBbbV92aWV3LmdldCgpIGhhbmRs
ZUNvcnJlY3Rpb25QYW5lbFJlc3VsdDphY2NlcHRlZFJlcGxhY2VtZW50XTsKKyAgICAgICAgbV92
aWV3LmNsZWFyKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgW21fY2FsbGJhY2tMb2NrLmdldCgp
IHVubG9ja107CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgW21fY2FsbGJhY2tMb2NrLmdl
dCgpIHVubG9ja107CisKICAgICBOU1NwZWxsQ2hlY2tlciogc3BlbGxDaGVja2VyID0gW05TU3Bl
bGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl07Ci0gICAgTlNJbnRlZ2VyIGRvY3VtZW50VGFn
ID0gW21fdmlldy5nZXQoKSBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ107CiAKICAgICBzd2l0Y2gg
KGNvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKSB7CiAgICAgY2FzZSBOU0NvcnJlY3Rpb25JbmRpY2F0
b3JUeXBlRGVmYXVsdDoKQEAgLTE0MCwxNiArMTQ0LDkgQEAgdm9pZCBDb3JyZWN0aW9uUGFuZWw6
OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQs
IE4KICAgICAgICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9u
UmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRSZXBsYWNlbWVudCBmb3JXb3Jk
OnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFn
XTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAotICAgIGlmICghbV93YXNEaXNtaXNzZWRF
eHRlcm5hbGx5KQotICAgICAgICBbbV92aWV3LmdldCgpIGhhbmRsZUNvcnJlY3Rpb25QYW5lbFJl
c3VsdDphY2NlcHRlZFJlcGxhY2VtZW50XTsKKwogICAgIGlmIChhY2NlcHRlZFJlcGxhY2VtZW50
KQotICAgICAgICBtX3Jlc3VsdEZvclN5bmNocm9ub3VzRGlzbWlzc2FsLmFkb3B0TlMoW2FjY2Vw
dGVkUmVwbGFjZW1lbnQgY29weV0pOwotICAgIAotICAgIFttX3Jlc3VsdENvbmRpdGlvbi5nZXQo
KSBsb2NrXTsKLSAgICBtX2lzRGlzbWlzc2luZyA9IGZhbHNlOwotICAgIFttX3Jlc3VsdENvbmRp
dGlvbi5nZXQoKSBzaWduYWxdOwotICAgIFttX3Jlc3VsdENvbmRpdGlvbi5nZXQoKSB1bmxvY2td
OworICAgICAgICBtX3Jlc3VsdEZvckRpc21pc3NhbC5hZG9wdE5TKFthY2NlcHRlZFJlcGxhY2Vt
ZW50IGNvcHldKTsKIH0KIAogI2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5NTU0
MDM2NjRjMDg0ZDJmYmQ5ZTE0MzBjMTViNzIyZmEyM2U2M2RlLi5jMTM3Njg4YzEyNjRkNGU0MjY1
MGU4ZDIyNmM3YTQ2NWY2M2Y3MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEt
MDUtMTIgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVncmVzc2lvbiBjYXVzZWQgYnkgY2hhbmdlc2V0IDg2
MjgxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDcx
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTQyNzk3MD4KKworICAgICAgICBSZW1vdmVkIHRo
ZSBjb25kaXRpb24gdmFyaWFibGUuIEl0J3MgZ3VyYW50ZWVkIHRoYXQgaGFuZGxlQWNjZXB0ZWRS
ZXBsYWNlbWVudCgpIHRyaWdnZXJlZCBieQorICAgICAgICBkaXNtaXNzSW50ZXJuYWwoKSB3aWxs
IHJldHVybiBiZWZvcmUgZGlzbWlzc0ludGVybmFsKCkgcmV0dXJucy4gU28gd2UgZG9uJ3QgbmVl
ZCB0byB1c2UgdGhlCisgICAgICAgIGNvbmRpdGlvbiB0byBjb29yZGluYXRlIGJldHdlZW4gdGhl
c2UgdHdvIGZ1bmN0aW9uLgorCisgICAgICAgIHNpbmNlIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1l
bnQoKSBjYW4gYmUgaW52b2tlZCBieSBBcHBLaXQgb24gZGlmZmVyZW50IHRocmVhZCB3aXRob3V0
IGdvaW5nCisgICAgICAgIHRocm91Z2ggZGlzbWlzc0ludGVybmFsKCkuIFdlIGFkZGVkIG1fY2Fs
bGJhY2tMb2NrIHRvIHByZXZlbnQgcmFjaW5nLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q29ycmVjdGlvblBhbmVsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBh
bmVsLm1tOgorICAgICAgICAoQ29ycmVjdGlvblBhbmVsOjpDb3JyZWN0aW9uUGFuZWwpOgorICAg
ICAgICAoQ29ycmVjdGlvblBhbmVsOjpzaG93KToKKyAgICAgICAgKENvcnJlY3Rpb25QYW5lbDo6
ZGlzbWlzc1Nvb24pOgorICAgICAgICAoQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwp
OgorICAgICAgICAoQ29ycmVjdGlvblBhbmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KToK
KwogMjAxMS0wNS0xMCAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmgKaW5kZXggYWQ3N2UyMGU2ZDJhNGUwMjZiMGUyYjFm
NGQ4NDRlZmIxNzkzMzgzZS4uYTI3Yzc1Yzk2ZWUzN2QxMDkzYmYwYzZiZmM3OTYwMDkzYjUyNzE4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFu
ZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5o
CkBAIC01Miw5ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dhc0Rpc21pc3NlZEV4dGVy
bmFsbHk7CiAgICAgV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCBt
X3JlYXNvbkZvckRpc21pc3Npbmc7CiAgICAgUmV0YWluUHRyPFdLVmlldz4gbV92aWV3OwotICAg
IFJldGFpblB0cjxOU1N0cmluZz4gbV9yZXN1bHRGb3JTeW5jaHJvbm91c0Rpc21pc3NhbDsKLSAg
ICBSZXRhaW5QdHI8TlNDb25kaXRpb24+IG1fcmVzdWx0Q29uZGl0aW9uOwotICAgIGJvb2wgbV9p
c0Rpc21pc3Npbmc7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtX3Jlc3VsdEZvckRpc21pc3Nh
bDsKKyAgICBSZXRhaW5QdHI8TlNMb2NrPiBtX2NhbGxiYWNrTG9jazsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9D
b3JyZWN0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rp
b25QYW5lbC5tbQppbmRleCA3MjI2MmUxYzNlNDFlNTRjODA1ODFmY2JlZTEyYTkzYjkzMjVlNDYx
Li5iODgwNGFmZGFkYjZhYzU3YzczNTA2ZTgzZWE4NGE2YzQ4YTllMTQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQpAQCAtNTIsOCArNTIs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIENvcnJlY3Rpb25QYW5lbDo6Q29ycmVjdGlvblBhbmVs
KCkKICAgICA6IG1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxseShmYWxzZSkKICAgICAsIG1fcmVhc29u
Rm9yRGlzbWlzc2luZyhSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsSWdub3JlZCkK
LSAgICAsIG1fcmVzdWx0Q29uZGl0aW9uKEFkb3B0TlMsIFtbTlNDb25kaXRpb24gYWxsb2NdIGlu
aXRdKQotICAgICwgbV9pc0Rpc21pc3NpbmcoZmFsc2UpCisgICAgLCBtX2NhbGxiYWNrTG9jayhB
ZG9wdE5TLCBbW05TTG9jayBhbGxvY10gaW5pdF0pCiB7CiB9CiAKQEAgLTg2LDcgKzg1LDYgQEAg
dm9pZCBDb3JyZWN0aW9uUGFuZWw6OnNob3coV0tWaWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJ
bmZvOjpQYW5lbFR5cGUgdHlwZSwgY28KICAgICBbc3BlbGxDaGVja2VyIHNob3dDb3JyZWN0aW9u
SW5kaWNhdG9yT2ZUeXBlOmluZGljYXRvclR5cGUgcHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0
cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJpbmdzOmFsdGVybmF0aXZlU3RyaW5ncyBmb3JT
dHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nIHZpZXc6bV92aWV3LmdldCgp
IGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcqIGFjY2VwdGVkU3RyaW5nKSB7CiAgICAgICAg
IGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoYWNjZXB0ZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5n
QXNOU1N0cmluZywgcmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nLCBpbmRpY2F0b3JUeXBlKTsK
ICAgICB9XTsKLSAgICBtX2lzRGlzbWlzc2luZyA9IGZhbHNlOwogfQogCiB2b2lkIENvcnJlY3Rp
b25QYW5lbDo6ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNv
bikKQEAgLTk2LDEyICs5NCw4IEBAIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzKFJlYXNv
bkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwgcmVhc29uKQogCiBTdHJpbmcgQ29ycmVjdGlv
blBhbmVsOjpkaXNtaXNzU29vbihSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJl
YXNvbikKIHsKLSAgICBkaXNtaXNzSW50ZXJuYWwocmVhc29uLCB0cnVlKTsKLSAgICBbbV9yZXN1
bHRDb25kaXRpb24uZ2V0KCkgbG9ja107Ci0gICAgd2hpbGUgKG1faXNEaXNtaXNzaW5nKQotICAg
ICAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgd2FpdF07Ci0gICAgW21fcmVzdWx0Q29uZGl0
aW9uLmdldCgpIHVubG9ja107Ci0gICAgcmV0dXJuIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNt
aXNzYWwuZ2V0KCk7CisgICAgZGlzbWlzcyhyZWFzb24pOworICAgIHJldHVybiBtX3Jlc3VsdEZv
ckRpc21pc3NhbC5nZXQoKTsKIH0KIAogdm9pZCBDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3NJbnRl
cm5hbChSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbiwgYm9vbCBkaXNt
aXNzaW5nRXh0ZXJuYWxseSkKQEAgLTEwOSwxMiArMTAzLDEwIEBAIHZvaWQgQ29ycmVjdGlvblBh
bmVsOjpkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCBy
ZWFzb24sCiAgICAgaWYgKCFpc1Nob3dpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9p
c0Rpc21pc3NpbmcgPSB0cnVlOwogICAgIG1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxseSA9IGRpc21p
c3NpbmdFeHRlcm5hbGx5OwogICAgIG1fcmVhc29uRm9yRGlzbWlzc2luZyA9IHJlYXNvbjsKLSAg
ICBtX3Jlc3VsdEZvclN5bmNocm9ub3VzRGlzbWlzc2FsLmNsZWFyKCk7CisgICAgbV9yZXN1bHRG
b3JEaXNtaXNzYWwuY2xlYXIoKTsKICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hl
Y2tlcl0gZGlzbWlzc0NvcnJlY3Rpb25JbmRpY2F0b3JGb3JWaWV3Om1fdmlldy5nZXQoKV07Ci0g
ICAgbV92aWV3LmNsZWFyKCk7CiB9CiAKIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRBdXRv
Y29ycmVjdGlvblJlc3BvbnNlKFdLVmlldyogdmlldywgTlNDb3JyZWN0aW9uUmVzcG9uc2UgcmVz
cG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRTdHJpbmcpCkBAIC0xMjQsOCArMTE2LDIwIEBAIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpy
ZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdLVmlldyogdmlldywgTlNDb3JyZWN0aW9uUmVz
CiAKIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3Ry
aW5nKiBhY2NlcHRlZFJlcGxhY2VtZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBw
cm9wb3NlZFJlcGxhY2VtZW50LCAgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSBjb3JyZWN0aW9u
SW5kaWNhdG9yVHlwZSkKIHsKKyAgICBOU0ludGVnZXIgZG9jdW1lbnRUYWc7CisgICAgaWYgKCFb
bV9jYWxsYmFja0xvY2suZ2V0KCkgdHJ5TG9ja10pCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
bV92aWV3KSB7CisgICAgICAgIGRvY3VtZW50VGFnID0gW21fdmlldy5nZXQoKSBzcGVsbENoZWNr
ZXJEb2N1bWVudFRhZ107CisgICAgICAgIFttX3ZpZXcuZ2V0KCkgaGFuZGxlQ29ycmVjdGlvblBh
bmVsUmVzdWx0OmFjY2VwdGVkUmVwbGFjZW1lbnRdOworICAgICAgICBtX3ZpZXcuY2xlYXIoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBbbV9jYWxsYmFja0xvY2suZ2V0KCkgdW5sb2NrXTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBbbV9jYWxsYmFja0xvY2suZ2V0KCkgdW5sb2NrXTsK
KwogICAgIE5TU3BlbGxDaGVja2VyKiBzcGVsbENoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hh
cmVkU3BlbGxDaGVja2VyXTsKLSAgICBOU0ludGVnZXIgZG9jdW1lbnRUYWcgPSBbbV92aWV3Lmdl
dCgpIHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsKICAgICAKICAgICBzd2l0Y2ggKGNvcnJlY3Rp
b25JbmRpY2F0b3JUeXBlKSB7CiAgICAgY2FzZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlRGVm
YXVsdDoKQEAgLTE0NywxNiArMTUxLDkgQEAgdm9pZCBDb3JyZWN0aW9uUGFuZWw6OmhhbmRsZUFj
Y2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQsIE4KICAgICAg
ICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VB
Y2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2Vk
IGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFnXTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQotICAgIAotICAgIGlmICghbV93YXNEaXNtaXNzZWRFeHRlcm5hbGx5
KQotICAgICAgICBbbV92aWV3LmdldCgpIGhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdDphY2Nl
cHRlZFJlcGxhY2VtZW50XTsKKwogICAgIGlmIChhY2NlcHRlZFJlcGxhY2VtZW50KQotICAgICAg
ICBtX3Jlc3VsdEZvclN5bmNocm9ub3VzRGlzbWlzc2FsLmFkb3B0TlMoW2FjY2VwdGVkUmVwbGFj
ZW1lbnQgY29weV0pOwotICAgIAotICAgIFttX3Jlc3VsdENvbmRpdGlvbi5nZXQoKSBsb2NrXTsK
LSAgICBtX2lzRGlzbWlzc2luZyA9IGZhbHNlOwotICAgIFttX3Jlc3VsdENvbmRpdGlvbi5nZXQo
KSBzaWduYWxdOwotICAgIFttX3Jlc3VsdENvbmRpdGlvbi5nZXQoKSB1bmxvY2tdOworICAgICAg
ICBtX3Jlc3VsdEZvckRpc21pc3NhbC5hZG9wdE5TKFthY2NlcHRlZFJlcGxhY2VtZW50IGNvcHld
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93365</attachid>
            <date>2011-05-12 16:40:49 -0700</date>
            <delta_ts>2011-05-12 17:32:44 -0700</delta_ts>
            <desc>Patch (v3)</desc>
            <filename>bug-60712-20110512164048.patch</filename>
            <type>text/plain</type>
            <size>19016</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYzNDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYWUyOTczZWZjNzEwZjNh
ODViNDNiNTRlODA2ZTNlMmFmMDU3NTg2Li44NTBlNTBjMjI4Y2E4MjAyZDgyODQ2NGM2ZGE4ODM1
YWFiYjcyMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMTIgIEppYSBQ
dSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVncmVzc2lvbiBjYXVzZWQgYnkgY2hhbmdlc2V0IDg2MjgxCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDcxMgorCisgICAgICAg
IENoYW5nZWQgd29yZGluZyBpbiBzb21lIHRlc3RzIHRvIHJlZmxlY3QgQXBwS2l0IFVJIGNoYW5n
ZS4KKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8tZW5k
LW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
YXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1s
OgorCiAyMDExLTA1LTEyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBdHRlbXB0ZWQgV2luQ2Fpcm8gYnVpbGQgZml4IGFmdGVyIHI4NjE2OSwgcGFydCBJSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0
ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1sIGIvU291cmNlL1dlYkNvcmUv
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0ZS10by1lbmQtb2Ytd29yZC10by1zaG93
LXJldmVyc2lvbi5odG1sCmluZGV4IDI0MmZjYjI3MDUxZjVmMjU1NDE5ODUxZTIwZTkwYTY5MDJm
OGE4MTUuLmFhZDEzNzY4ODMyODRkYWY4NTNlOTZkZTI5ZGQ5MzlkOGViN2M1ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8t
ZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGVsZXRlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ct
cmV2ZXJzaW9uLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXY+PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgcmV2ZXJz
aW9uIHBhbmVsIGlzIHNob3duIHdoZW4gdXNlciBtb3ZlcyBjYXJyZXQgdG8gcHJldmlvdXNseSBj
b3JyZWN0ZWQgd29yZCB1c2luZyBkZWxldGUga2V5LjwvcD4KLTxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBFU0Mga2V5LCB0aGVuIHNwYWNlIGtleS4gWW91IHNob3Vs
ZCBzZWUgdGhlIHBocmFzZSAidGhlIG1lc2FnZSIuIDwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBkb3duIGtleSBmb2xsb3dlZCBieSByZXR1cm4ga2V5LiBZ
b3Ugc2hvdWxkIHNlZSB0aGUgcGhyYXNlICJ0aGUgbWVzYWdlIi4gPC9wPgogPHAgIHN0eWxlPSJj
b2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmlj
IHNwZWxsIGNoZWNraW5nIGRhdGEuIElmIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5IGZyZXF1ZW50
bHkgcmV2ZXJ0ICdtZXNzYWdlJyB0byAnbWVzYWdlJy4gVG8gZml4IHRoaXMsIHJlbW92ZSBhbGwg
ZmlsZXMgaW4gfi9MaWJyYXJ5L1NwZWxsaW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVsbC5zZXJ2aWNl
IHByb2Nlc3MuPC9wPgogPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0
aW5nIj4KIDxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93
LXJldmVyc2lvbi5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0
aW9uL21vdmUtdG8tZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbAppbmRleCA1NTc5
OTE1Y2ZiZTVhNzU4ODIyOWVkMGYxOWUxNTE5YTU5MDIwMDhjLi5jZTAxNzBhOTI3YWZkM2ZmYjNi
NmQ3ZGVlN2I0YjkzMmEwOTUzM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwt
dGVzdHMvYXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lv
bi5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9t
b3ZlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ctcmV2ZXJzaW9uLmh0bWwKQEAgLTMyLDcgKzMyLDcg
QEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXY+PHA+VGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgcmV2ZXJzaW9uIHBhbmVsIGlzIHNob3duIHdoZW4gdXNlciBt
b3ZlcyBjYXJyZXQgdG8gcHJldmlvdXNseSBjb3JyZWN0ZWQgd29yZDwvcD4KLTxwPkFmdGVyIHNl
ZWluZyB0aGUgcmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBFU0Mga2V5LCB0aGVuIHNwYWNlIGtleS4g
WW91IHNob3VsZCBzZWUgdGhlIHBocmFzZSAidGhlIG1lc2FnZSIuIDwvcD4KKzxwPkFmdGVyIHNl
ZWluZyB0aGUgcmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBkb3duIGtleSBmb2xsb3dlZCBieSByZXR1
cm4ga2V5LiBZb3Ugc2hvdWxkIHNlZSB0aGUgcGhyYXNlICJ0aGUgbWVzYWdlIi4gPC9wPgogPHAg
IHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2Vy
IHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIElmIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5
IGZyZXF1ZW50bHkgcmV2ZXJ0ICdtZXNzYWdlJyB0byAnbWVzYWdlJy4gVG8gZml4IHRoaXMsIHJl
bW92ZSBhbGwgZmlsZXMgaW4gfi9MaWJyYXJ5L1NwZWxsaW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVs
bC5zZXJ2aWNlIHByb2Nlc3MuPC9wPgogPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNs
YXNzPSJlZGl0aW5nIj4KIDxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZjkzYjg3MDdmNzNjZjMwZjdmNjMxYzg5YTNhYmZjNGM3MWNmZDk0Yi4uNDI1NmE2ZWJlMjE3
ZTFiZjA4ODRkMjQyM2RkNmQ5OTg2NzU5Zjg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI5IEBACisyMDExLTA1LTEyICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gY2F1c2VkIGJ5
IGNoYW5nZXNldCA4NjI4MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjA3MTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk0Mjc5NzA+CisKKyAgICAg
ICAgUmVtb3ZlZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlLiBbTlNTcGVsbENoZWNrZXIgZGlzbWlz
c0NvcnJlY3Rpb25JbmRpY2F0b3JGb3JWaWV3Ol0gaXMgYmxvY2tpbmcuCisgICAgICAgIFNvIGhh
bmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoKSB0cmlnZ2VyZWQgYnkgZGlzbWlzc0ludGVybmFsKCkg
d2lsbCByZXR1cm4gYmVmb3JlIGRpc21pc3NJbnRlcm5hbCgpCisgICAgICAgIHJldHVybnMuIFNv
IHdlIGRvbid0IG5lZWQgdG8gdXNlIHRoZSBjb25kaXRpb24gdG8gY29vcmRpbmF0ZSBiZXR3ZWVu
IHRoZXNlIHR3byBmdW5jdGlvbi4gSW4gZmFjdCwKKyAgICAgICAgYWxsIGNhbGxiYWNrcyBhcmUg
ZGVsaXZlcmVkIG9uIG1haW4gdGhyZWFkLiBXZSBkb24ndCByZWFsbHkgbmVlZCBhbnkgbG9ja2lu
ZyBoZXJlLgorCisgICAgICAgIFNpbmNlIG5vdyB3ZSBkb24ndCBoYXZlIGRpc3RpbmNhdGlvbiBi
ZXR3ZWVuIGRpc21pc3MoKSBhbmQgZGlzbWlzc1Nvb24oKS4gZGlzbWlzc1Nvb24oKSBoYXMKKyAg
ICAgICAgYmVlbiByZW1vdmVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlv
blBhbmVsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tOgor
ICAgICAgICAoQ29ycmVjdGlvblBhbmVsOjpDb3JyZWN0aW9uUGFuZWwpOgorICAgICAgICAoQ29y
cmVjdGlvblBhbmVsOjpzaG93KToKKyAgICAgICAgKENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzcyk6
CisgICAgICAgIChDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3NJbnRlcm5hbCk6CisgICAgICAgIChD
b3JyZWN0aW9uUGFuZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24pOgorCiAyMDExLTA1LTEyICBOaWtvbGFzIFpp
bW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
Q29ycmVjdGlvblBhbmVsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3Jy
ZWN0aW9uUGFuZWwuaAppbmRleCA3MWUyMDcyMTg1NzlkNzUzNDNhNDMzMmZhZjVhZmRmYTAyOTNj
MTc4Li4xODdhMGE4Y2VlYzBkNmZmMzAzMTE2NGM5OWU0MTY4NjJhYzU5NTk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwuaApAQCAt
MzksMjEgKzM5LDE4IEBAIHB1YmxpYzoKICAgICBDb3JyZWN0aW9uUGFuZWwoKTsKICAgICB+Q29y
cmVjdGlvblBhbmVsKCk7CiAgICAgdm9pZCBzaG93KFdlYlZpZXcqLCBXZWJDb3JlOjpDb3JyZWN0
aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRp
bmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJu
YXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOwotICAgIHZvaWQgZGlzbWlzcyhXZWJDb3JlOjpSZWFz
b25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKTsKLSAgICBTdHJpbmcgZGlzbWlzc1Nvb24o
V2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCk7CisgICAgU3RyaW5n
IGRpc21pc3MoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCk7CiAg
ICAgc3RhdGljIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXZWJWaWV3KiwgTlND
b3JyZWN0aW9uUmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNTaG93aW5n
KCkgY29uc3QgeyByZXR1cm4gbV92aWV3OyB9Ci0gICAgdm9pZCBkaXNtaXNzSW50ZXJuYWwoV2Vi
Q29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCwgYm9vbCBkaXNtaXNzaW5n
RXh0ZXJuYWxseSk7CisgICAgU3RyaW5nIGRpc21pc3NJbnRlcm5hbChXZWJDb3JlOjpSZWFzb25G
b3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsLCBib29sIGRpc21pc3NpbmdFeHRlcm5hbGx5KTsK
ICAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVw
bGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVwbGFjZW1l
bnQsIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUpOwogCiAgICAgYm9vbCBtX3dhc0Rpc21pc3Nl
ZEV4dGVybmFsbHk7CiAgICAgV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25Q
YW5lbCBtX3JlYXNvbkZvckRpc21pc3Npbmc7CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IG1fdmll
dzsKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNz
YWw7Ci0gICAgUmV0YWluUHRyPE5TQ29uZGl0aW9uPiBtX3Jlc3VsdENvbmRpdGlvbjsKLSAgICBi
b29sIG1faXNEaXNtaXNzaW5nOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gbV9yZXN1bHRGb3JE
aXNtaXNzYWw7CiB9OwogCiAjZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tCmluZGV4IDM0ODMwM2Nk
MTg1ODE0YWNkM2MyZjA5MTY5NjI0OTRkMmU1MmI1YmIuLmExNjY5Mzc0MjZiMDdiMTQ0NmMyOTI3
NzBiM2UzODFkODI5OGUzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW0KQEAgLTQ2LDggKzQ2LDYgQEAgc3RhdGljIGlubGlu
ZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGNvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKENvcnJl
Y3Rpb25QYW5lbEkKIENvcnJlY3Rpb25QYW5lbDo6Q29ycmVjdGlvblBhbmVsKCkKICAgICA6IG1f
d2FzRGlzbWlzc2VkRXh0ZXJuYWxseShmYWxzZSkKICAgICAsIG1fcmVhc29uRm9yRGlzbWlzc2lu
ZyhSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsSWdub3JlZCkKLSAgICAsIG1fcmVz
dWx0Q29uZGl0aW9uKEFkb3B0TlMsIFtbTlNDb25kaXRpb24gYWxsb2NdIGluaXRdKQotICAgICwg
bV9pc0Rpc21pc3NpbmcoZmFsc2UpCiB7CiB9CiAKQEAgLTc5LDM1ICs3NywyMyBAQCB2b2lkIENv
cnJlY3Rpb25QYW5lbDo6c2hvdyhXZWJWaWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQ
YW5lbFR5cGUgdHlwZSwgYwogICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2Vy
XSBzaG93Q29ycmVjdGlvbkluZGljYXRvck9mVHlwZTppbmRpY2F0b3JUeXBlIHByaW1hcnlTdHJp
bmc6cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nIGFsdGVybmF0aXZlU3RyaW5nczphbHRlcm5h
dGl2ZVN0cmluZ3MgZm9yU3RyaW5nSW5SZWN0Olt2aWV3IGNvbnZlcnRSZWN0OmJvdW5kaW5nQm94
T2ZSZXBsYWNlZFN0cmluZyBmcm9tVmlldzpuaWxdIHZpZXc6bV92aWV3LmdldCgpIGNvbXBsZXRp
b25IYW5kbGVyOl4oTlNTdHJpbmcqIGFjY2VwdGVkU3RyaW5nKSB7CiAgICAgICAgIGhhbmRsZUFj
Y2VwdGVkUmVwbGFjZW1lbnQoYWNjZXB0ZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nQXNOU1N0cmlu
ZywgcmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nLCBpbmRpY2F0b3JUeXBlKTsKICAgICB9XTsK
LSAgICBtX2lzRGlzbWlzc2luZyA9IGZhbHNlOwogfQogCi12b2lkIENvcnJlY3Rpb25QYW5lbDo6
ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbikKK1N0cmlu
ZyBDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25Q
YW5lbCByZWFzb24pCiB7Ci0gICAgZGlzbWlzc0ludGVybmFsKHJlYXNvbiwgdHJ1ZSk7CisgICAg
cmV0dXJuIGRpc21pc3NJbnRlcm5hbChyZWFzb24sIHRydWUpOwogfQogCi1TdHJpbmcgQ29ycmVj
dGlvblBhbmVsOjpkaXNtaXNzU29vbihSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVs
IHJlYXNvbikKLXsKLSAgICBkaXNtaXNzSW50ZXJuYWwocmVhc29uLCB0cnVlKTsKLSAgICBbbV9y
ZXN1bHRDb25kaXRpb24uZ2V0KCkgbG9ja107Ci0gICAgd2hpbGUgKG1faXNEaXNtaXNzaW5nKQot
ICAgICAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgd2FpdF07Ci0gICAgW21fcmVzdWx0Q29u
ZGl0aW9uLmdldCgpIHVubG9ja107Ci0gICAgcmV0dXJuIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNE
aXNtaXNzYWwuZ2V0KCk7Ci19Ci0KLXZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJu
YWwoUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24sIGJvb2wgZGlzbWlz
c2luZ0V4dGVybmFsbHkpCitTdHJpbmcgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwo
UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24sIGJvb2wgZGlzbWlzc2lu
Z0V4dGVybmFsbHkpCiB7CiAgICAgaWYgKCFpc1Nob3dpbmcoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgICAgICAKLSAgICBtX2lzRGlzbWlzc2luZyA9IHRydWU7CisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKyAgICAKICAgICBtX3dhc0Rpc21pc3NlZEV4dGVybmFsbHkgPSBkaXNtaXNzaW5nRXh0
ZXJuYWxseTsKICAgICBtX3JlYXNvbkZvckRpc21pc3NpbmcgPSByZWFzb247Ci0gICAgbV9yZXN1
bHRGb3JTeW5jaHJvbm91c0Rpc21pc3NhbC5jbGVhcigpOworICAgIG1fcmVzdWx0Rm9yRGlzbWlz
c2FsLmNsZWFyKCk7CiAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRp
c21pc3NDb3JyZWN0aW9uSW5kaWNhdG9yRm9yVmlldzptX3ZpZXcuZ2V0KCldOwotICAgIG1fdmll
dy5jbGVhcigpOworICAgIHJldHVybiBtX3Jlc3VsdEZvckRpc21pc3NhbC5nZXQoKTsKIH0KIAog
dm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV2ViVmll
dyogdmlldywgTlNDb3JyZWN0aW9uUmVzcG9uc2UgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpCkBAIC0xMTYsNyAr
MTAyLDEwIEBAIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3Bv
bnNlKFdlYlZpZXcqIHZpZXcsIE5TQ29ycmVjdGlvblJlCiB9CiAKIHZvaWQgQ29ycmVjdGlvblBh
bmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2Vt
ZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxhY2VtZW50LCAg
TlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSBjb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSkKLXsKK3sg
ICAgCisgICAgaWYgKCFtX3ZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBOU1NwZWxs
Q2hlY2tlciogc3BlbGxDaGVja2VyID0gW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tl
cl07CiAgICAgTlNJbnRlZ2VyIGRvY3VtZW50VGFnID0gW21fdmlldy5nZXQoKSBzcGVsbENoZWNr
ZXJEb2N1bWVudFRhZ107CiAKQEAgLTE0MSwxNSArMTMwLDEwIEBAIHZvaWQgQ29ycmVjdGlvblBh
bmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2Vt
ZW50LCBOCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKLSAgICBpZiAoIW1fd2FzRGlzbWlz
c2VkRXh0ZXJuYWxseSkKLSAgICAgICAgW21fdmlldy5nZXQoKSBoYW5kbGVDb3JyZWN0aW9uUGFu
ZWxSZXN1bHQ6YWNjZXB0ZWRSZXBsYWNlbWVudF07CisgICAgW21fdmlldy5nZXQoKSBoYW5kbGVD
b3JyZWN0aW9uUGFuZWxSZXN1bHQ6YWNjZXB0ZWRSZXBsYWNlbWVudF07CisgICAgbV92aWV3LmNs
ZWFyKCk7CiAgICAgaWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCi0gICAgICAgIG1fcmVzdWx0Rm9y
U3luY2hyb25vdXNEaXNtaXNzYWwuYWRvcHROUyhbYWNjZXB0ZWRSZXBsYWNlbWVudCBjb3B5XSk7
Ci0gICAgCi0gICAgW21fcmVzdWx0Q29uZGl0aW9uLmdldCgpIGxvY2tdOwotICAgIG1faXNEaXNt
aXNzaW5nID0gZmFsc2U7Ci0gICAgW21fcmVzdWx0Q29uZGl0aW9uLmdldCgpIHNpZ25hbF07Ci0g
ICAgW21fcmVzdWx0Q29uZGl0aW9uLmdldCgpIHVubG9ja107CisgICAgICAgIG1fcmVzdWx0Rm9y
RGlzbWlzc2FsLmFkb3B0TlMoW2FjY2VwdGVkUmVwbGFjZW1lbnQgY29weV0pOwogfQogCiAjZW5k
aWYgLy8gIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGEwY2YzYWJjNDA3MjA2MDA1NTgyMTA3ZjRhN2E4
OGMwYzQ2ZTQ4NWYuLjI1OTdlNmU5YzBhNjEwM2YyNzU4NDkyNzJlNTEzZTRjYTIxYmY0YjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0KQEAgLTg3NSw3ICs4NzUsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlzbWlzc0Nv
cnJlY3Rpb25QYW5lbChSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsCiAKIFN0cmlu
ZyBXZWJFZGl0b3JDbGllbnQ6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFJlYXNvbkZvckRp
c21pc3NpbmdDb3JyZWN0aW9uUGFuZWwgcmVhc29uRm9yRGlzbWlzc2luZykKIHsKLSAgICByZXR1
cm4gbV9jb3JyZWN0aW9uUGFuZWwuZGlzbWlzc1Nvb24ocmVhc29uRm9yRGlzbWlzc2luZyk7Cisg
ICAgcmV0dXJuIG1fY29ycmVjdGlvblBhbmVsLmRpc21pc3MocmVhc29uRm9yRGlzbWlzc2luZyk7
CiB9CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNl
KEVkaXRvckNsaWVudDo6QXV0b2NvcnJlY3Rpb25SZXNwb25zZVR5cGUgcmVzcG9uc2VUeXBlLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3Ry
aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDk1NTQwMzY2NGMwODRkMmZiZDllMTQzMGMxNWI3MjJmYTIzZTYz
ZGUuLjY5MjczNWI0MGI0NzhiYjg4NWMzZDY3N2U1YjMwNzIzYTljZmMzMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOSBAQAorMjAxMS0wNS0xMiAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdyZXNzaW9u
IGNhdXNlZCBieSBjaGFuZ2VzZXQgODYyODEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYwNzEyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85NDI3OTcw
PgorCisgICAgICAgIFJlbW92ZWQgdGhlIGNvbmRpdGlvbiB2YXJpYWJsZS4gW05TU3BlbGxDaGVj
a2VyIGRpc21pc3NDb3JyZWN0aW9uSW5kaWNhdG9yRm9yVmlldzpdIGlzIGJsb2NraW5nLgorICAg
ICAgICBTbyBoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KCkgdHJpZ2dlcmVkIGJ5IGRpc21pc3NJ
bnRlcm5hbCgpIHdpbGwgcmV0dXJuIGJlZm9yZSBkaXNtaXNzSW50ZXJuYWwoKQorICAgICAgICBy
ZXR1cm5zLiBTbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSB0aGUgY29uZGl0aW9uIHRvIGNvb3JkaW5h
dGUgYmV0d2VlbiB0aGVzZSB0d28gZnVuY3Rpb24uIEluIGZhY3QsCisgICAgICAgIGFsbCBjYWxs
YmFja3MgYXJlIGRlbGl2ZXJlZCBvbiBtYWluIHRocmVhZC4gV2UgZG9uJ3QgcmVhbGx5IG5lZWQg
YW55IGxvY2tpbmcgaGVyZS4KKworICAgICAgICBTaW5jZSBub3cgd2UgZG9uJ3QgaGF2ZSBkaXN0
aW5jYXRpb24gYmV0d2VlbiBkaXNtaXNzKCkgYW5kIGRpc21pc3NTb29uKCkuIGRpc21pc3NTb29u
KCkgaGFzCisgICAgICAgIGJlZW4gcmVtb3ZlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvQ29y
cmVjdGlvblBhbmVsLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwu
bW06CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6Q29ycmVjdGlvblBhbmVsKToK
KyAgICAgICAgKFdlYktpdDo6Q29ycmVjdGlvblBhbmVsOjpzaG93KToKKyAgICAgICAgKFdlYktp
dDo6Q29ycmVjdGlvblBhbmVsOjpkaXNtaXNzKToKKyAgICAgICAgKFdlYktpdDo6Q29ycmVjdGlv
blBhbmVsOjpkaXNtaXNzSW50ZXJuYWwpOgorICAgICAgICAoV2ViS2l0OjpDb3JyZWN0aW9uUGFu
ZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQpOgorCiAyMDExLTA1LTEwICBUb255IEdlbnRp
bGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tCmluZGV4IGY1N2YwZDRmNmE4YzU1MGVjYjdkODQxYjRhNDVkNTI1NmY0NDBmOGEu
LmVmYWUxOTAxY2ZjMWE2YTg1NDE1MjFmNzUzMWRjNTk4ZGNjNzNkZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC00MzIs
NyArNDMyLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChS
ZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHIKIFN0cmluZyBQYWdlQ2xpZW50SW1w
bDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2lu
Z0NvcnJlY3Rpb25QYW5lbCByZWFzb24pCiB7CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQotICAgIHJldHVybiBtX2NvcnJlY3Rpb25QYW5lbC5kaXNtaXNzU29vbihyZWFz
b24pOworICAgIHJldHVybiBtX2NvcnJlY3Rpb25QYW5lbC5kaXNtaXNzKHJlYXNvbik7CiAjZWxz
ZQogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmgKaW5kZXggYWQ3N2UyMGU2ZDJhNGUwMjZiMGUyYjFm
NGQ4NDRlZmIxNzkzMzgzZS4uNjY3OTNhOTc0ODYyYmQwMmY1YmYzNzU1ZDZlYWVmNDNhNTBkY2Ri
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFu
ZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5o
CkBAIC00MCwyMSArNDAsMTggQEAgcHVibGljOgogICAgIENvcnJlY3Rpb25QYW5lbCgpOwogICAg
IH5Db3JyZWN0aW9uUGFuZWwoKTsKICAgICB2b2lkIHNob3coV0tWaWV3KiwgV2ViQ29yZTo6Q29y
cmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJv
dW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFs
dGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKTsKLSAgICB2b2lkIGRpc21pc3MoV2ViQ29yZTo6
UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCk7Ci0gICAgU3RyaW5nIGRpc21pc3NT
b29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpOworICAgIFN0
cmluZyBkaXNtaXNzKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwp
OwogICAgIHN0YXRpYyB2b2lkIHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tWaWV3Kiwg
TlNDb3JyZWN0aW9uUmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNTaG93
aW5nKCkgY29uc3QgeyByZXR1cm4gbV92aWV3OyB9Ci0gICAgdm9pZCBkaXNtaXNzSW50ZXJuYWwo
V2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCwgYm9vbCBkaXNtaXNz
aW5nRXh0ZXJuYWxseSk7CisgICAgU3RyaW5nIGRpc21pc3NJbnRlcm5hbChXZWJDb3JlOjpSZWFz
b25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsLCBib29sIGRpc21pc3NpbmdFeHRlcm5hbGx5
KTsKICAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVk
UmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVwbGFj
ZW1lbnQsIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUpOwogCiAgICAgYm9vbCBtX3dhc0Rpc21p
c3NlZEV4dGVybmFsbHk7CiAgICAgV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rp
b25QYW5lbCBtX3JlYXNvbkZvckRpc21pc3Npbmc7CiAgICAgUmV0YWluUHRyPFdLVmlldz4gbV92
aWV3OwotICAgIFJldGFpblB0cjxOU1N0cmluZz4gbV9yZXN1bHRGb3JTeW5jaHJvbm91c0Rpc21p
c3NhbDsKLSAgICBSZXRhaW5QdHI8TlNDb25kaXRpb24+IG1fcmVzdWx0Q29uZGl0aW9uOwotICAg
IGJvb2wgbV9pc0Rpc21pc3Npbmc7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtX3Jlc3VsdEZv
ckRpc21pc3NhbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQppbmRleCA3MjI2MmUxYzNlNDFl
NTRjODA1ODFmY2JlZTEyYTkzYjkzMjVlNDYxLi45ZDY4YjNiMDc5NDU1YTY5MTEyNDA3Y2E3NzE3
N2NjOTczMTBhNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0Nv
cnJlY3Rpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJl
Y3Rpb25QYW5lbC5tbQpAQCAtNTIsOCArNTIsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIENvcnJl
Y3Rpb25QYW5lbDo6Q29ycmVjdGlvblBhbmVsKCkKICAgICA6IG1fd2FzRGlzbWlzc2VkRXh0ZXJu
YWxseShmYWxzZSkKICAgICAsIG1fcmVhc29uRm9yRGlzbWlzc2luZyhSZWFzb25Gb3JEaXNtaXNz
aW5nQ29ycmVjdGlvblBhbmVsSWdub3JlZCkKLSAgICAsIG1fcmVzdWx0Q29uZGl0aW9uKEFkb3B0
TlMsIFtbTlNDb25kaXRpb24gYWxsb2NdIGluaXRdKQotICAgICwgbV9pc0Rpc21pc3NpbmcoZmFs
c2UpCiB7CiB9CiAKQEAgLTg2LDM1ICs4NCwyMyBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6c2hv
dyhXS1ZpZXcqIHZpZXcsIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0eXBlLCBjbwog
ICAgIFtzcGVsbENoZWNrZXIgc2hvd0NvcnJlY3Rpb25JbmRpY2F0b3JPZlR5cGU6aW5kaWNhdG9y
VHlwZSBwcmltYXJ5U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBhbHRlcm5hdGl2
ZVN0cmluZ3M6YWx0ZXJuYXRpdmVTdHJpbmdzIGZvclN0cmluZ0luUmVjdDpib3VuZGluZ0JveE9m
UmVwbGFjZWRTdHJpbmcgdmlldzptX3ZpZXcuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0
cmluZyogYWNjZXB0ZWRTdHJpbmcpIHsKICAgICAgICAgaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVu
dChhY2NlcHRlZFN0cmluZywgcmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nLCByZXBsYWNlbWVudFN0
cmluZ0FzTlNTdHJpbmcsIGluZGljYXRvclR5cGUpOwogICAgIH1dOwotICAgIG1faXNEaXNtaXNz
aW5nID0gZmFsc2U7CiB9CiAKLXZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzKFJlYXNvbkZv
ckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwgcmVhc29uKQorU3RyaW5nIENvcnJlY3Rpb25QYW5l
bDo6ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbikKIHsK
LSAgICBkaXNtaXNzSW50ZXJuYWwocmVhc29uLCB0cnVlKTsKKyAgICByZXR1cm4gZGlzbWlzc0lu
dGVybmFsKHJlYXNvbiwgdHJ1ZSk7CiB9CiAKLVN0cmluZyBDb3JyZWN0aW9uUGFuZWw6OmRpc21p
c3NTb29uKFJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwgcmVhc29uKQotewotICAg
IGRpc21pc3NJbnRlcm5hbChyZWFzb24sIHRydWUpOwotICAgIFttX3Jlc3VsdENvbmRpdGlvbi5n
ZXQoKSBsb2NrXTsKLSAgICB3aGlsZSAobV9pc0Rpc21pc3NpbmcpCi0gICAgICAgIFttX3Jlc3Vs
dENvbmRpdGlvbi5nZXQoKSB3YWl0XTsKLSAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgdW5s
b2NrXTsKLSAgICByZXR1cm4gbV9yZXN1bHRGb3JTeW5jaHJvbm91c0Rpc21pc3NhbC5nZXQoKTsK
LX0KLQotdm9pZCBDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3NJbnRlcm5hbChSZWFzb25Gb3JEaXNt
aXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbiwgYm9vbCBkaXNtaXNzaW5nRXh0ZXJuYWxseSkK
K1N0cmluZyBDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3NJbnRlcm5hbChSZWFzb25Gb3JEaXNtaXNz
aW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbiwgYm9vbCBkaXNtaXNzaW5nRXh0ZXJuYWxseSkKIHsK
ICAgICBpZiAoIWlzU2hvd2luZygpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAotICAgIG1faXNEaXNtaXNzaW5nID0gdHJ1ZTsKICAgICBtX3dhc0Rpc21pc3Nl
ZEV4dGVybmFsbHkgPSBkaXNtaXNzaW5nRXh0ZXJuYWxseTsKICAgICBtX3JlYXNvbkZvckRpc21p
c3NpbmcgPSByZWFzb247Ci0gICAgbV9yZXN1bHRGb3JTeW5jaHJvbm91c0Rpc21pc3NhbC5jbGVh
cigpOworICAgIG1fcmVzdWx0Rm9yRGlzbWlzc2FsLmNsZWFyKCk7CiAgICAgW1tOU1NwZWxsQ2hl
Y2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRpc21pc3NDb3JyZWN0aW9uSW5kaWNhdG9yRm9yVmll
dzptX3ZpZXcuZ2V0KCldOwotICAgIG1fdmlldy5jbGVhcigpOworICAgIHJldHVybiBtX3Jlc3Vs
dEZvckRpc21pc3NhbC5nZXQoKTsKIH0KIAogdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1
dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tWaWV3KiB2aWV3LCBOU0NvcnJlY3Rpb25SZXNwb25zZSBy
ZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFN0cmluZykKQEAgLTEyNCw2ICsxMTAsOSBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6
cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXS1ZpZXcqIHZpZXcsIE5TQ29ycmVjdGlvblJl
cwogCiB2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0
cmluZyogYWNjZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyog
cHJvcG9zZWRSZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgY29ycmVjdGlv
bkluZGljYXRvclR5cGUpCiB7CisgICAgaWYgKCFtX3ZpZXcpCisgICAgICAgIHJldHVybjsKKwog
ICAgIE5TU3BlbGxDaGVja2VyKiBzcGVsbENoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVk
U3BlbGxDaGVja2VyXTsKICAgICBOU0ludGVnZXIgZG9jdW1lbnRUYWcgPSBbbV92aWV3LmdldCgp
IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsKICAgICAKQEAgLTE0NywxNiArMTM2LDExIEBAIHZv
aWQgQ29ycmVjdGlvblBhbmVsOjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBh
Y2NlcHRlZFJlcGxhY2VtZW50LCBOCiAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29yZFJl
c3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2VwdGVk
UmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50
V2l0aFRhZzpkb2N1bWVudFRhZ107CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKLSAgICBp
ZiAoIW1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxseSkKLSAgICAgICAgW21fdmlldy5nZXQoKSBoYW5k
bGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQ6YWNjZXB0ZWRSZXBsYWNlbWVudF07CisKKyAgICBbbV92
aWV3LmdldCgpIGhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdDphY2NlcHRlZFJlcGxhY2VtZW50
XTsKKyAgICBtX3ZpZXcuY2xlYXIoKTsKICAgICBpZiAoYWNjZXB0ZWRSZXBsYWNlbWVudCkKLSAg
ICAgICAgbV9yZXN1bHRGb3JTeW5jaHJvbm91c0Rpc21pc3NhbC5hZG9wdE5TKFthY2NlcHRlZFJl
cGxhY2VtZW50IGNvcHldKTsKLSAgICAKLSAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgbG9j
a107Ci0gICAgbV9pc0Rpc21pc3NpbmcgPSBmYWxzZTsKLSAgICBbbV9yZXN1bHRDb25kaXRpb24u
Z2V0KCkgc2lnbmFsXTsKLSAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgdW5sb2NrXTsKKyAg
ICAgICAgbV9yZXN1bHRGb3JEaXNtaXNzYWwuYWRvcHROUyhbYWNjZXB0ZWRSZXBsYWNlbWVudCBj
b3B5XSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93374</attachid>
            <date>2011-05-12 17:32:47 -0700</date>
            <delta_ts>2011-05-12 18:19:23 -0700</delta_ts>
            <desc>Patch (v4)</desc>
            <filename>bug-60712-20110512173246.patch</filename>
            <type>text/plain</type>
            <size>19014</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYzNDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYWUyOTczZWZjNzEwZjNh
ODViNDNiNTRlODA2ZTNlMmFmMDU3NTg2Li44NTBlNTBjMjI4Y2E4MjAyZDgyODQ2NGM2ZGE4ODM1
YWFiYjcyMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMTIgIEppYSBQ
dSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVncmVzc2lvbiBjYXVzZWQgYnkgY2hhbmdlc2V0IDg2MjgxCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDcxMgorCisgICAgICAg
IENoYW5nZWQgd29yZGluZyBpbiBzb21lIHRlc3RzIHRvIHJlZmxlY3QgQXBwS2l0IFVJIGNoYW5n
ZS4KKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8tZW5k
LW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
YXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1s
OgorCiAyMDExLTA1LTEyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBdHRlbXB0ZWQgV2luQ2Fpcm8gYnVpbGQgZml4IGFmdGVyIHI4NjE2OSwgcGFydCBJSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0
ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lvbi5odG1sIGIvU291cmNlL1dlYkNvcmUv
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2RlbGV0ZS10by1lbmQtb2Ytd29yZC10by1zaG93
LXJldmVyc2lvbi5odG1sCmluZGV4IDI0MmZjYjI3MDUxZjVmMjU1NDE5ODUxZTIwZTkwYTY5MDJm
OGE4MTUuLmFhZDEzNzY4ODMyODRkYWY4NTNlOTZkZTI5ZGQ5MzlkOGViN2M1ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kZWxldGUtdG8t
ZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGVsZXRlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ct
cmV2ZXJzaW9uLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXY+PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgcmV2ZXJz
aW9uIHBhbmVsIGlzIHNob3duIHdoZW4gdXNlciBtb3ZlcyBjYXJyZXQgdG8gcHJldmlvdXNseSBj
b3JyZWN0ZWQgd29yZCB1c2luZyBkZWxldGUga2V5LjwvcD4KLTxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBFU0Mga2V5LCB0aGVuIHNwYWNlIGtleS4gWW91IHNob3Vs
ZCBzZWUgdGhlIHBocmFzZSAidGhlIG1lc2FnZSIuIDwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUg
cmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBkb3duIGtleSBmb2xsb3dlZCBieSByZXR1cm4ga2V5LiBZ
b3Ugc2hvdWxkIHNlZSB0aGUgcGhyYXNlICJ0aGUgbWVzYWdlIi4gPC9wPgogPHAgIHN0eWxlPSJj
b2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmlj
IHNwZWxsIGNoZWNraW5nIGRhdGEuIElmIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5IGZyZXF1ZW50
bHkgcmV2ZXJ0ICdtZXNzYWdlJyB0byAnbWVzYWdlJy4gVG8gZml4IHRoaXMsIHJlbW92ZSBhbGwg
ZmlsZXMgaW4gfi9MaWJyYXJ5L1NwZWxsaW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVsbC5zZXJ2aWNl
IHByb2Nlc3MuPC9wPgogPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0
aW5nIj4KIDxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93
LXJldmVyc2lvbi5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0
aW9uL21vdmUtdG8tZW5kLW9mLXdvcmQtdG8tc2hvdy1yZXZlcnNpb24uaHRtbAppbmRleCA1NTc5
OTE1Y2ZiZTVhNzU4ODIyOWVkMGYxOWUxNTE5YTU5MDIwMDhjLi5jZTAxNzBhOTI3YWZkM2ZmYjNi
NmQ3ZGVlN2I0YjkzMmEwOTUzM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwt
dGVzdHMvYXV0b2NvcnJlY3Rpb24vbW92ZS10by1lbmQtb2Ytd29yZC10by1zaG93LXJldmVyc2lv
bi5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9t
b3ZlLXRvLWVuZC1vZi13b3JkLXRvLXNob3ctcmV2ZXJzaW9uLmh0bWwKQEAgLTMyLDcgKzMyLDcg
QEAgZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXY+PHA+VGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgcmV2ZXJzaW9uIHBhbmVsIGlzIHNob3duIHdoZW4gdXNlciBt
b3ZlcyBjYXJyZXQgdG8gcHJldmlvdXNseSBjb3JyZWN0ZWQgd29yZDwvcD4KLTxwPkFmdGVyIHNl
ZWluZyB0aGUgcmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBFU0Mga2V5LCB0aGVuIHNwYWNlIGtleS4g
WW91IHNob3VsZCBzZWUgdGhlIHBocmFzZSAidGhlIG1lc2FnZSIuIDwvcD4KKzxwPkFmdGVyIHNl
ZWluZyB0aGUgcmV2ZXJzaW9uIHBhbmVsLCBwcmVzcyBkb3duIGtleSBmb2xsb3dlZCBieSByZXR1
cm4ga2V5LiBZb3Ugc2hvdWxkIHNlZSB0aGUgcGhyYXNlICJ0aGUgbWVzYWdlIi4gPC9wPgogPHAg
IHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2Vy
IHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIElmIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5
IGZyZXF1ZW50bHkgcmV2ZXJ0ICdtZXNzYWdlJyB0byAnbWVzYWdlJy4gVG8gZml4IHRoaXMsIHJl
bW92ZSBhbGwgZmlsZXMgaW4gfi9MaWJyYXJ5L1NwZWxsaW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVs
bC5zZXJ2aWNlIHByb2Nlc3MuPC9wPgogPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNs
YXNzPSJlZGl0aW5nIj4KIDxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZjkzYjg3MDdmNzNjZjMwZjdmNjMxYzg5YTNhYmZjNGM3MWNmZDk0Yi4uODViMjFkZjVkNmRj
MTJiNjc3NTZhMmJjZDQyNmY1MWRkNmU2NDQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI5IEBACisyMDExLTA1LTEyICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gY2F1c2VkIGJ5
IGNoYW5nZXNldCA4NjI4MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjA3MTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk0Mjc5NzA+CisKKyAgICAg
ICAgUmVtb3ZlZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlLiBbTlNTcGVsbENoZWNrZXIgZGlzbWlz
c0NvcnJlY3Rpb25JbmRpY2F0b3JGb3JWaWV3Ol0gaXMgYmxvY2tpbmcuCisgICAgICAgIFNvIGhh
bmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoKSB0cmlnZ2VyZWQgYnkgZGlzbWlzc0ludGVybmFsKCkg
d2lsbCByZXR1cm4gYmVmb3JlIGRpc21pc3NJbnRlcm5hbCgpCisgICAgICAgIHJldHVybnMuIFNv
IHdlIGRvbid0IG5lZWQgdG8gdXNlIHRoZSBjb25kaXRpb24gdG8gY29vcmRpbmF0ZSBiZXR3ZWVu
IHRoZXNlIHR3byBmdW5jdGlvbi4gSW4gZmFjdCwKKyAgICAgICAgYWxsIGNhbGxiYWNrcyBhcmUg
ZGVsaXZlcmVkIG9uIG1haW4gdGhyZWFkLiBXZSBkb24ndCByZWFsbHkgbmVlZCBhbnkgbG9ja2lu
ZyBoZXJlLgorCisgICAgICAgIFNpbmNlIG5vdyB3ZSBkb24ndCBoYXZlIGRpc3RpbmN0aW9uIGJl
dHdlZW4gZGlzbWlzcygpIGFuZCBkaXNtaXNzU29vbigpLiBkaXNtaXNzU29vbigpIGhhcworICAg
ICAgICBiZWVuIHJlbW92ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9u
UGFuZWwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW06Cisg
ICAgICAgIChDb3JyZWN0aW9uUGFuZWw6OkNvcnJlY3Rpb25QYW5lbCk6CisgICAgICAgIChDb3Jy
ZWN0aW9uUGFuZWw6OnNob3cpOgorICAgICAgICAoQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzKToK
KyAgICAgICAgKENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzc0ludGVybmFsKToKKyAgICAgICAgKENv
cnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50
OjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbik6CisKIDIwMTEtMDUtMTIgIE5pa29sYXMgWmlt
bWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9D
b3JyZWN0aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJl
Y3Rpb25QYW5lbC5oCmluZGV4IDcxZTIwNzIxODU3OWQ3NTM0M2E0MzMyZmFmNWFmZGZhMDI5M2Mx
NzguLjE4N2EwYThjZWVjMGQ2ZmYzMDMxMTY0Yzk5ZTQxNjg2MmFjNTk1OTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5oCkBAIC0z
OSwyMSArMzksMTggQEAgcHVibGljOgogICAgIENvcnJlY3Rpb25QYW5lbCgpOwogICAgIH5Db3Jy
ZWN0aW9uUGFuZWwoKTsKICAgICB2b2lkIHNob3coV2ViVmlldyosIFdlYkNvcmU6OkNvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGlu
Z0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5h
dGl2ZVJlcGxhY2VtZW50U3RyaW5ncyk7Ci0gICAgdm9pZCBkaXNtaXNzKFdlYkNvcmU6OlJlYXNv
bkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpOwotICAgIFN0cmluZyBkaXNtaXNzU29vbihX
ZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKTsKKyAgICBTdHJpbmcg
ZGlzbWlzcyhXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKTsKICAg
ICBzdGF0aWMgdm9pZCByZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdlYlZpZXcqLCBOU0Nv
cnJlY3Rpb25SZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3Ry
aW5nJiByZXBsYWNlbWVudFN0cmluZyk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1Nob3dpbmco
KSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KLSAgICB2b2lkIGRpc21pc3NJbnRlcm5hbChXZWJD
b3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsLCBib29sIGRpc21pc3NpbmdF
eHRlcm5hbGx5KTsKKyAgICBTdHJpbmcgZGlzbWlzc0ludGVybmFsKFdlYkNvcmU6OlJlYXNvbkZv
ckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwsIGJvb2wgZGlzbWlzc2luZ0V4dGVybmFsbHkpOwog
ICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNjZXB0ZWRSZXBs
YWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRSZXBsYWNlbWVu
dCwgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSk7CiAKICAgICBib29sIG1fd2FzRGlzbWlzc2Vk
RXh0ZXJuYWxseTsKICAgICBXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBh
bmVsIG1fcmVhc29uRm9yRGlzbWlzc2luZzsKICAgICBSZXRhaW5QdHI8V2ViVmlldz4gbV92aWV3
OwotICAgIFJldGFpblB0cjxOU1N0cmluZz4gbV9yZXN1bHRGb3JTeW5jaHJvbm91c0Rpc21pc3Nh
bDsKLSAgICBSZXRhaW5QdHI8TlNDb25kaXRpb24+IG1fcmVzdWx0Q29uZGl0aW9uOwotICAgIGJv
b2wgbV9pc0Rpc21pc3Npbmc7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtX3Jlc3VsdEZvckRp
c21pc3NhbDsKIH07CiAKICNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Db3JyZWN0aW9uUGFuZWwubW0KaW5kZXggMzQ4MzAzY2Qx
ODU4MTRhY2QzYzJmMDkxNjk2MjQ5NGQyZTUyYjViYi4uYTE2NjkzNzQyNmIwN2IxNDQ2YzI5Mjc3
MGIzZTM4MWQ4Mjk4ZTM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvQ29ycmVjdGlvblBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L0NvcnJlY3Rpb25QYW5lbC5tbQpAQCAtNDYsOCArNDYsNiBAQCBzdGF0aWMgaW5saW5l
IE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgY29ycmVjdGlvbkluZGljYXRvclR5cGUoQ29ycmVj
dGlvblBhbmVsSQogQ29ycmVjdGlvblBhbmVsOjpDb3JyZWN0aW9uUGFuZWwoKQogICAgIDogbV93
YXNEaXNtaXNzZWRFeHRlcm5hbGx5KGZhbHNlKQogICAgICwgbV9yZWFzb25Gb3JEaXNtaXNzaW5n
KFJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWxJZ25vcmVkKQotICAgICwgbV9yZXN1
bHRDb25kaXRpb24oQWRvcHROUywgW1tOU0NvbmRpdGlvbiBhbGxvY10gaW5pdF0pCi0gICAgLCBt
X2lzRGlzbWlzc2luZyhmYWxzZSkKIHsKIH0KIApAQCAtNzksMzUgKzc3LDIzIEBAIHZvaWQgQ29y
cmVjdGlvblBhbmVsOjpzaG93KFdlYlZpZXcqIHZpZXcsIENvcnJlY3Rpb25QYW5lbEluZm86OlBh
bmVsVHlwZSB0eXBlLCBjCiAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJd
IHNob3dDb3JyZWN0aW9uSW5kaWNhdG9yT2ZUeXBlOmluZGljYXRvclR5cGUgcHJpbWFyeVN0cmlu
ZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJpbmdzOmFsdGVybmF0
aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6W3ZpZXcgY29udmVydFJlY3Q6Ym91bmRpbmdCb3hP
ZlJlcGxhY2VkU3RyaW5nIGZyb21WaWV3Om5pbF0gdmlldzptX3ZpZXcuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6XihOU1N0cmluZyogYWNjZXB0ZWRTdHJpbmcpIHsKICAgICAgICAgaGFuZGxlQWNj
ZXB0ZWRSZXBsYWNlbWVudChhY2NlcHRlZFN0cmluZywgcmVwbGFjZWRTdHJpbmdBc05TU3RyaW5n
LCByZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcsIGluZGljYXRvclR5cGUpOwogICAgIH1dOwot
ICAgIG1faXNEaXNtaXNzaW5nID0gZmFsc2U7CiB9CiAKLXZvaWQgQ29ycmVjdGlvblBhbmVsOjpk
aXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwgcmVhc29uKQorU3RyaW5n
IENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBh
bmVsIHJlYXNvbikKIHsKLSAgICBkaXNtaXNzSW50ZXJuYWwocmVhc29uLCB0cnVlKTsKKyAgICBy
ZXR1cm4gZGlzbWlzc0ludGVybmFsKHJlYXNvbiwgdHJ1ZSk7CiB9CiAKLVN0cmluZyBDb3JyZWN0
aW9uUGFuZWw6OmRpc21pc3NTb29uKFJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwg
cmVhc29uKQotewotICAgIGRpc21pc3NJbnRlcm5hbChyZWFzb24sIHRydWUpOwotICAgIFttX3Jl
c3VsdENvbmRpdGlvbi5nZXQoKSBsb2NrXTsKLSAgICB3aGlsZSAobV9pc0Rpc21pc3NpbmcpCi0g
ICAgICAgIFttX3Jlc3VsdENvbmRpdGlvbi5nZXQoKSB3YWl0XTsKLSAgICBbbV9yZXN1bHRDb25k
aXRpb24uZ2V0KCkgdW5sb2NrXTsKLSAgICByZXR1cm4gbV9yZXN1bHRGb3JTeW5jaHJvbm91c0Rp
c21pc3NhbC5nZXQoKTsKLX0KLQotdm9pZCBDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3NJbnRlcm5h
bChSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbiwgYm9vbCBkaXNtaXNz
aW5nRXh0ZXJuYWxseSkKK1N0cmluZyBDb3JyZWN0aW9uUGFuZWw6OmRpc21pc3NJbnRlcm5hbChS
ZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbiwgYm9vbCBkaXNtaXNzaW5n
RXh0ZXJuYWxseSkKIHsKICAgICBpZiAoIWlzU2hvd2luZygpKQotICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAotICAgIG1faXNEaXNtaXNzaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIAogICAgIG1fd2FzRGlzbWlzc2VkRXh0ZXJuYWxseSA9IGRpc21pc3NpbmdFeHRl
cm5hbGx5OwogICAgIG1fcmVhc29uRm9yRGlzbWlzc2luZyA9IHJlYXNvbjsKLSAgICBtX3Jlc3Vs
dEZvclN5bmNocm9ub3VzRGlzbWlzc2FsLmNsZWFyKCk7CisgICAgbV9yZXN1bHRGb3JEaXNtaXNz
YWwuY2xlYXIoKTsKICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gZGlz
bWlzc0NvcnJlY3Rpb25JbmRpY2F0b3JGb3JWaWV3Om1fdmlldy5nZXQoKV07Ci0gICAgbV92aWV3
LmNsZWFyKCk7CisgICAgcmV0dXJuIG1fcmVzdWx0Rm9yRGlzbWlzc2FsLmdldCgpOwogfQogCiB2
b2lkIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXZWJWaWV3
KiB2aWV3LCBOU0NvcnJlY3Rpb25SZXNwb25zZSByZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZykKQEAgLTExNiw3ICsx
MDIsMTAgQEAgdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9u
c2UoV2ViVmlldyogdmlldywgTlNDb3JyZWN0aW9uUmUKIH0KIAogdm9pZCBDb3JyZWN0aW9uUGFu
ZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1l
bnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVwbGFjZW1lbnQsICBO
U0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGNvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKQoteworeyAg
ICAKKyAgICBpZiAoIW1fdmlldykKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIE5TU3BlbGxD
aGVja2VyKiBzcGVsbENoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2Vy
XTsKICAgICBOU0ludGVnZXIgZG9jdW1lbnRUYWcgPSBbbV92aWV3LmdldCgpIHNwZWxsQ2hlY2tl
ckRvY3VtZW50VGFnXTsKIApAQCAtMTQxLDE1ICsxMzAsMTAgQEAgdm9pZCBDb3JyZWN0aW9uUGFu
ZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2VwdGVkUmVwbGFjZW1l
bnQsIE4KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAotICAgIGlmICghbV93YXNEaXNtaXNz
ZWRFeHRlcm5hbGx5KQotICAgICAgICBbbV92aWV3LmdldCgpIGhhbmRsZUNvcnJlY3Rpb25QYW5l
bFJlc3VsdDphY2NlcHRlZFJlcGxhY2VtZW50XTsKKyAgICBbbV92aWV3LmdldCgpIGhhbmRsZUNv
cnJlY3Rpb25QYW5lbFJlc3VsdDphY2NlcHRlZFJlcGxhY2VtZW50XTsKKyAgICBtX3ZpZXcuY2xl
YXIoKTsKICAgICBpZiAoYWNjZXB0ZWRSZXBsYWNlbWVudCkKLSAgICAgICAgbV9yZXN1bHRGb3JT
eW5jaHJvbm91c0Rpc21pc3NhbC5hZG9wdE5TKFthY2NlcHRlZFJlcGxhY2VtZW50IGNvcHldKTsK
LSAgICAKLSAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgbG9ja107Ci0gICAgbV9pc0Rpc21p
c3NpbmcgPSBmYWxzZTsKLSAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgc2lnbmFsXTsKLSAg
ICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0KCkgdW5sb2NrXTsKKyAgICAgICAgbV9yZXN1bHRGb3JE
aXNtaXNzYWwuYWRvcHROUyhbYWNjZXB0ZWRSZXBsYWNlbWVudCBjb3B5XSk7CiB9CiAKICNlbmRp
ZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggYTBjZjNhYmM0MDcyMDYwMDU1ODIxMDdmNGE3YTg4
YzBjNDZlNDg1Zi4uMjU5N2U2ZTljMGE2MTAzZjI3NTg0OTI3MmU1MTNlNGNhMjFiZjRiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQpAQCAtODc1LDcgKzg3NSw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNtaXNzQ29y
cmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwKIAogU3RyaW5n
IFdlYkVkaXRvckNsaWVudDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oUmVhc29uRm9yRGlz
bWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb25Gb3JEaXNtaXNzaW5nKQogewotICAgIHJldHVy
biBtX2NvcnJlY3Rpb25QYW5lbC5kaXNtaXNzU29vbihyZWFzb25Gb3JEaXNtaXNzaW5nKTsKKyAg
ICByZXR1cm4gbV9jb3JyZWN0aW9uUGFuZWwuZGlzbWlzcyhyZWFzb25Gb3JEaXNtaXNzaW5nKTsK
IH0KIAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2Uo
RWRpdG9yQ2xpZW50OjpBdXRvY29ycmVjdGlvblJlc3BvbnNlVHlwZSByZXNwb25zZVR5cGUsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOTU1NDAzNjY0YzA4NGQyZmJkOWUxNDMwYzE1YjcyMmZhMjNlNjNk
ZS4uYWNmN2NiM2QzZDk5OGFhN2NmNjdiMzkxOGNjMmYzZDZkZTQ5NzQ2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDExLTA1LTEyICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24g
Y2F1c2VkIGJ5IGNoYW5nZXNldCA4NjI4MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjA3MTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk0Mjc5NzA+
CisKKyAgICAgICAgUmVtb3ZlZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlLiBbTlNTcGVsbENoZWNr
ZXIgZGlzbWlzc0NvcnJlY3Rpb25JbmRpY2F0b3JGb3JWaWV3Ol0gaXMgYmxvY2tpbmcuCisgICAg
ICAgIFNvIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoKSB0cmlnZ2VyZWQgYnkgZGlzbWlzc0lu
dGVybmFsKCkgd2lsbCByZXR1cm4gYmVmb3JlIGRpc21pc3NJbnRlcm5hbCgpCisgICAgICAgIHJl
dHVybnMuIFNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIHRoZSBjb25kaXRpb24gdG8gY29vcmRpbmF0
ZSBiZXR3ZWVuIHRoZXNlIHR3byBmdW5jdGlvbi4gSW4gZmFjdCwKKyAgICAgICAgYWxsIGNhbGxi
YWNrcyBhcmUgZGVsaXZlcmVkIG9uIG1haW4gdGhyZWFkLiBXZSBkb24ndCByZWFsbHkgbmVlZCBh
bnkgbG9ja2luZyBoZXJlLgorCisgICAgICAgIFNpbmNlIG5vdyB3ZSBkb24ndCBoYXZlIGRpc3Rp
bmN0aW9uIGJldHdlZW4gZGlzbWlzcygpIGFuZCBkaXNtaXNzU29vbigpLiBkaXNtaXNzU29vbigp
IGhhcworICAgICAgICBiZWVuIHJlbW92ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRp
c21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0NvcnJl
Y3Rpb25QYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLm1t
OgorICAgICAgICAoV2ViS2l0OjpDb3JyZWN0aW9uUGFuZWw6OkNvcnJlY3Rpb25QYW5lbCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6
OkNvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzcyk6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25Q
YW5lbDo6ZGlzbWlzc0ludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6Q29ycmVjdGlvblBhbmVs
OjpoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KToKKwogMjAxMS0wNS0xMCAgVG9ueSBHZW50aWxj
b3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50
SW1wbC5tbQppbmRleCBmNTdmMGQ0ZjZhOGM1NTBlY2I3ZDg0MWI0YTQ1ZDUyNTZmNDQwZjhhLi5l
ZmFlMTkwMWNmYzFhNmE4NTQxNTIxZjc1MzFkYzU5OGRjYzczZGU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtNDMyLDcg
KzQzMiw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVh
c29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByCiBTdHJpbmcgUGFnZUNsaWVudEltcGw6
OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdD
b3JyZWN0aW9uUGFuZWwgcmVhc29uKQogewogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKLSAgICByZXR1cm4gbV9jb3JyZWN0aW9uUGFuZWwuZGlzbWlzc1Nvb24ocmVhc29u
KTsKKyAgICByZXR1cm4gbV9jb3JyZWN0aW9uUGFuZWwuZGlzbWlzcyhyZWFzb24pOwogI2Vsc2UK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5oCmluZGV4IGFkNzdlMjBlNmQyYTRlMDI2YjBlMmIxZjRk
ODQ0ZWZiMTc5MzM4M2UuLjY2NzkzYTk3NDg2MmJkMDJmNWJmMzc1NWQ2ZWFlZjQzYTUwZGNkYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaApA
QCAtNDAsMjEgKzQwLDE4IEBAIHB1YmxpYzoKICAgICBDb3JyZWN0aW9uUGFuZWwoKTsKICAgICB+
Q29ycmVjdGlvblBhbmVsKCk7CiAgICAgdm9pZCBzaG93KFdLVmlldyosIFdlYkNvcmU6OkNvcnJl
Y3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3Vu
ZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRl
cm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncyk7Ci0gICAgdm9pZCBkaXNtaXNzKFdlYkNvcmU6OlJl
YXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpOwotICAgIFN0cmluZyBkaXNtaXNzU29v
bihXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKTsKKyAgICBTdHJp
bmcgZGlzbWlzcyhXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKTsK
ICAgICBzdGF0aWMgdm9pZCByZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdLVmlldyosIE5T
Q29ycmVjdGlvblJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKTsKIAogcHJpdmF0ZToKICAgICBib29sIGlzU2hvd2lu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fdmlldzsgfQotICAgIHZvaWQgZGlzbWlzc0ludGVybmFsKFdl
YkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwsIGJvb2wgZGlzbWlzc2lu
Z0V4dGVybmFsbHkpOworICAgIFN0cmluZyBkaXNtaXNzSW50ZXJuYWwoV2ViQ29yZTo6UmVhc29u
Rm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCwgYm9vbCBkaXNtaXNzaW5nRXh0ZXJuYWxseSk7
CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KE5TU3RyaW5nKiBhY2NlcHRlZFJl
cGxhY2VtZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxhY2Vt
ZW50LCBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKTsKIAogICAgIGJvb2wgbV93YXNEaXNtaXNz
ZWRFeHRlcm5hbGx5OwogICAgIFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9u
UGFuZWwgbV9yZWFzb25Gb3JEaXNtaXNzaW5nOwogICAgIFJldGFpblB0cjxXS1ZpZXc+IG1fdmll
dzsKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNz
YWw7Ci0gICAgUmV0YWluUHRyPE5TQ29uZGl0aW9uPiBtX3Jlc3VsdENvbmRpdGlvbjsKLSAgICBi
b29sIG1faXNEaXNtaXNzaW5nOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gbV9yZXN1bHRGb3JE
aXNtaXNzYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0KaW5kZXggNzIyNjJlMWMzZTQxZTU0
YzgwNTgxZmNiZWUxMmE5M2I5MzI1ZTQ2MS4uOWQ2OGIzYjA3OTQ1NWE2OTExMjQwN2NhNzcxNzdj
Yzk3MzEwYTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3Jy
ZWN0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0
aW9uUGFuZWwubW0KQEAgLTUyLDggKzUyLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBDb3JyZWN0
aW9uUGFuZWw6OkNvcnJlY3Rpb25QYW5lbCgpCiAgICAgOiBtX3dhc0Rpc21pc3NlZEV4dGVybmFs
bHkoZmFsc2UpCiAgICAgLCBtX3JlYXNvbkZvckRpc21pc3NpbmcoUmVhc29uRm9yRGlzbWlzc2lu
Z0NvcnJlY3Rpb25QYW5lbElnbm9yZWQpCi0gICAgLCBtX3Jlc3VsdENvbmRpdGlvbihBZG9wdE5T
LCBbW05TQ29uZGl0aW9uIGFsbG9jXSBpbml0XSkKLSAgICAsIG1faXNEaXNtaXNzaW5nKGZhbHNl
KQogewogfQogCkBAIC04NiwzNSArODQsMjMgQEAgdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnNob3co
V0tWaWV3KiB2aWV3LCBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgY28KICAg
ICBbc3BlbGxDaGVja2VyIHNob3dDb3JyZWN0aW9uSW5kaWNhdG9yT2ZUeXBlOmluZGljYXRvclR5
cGUgcHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVT
dHJpbmdzOmFsdGVybmF0aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hPZlJl
cGxhY2VkU3RyaW5nIHZpZXc6bV92aWV3LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJp
bmcqIGFjY2VwdGVkU3RyaW5nKSB7CiAgICAgICAgIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQo
YWNjZXB0ZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZywgcmVwbGFjZW1lbnRTdHJp
bmdBc05TU3RyaW5nLCBpbmRpY2F0b3JUeXBlKTsKICAgICB9XTsKLSAgICBtX2lzRGlzbWlzc2lu
ZyA9IGZhbHNlOwogfQogCi12b2lkIENvcnJlY3Rpb25QYW5lbDo6ZGlzbWlzcyhSZWFzb25Gb3JE
aXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbikKK1N0cmluZyBDb3JyZWN0aW9uUGFuZWw6
OmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24pCiB7Ci0g
ICAgZGlzbWlzc0ludGVybmFsKHJlYXNvbiwgdHJ1ZSk7CisgICAgcmV0dXJuIGRpc21pc3NJbnRl
cm5hbChyZWFzb24sIHRydWUpOwogfQogCi1TdHJpbmcgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNz
U29vbihSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsIHJlYXNvbikKLXsKLSAgICBk
aXNtaXNzSW50ZXJuYWwocmVhc29uLCB0cnVlKTsKLSAgICBbbV9yZXN1bHRDb25kaXRpb24uZ2V0
KCkgbG9ja107Ci0gICAgd2hpbGUgKG1faXNEaXNtaXNzaW5nKQotICAgICAgICBbbV9yZXN1bHRD
b25kaXRpb24uZ2V0KCkgd2FpdF07Ci0gICAgW21fcmVzdWx0Q29uZGl0aW9uLmdldCgpIHVubG9j
a107Ci0gICAgcmV0dXJuIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNzYWwuZ2V0KCk7Ci19
Ci0KLXZvaWQgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlz
c2luZ0NvcnJlY3Rpb25QYW5lbCByZWFzb24sIGJvb2wgZGlzbWlzc2luZ0V4dGVybmFsbHkpCitT
dHJpbmcgQ29ycmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlzc2lu
Z0NvcnJlY3Rpb25QYW5lbCByZWFzb24sIGJvb2wgZGlzbWlzc2luZ0V4dGVybmFsbHkpCiB7CiAg
ICAgaWYgKCFpc1Nob3dpbmcoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CiAKLSAgICBtX2lzRGlzbWlzc2luZyA9IHRydWU7CiAgICAgbV93YXNEaXNtaXNzZWRF
eHRlcm5hbGx5ID0gZGlzbWlzc2luZ0V4dGVybmFsbHk7CiAgICAgbV9yZWFzb25Gb3JEaXNtaXNz
aW5nID0gcmVhc29uOwotICAgIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNzYWwuY2xlYXIo
KTsKKyAgICBtX3Jlc3VsdEZvckRpc21pc3NhbC5jbGVhcigpOwogICAgIFtbTlNTcGVsbENoZWNr
ZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBkaXNtaXNzQ29ycmVjdGlvbkluZGljYXRvckZvclZpZXc6
bV92aWV3LmdldCgpXTsKLSAgICBtX3ZpZXcuY2xlYXIoKTsKKyAgICByZXR1cm4gbV9yZXN1bHRG
b3JEaXNtaXNzYWwuZ2V0KCk7CiB9CiAKIHZvaWQgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRBdXRv
Y29ycmVjdGlvblJlc3BvbnNlKFdLVmlldyogdmlldywgTlNDb3JyZWN0aW9uUmVzcG9uc2UgcmVz
cG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRTdHJpbmcpCkBAIC0xMjQsNiArMTEwLDkgQEAgdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJl
Y29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tWaWV3KiB2aWV3LCBOU0NvcnJlY3Rpb25SZXMK
IAogdm9pZCBDb3JyZWN0aW9uUGFuZWw6OmhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJp
bmcqIGFjY2VwdGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHBy
b3Bvc2VkUmVwbGFjZW1lbnQsICBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlIGNvcnJlY3Rpb25J
bmRpY2F0b3JUeXBlKQogeworICAgIGlmICghbV92aWV3KQorICAgICAgICByZXR1cm47CisKICAg
ICBOU1NwZWxsQ2hlY2tlciogc3BlbGxDaGVja2VyID0gW05TU3BlbGxDaGVja2VyIHNoYXJlZFNw
ZWxsQ2hlY2tlcl07CiAgICAgTlNJbnRlZ2VyIGRvY3VtZW50VGFnID0gW21fdmlldy5nZXQoKSBz
cGVsbENoZWNrZXJEb2N1bWVudFRhZ107CiAgICAgCkBAIC0xNDcsMTYgKzEzNiwxMSBAQCB2b2lk
IENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNj
ZXB0ZWRSZXBsYWNlbWVudCwgTgogICAgICAgICAgICAgW3NwZWxsQ2hlY2tlciByZWNvcmRSZXNw
b25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZUFjY2VwdGVkIHRvQ29ycmVjdGlvbjphY2NlcHRlZFJl
cGxhY2VtZW50IGZvcldvcmQ6cmVwbGFjZWQgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdp
dGhUYWc6ZG9jdW1lbnRUYWddOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCi0gICAgaWYg
KCFtX3dhc0Rpc21pc3NlZEV4dGVybmFsbHkpCi0gICAgICAgIFttX3ZpZXcuZ2V0KCkgaGFuZGxl
Q29ycmVjdGlvblBhbmVsUmVzdWx0OmFjY2VwdGVkUmVwbGFjZW1lbnRdOworCisgICAgW21fdmll
dy5nZXQoKSBoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQ6YWNjZXB0ZWRSZXBsYWNlbWVudF07
CisgICAgbV92aWV3LmNsZWFyKCk7CiAgICAgaWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCi0gICAg
ICAgIG1fcmVzdWx0Rm9yU3luY2hyb25vdXNEaXNtaXNzYWwuYWRvcHROUyhbYWNjZXB0ZWRSZXBs
YWNlbWVudCBjb3B5XSk7Ci0gICAgCi0gICAgW21fcmVzdWx0Q29uZGl0aW9uLmdldCgpIGxvY2td
OwotICAgIG1faXNEaXNtaXNzaW5nID0gZmFsc2U7Ci0gICAgW21fcmVzdWx0Q29uZGl0aW9uLmdl
dCgpIHNpZ25hbF07Ci0gICAgW21fcmVzdWx0Q29uZGl0aW9uLmdldCgpIHVubG9ja107CisgICAg
ICAgIG1fcmVzdWx0Rm9yRGlzbWlzc2FsLmFkb3B0TlMoW2FjY2VwdGVkUmVwbGFjZW1lbnQgY29w
eV0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>