<?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>111858</bug_id>
          
          <creation_ts>2013-03-08 07:21:44 -0800</creation_ts>
          <short_desc>[EFL] Start using evas object directly in Widget class</short_desc>
          <delta_ts>2013-03-13 06:32:25 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>buildbot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>851177</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-08 07:21:44 -0800</bug_when>
    <thetext>EFL Widget class should use evas object pointer directly rather than MAC specific WidgetPrivate* m_data. 
The reason: 1) to be compliant with other ports 2) it will make code much cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851186</commentid>
    <comment_count>1</comment_count>
      <attachid>192226</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-08 07:29:50 -0800</bug_when>
    <thetext>Created attachment 192226
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851188</commentid>
    <comment_count>2</comment_count>
      <attachid>192226</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-08 07:41:20 -0800</bug_when>
    <thetext>Comment on attachment 192226
patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        EFL Widget class should use evas object pointer directly rather
&gt; +        than MAC-specific WidgetPrivate* m_data. The reasons are: firstly
&gt; +        to be compliant with other ports, secondly to make code cleaner.

I would say that the platformWidget() is a Mac specific implementation detail that they are moving away from with WebKit2.

You could also point out that the evasObject is only directly used in the ScrollbarEfl subclass of Widget and not in Widget or ScrollView or any other subclass, thus the evas_object code has now been concentrated in ScrollbarEfl

&gt; Source/WebCore/platform/efl/ScrollbarEfl.cpp:98
&gt; +    if (!evasObject())
&gt; +        return;
&gt;  
&gt; -    if (!object) {
&gt; -        if (!view || !view-&gt;evas() || !view-&gt;evasObject())
&gt; -            return;
&gt; +    evas_object_show(evasObject());
&gt; +}

Do you know if evas_object_show handles 0 pointer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852316</commentid>
    <comment_count>3</comment_count>
      <attachid>192226</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-11 08:09:59 -0700</bug_when>
    <thetext>Comment on attachment 192226
patch

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

&gt;&gt; Source/WebCore/platform/efl/ScrollbarEfl.cpp:98
&gt;&gt; +}
&gt; 
&gt; Do you know if evas_object_show handles 0 pointer?

Think recommended practice is to check pointer before call (http://docs.enlightenment.org/auto/efl/Example_Evas_Images.html)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852330</commentid>
    <comment_count>4</comment_count>
      <attachid>192226</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-11 08:20:54 -0700</bug_when>
    <thetext>Comment on attachment 192226
patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        to be compliant with other ports, secondly to make code cleaner.
&gt; 
&gt; I would say that the platformWidget() is a Mac specific implementation detail that they are moving away from with WebKit2.
&gt; 
&gt; You could also point out that the evasObject is only directly used in the ScrollbarEfl subclass of Widget and not in Widget or ScrollView or any other subclass, thus the evas_object code has now been concentrated in ScrollbarEfl

Thanks, I will add it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852464</commentid>
    <comment_count>5</comment_count>
      <attachid>192505</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-11 10:52:04 -0700</bug_when>
    <thetext>Created attachment 192505
patch v2

Fixed comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852713</commentid>
    <comment_count>6</comment_count>
      <attachid>192505</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-11 14:09:45 -0700</bug_when>
    <thetext>Comment on attachment 192505
patch v2

Attachment 192505 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17177291

New failing tests:
editing/selection/selection-modify-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853651</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-12 11:22:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 192505 [details])
&gt; Attachment 192505 [details] did not pass mac-ews (mac):
&gt; Output: http://webkit-commit-queue.appspot.com/results/17177291
&gt; 
&gt; New failing tests:
&gt; editing/selection/selection-modify-crash.html

Has to be unrelated as only efl-specific code is touched.
Will re-upload patch however to be sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853653</commentid>
    <comment_count>8</comment_count>
      <attachid>192775</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-12 11:23:47 -0700</bug_when>
    <thetext>Created attachment 192775
patch v2

Re-uploading to verify EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854258</commentid>
    <comment_count>9</comment_count>
      <attachid>192775</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 06:32:20 -0700</bug_when>
    <thetext>Comment on attachment 192775
patch v2

Clearing flags on attachment: 192775

Committed r145710: &lt;http://trac.webkit.org/changeset/145710&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854259</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 06:32:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192226</attachid>
            <date>2013-03-08 07:29:50 -0800</date>
            <delta_ts>2013-03-11 10:52:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug111858</filename>
            <type>text/plain</type>
            <size>12595</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGFjNDkxMmFkZWI3ZjNkMTMxNTVhYzUzN2MwY2YxYTVlNWE5NjcyZDgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
RnJpIE1hciA4IDE3OjI0OjUwIDIwMTMgKzAyMDAKCiAgICBidWcxMTE4NTgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZTM5M2FiZC4uMDlhMzJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTAz
LTA4ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdIFN0YXJ0IHVzaW5nIGV2YXMgb2JqZWN0IGRpcmVjdGx5IGluIFdpZGdl
dCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTExODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RUZMIFdpZGdldCBjbGFzcyBzaG91bGQgdXNlIGV2YXMgb2JqZWN0IHBvaW50ZXIgZGlyZWN0bHkg
cmF0aGVyCisgICAgICAgIHRoYW4gTUFDLXNwZWNpZmljIFdpZGdldFByaXZhdGUqIG1fZGF0YS4g
VGhlIHJlYXNvbnMgYXJlOiBmaXJzdGx5CisgICAgICAgIHRvIGJlIGNvbXBsaWFudCB3aXRoIG90
aGVyIHBvcnRzLCBzZWNvbmRseSB0byBtYWtlIGNvZGUgY2xlYW5lci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgYXMgdGhlcmUgYXJlIG5vIGJlaGF2aW9yYWwgY2hhbmdlcy4KKworICAgICAgICAq
IHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0
Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpldmFzT2Jq
ZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcDoKKyAgICAgICAg
KFNjcm9sbGJhckVmbDo6flNjcm9sbGJhckVmbCk6CisgICAgICAgIChzY3JvbGxiYXJFZmxFZGpl
TWVzc2FnZSk6CisgICAgICAgIChTY3JvbGxiYXJFZmw6OnNob3cpOgorICAgICAgICAoU2Nyb2xs
YmFyRWZsOjpoaWRlKToKKyAgICAgICAgKFNjcm9sbGJhckVmbDo6c2V0UGFyZW50KToKKyAgICAg
ICAgKFNjcm9sbGJhckVmbDo6dXBkYXRlVGh1bWJQb3NpdGlvbkFuZFByb3BvcnRpb24pOgorICAg
ICAgICAoU2Nyb2xsYmFyRWZsOjpmcmFtZVJlY3RzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL1Njcm9sbGJhckVmbC5oOgorICAgICAgICAoU2Nyb2xsYmFyRWZsKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6
V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6fldpZGdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Oldp
ZGdldDo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OmhpZGUpOgorICAgICAgICAo
V2ViQ29yZTo6V2lkZ2V0OjpzZXRFdmFzT2JqZWN0KToKKyAgICAgICAgKiBwbHVnaW5zL2VmbC9Q
bHVnaW5WaWV3RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWUpOgorCiAyMDEzLTAzLTA4ICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUHJldmVudCBpbmZpbml0ZSBsb29wIGluIFNWRyB1c2UgY3ljbGUgZGV0ZWN0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAppbmRleCBk
YjY5NTg5Li43Yzg0Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVu
dEhhbmRsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxl
ckVmbC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJX
aWRnZXQuaCIKLSNpbmNsdWRlICJTY3JvbGxiYXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IDUxNTQyMWUuLjM1NjNiNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1dpZGdldC5oCkBAIC04MSwxMCArODEsOCBAQCB0eXBlZGVmIHd4V2luZG93KiBQ
bGF0Zm9ybVdpZGdldDsKICNpZiBQTEFURk9STShFRkwpCiAjaWYgVVNFKEVPKQogdHlwZWRlZiBz
dHJ1Y3QgX0VvIEV2YXNfT2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3QgX0VvIEV2YXM7CiAjZWxzZQog
dHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3Qg
X0V2YXMgRXZhczsKICNlbmRpZgogdHlwZWRlZiBFdmFzX09iamVjdCogUGxhdGZvcm1XaWRnZXQ7
CiAjZW5kaWYKQEAgLTIyNCwxMyArMjIyLDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShFRkwpCi0gICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCByZWFsbHkgZ28gdG8gUGxhdGZv
cm1XaWRnZXQuIFRoZXkncmUgaGVyZSBjdXJyZW50bHkgc2luY2UKLSAgICAvLyB0aGUgRUZMIHBv
cnQgY29uc2lkZXJzIHRoYXQgRXZhc19PYmplY3QgKGEgQyBvYmplY3QpIGlzIGEgUGxhdGZvcm1X
aWRnZXQsIGJ1dAotICAgIC8vIGVuY2Fwc3VsYXRpbmcgdGhhdCBpbnRvIGEgQysrIGNsYXNzIHdp
bGwgbWFrZSB0aGlzIGhlYWRlciBjbGVhbiBhcyBpdCBzaG91bGQgYmUuCi0gICAgRXZhcyogZXZh
cygpIGNvbnN0OwotCiAgICAgdm9pZCBzZXRFdmFzT2JqZWN0KEV2YXNfT2JqZWN0Kik7Ci0gICAg
RXZhc19PYmplY3QqIGV2YXNPYmplY3QoKSBjb25zdDsKKyAgICBFdmFzX09iamVjdCogZXZhc09i
amVjdCgpIHsgcmV0dXJuIG1fZXZhc09iamVjdDsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShD
SFJPTUlVTSkKQEAgLTI3NywxMCArMjcwLDE0IEBAIHByaXZhdGU6CiAKICAgICBJbnRSZWN0IG1f
ZnJhbWU7IC8vIE5vdCB1c2VkIHdoZW4gYSBuYXRpdmUgd2lkZ2V0IGV4aXN0cy4KIAotI2lmIFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oRUZMKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXaWRn
ZXRQcml2YXRlKiBtX2RhdGE7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEVGTCkKKyAgICBFdmFz
X09iamVjdCogbV9ldmFzT2JqZWN0OworI2VuZGlmCisKICNpZiBQTEFURk9STShRVCkKICAgICBR
UG9pbnRlcjxRT2JqZWN0PiBtX2JpbmRpbmdPYmplY3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKaW5kZXggMjA1MDM0MC4uOWVmZmY5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKQEAgLTYz
LDE2ICs2MywxMyBAQCBTY3JvbGxiYXJFZmw6On5TY3JvbGxiYXJFZmwoKQogewogICAgIGlmICgh
ZXZhc09iamVjdCgpKQogICAgICAgICByZXR1cm47CisKICAgICBldmFzX29iamVjdF9kZWwoZXZh
c09iamVjdCgpKTsKICAgICBzZXRFdmFzT2JqZWN0KDApOwogfQogCiBzdGF0aWMgdm9pZCBzY3Jv
bGxiYXJFZmxFZGplTWVzc2FnZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCosIEVkamVfTWVzc2Fn
ZV9UeXBlIG1lc3NhZ2VUeXBlLCBpbnQgaWQsIHZvaWQqIG1lc3NhZ2UpCiB7Ci0gICAgU2Nyb2xs
YmFyRWZsKiB0aGF0ID0gc3RhdGljX2Nhc3Q8U2Nyb2xsYmFyRWZsKj4oZGF0YSk7Ci0gICAgRWRq
ZV9NZXNzYWdlX0Zsb2F0KiBtZXNzYWdlRmxvYXQ7Ci0gICAgaW50IHZhbHVlOwotCiAgICAgaWYg
KCFpZCkgewogICAgICAgICBFSU5BX0xPR19FUlIoIlVua25vd24gbWVzc2FnZSBpZCAnJWQnIGZy
b20gc2Nyb2xsIGJhciB0aGVtZS4iLCBpZCk7CiAgICAgICAgIHJldHVybjsKQEAgLTg1LDYzICs4
Miw2OCBAQCBzdGF0aWMgdm9pZCBzY3JvbGxiYXJFZmxFZGplTWVzc2FnZSh2b2lkKiBkYXRhLCBF
dmFzX09iamVjdCosIEVkamVfTWVzc2FnZV9UeXBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtZXNzYWdlRmxvYXQgPSBzdGF0aWNfY2FzdDxFZGplX01lc3NhZ2VfRmxvYXQqPihtZXNz
YWdlKTsKLSAgICB2YWx1ZSA9IG1lc3NhZ2VGbG9hdC0+dmFsICogKHRoYXQtPnRvdGFsU2l6ZSgp
IC0gdGhhdC0+dmlzaWJsZVNpemUoKSk7CisgICAgU2Nyb2xsYmFyRWZsKiB0aGF0ID0gc3RhdGlj
X2Nhc3Q8U2Nyb2xsYmFyRWZsKj4oZGF0YSk7CisKKyAgICBFZGplX01lc3NhZ2VfRmxvYXQqIG1l
c3NhZ2VGbG9hdCA9IHN0YXRpY19jYXN0PEVkamVfTWVzc2FnZV9GbG9hdCo+KG1lc3NhZ2UpOwor
ICAgIGludCB2YWx1ZSA9IG1lc3NhZ2VGbG9hdC0+dmFsICogKHRoYXQtPnRvdGFsU2l6ZSgpIC0g
dGhhdC0+dmlzaWJsZVNpemUoKSk7CiAgICAgdGhhdC0+c2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xs
VG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKHRoYXQtPm9yaWVudGF0aW9uKCksIHZhbHVlKTsKIH0K
IAotdm9pZCBTY3JvbGxiYXJFZmw6OnNldFBhcmVudChTY3JvbGxWaWV3KiB2aWV3KQordm9pZCBT
Y3JvbGxiYXJFZmw6OnNob3coKQogewotICAgIEV2YXNfT2JqZWN0KiBvYmplY3QgPSBldmFzT2Jq
ZWN0KCk7Ci0KLSAgICBXaWRnZXQ6OnNldFBhcmVudCh2aWV3KTsKKyAgICBpZiAoIWV2YXNPYmpl
Y3QoKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgaWYg
KCF2aWV3IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXctPmV2YXNPYmplY3QoKSkKLSAgICAgICAg
ICAgIHJldHVybjsKKyAgICBldmFzX29iamVjdF9zaG93KGV2YXNPYmplY3QoKSk7Cit9CiAKLSAg
ICAgICAgb2JqZWN0ID0gZWRqZV9vYmplY3RfYWRkKHZpZXctPmV2YXMoKSk7Ci0gICAgICAgIGlm
ICghb2JqZWN0KSB7Ci0gICAgICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBjcmVhdGUg
ZWRqZSBvYmplY3QgZm9yIHZpZXc9JXAgKGV2YXM9JXApIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICB2aWV3LCB2aWV3LT5ldmFzKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0gICAgICAgIGVkamVfb2JqZWN0X21lc3NhZ2VfaGFuZGxlcl9zZXQob2JqZWN0LCBzY3JvbGxi
YXJFZmxFZGplTWVzc2FnZSwgdGhpcyk7Ci0gICAgICAgIHNldEV2YXNPYmplY3Qob2JqZWN0KTsK
LSAgICB9IGVsc2UgaWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXctPmV2YXNPYmpl
Y3QoKSkgewotICAgICAgICBldmFzX29iamVjdF9oaWRlKG9iamVjdCk7Cit2b2lkIFNjcm9sbGJh
ckVmbDo6aGlkZSgpCit7CisgICAgaWYgKCFldmFzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICB9CiAKLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih2aWV3
KS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQorICAgIGV2YXNfb2JqZWN0X2hpZGUoZXZhc09i
amVjdCgpKTsKK30KKwordm9pZCBTY3JvbGxiYXJFZmw6OnNldFBhcmVudChTY3JvbGxWaWV3KiB2
aWV3KQoreworICAgIFdpZGdldDo6c2V0UGFyZW50KHZpZXcpOworCisgICAgaWYgKCF2aWV3IHx8
ICF2aWV3LT5ldmFzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFBhZ2UqIHBhZ2Ug
PSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICBGcmFtZSogZnJhbWUgPSBzdGF0
aWNfY2FzdDxGcmFtZVZpZXcqPih2aWV3KS0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lIHx8ICFm
cmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBjaGFyKiBncm91cCA9
IChvcmllbnRhdGlvbigpID09IEhvcml6b250YWxTY3JvbGxiYXIpCi0gICAgICAgID8gInNjcm9s
bGJhci5ob3Jpem9udGFsIiA6ICJzY3JvbGxiYXIudmVydGljYWwiOwotICAgIFN0cmluZyB0aGVt
ZSA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lRWZsKj4ocGFnZS0+dGhlbWUoKSktPnRoZW1lUGF0
aCgpOworICAgIFN0cmluZyB0aGVtZSA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lRWZsKj4oZnJh
bWUtPnBhZ2UoKS0+dGhlbWUoKSktPnRoZW1lUGF0aCgpOwogCisgICAgY29uc3QgY2hhciogZ3Jv
dXAgPSAob3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSA/ICJzY3JvbGxiYXIu
aG9yaXpvbnRhbCIgOiAic2Nyb2xsYmFyLnZlcnRpY2FsIjsKICAgICBpZiAodGhlbWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEVJTkFfTE9HX0VSUigiQ291bGQgbm90IGxvYWQgdGhlbWUgJyVzJzog
bm8gdGhlbWUgcGF0aCBzZXQuIiwgZ3JvdXApOwotICAgICAgICBldmFzX29iamVjdF9oaWRlKG9i
amVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIWVkamVfb2JqZWN0X2Zp
bGVfc2V0KG9iamVjdCwgdGhlbWUudXRmOCgpLmRhdGEoKSwgZ3JvdXApKSB7Ci0gICAgICAgIEVk
amVfTG9hZF9FcnJvciBlcnIgPSBlZGplX29iamVjdF9sb2FkX2Vycm9yX2dldChvYmplY3QpOwor
ICAgIGlmICghZXZhc09iamVjdCgpKSB7CisgICAgICAgIHNldEV2YXNPYmplY3QoZWRqZV9vYmpl
Y3RfYWRkKGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHZpZXctPmV2YXNPYmplY3QoKSkpKTsKKyAgICAg
ICAgaWYgKCFldmFzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgIEVJTkFfTE9HX0VSUigiQ291bGQg
bm90IGNyZWF0ZSBlZGplIG9iamVjdCBmb3Igdmlldz0lcCIsIHZpZXcpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7CisgICAgICAg
IGVkamVfb2JqZWN0X21lc3NhZ2VfaGFuZGxlcl9zZXQoZXZhc09iamVjdCgpLCBzY3JvbGxiYXJF
ZmxFZGplTWVzc2FnZSwgdGhpcyk7CisgICAgfQorCisgICAgaWYgKCFlZGplX29iamVjdF9maWxl
X3NldChldmFzT2JqZWN0KCksIHRoZW1lLnV0ZjgoKS5kYXRhKCksIGdyb3VwKSkgeworICAgICAg
ICBFZGplX0xvYWRfRXJyb3IgZXJyID0gZWRqZV9vYmplY3RfbG9hZF9lcnJvcl9nZXQoZXZhc09i
amVjdCgpKTsKICAgICAgICAgY29uc3QgY2hhciogZXJybWVzc2FnZSA9IGVkamVfbG9hZF9lcnJv
cl9zdHIoZXJyKTsKICAgICAgICAgRUlOQV9MT0dfRVJSKCJDb3VsZCBub3QgbG9hZCB0aGVtZSAn
JXMnIGZyb20gZmlsZSAnJXMnOiAjJWQgJyVzJyIsCiAgICAgICAgICAgICAgICAgICAgICBncm91
cCwgdGhlbWUudXRmOCgpLmRhdGEoKSwgZXJyLCBlcnJtZXNzYWdlKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHNldFBsYXRmb3JtV2lkZ2V0KG9iamVjdCk7Ci0gICAgZXZhc19vYmpl
Y3Rfc21hcnRfbWVtYmVyX2FkZChvYmplY3QsIHZpZXctPmV2YXNPYmplY3QoKSk7Ci0gICAgZXZh
c19vYmplY3Rfc2hvdyhvYmplY3QpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X21lbWJlcl9hZGQo
ZXZhc09iamVjdCgpLCB2aWV3LT5ldmFzT2JqZWN0KCkpOworICAgIGV2YXNfb2JqZWN0X3Nob3co
ZXZhc09iamVjdCgpKTsKIH0KIAogdm9pZCBTY3JvbGxiYXJFZmw6OnVwZGF0ZVRodW1iUG9zaXRp
b24oKQpAQCAtMTU2LDcgKzE1OCw3IEBAIHZvaWQgU2Nyb2xsYmFyRWZsOjp1cGRhdGVUaHVtYlBy
b3BvcnRpb24oKQogCiB2b2lkIFNjcm9sbGJhckVmbDo6dXBkYXRlVGh1bWJQb3NpdGlvbkFuZFBy
b3BvcnRpb24oKQogewotICAgIGlmICghcGxhdGZvcm1XaWRnZXQoKSkKKyAgICBpZiAoIWV2YXNP
YmplY3QoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW50IHBvcyA9IGN1cnJlbnRQb3MoKTsK
QEAgLTE4Niw3ICsxODgsNyBAQCB2b2lkIFNjcm9sbGJhckVmbDo6dXBkYXRlVGh1bWJQb3NpdGlv
bkFuZFByb3BvcnRpb24oKQogICAgIGVsc2UKICAgICAgICAgbWVzc2FnZS0+dmFsWzFdID0gMC4w
OwogCi0gICAgZWRqZV9vYmplY3RfbWVzc2FnZV9zZW5kKHBsYXRmb3JtV2lkZ2V0KCksIEVESkVf
TUVTU0FHRV9GTE9BVF9TRVQsIDAsIG1lc3NhZ2UpOworICAgIGVkamVfb2JqZWN0X21lc3NhZ2Vf
c2VuZChldmFzT2JqZWN0KCksIEVESkVfTUVTU0FHRV9GTE9BVF9TRVQsIDAsIG1lc3NhZ2UpOwog
fQogCiB2b2lkIFNjcm9sbGJhckVmbDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
CkBAIC0xOTcsNyArMTk5LDcgQEAgdm9pZCBTY3JvbGxiYXJFZmw6OnNldEZyYW1lUmVjdChjb25z
dCBJbnRSZWN0JiByZWN0KQogCiB2b2lkIFNjcm9sbGJhckVmbDo6ZnJhbWVSZWN0c0NoYW5nZWQo
KQogewotICAgIEV2YXNfT2JqZWN0KiBvYmplY3QgPSBwbGF0Zm9ybVdpZGdldCgpOworICAgIEV2
YXNfT2JqZWN0KiBvYmplY3QgPSBldmFzT2JqZWN0KCk7CiAgICAgRXZhc19Db29yZCB4LCB5Owog
CiAgICAgaWYgKCFwYXJlbnQoKSB8fCAhb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1Njcm9sbGJhckVmbC5oCmluZGV4IGNkZjBjYjAuLjFmZGNmZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmgKQEAgLTQyLDYgKzQyLDkgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0Jik7CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvdygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkg
T1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aGFuZGxlTW91c2VPdXRFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggMDNiNmQ0Yy4uOTg4M2Y5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAgLTQ3LDI0ICs0NywxMyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdpZGdldFByaXZhdGUgewotcHVibGljOgotICAg
IEV2YXMqIG1fZXZhczsKLSAgICBFdmFzX09iamVjdCogbV9ldmFzT2JqZWN0OwotCi0gICAgV2lk
Z2V0UHJpdmF0ZSgpCi0gICAgICAgIDogbV9ldmFzKDApCi0gICAgICAgICwgbV9ldmFzT2JqZWN0
KDApCi0gICAgeyB9Ci19OwotCiBXaWRnZXQ6OldpZGdldChQbGF0Zm9ybVdpZGdldCB3aWRnZXQp
CiAgICAgOiBtX3BhcmVudCgwKQogICAgICwgbV93aWRnZXQoMCkKICAgICAsIG1fc2VsZlZpc2li
bGUoZmFsc2UpCiAgICAgLCBtX3BhcmVudFZpc2libGUoZmFsc2UpCiAgICAgLCBtX2ZyYW1lKDAs
IDAsIDAsIDApCi0gICAgLCBtX2RhdGEobmV3IFdpZGdldFByaXZhdGUpCisgICAgLCBtX2V2YXNP
YmplY3QoMCkKIHsKICAgICBpbml0KHdpZGdldCk7CiB9CkBAIC03Miw4ICs2MSw2IEBAIFdpZGdl
dDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKIFdpZGdldDo6fldpZGdldCgpCiB7CiAg
ICAgQVNTRVJUKCFwYXJlbnQoKSk7Ci0KLSAgICBkZWxldGUgbV9kYXRhOwogfQogCiBJbnRSZWN0
IFdpZGdldDo6ZnJhbWVSZWN0KCkgY29uc3QKQEAgLTg5LDIxICs3Niw3IEBAIHZvaWQgV2lkZ2V0
OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIAogdm9pZCBXaWRnZXQ6OmZyYW1l
UmVjdHNDaGFuZ2VkKCkKIHsKLSAgICBFdmFzX09iamVjdCogb2JqZWN0ID0gZXZhc09iamVjdCgp
OwotICAgIEV2YXNfQ29vcmQgeCwgeTsKLQotICAgIGlmICghcGFyZW50KCkgfHwgIW9iamVjdCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgSW50UmVjdCByZWN0ID0gZnJhbWVSZWN0KCk7Ci0gICAg
aWYgKHBhcmVudCgpLT5pc1Njcm9sbFZpZXdTY3JvbGxiYXIodGhpcykpCi0gICAgICAgIHJlY3Qu
c2V0TG9jYXRpb24ocGFyZW50KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3cocmVjdC5sb2Nh
dGlvbigpKSk7Ci0gICAgZWxzZQotICAgICAgICByZWN0LnNldExvY2F0aW9uKHBhcmVudCgpLT5j
b250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24oKSkpOwotCi0gICAgZXZhc19vYmplY3RfZ2Vv
bWV0cnlfZ2V0KHJvb3QoKS0+ZXZhc09iamVjdCgpLCAmeCwgJnksIDAsIDApOwotICAgIGV2YXNf
b2JqZWN0X21vdmUob2JqZWN0LCB4ICsgcmVjdC54KCksIHkgKyByZWN0LnkoKSk7Ci0gICAgZXZh
c19vYmplY3RfcmVzaXplKG9iamVjdCwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCkKQEAg
LTEyMCwxOCArOTMsMTIgQEAgdm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1
cnNvcikKIAogdm9pZCBXaWRnZXQ6OnNob3coKQogewotICAgIGlmICghcGxhdGZvcm1XaWRnZXQo
KSkKLSAgICAgICAgIHJldHVybjsKLQotICAgIGV2YXNfb2JqZWN0X3Nob3cocGxhdGZvcm1XaWRn
ZXQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBXaWRnZXQ6OmhpZGUoKQog
ewotICAgIGlmICghcGxhdGZvcm1XaWRnZXQoKSkKLSAgICAgICAgIHJldHVybjsKLQotICAgIGV2
YXNfb2JqZWN0X2hpZGUocGxhdGZvcm1XaWRnZXQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAogdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3Qm
KQpAQCAtMTQ0LDMxICsxMTEsOSBAQCB2b2lkIFdpZGdldDo6c2V0SXNTZWxlY3RlZChib29sKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUV2YXMqIFdpZGdldDo6ZXZhcygpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fZGF0YS0+bV9ldmFzOwotfQotCi12b2lkIFdpZGdldDo6c2V0RXZhc09i
amVjdChFdmFzX09iamVjdCAqb2JqZWN0KQotewotICAgIC8vIEZJWE1FOiBzdHVkeSBwbGF0Zm9y
bVdpZGdldCgpIGFuZCB1c2UgaXQKLSAgICAvLyBGSVhNRTogcmlnaHQgbm93IHBsYXRmb3JtV2lk
Z2V0KCkgcmVxdWlyZXMgaW1wbGVtZW50aW5nIHRvbyBtdWNoCi0gICAgaWYgKG1fZGF0YS0+bV9l
dmFzT2JqZWN0ID09IG9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fZGF0YS0+bV9ldmFz
T2JqZWN0ID0gb2JqZWN0OwotICAgIGlmICghb2JqZWN0KSB7Ci0gICAgICAgIG1fZGF0YS0+bV9l
dmFzID0gMDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZGF0YS0+bV9ldmFzID0g
ZXZhc19vYmplY3RfZXZhc19nZXQob2JqZWN0KTsKLQotICAgIFdpZGdldDo6ZnJhbWVSZWN0c0No
YW5nZWQoKTsKLX0KLQotRXZhc19PYmplY3QqIFdpZGdldDo6ZXZhc09iamVjdCgpIGNvbnN0Cit2
b2lkIFdpZGdldDo6c2V0RXZhc09iamVjdChFdmFzX09iamVjdCogb2JqZWN0KQogewotICAgIHJl
dHVybiBtX2RhdGEtPm1fZXZhc09iamVjdDsKKyAgICBtX2V2YXNPYmplY3QgPSBvYmplY3Q7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdpblZpZXdF
ZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9lZmwvUGx1Z2luVmlld0VmbC5jcHAKaW5k
ZXggODc3YTA3NC4uMmNhYTg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9l
ZmwvUGx1Z2luVmlld0VmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9lZmwvUGx1
Z2luVmlld0VmbC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBy
ZQogICAgIH0KIAogICAgIGNhc2UgTlBOVm5ldHNjYXBlV2luZG93OiB7Ci0gICAgICAgIEV2YXMq
IGV2YXMgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmV2YXMoKTsKKyAgICAgICAgRXZhcyogZXZh
cyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+ZXZhc09iamVj
dCgpKTsKICAgICAgICAgaWYgKCFldmFzKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192505</attachid>
            <date>2013-03-11 10:52:04 -0700</date>
            <delta_ts>2013-03-12 11:23:47 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug111858_v2</filename>
            <type>text/plain</type>
            <size>12992</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDI3YjRjOTM0ZTU0MTQ2ZGU1M2FjZjg3OWJlZmZjNjZiZmYwYzI1NDEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE1hciAxMSAxOTo0NjowNyAyMDEzICswMjAwCgogICAgYnVnMTExODU4CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDJmODRkZmQuLjBjN2IwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMy0w
My0xMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXSBTdGFydCB1c2luZyBldmFzIG9iamVjdCBkaXJlY3RseSBpbiBXaWRn
ZXQgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMTg1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEJhc2VkIG9uIGEgcGF0Y2ggYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAg
ICAgRUZMIFdpZGdldCBjbGFzcyBzaG91bGQgdXNlIGV2YXMgb2JqZWN0IHBvaW50ZXIgZGlyZWN0
bHkgcmF0aGVyCisgICAgICAgIHRoYW4gV2lkZ2V0UHJpdmF0ZSogbV9kYXRhIGFzIHBsYXRmb3Jt
V2lkZ2V0KCkgaXMgYSBNYWMgc3BlY2lmaWMKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZGV0YWls
IHRoYXQgdGhleSBhcmUgbW92aW5nIGF3YXkgZnJvbSB3aXRoIFdlYktpdDIuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBicmluZ3M6IGZpcnN0bHkgYmV0dGVyIGNvbXBsaWFuY2Ugd2l0aCBvdGhlciBw
b3J0cywKKyAgICAgICAgc2Vjb25kbHkgaXQgbWFrZXMgY29kZSBjbGVhbmVyLgorCisgICAgICAg
IEJlc2lkZXMsIHRoZSBldmFzT2JqZWN0IGlzIG9ubHkgZGlyZWN0bHkgdXNlZCBpbiB0aGUgU2Ny
b2xsYmFyRWZsCisgICAgICAgIHN1YmNsYXNzIG9mIFdpZGdldCBhbmQgbm90IGluIFdpZGdldCBv
ciBTY3JvbGxWaWV3IG9yIGFueSBvdGhlciBzdWJjbGFzcywKKyAgICAgICAgdGh1cyB0aGUgZXZh
c19vYmplY3QgY29kZSBoYXMgbm93IGJlZW4gY29uY2VudHJhdGVkIGluIFNjcm9sbGJhckVmbC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhlcmUgYXJlIG5vIGJlaGF2aW9yYWwgY2hhbmdl
cy4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
V2lkZ2V0OjpldmFzT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZs
LmNwcDoKKyAgICAgICAgKFNjcm9sbGJhckVmbDo6flNjcm9sbGJhckVmbCk6CisgICAgICAgIChz
Y3JvbGxiYXJFZmxFZGplTWVzc2FnZSk6CisgICAgICAgIChTY3JvbGxiYXJFZmw6OnNob3cpOgor
ICAgICAgICAoU2Nyb2xsYmFyRWZsOjpoaWRlKToKKyAgICAgICAgKFNjcm9sbGJhckVmbDo6c2V0
UGFyZW50KToKKyAgICAgICAgKFNjcm9sbGJhckVmbDo6dXBkYXRlVGh1bWJQb3NpdGlvbkFuZFBy
b3BvcnRpb24pOgorICAgICAgICAoU2Nyb2xsYmFyRWZsOjpmcmFtZVJlY3RzQ2hhbmdlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5oOgorICAgICAgICAoU2Nyb2xsYmFy
RWZsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldpZGdldDo6V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6fldpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRFdmFzT2JqZWN0KToKKyAgICAgICAg
KiBwbHVnaW5zL2VmbC9QbHVnaW5WaWV3RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorCiAyMDEzLTAzLTExICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmFwcHJvcHJpYXRlIHZhbGlkYXRpb24gbWVz
c2FnZSBmb3IgcmVxdWlyZWQgbnVtYmVyL2RhdGUgaW5wdXQgZWxlbWVudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IGRiNjk1ODkuLjdjODQyNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAtNDIs
NyArNDIsNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgotI2luY2x1
ZGUgIlNjcm9sbGJhci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2lkZ2V0LmgKaW5kZXggNTE1NDIxZS4uMzU2M2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKQEAgLTgxLDEwICs4MSw4IEBAIHR5cGVkZWYgd3hXaW5kb3cqIFBsYXRmb3JtV2lkZ2V0Owog
I2lmIFBMQVRGT1JNKEVGTCkKICNpZiBVU0UoRU8pCiB0eXBlZGVmIHN0cnVjdCBfRW8gRXZhc19P
YmplY3Q7Ci10eXBlZGVmIHN0cnVjdCBfRW8gRXZhczsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBf
RXZhc19PYmplY3QgRXZhc19PYmplY3Q7Ci10eXBlZGVmIHN0cnVjdCBfRXZhcyBFdmFzOwogI2Vu
ZGlmCiB0eXBlZGVmIEV2YXNfT2JqZWN0KiBQbGF0Zm9ybVdpZGdldDsKICNlbmRpZgpAQCAtMjI0
LDEzICsyMjIsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEVGTCkKLSAgICAv
LyBGSVhNRTogVGhlc2Ugc2hvdWxkIHJlYWxseSBnbyB0byBQbGF0Zm9ybVdpZGdldC4gVGhleSdy
ZSBoZXJlIGN1cnJlbnRseSBzaW5jZQotICAgIC8vIHRoZSBFRkwgcG9ydCBjb25zaWRlcnMgdGhh
dCBFdmFzX09iamVjdCAoYSBDIG9iamVjdCkgaXMgYSBQbGF0Zm9ybVdpZGdldCwgYnV0Ci0gICAg
Ly8gZW5jYXBzdWxhdGluZyB0aGF0IGludG8gYSBDKysgY2xhc3Mgd2lsbCBtYWtlIHRoaXMgaGVh
ZGVyIGNsZWFuIGFzIGl0IHNob3VsZCBiZS4KLSAgICBFdmFzKiBldmFzKCkgY29uc3Q7Ci0KICAg
ICB2b2lkIHNldEV2YXNPYmplY3QoRXZhc19PYmplY3QqKTsKLSAgICBFdmFzX09iamVjdCogZXZh
c09iamVjdCgpIGNvbnN0OworICAgIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KCkgeyByZXR1cm4g
bV9ldmFzT2JqZWN0OyB9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQpAQCAtMjc3
LDEwICsyNzAsMTQgQEAgcHJpdmF0ZToKIAogICAgIEludFJlY3QgbV9mcmFtZTsgLy8gTm90IHVz
ZWQgd2hlbiBhIG5hdGl2ZSB3aWRnZXQgZXhpc3RzLgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFdpZGdldFByaXZhdGUqIG1fZGF0
YTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oRUZMKQorICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNP
YmplY3Q7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFFUKQogICAgIFFQb2ludGVyPFFPYmplY3Q+
IG1fYmluZGluZ09iamVjdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
U2Nyb2xsYmFyRWZsLmNwcAppbmRleCAyMDUwMzQwLi5iNDQ1Y2IxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcApAQCAtNjMsMTYgKzYzLDEzIEBAIFNj
cm9sbGJhckVmbDo6flNjcm9sbGJhckVmbCgpCiB7CiAgICAgaWYgKCFldmFzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybjsKKwogICAgIGV2YXNfb2JqZWN0X2RlbChldmFzT2JqZWN0KCkpOwogICAg
IHNldEV2YXNPYmplY3QoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNjcm9sbGJhckVmbEVkamVNZXNz
YWdlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiwgRWRqZV9NZXNzYWdlX1R5cGUgbWVzc2FnZVR5
cGUsIGludCBpZCwgdm9pZCogbWVzc2FnZSkKIHsKLSAgICBTY3JvbGxiYXJFZmwqIHRoYXQgPSBz
dGF0aWNfY2FzdDxTY3JvbGxiYXJFZmwqPihkYXRhKTsKLSAgICBFZGplX01lc3NhZ2VfRmxvYXQq
IG1lc3NhZ2VGbG9hdDsKLSAgICBpbnQgdmFsdWU7Ci0KICAgICBpZiAoIWlkKSB7CiAgICAgICAg
IEVJTkFfTE9HX0VSUigiVW5rbm93biBtZXNzYWdlIGlkICclZCcgZnJvbSBzY3JvbGwgYmFyIHRo
ZW1lLiIsIGlkKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODUsNjMgKzgyLDY0IEBAIHN0YXRpYyB2
b2lkIHNjcm9sbGJhckVmbEVkamVNZXNzYWdlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiwgRWRq
ZV9NZXNzYWdlX1R5cGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1lc3NhZ2VGbG9h
dCA9IHN0YXRpY19jYXN0PEVkamVfTWVzc2FnZV9GbG9hdCo+KG1lc3NhZ2UpOwotICAgIHZhbHVl
ID0gbWVzc2FnZUZsb2F0LT52YWwgKiAodGhhdC0+dG90YWxTaXplKCkgLSB0aGF0LT52aXNpYmxl
U2l6ZSgpKTsKKyAgICBTY3JvbGxiYXJFZmwqIHRoYXQgPSBzdGF0aWNfY2FzdDxTY3JvbGxiYXJF
ZmwqPihkYXRhKTsKKworICAgIEVkamVfTWVzc2FnZV9GbG9hdCogbWVzc2FnZUZsb2F0ID0gc3Rh
dGljX2Nhc3Q8RWRqZV9NZXNzYWdlX0Zsb2F0Kj4obWVzc2FnZSk7CisgICAgaW50IHZhbHVlID0g
bWVzc2FnZUZsb2F0LT52YWwgKiAodGhhdC0+dG90YWxTaXplKCkgLSB0aGF0LT52aXNpYmxlU2l6
ZSgpKTsKICAgICB0aGF0LT5zY3JvbGxhYmxlQXJlYSgpLT5zY3JvbGxUb09mZnNldFdpdGhvdXRB
bmltYXRpb24odGhhdC0+b3JpZW50YXRpb24oKSwgdmFsdWUpOwogfQogCi12b2lkIFNjcm9sbGJh
ckVmbDo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCit2b2lkIFNjcm9sbGJhckVmbDo6c2hv
dygpCiB7Ci0gICAgRXZhc19PYmplY3QqIG9iamVjdCA9IGV2YXNPYmplY3QoKTsKKyAgICBpZiAo
RXZhc19PYmplY3QqIG9iamVjdCA9IGV2YXNPYmplY3QoKSkKKyAgICAgICAgZXZhc19vYmplY3Rf
c2hvdyhvYmplY3QpOworfQogCi0gICAgV2lkZ2V0OjpzZXRQYXJlbnQodmlldyk7Cit2b2lkIFNj
cm9sbGJhckVmbDo6aGlkZSgpCit7CisgICAgaWYgKEV2YXNfT2JqZWN0KiBvYmplY3QgPSBldmFz
T2JqZWN0KCkpCisgICAgICAgIGV2YXNfb2JqZWN0X2hpZGUob2JqZWN0KTsKK30KIAotICAgIGlm
ICghb2JqZWN0KSB7Ci0gICAgICAgIGlmICghdmlldyB8fCAhdmlldy0+ZXZhcygpIHx8ICF2aWV3
LT5ldmFzT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm47Cit2b2lkIFNjcm9sbGJhckVmbDo6
c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCit7CisgICAgV2lkZ2V0OjpzZXRQYXJlbnQodmll
dyk7CiAKLSAgICAgICAgb2JqZWN0ID0gZWRqZV9vYmplY3RfYWRkKHZpZXctPmV2YXMoKSk7Ci0g
ICAgICAgIGlmICghb2JqZWN0KSB7Ci0gICAgICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5v
dCBjcmVhdGUgZWRqZSBvYmplY3QgZm9yIHZpZXc9JXAgKGV2YXM9JXApIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICB2aWV3LCB2aWV3LT5ldmFzKCkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIGVkamVfb2JqZWN0X21lc3NhZ2VfaGFuZGxlcl9zZXQob2JqZWN0
LCBzY3JvbGxiYXJFZmxFZGplTWVzc2FnZSwgdGhpcyk7Ci0gICAgICAgIHNldEV2YXNPYmplY3Qo
b2JqZWN0KTsKLSAgICB9IGVsc2UgaWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXct
PmV2YXNPYmplY3QoKSkgewotICAgICAgICBldmFzX29iamVjdF9oaWRlKG9iamVjdCk7CisgICAg
aWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9
CiAKICAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih2aWV3KS0+ZnJh
bWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBQYWdlKiBwYWdl
ID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCisgICAgaWYgKCFmcmFtZSB8fCAhZnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgY2hhciogZ3JvdXAgPSAo
b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICA/ICJzY3JvbGxi
YXIuaG9yaXpvbnRhbCIgOiAic2Nyb2xsYmFyLnZlcnRpY2FsIjsKLSAgICBTdHJpbmcgdGhlbWUg
PSBzdGF0aWNfY2FzdDxSZW5kZXJUaGVtZUVmbCo+KHBhZ2UtPnRoZW1lKCkpLT50aGVtZVBhdGgo
KTsKKyAgICBTdHJpbmcgdGhlbWUgPSBzdGF0aWNfY2FzdDxSZW5kZXJUaGVtZUVmbCo+KGZyYW1l
LT5wYWdlKCktPnRoZW1lKCkpLT50aGVtZVBhdGgoKTsKIAorICAgIGNvbnN0IGNoYXIqIGdyb3Vw
ID0gKG9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgPyAic2Nyb2xsYmFyLmhv
cml6b250YWwiIDogInNjcm9sbGJhci52ZXJ0aWNhbCI7CiAgICAgaWYgKHRoZW1lLmlzRW1wdHko
KSkgewogICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBsb2FkIHRoZW1lICclcyc6IG5v
IHRoZW1lIHBhdGggc2V0LiIsIGdyb3VwKTsKLSAgICAgICAgZXZhc19vYmplY3RfaGlkZShvYmpl
Y3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlZGplX29iamVjdF9maWxl
X3NldChvYmplY3QsIHRoZW1lLnV0ZjgoKS5kYXRhKCksIGdyb3VwKSkgewotICAgICAgICBFZGpl
X0xvYWRfRXJyb3IgZXJyID0gZWRqZV9vYmplY3RfbG9hZF9lcnJvcl9nZXQob2JqZWN0KTsKKyAg
ICBpZiAoIWV2YXNPYmplY3QoKSkgeworICAgICAgICBzZXRFdmFzT2JqZWN0KGVkamVfb2JqZWN0
X2FkZChldmFzX29iamVjdF9ldmFzX2dldCh2aWV3LT5ldmFzT2JqZWN0KCkpKSk7CisgICAgICAg
IGlmICghZXZhc09iamVjdCgpKSB7CisgICAgICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5v
dCBjcmVhdGUgZWRqZSBvYmplY3QgZm9yIHZpZXc9JXAiLCB2aWV3KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBmcmFtZVJlY3RzQ2hhbmdlZCgpOworICAgICAgICBl
ZGplX29iamVjdF9tZXNzYWdlX2hhbmRsZXJfc2V0KGV2YXNPYmplY3QoKSwgc2Nyb2xsYmFyRWZs
RWRqZU1lc3NhZ2UsIHRoaXMpOworICAgIH0KKworICAgIGlmICghZWRqZV9vYmplY3RfZmlsZV9z
ZXQoZXZhc09iamVjdCgpLCB0aGVtZS51dGY4KCkuZGF0YSgpLCBncm91cCkpIHsKKyAgICAgICAg
RWRqZV9Mb2FkX0Vycm9yIGVyciA9IGVkamVfb2JqZWN0X2xvYWRfZXJyb3JfZ2V0KGV2YXNPYmpl
Y3QoKSk7CiAgICAgICAgIGNvbnN0IGNoYXIqIGVycm1lc3NhZ2UgPSBlZGplX2xvYWRfZXJyb3Jf
c3RyKGVycik7CiAgICAgICAgIEVJTkFfTE9HX0VSUigiQ291bGQgbm90IGxvYWQgdGhlbWUgJyVz
JyBmcm9tIGZpbGUgJyVzJzogIyVkICclcyciLAogICAgICAgICAgICAgICAgICAgICAgZ3JvdXAs
IHRoZW1lLnV0ZjgoKS5kYXRhKCksIGVyciwgZXJybWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBzZXRQbGF0Zm9ybVdpZGdldChvYmplY3QpOwotICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X21lbWJlcl9hZGQob2JqZWN0LCB2aWV3LT5ldmFzT2JqZWN0KCkpOwotICAgIGV2YXNf
b2JqZWN0X3Nob3cob2JqZWN0KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9tZW1iZXJfYWRkKGV2
YXNPYmplY3QoKSwgdmlldy0+ZXZhc09iamVjdCgpKTsKKyAgICBldmFzX29iamVjdF9zaG93KGV2
YXNPYmplY3QoKSk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyRWZsOjp1cGRhdGVUaHVtYlBvc2l0aW9u
KCkKQEAgLTE1Niw3ICsxNTQsNyBAQCB2b2lkIFNjcm9sbGJhckVmbDo6dXBkYXRlVGh1bWJQcm9w
b3J0aW9uKCkKIAogdm9pZCBTY3JvbGxiYXJFZmw6OnVwZGF0ZVRodW1iUG9zaXRpb25BbmRQcm9w
b3J0aW9uKCkKIHsKLSAgICBpZiAoIXBsYXRmb3JtV2lkZ2V0KCkpCisgICAgaWYgKCFldmFzT2Jq
ZWN0KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGludCBwb3MgPSBjdXJyZW50UG9zKCk7CkBA
IC0xODYsNyArMTg0LDcgQEAgdm9pZCBTY3JvbGxiYXJFZmw6OnVwZGF0ZVRodW1iUG9zaXRpb25B
bmRQcm9wb3J0aW9uKCkKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UtPnZhbFsxXSA9IDAuMDsK
IAotICAgIGVkamVfb2JqZWN0X21lc3NhZ2Vfc2VuZChwbGF0Zm9ybVdpZGdldCgpLCBFREpFX01F
U1NBR0VfRkxPQVRfU0VULCAwLCBtZXNzYWdlKTsKKyAgICBlZGplX29iamVjdF9tZXNzYWdlX3Nl
bmQoZXZhc09iamVjdCgpLCBFREpFX01FU1NBR0VfRkxPQVRfU0VULCAwLCBtZXNzYWdlKTsKIH0K
IAogdm9pZCBTY3JvbGxiYXJFZmw6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQpA
QCAtMTk3LDcgKzE5NSw3IEBAIHZvaWQgU2Nyb2xsYmFyRWZsOjpzZXRGcmFtZVJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKIAogdm9pZCBTY3JvbGxiYXJFZmw6OmZyYW1lUmVjdHNDaGFuZ2VkKCkK
IHsKLSAgICBFdmFzX09iamVjdCogb2JqZWN0ID0gcGxhdGZvcm1XaWRnZXQoKTsKKyAgICBFdmFz
X09iamVjdCogb2JqZWN0ID0gZXZhc09iamVjdCgpOwogICAgIEV2YXNfQ29vcmQgeCwgeTsKIAog
ICAgIGlmICghcGFyZW50KCkgfHwgIW9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9TY3JvbGxiYXJFZmwuaAppbmRleCBjZGYwY2IwLi4xZmRjZmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5oCkBAIC00Miw2ICs0Miw5IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYpOwogCisgICAg
dmlydHVhbCB2b2lkIHNob3coKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpIE9W
RVJSSURFOworCiAgICAgdmlydHVhbCBib29sIGhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhh
bmRsZU1vdXNlT3V0RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9XaWRnZXRFZmwuY3BwCmluZGV4IDAzYjZkNGMuLjk4ODNmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCkBAIC00NywyNCArNDcsMTMgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXaWRnZXRQcml2YXRlIHsKLXB1YmxpYzoKLSAgICBF
dmFzKiBtX2V2YXM7Ci0gICAgRXZhc19PYmplY3QqIG1fZXZhc09iamVjdDsKLQotICAgIFdpZGdl
dFByaXZhdGUoKQotICAgICAgICA6IG1fZXZhcygwKQotICAgICAgICAsIG1fZXZhc09iamVjdCgw
KQotICAgIHsgfQotfTsKLQogV2lkZ2V0OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQog
ICAgIDogbV9wYXJlbnQoMCkKICAgICAsIG1fd2lkZ2V0KDApCiAgICAgLCBtX3NlbGZWaXNpYmxl
KGZhbHNlKQogICAgICwgbV9wYXJlbnRWaXNpYmxlKGZhbHNlKQogICAgICwgbV9mcmFtZSgwLCAw
LCAwLCAwKQotICAgICwgbV9kYXRhKG5ldyBXaWRnZXRQcml2YXRlKQorICAgICwgbV9ldmFzT2Jq
ZWN0KDApCiB7CiAgICAgaW5pdCh3aWRnZXQpOwogfQpAQCAtNzIsOCArNjEsNiBAQCBXaWRnZXQ6
OldpZGdldChQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCiBXaWRnZXQ6On5XaWRnZXQoKQogewogICAg
IEFTU0VSVCghcGFyZW50KCkpOwotCi0gICAgZGVsZXRlIG1fZGF0YTsKIH0KIAogSW50UmVjdCBX
aWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0CkBAIC04OSwyMSArNzYsNyBAQCB2b2lkIFdpZGdldDo6
c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAKIHZvaWQgV2lkZ2V0OjpmcmFtZVJl
Y3RzQ2hhbmdlZCgpCiB7Ci0gICAgRXZhc19PYmplY3QqIG9iamVjdCA9IGV2YXNPYmplY3QoKTsK
LSAgICBFdmFzX0Nvb3JkIHgsIHk7Ci0KLSAgICBpZiAoIXBhcmVudCgpIHx8ICFvYmplY3QpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIEludFJlY3QgcmVjdCA9IGZyYW1lUmVjdCgpOwotICAgIGlm
IChwYXJlbnQoKS0+aXNTY3JvbGxWaWV3U2Nyb2xsYmFyKHRoaXMpKQotICAgICAgICByZWN0LnNl
dExvY2F0aW9uKHBhcmVudCgpLT5jb252ZXJ0VG9Db250YWluaW5nV2luZG93KHJlY3QubG9jYXRp
b24oKSkpOwotICAgIGVsc2UKLSAgICAgICAgcmVjdC5zZXRMb2NhdGlvbihwYXJlbnQoKS0+Y29u
dGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpKTsKLQotICAgIGV2YXNfb2JqZWN0X2dlb21l
dHJ5X2dldChyb290KCktPmV2YXNPYmplY3QoKSwgJngsICZ5LCAwLCAwKTsKLSAgICBldmFzX29i
amVjdF9tb3ZlKG9iamVjdCwgeCArIHJlY3QueCgpLCB5ICsgcmVjdC55KCkpOwotICAgIGV2YXNf
b2JqZWN0X3Jlc2l6ZShvYmplY3QsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCkBAIC0x
MjAsMTggKzkzLDEyIEBAIHZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJz
b3IpCiAKIHZvaWQgV2lkZ2V0OjpzaG93KCkKIHsKLSAgICBpZiAoIXBsYXRmb3JtV2lkZ2V0KCkp
Ci0gICAgICAgICByZXR1cm47Ci0KLSAgICBldmFzX29iamVjdF9zaG93KHBsYXRmb3JtV2lkZ2V0
KCkpOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgV2lkZ2V0OjpoaWRlKCkKIHsK
LSAgICBpZiAoIXBsYXRmb3JtV2lkZ2V0KCkpCi0gICAgICAgICByZXR1cm47Ci0KLSAgICBldmFz
X29iamVjdF9oaWRlKHBsYXRmb3JtV2lkZ2V0KCkpOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikK
QEAgLTE0NCwzMSArMTExLDkgQEAgdm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1FdmFzKiBXaWRnZXQ6OmV2YXMoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2RhdGEtPm1fZXZhczsKLX0KLQotdm9pZCBXaWRnZXQ6OnNldEV2YXNPYmpl
Y3QoRXZhc19PYmplY3QgKm9iamVjdCkKLXsKLSAgICAvLyBGSVhNRTogc3R1ZHkgcGxhdGZvcm1X
aWRnZXQoKSBhbmQgdXNlIGl0Ci0gICAgLy8gRklYTUU6IHJpZ2h0IG5vdyBwbGF0Zm9ybVdpZGdl
dCgpIHJlcXVpcmVzIGltcGxlbWVudGluZyB0b28gbXVjaAotICAgIGlmIChtX2RhdGEtPm1fZXZh
c09iamVjdCA9PSBvYmplY3QpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2RhdGEtPm1fZXZhc09i
amVjdCA9IG9iamVjdDsKLSAgICBpZiAoIW9iamVjdCkgewotICAgICAgICBtX2RhdGEtPm1fZXZh
cyA9IDA7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2RhdGEtPm1fZXZhcyA9IGV2
YXNfb2JqZWN0X2V2YXNfZ2V0KG9iamVjdCk7Ci0KLSAgICBXaWRnZXQ6OmZyYW1lUmVjdHNDaGFu
Z2VkKCk7Ci19Ci0KLUV2YXNfT2JqZWN0KiBXaWRnZXQ6OmV2YXNPYmplY3QoKSBjb25zdAordm9p
ZCBXaWRnZXQ6OnNldEV2YXNPYmplY3QoRXZhc19PYmplY3QqIG9iamVjdCkKIHsKLSAgICByZXR1
cm4gbV9kYXRhLT5tX2V2YXNPYmplY3Q7CisgICAgbV9ldmFzT2JqZWN0ID0gb2JqZWN0OwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2VmbC9QbHVnaW5WaWV3RWZs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdpblZpZXdFZmwuY3BwCmluZGV4
IDg3N2EwNzQuLjJjYWE4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZs
L1BsdWdpblZpZXdFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdp
blZpZXdFZmwuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUK
ICAgICB9CiAKICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewotICAgICAgICBFdmFzKiBl
dmFzID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ldmFzKCk7CisgICAgICAgIEV2YXMqIGV2YXMg
PSBldmFzX29iamVjdF9ldmFzX2dldChtX3BhcmVudEZyYW1lLT52aWV3KCktPmV2YXNPYmplY3Qo
KSk7CiAgICAgICAgIGlmICghZXZhcykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAo=
</data>
<flag name="commit-queue"
          id="213819"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192775</attachid>
            <date>2013-03-12 11:23:47 -0700</date>
            <delta_ts>2013-03-13 06:32:20 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug111858_v2</filename>
            <type>text/plain</type>
            <size>12992</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDI3YjRjOTM0ZTU0MTQ2ZGU1M2FjZjg3OWJlZmZjNjZiZmYwYzI1NDEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE1hciAxMSAxOTo0NjowNyAyMDEzICswMjAwCgogICAgYnVnMTExODU4CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDJmODRkZmQuLjBjN2IwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMy0w
My0xMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXSBTdGFydCB1c2luZyBldmFzIG9iamVjdCBkaXJlY3RseSBpbiBXaWRn
ZXQgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMTg1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEJhc2VkIG9uIGEgcGF0Y2ggYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAg
ICAgRUZMIFdpZGdldCBjbGFzcyBzaG91bGQgdXNlIGV2YXMgb2JqZWN0IHBvaW50ZXIgZGlyZWN0
bHkgcmF0aGVyCisgICAgICAgIHRoYW4gV2lkZ2V0UHJpdmF0ZSogbV9kYXRhIGFzIHBsYXRmb3Jt
V2lkZ2V0KCkgaXMgYSBNYWMgc3BlY2lmaWMKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZGV0YWls
IHRoYXQgdGhleSBhcmUgbW92aW5nIGF3YXkgZnJvbSB3aXRoIFdlYktpdDIuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBicmluZ3M6IGZpcnN0bHkgYmV0dGVyIGNvbXBsaWFuY2Ugd2l0aCBvdGhlciBw
b3J0cywKKyAgICAgICAgc2Vjb25kbHkgaXQgbWFrZXMgY29kZSBjbGVhbmVyLgorCisgICAgICAg
IEJlc2lkZXMsIHRoZSBldmFzT2JqZWN0IGlzIG9ubHkgZGlyZWN0bHkgdXNlZCBpbiB0aGUgU2Ny
b2xsYmFyRWZsCisgICAgICAgIHN1YmNsYXNzIG9mIFdpZGdldCBhbmQgbm90IGluIFdpZGdldCBv
ciBTY3JvbGxWaWV3IG9yIGFueSBvdGhlciBzdWJjbGFzcywKKyAgICAgICAgdGh1cyB0aGUgZXZh
c19vYmplY3QgY29kZSBoYXMgbm93IGJlZW4gY29uY2VudHJhdGVkIGluIFNjcm9sbGJhckVmbC4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhlcmUgYXJlIG5vIGJlaGF2aW9yYWwgY2hhbmdl
cy4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgIChXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
V2lkZ2V0OjpldmFzT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZs
LmNwcDoKKyAgICAgICAgKFNjcm9sbGJhckVmbDo6flNjcm9sbGJhckVmbCk6CisgICAgICAgIChz
Y3JvbGxiYXJFZmxFZGplTWVzc2FnZSk6CisgICAgICAgIChTY3JvbGxiYXJFZmw6OnNob3cpOgor
ICAgICAgICAoU2Nyb2xsYmFyRWZsOjpoaWRlKToKKyAgICAgICAgKFNjcm9sbGJhckVmbDo6c2V0
UGFyZW50KToKKyAgICAgICAgKFNjcm9sbGJhckVmbDo6dXBkYXRlVGh1bWJQb3NpdGlvbkFuZFBy
b3BvcnRpb24pOgorICAgICAgICAoU2Nyb2xsYmFyRWZsOjpmcmFtZVJlY3RzQ2hhbmdlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5oOgorICAgICAgICAoU2Nyb2xsYmFy
RWZsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldpZGdldDo6V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6fldpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRFdmFzT2JqZWN0KToKKyAgICAgICAg
KiBwbHVnaW5zL2VmbC9QbHVnaW5WaWV3RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnBsYXRmb3JtR2V0VmFsdWUpOgorCiAyMDEzLTAzLTExICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmFwcHJvcHJpYXRlIHZhbGlkYXRpb24gbWVz
c2FnZSBmb3IgcmVxdWlyZWQgbnVtYmVyL2RhdGUgaW5wdXQgZWxlbWVudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IGRiNjk1ODkuLjdjODQyNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAtNDIs
NyArNDIsNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgotI2luY2x1
ZGUgIlNjcm9sbGJhci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2lkZ2V0LmgKaW5kZXggNTE1NDIxZS4uMzU2M2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKQEAgLTgxLDEwICs4MSw4IEBAIHR5cGVkZWYgd3hXaW5kb3cqIFBsYXRmb3JtV2lkZ2V0Owog
I2lmIFBMQVRGT1JNKEVGTCkKICNpZiBVU0UoRU8pCiB0eXBlZGVmIHN0cnVjdCBfRW8gRXZhc19P
YmplY3Q7Ci10eXBlZGVmIHN0cnVjdCBfRW8gRXZhczsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBf
RXZhc19PYmplY3QgRXZhc19PYmplY3Q7Ci10eXBlZGVmIHN0cnVjdCBfRXZhcyBFdmFzOwogI2Vu
ZGlmCiB0eXBlZGVmIEV2YXNfT2JqZWN0KiBQbGF0Zm9ybVdpZGdldDsKICNlbmRpZgpAQCAtMjI0
LDEzICsyMjIsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEVGTCkKLSAgICAv
LyBGSVhNRTogVGhlc2Ugc2hvdWxkIHJlYWxseSBnbyB0byBQbGF0Zm9ybVdpZGdldC4gVGhleSdy
ZSBoZXJlIGN1cnJlbnRseSBzaW5jZQotICAgIC8vIHRoZSBFRkwgcG9ydCBjb25zaWRlcnMgdGhh
dCBFdmFzX09iamVjdCAoYSBDIG9iamVjdCkgaXMgYSBQbGF0Zm9ybVdpZGdldCwgYnV0Ci0gICAg
Ly8gZW5jYXBzdWxhdGluZyB0aGF0IGludG8gYSBDKysgY2xhc3Mgd2lsbCBtYWtlIHRoaXMgaGVh
ZGVyIGNsZWFuIGFzIGl0IHNob3VsZCBiZS4KLSAgICBFdmFzKiBldmFzKCkgY29uc3Q7Ci0KICAg
ICB2b2lkIHNldEV2YXNPYmplY3QoRXZhc19PYmplY3QqKTsKLSAgICBFdmFzX09iamVjdCogZXZh
c09iamVjdCgpIGNvbnN0OworICAgIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KCkgeyByZXR1cm4g
bV9ldmFzT2JqZWN0OyB9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQpAQCAtMjc3
LDEwICsyNzAsMTQgQEAgcHJpdmF0ZToKIAogICAgIEludFJlY3QgbV9mcmFtZTsgLy8gTm90IHVz
ZWQgd2hlbiBhIG5hdGl2ZSB3aWRnZXQgZXhpc3RzLgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFdpZGdldFByaXZhdGUqIG1fZGF0
YTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oRUZMKQorICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNP
YmplY3Q7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFFUKQogICAgIFFQb2ludGVyPFFPYmplY3Q+
IG1fYmluZGluZ09iamVjdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
U2Nyb2xsYmFyRWZsLmNwcAppbmRleCAyMDUwMzQwLi5iNDQ1Y2IxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcApAQCAtNjMsMTYgKzYzLDEzIEBAIFNj
cm9sbGJhckVmbDo6flNjcm9sbGJhckVmbCgpCiB7CiAgICAgaWYgKCFldmFzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybjsKKwogICAgIGV2YXNfb2JqZWN0X2RlbChldmFzT2JqZWN0KCkpOwogICAg
IHNldEV2YXNPYmplY3QoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNjcm9sbGJhckVmbEVkamVNZXNz
YWdlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiwgRWRqZV9NZXNzYWdlX1R5cGUgbWVzc2FnZVR5
cGUsIGludCBpZCwgdm9pZCogbWVzc2FnZSkKIHsKLSAgICBTY3JvbGxiYXJFZmwqIHRoYXQgPSBz
dGF0aWNfY2FzdDxTY3JvbGxiYXJFZmwqPihkYXRhKTsKLSAgICBFZGplX01lc3NhZ2VfRmxvYXQq
IG1lc3NhZ2VGbG9hdDsKLSAgICBpbnQgdmFsdWU7Ci0KICAgICBpZiAoIWlkKSB7CiAgICAgICAg
IEVJTkFfTE9HX0VSUigiVW5rbm93biBtZXNzYWdlIGlkICclZCcgZnJvbSBzY3JvbGwgYmFyIHRo
ZW1lLiIsIGlkKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODUsNjMgKzgyLDY0IEBAIHN0YXRpYyB2
b2lkIHNjcm9sbGJhckVmbEVkamVNZXNzYWdlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiwgRWRq
ZV9NZXNzYWdlX1R5cGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1lc3NhZ2VGbG9h
dCA9IHN0YXRpY19jYXN0PEVkamVfTWVzc2FnZV9GbG9hdCo+KG1lc3NhZ2UpOwotICAgIHZhbHVl
ID0gbWVzc2FnZUZsb2F0LT52YWwgKiAodGhhdC0+dG90YWxTaXplKCkgLSB0aGF0LT52aXNpYmxl
U2l6ZSgpKTsKKyAgICBTY3JvbGxiYXJFZmwqIHRoYXQgPSBzdGF0aWNfY2FzdDxTY3JvbGxiYXJF
ZmwqPihkYXRhKTsKKworICAgIEVkamVfTWVzc2FnZV9GbG9hdCogbWVzc2FnZUZsb2F0ID0gc3Rh
dGljX2Nhc3Q8RWRqZV9NZXNzYWdlX0Zsb2F0Kj4obWVzc2FnZSk7CisgICAgaW50IHZhbHVlID0g
bWVzc2FnZUZsb2F0LT52YWwgKiAodGhhdC0+dG90YWxTaXplKCkgLSB0aGF0LT52aXNpYmxlU2l6
ZSgpKTsKICAgICB0aGF0LT5zY3JvbGxhYmxlQXJlYSgpLT5zY3JvbGxUb09mZnNldFdpdGhvdXRB
bmltYXRpb24odGhhdC0+b3JpZW50YXRpb24oKSwgdmFsdWUpOwogfQogCi12b2lkIFNjcm9sbGJh
ckVmbDo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCit2b2lkIFNjcm9sbGJhckVmbDo6c2hv
dygpCiB7Ci0gICAgRXZhc19PYmplY3QqIG9iamVjdCA9IGV2YXNPYmplY3QoKTsKKyAgICBpZiAo
RXZhc19PYmplY3QqIG9iamVjdCA9IGV2YXNPYmplY3QoKSkKKyAgICAgICAgZXZhc19vYmplY3Rf
c2hvdyhvYmplY3QpOworfQogCi0gICAgV2lkZ2V0OjpzZXRQYXJlbnQodmlldyk7Cit2b2lkIFNj
cm9sbGJhckVmbDo6aGlkZSgpCit7CisgICAgaWYgKEV2YXNfT2JqZWN0KiBvYmplY3QgPSBldmFz
T2JqZWN0KCkpCisgICAgICAgIGV2YXNfb2JqZWN0X2hpZGUob2JqZWN0KTsKK30KIAotICAgIGlm
ICghb2JqZWN0KSB7Ci0gICAgICAgIGlmICghdmlldyB8fCAhdmlldy0+ZXZhcygpIHx8ICF2aWV3
LT5ldmFzT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm47Cit2b2lkIFNjcm9sbGJhckVmbDo6
c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCit7CisgICAgV2lkZ2V0OjpzZXRQYXJlbnQodmll
dyk7CiAKLSAgICAgICAgb2JqZWN0ID0gZWRqZV9vYmplY3RfYWRkKHZpZXctPmV2YXMoKSk7Ci0g
ICAgICAgIGlmICghb2JqZWN0KSB7Ci0gICAgICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5v
dCBjcmVhdGUgZWRqZSBvYmplY3QgZm9yIHZpZXc9JXAgKGV2YXM9JXApIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICB2aWV3LCB2aWV3LT5ldmFzKCkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIGVkamVfb2JqZWN0X21lc3NhZ2VfaGFuZGxlcl9zZXQob2JqZWN0
LCBzY3JvbGxiYXJFZmxFZGplTWVzc2FnZSwgdGhpcyk7Ci0gICAgICAgIHNldEV2YXNPYmplY3Qo
b2JqZWN0KTsKLSAgICB9IGVsc2UgaWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXct
PmV2YXNPYmplY3QoKSkgewotICAgICAgICBldmFzX29iamVjdF9oaWRlKG9iamVjdCk7CisgICAg
aWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9
CiAKICAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih2aWV3KS0+ZnJh
bWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBQYWdlKiBwYWdl
ID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCisgICAgaWYgKCFmcmFtZSB8fCAhZnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgY2hhciogZ3JvdXAgPSAo
b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICA/ICJzY3JvbGxi
YXIuaG9yaXpvbnRhbCIgOiAic2Nyb2xsYmFyLnZlcnRpY2FsIjsKLSAgICBTdHJpbmcgdGhlbWUg
PSBzdGF0aWNfY2FzdDxSZW5kZXJUaGVtZUVmbCo+KHBhZ2UtPnRoZW1lKCkpLT50aGVtZVBhdGgo
KTsKKyAgICBTdHJpbmcgdGhlbWUgPSBzdGF0aWNfY2FzdDxSZW5kZXJUaGVtZUVmbCo+KGZyYW1l
LT5wYWdlKCktPnRoZW1lKCkpLT50aGVtZVBhdGgoKTsKIAorICAgIGNvbnN0IGNoYXIqIGdyb3Vw
ID0gKG9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgPyAic2Nyb2xsYmFyLmhv
cml6b250YWwiIDogInNjcm9sbGJhci52ZXJ0aWNhbCI7CiAgICAgaWYgKHRoZW1lLmlzRW1wdHko
KSkgewogICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBsb2FkIHRoZW1lICclcyc6IG5v
IHRoZW1lIHBhdGggc2V0LiIsIGdyb3VwKTsKLSAgICAgICAgZXZhc19vYmplY3RfaGlkZShvYmpl
Y3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlZGplX29iamVjdF9maWxl
X3NldChvYmplY3QsIHRoZW1lLnV0ZjgoKS5kYXRhKCksIGdyb3VwKSkgewotICAgICAgICBFZGpl
X0xvYWRfRXJyb3IgZXJyID0gZWRqZV9vYmplY3RfbG9hZF9lcnJvcl9nZXQob2JqZWN0KTsKKyAg
ICBpZiAoIWV2YXNPYmplY3QoKSkgeworICAgICAgICBzZXRFdmFzT2JqZWN0KGVkamVfb2JqZWN0
X2FkZChldmFzX29iamVjdF9ldmFzX2dldCh2aWV3LT5ldmFzT2JqZWN0KCkpKSk7CisgICAgICAg
IGlmICghZXZhc09iamVjdCgpKSB7CisgICAgICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5v
dCBjcmVhdGUgZWRqZSBvYmplY3QgZm9yIHZpZXc9JXAiLCB2aWV3KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBmcmFtZVJlY3RzQ2hhbmdlZCgpOworICAgICAgICBl
ZGplX29iamVjdF9tZXNzYWdlX2hhbmRsZXJfc2V0KGV2YXNPYmplY3QoKSwgc2Nyb2xsYmFyRWZs
RWRqZU1lc3NhZ2UsIHRoaXMpOworICAgIH0KKworICAgIGlmICghZWRqZV9vYmplY3RfZmlsZV9z
ZXQoZXZhc09iamVjdCgpLCB0aGVtZS51dGY4KCkuZGF0YSgpLCBncm91cCkpIHsKKyAgICAgICAg
RWRqZV9Mb2FkX0Vycm9yIGVyciA9IGVkamVfb2JqZWN0X2xvYWRfZXJyb3JfZ2V0KGV2YXNPYmpl
Y3QoKSk7CiAgICAgICAgIGNvbnN0IGNoYXIqIGVycm1lc3NhZ2UgPSBlZGplX2xvYWRfZXJyb3Jf
c3RyKGVycik7CiAgICAgICAgIEVJTkFfTE9HX0VSUigiQ291bGQgbm90IGxvYWQgdGhlbWUgJyVz
JyBmcm9tIGZpbGUgJyVzJzogIyVkICclcyciLAogICAgICAgICAgICAgICAgICAgICAgZ3JvdXAs
IHRoZW1lLnV0ZjgoKS5kYXRhKCksIGVyciwgZXJybWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBzZXRQbGF0Zm9ybVdpZGdldChvYmplY3QpOwotICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X21lbWJlcl9hZGQob2JqZWN0LCB2aWV3LT5ldmFzT2JqZWN0KCkpOwotICAgIGV2YXNf
b2JqZWN0X3Nob3cob2JqZWN0KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9tZW1iZXJfYWRkKGV2
YXNPYmplY3QoKSwgdmlldy0+ZXZhc09iamVjdCgpKTsKKyAgICBldmFzX29iamVjdF9zaG93KGV2
YXNPYmplY3QoKSk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyRWZsOjp1cGRhdGVUaHVtYlBvc2l0aW9u
KCkKQEAgLTE1Niw3ICsxNTQsNyBAQCB2b2lkIFNjcm9sbGJhckVmbDo6dXBkYXRlVGh1bWJQcm9w
b3J0aW9uKCkKIAogdm9pZCBTY3JvbGxiYXJFZmw6OnVwZGF0ZVRodW1iUG9zaXRpb25BbmRQcm9w
b3J0aW9uKCkKIHsKLSAgICBpZiAoIXBsYXRmb3JtV2lkZ2V0KCkpCisgICAgaWYgKCFldmFzT2Jq
ZWN0KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGludCBwb3MgPSBjdXJyZW50UG9zKCk7CkBA
IC0xODYsNyArMTg0LDcgQEAgdm9pZCBTY3JvbGxiYXJFZmw6OnVwZGF0ZVRodW1iUG9zaXRpb25B
bmRQcm9wb3J0aW9uKCkKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2UtPnZhbFsxXSA9IDAuMDsK
IAotICAgIGVkamVfb2JqZWN0X21lc3NhZ2Vfc2VuZChwbGF0Zm9ybVdpZGdldCgpLCBFREpFX01F
U1NBR0VfRkxPQVRfU0VULCAwLCBtZXNzYWdlKTsKKyAgICBlZGplX29iamVjdF9tZXNzYWdlX3Nl
bmQoZXZhc09iamVjdCgpLCBFREpFX01FU1NBR0VfRkxPQVRfU0VULCAwLCBtZXNzYWdlKTsKIH0K
IAogdm9pZCBTY3JvbGxiYXJFZmw6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQpA
QCAtMTk3LDcgKzE5NSw3IEBAIHZvaWQgU2Nyb2xsYmFyRWZsOjpzZXRGcmFtZVJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKIAogdm9pZCBTY3JvbGxiYXJFZmw6OmZyYW1lUmVjdHNDaGFuZ2VkKCkK
IHsKLSAgICBFdmFzX09iamVjdCogb2JqZWN0ID0gcGxhdGZvcm1XaWRnZXQoKTsKKyAgICBFdmFz
X09iamVjdCogb2JqZWN0ID0gZXZhc09iamVjdCgpOwogICAgIEV2YXNfQ29vcmQgeCwgeTsKIAog
ICAgIGlmICghcGFyZW50KCkgfHwgIW9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9TY3JvbGxiYXJFZmwuaAppbmRleCBjZGYwY2IwLi4xZmRjZmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5oCkBAIC00Miw2ICs0Miw5IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYpOwogCisgICAg
dmlydHVhbCB2b2lkIHNob3coKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpIE9W
RVJSSURFOworCiAgICAgdmlydHVhbCBib29sIGhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhh
bmRsZU1vdXNlT3V0RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9XaWRnZXRFZmwuY3BwCmluZGV4IDAzYjZkNGMuLjk4ODNmOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwCkBAIC00NywyNCArNDcsMTMgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXaWRnZXRQcml2YXRlIHsKLXB1YmxpYzoKLSAgICBF
dmFzKiBtX2V2YXM7Ci0gICAgRXZhc19PYmplY3QqIG1fZXZhc09iamVjdDsKLQotICAgIFdpZGdl
dFByaXZhdGUoKQotICAgICAgICA6IG1fZXZhcygwKQotICAgICAgICAsIG1fZXZhc09iamVjdCgw
KQotICAgIHsgfQotfTsKLQogV2lkZ2V0OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQog
ICAgIDogbV9wYXJlbnQoMCkKICAgICAsIG1fd2lkZ2V0KDApCiAgICAgLCBtX3NlbGZWaXNpYmxl
KGZhbHNlKQogICAgICwgbV9wYXJlbnRWaXNpYmxlKGZhbHNlKQogICAgICwgbV9mcmFtZSgwLCAw
LCAwLCAwKQotICAgICwgbV9kYXRhKG5ldyBXaWRnZXRQcml2YXRlKQorICAgICwgbV9ldmFzT2Jq
ZWN0KDApCiB7CiAgICAgaW5pdCh3aWRnZXQpOwogfQpAQCAtNzIsOCArNjEsNiBAQCBXaWRnZXQ6
OldpZGdldChQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCiBXaWRnZXQ6On5XaWRnZXQoKQogewogICAg
IEFTU0VSVCghcGFyZW50KCkpOwotCi0gICAgZGVsZXRlIG1fZGF0YTsKIH0KIAogSW50UmVjdCBX
aWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0CkBAIC04OSwyMSArNzYsNyBAQCB2b2lkIFdpZGdldDo6
c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAKIHZvaWQgV2lkZ2V0OjpmcmFtZVJl
Y3RzQ2hhbmdlZCgpCiB7Ci0gICAgRXZhc19PYmplY3QqIG9iamVjdCA9IGV2YXNPYmplY3QoKTsK
LSAgICBFdmFzX0Nvb3JkIHgsIHk7Ci0KLSAgICBpZiAoIXBhcmVudCgpIHx8ICFvYmplY3QpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIEludFJlY3QgcmVjdCA9IGZyYW1lUmVjdCgpOwotICAgIGlm
IChwYXJlbnQoKS0+aXNTY3JvbGxWaWV3U2Nyb2xsYmFyKHRoaXMpKQotICAgICAgICByZWN0LnNl
dExvY2F0aW9uKHBhcmVudCgpLT5jb252ZXJ0VG9Db250YWluaW5nV2luZG93KHJlY3QubG9jYXRp
b24oKSkpOwotICAgIGVsc2UKLSAgICAgICAgcmVjdC5zZXRMb2NhdGlvbihwYXJlbnQoKS0+Y29u
dGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpKTsKLQotICAgIGV2YXNfb2JqZWN0X2dlb21l
dHJ5X2dldChyb290KCktPmV2YXNPYmplY3QoKSwgJngsICZ5LCAwLCAwKTsKLSAgICBldmFzX29i
amVjdF9tb3ZlKG9iamVjdCwgeCArIHJlY3QueCgpLCB5ICsgcmVjdC55KCkpOwotICAgIGV2YXNf
b2JqZWN0X3Jlc2l6ZShvYmplY3QsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCkBAIC0x
MjAsMTggKzkzLDEyIEBAIHZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJz
b3IpCiAKIHZvaWQgV2lkZ2V0OjpzaG93KCkKIHsKLSAgICBpZiAoIXBsYXRmb3JtV2lkZ2V0KCkp
Ci0gICAgICAgICByZXR1cm47Ci0KLSAgICBldmFzX29iamVjdF9zaG93KHBsYXRmb3JtV2lkZ2V0
KCkpOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgV2lkZ2V0OjpoaWRlKCkKIHsK
LSAgICBpZiAoIXBsYXRmb3JtV2lkZ2V0KCkpCi0gICAgICAgICByZXR1cm47Ci0KLSAgICBldmFz
X29iamVjdF9oaWRlKHBsYXRmb3JtV2lkZ2V0KCkpOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikK
QEAgLTE0NCwzMSArMTExLDkgQEAgdm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1FdmFzKiBXaWRnZXQ6OmV2YXMoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2RhdGEtPm1fZXZhczsKLX0KLQotdm9pZCBXaWRnZXQ6OnNldEV2YXNPYmpl
Y3QoRXZhc19PYmplY3QgKm9iamVjdCkKLXsKLSAgICAvLyBGSVhNRTogc3R1ZHkgcGxhdGZvcm1X
aWRnZXQoKSBhbmQgdXNlIGl0Ci0gICAgLy8gRklYTUU6IHJpZ2h0IG5vdyBwbGF0Zm9ybVdpZGdl
dCgpIHJlcXVpcmVzIGltcGxlbWVudGluZyB0b28gbXVjaAotICAgIGlmIChtX2RhdGEtPm1fZXZh
c09iamVjdCA9PSBvYmplY3QpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2RhdGEtPm1fZXZhc09i
amVjdCA9IG9iamVjdDsKLSAgICBpZiAoIW9iamVjdCkgewotICAgICAgICBtX2RhdGEtPm1fZXZh
cyA9IDA7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2RhdGEtPm1fZXZhcyA9IGV2
YXNfb2JqZWN0X2V2YXNfZ2V0KG9iamVjdCk7Ci0KLSAgICBXaWRnZXQ6OmZyYW1lUmVjdHNDaGFu
Z2VkKCk7Ci19Ci0KLUV2YXNfT2JqZWN0KiBXaWRnZXQ6OmV2YXNPYmplY3QoKSBjb25zdAordm9p
ZCBXaWRnZXQ6OnNldEV2YXNPYmplY3QoRXZhc19PYmplY3QqIG9iamVjdCkKIHsKLSAgICByZXR1
cm4gbV9kYXRhLT5tX2V2YXNPYmplY3Q7CisgICAgbV9ldmFzT2JqZWN0ID0gb2JqZWN0OwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2VmbC9QbHVnaW5WaWV3RWZs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdpblZpZXdFZmwuY3BwCmluZGV4
IDg3N2EwNzQuLjJjYWE4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZs
L1BsdWdpblZpZXdFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZWZsL1BsdWdp
blZpZXdFZmwuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUK
ICAgICB9CiAKICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewotICAgICAgICBFdmFzKiBl
dmFzID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ldmFzKCk7CisgICAgICAgIEV2YXMqIGV2YXMg
PSBldmFzX29iamVjdF9ldmFzX2dldChtX3BhcmVudEZyYW1lLT52aWV3KCktPmV2YXNPYmplY3Qo
KSk7CiAgICAgICAgIGlmICghZXZhcykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>