<?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>88723</bug_id>
          
          <creation_ts>2012-06-09 20:55:18 -0700</creation_ts>
          <short_desc>Remove support for disconnected/excluded from search frames, they are not used by Safari anymore</short_desc>
          <delta_ts>2012-09-14 00:18:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88758</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>abarth</cc>
    
    <cc>dominicc</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>ojan</cc>
    
    <cc>psolanki</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>645443</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-06-09 20:55:18 -0700</bug_when>
    <thetext>Remove support for disconnected frames, they are not used by Safari anymore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645444</commentid>
    <comment_count>1</comment_count>
      <attachid>146722</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-06-09 21:03:59 -0700</bug_when>
    <thetext>Created attachment 146722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645446</commentid>
    <comment_count>2</comment_count>
      <attachid>146722</attachid>
    <who name="">mitz</who>
    <bug_when>2012-06-09 21:51:24 -0700</bug_when>
    <thetext>Comment on attachment 146722
Patch

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

&gt; Source/WebCore/editing/Editor.cpp:2417
&gt; +bool Editor::insideVisibleArea(const LayoutPoint&amp;) const

You should just remove this function.

&gt; Source/WebCore/editing/Editor.cpp:2426
&gt;  bool Editor::insideVisibleArea(Range* range) const

And this one.

&gt; Source/WebKit/mac/WebView/WebFrame.mm:914
&gt; +// FIXME: This is being kept around to avoid linking issues with the nightly,
&gt; +// and should be removed when it is no longer needed

I think it is no longer needed.

&gt; Source/WebKit/mac/WebView/WebFramePrivate.h:33
&gt; +#import &lt;JavaScriptCore/WebKitAvailability.h&gt;

Why this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645447</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-06-09 22:37:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 146722 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146722&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/Editor.cpp:2417
&gt; &gt; +bool Editor::insideVisibleArea(const LayoutPoint&amp;) const
&gt; 
&gt; You should just remove this function.
&gt; 
&gt; &gt; Source/WebCore/editing/Editor.cpp:2426
&gt; &gt;  bool Editor::insideVisibleArea(Range* range) const
&gt; 
&gt; And this one.

I was going to do it in a follow up where I remove the excludeTextFromSearch stuff, but I could do it now.

&gt; 
&gt; &gt; Source/WebKit/mac/WebView/WebFrame.mm:914
&gt; &gt; +// FIXME: This is being kept around to avoid linking issues with the nightly,
&gt; &gt; +// and should be removed when it is no longer needed
&gt; 
&gt; I think it is no longer needed.

Ok.

&gt; 
&gt; &gt; Source/WebKit/mac/WebView/WebFramePrivate.h:33
&gt; &gt; +#import &lt;JavaScriptCore/WebKitAvailability.h&gt;
&gt; 
&gt; Why this?

A mistake. I was going to use that for deprecating, but we don&apos;t need to deprecate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645684</commentid>
    <comment_count>4</comment_count>
      <attachid>146768</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-06-10 20:27:17 -0700</bug_when>
    <thetext>Created attachment 146768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645748</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-06-10 23:11:48 -0700</bug_when>
    <thetext>Committed r119955: &lt;http://trac.webkit.org/changeset/119955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645765</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-10 23:52:35 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 88758</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720347</commentid>
    <comment_count>7</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2012-09-13 23:18:06 -0700</bug_when>
    <thetext>Isn&apos;t this fixed? This was relanded in r120005 - &lt;http://trac.webkit.org/changeset/120005&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720395</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 00:18:24 -0700</bug_when>
    <thetext>Seems likely.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146722</attachid>
            <date>2012-06-09 21:03:59 -0700</date>
            <delta_ts>2012-06-09 22:38:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88723-20120609210609.patch</filename>
            <type>text/plain</type>
            <size>15471</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcxYWQwZDVjMjk5ZDU1
M2I3NTMyYmFjNzQyM2IyNjJmYmNkYjEwYi4uYjI4ZGE3NzVhZDkxMjc3ZjkxMDMwNTZiMGNhMzZm
MTBiMWMxMTVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA2LTA5ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRp
c2Nvbm5lY3RlZCBmcmFtZXMsIHRoZXkgYXJlIG5vdCB1c2VkIGJ5IFNhZmFyaSBhbnltb3JlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODcyMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgIFVwZGF0ZSBleHBvcnQuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2lkZVZpc2libGVBcmVhKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmZpbmRGcmFtZUZvck5hdmlnYXRpb24pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cGFyZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6dG9wKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAg
ICAgICAoRnJhbWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVHJlZTo6cGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6
dG9wKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOgorICAgICAgICAoRnJhbWVUcmVlKToK
KyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2F0aW9u
OjphbmNlc3Rvck9yaWdpbnMpOgorICAgICAgICAqIHhtbC9YTUxUcmVlVmlld2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTFRyZWVWaWV3ZXI6Omhhc05vU3R5bGVJbmZvcm1hdGlvbik6Cisg
ICAgICAgIFVwZGF0ZSBmb3IgdGhlIHJlbW92YWwgb2YgZGlzY29ubmVjdGVkIGZyYW1lcyBjb25j
ZXB0LgorCiAyMDEyLTA2LTA5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE4NjE4IGFuZCByMTE5
MzUzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFlNzBmMjZiMzY5ZjVkYjA5ZGYwYjFjODg1OGIyN2Yx
ZWY4MjY0YzAuLjQ2NTM0MDlmODE3YWY3MzZhNTU1MWU1YzlmN2VmYTdlOWU5ZTM4MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNi0wOSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBkaXNjb25uZWN0ZWQg
ZnJhbWVzLCB0aGV5IGFyZSBub3QgdXNlZCBieSBTYWZhcmkgYW55bW9yZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg3MjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06
CisgICAgICAgICgtW1dlYkZyYW1lIF9zZXRJc0Rpc2Nvbm5lY3RlZDpdKToKKyAgICAgICAgU3Rv
cCBkb2luZyBhbnl0aGluZyBpbiB0aGlzIG1ldGhvZC4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
RnJhbWVQcml2YXRlLmg6CisgICAgICAgIFJlbW92ZSAtW1dlYkZyYW1lIF9zZXRJc0Rpc2Nvbm5l
Y3RlZF0uCisKIDIwMTItMDYtMDkgIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0Bnb29n
bGUuY29tPgogCiAgICAgICAgIEFkZCBVTkRPX01BTkFHRVIgZmxhZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IDE3YjhhODc0N2U3MjI2NjAzYWZiZTNhMjU0ZjU1NGNmNDVmODZhMDYuLjVkMGI5ZmQxMTIy
NWYzOTUzY2FhYTZmZGUyNjgxMjg0OTk1YWExNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0wNi0wOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJlbW92ZSBzdXBwb3J0IGZvciBkaXNjb25uZWN0ZWQgZnJhbWVzLCB0aGV5IGFyZSBub3Qg
dXNlZCBieSBTYWZhcmkgYW55bW9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODg3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpzZXRJc0Rp
c2Nvbm5lY3RlZCk6CisgICAgICAgIFN0b3AgZG9pbmcgYW55dGhpbmcgaW4gdGhpcyBtZXRob2Qu
CisKIDIwMTItMDUtMzEgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMTE3NTcyKTogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LWFzeW5jLXJlbW92ZS1mcmFtZS5odG1sIGNyYXNoZXMgb24gTWFjCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IGRmMzdlMzdjOTI4MDUwYWIzMzMwZjlkZGViN2Q1ZmM5NTMxZWU5ZjUuLmVlNTA4NmRj
YjcyMDFkYTIzMjczNjZkOTJmZWJhODc0NWEyOWJlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0xNTI2LDcgKzE1MjYsNyBAQCBfX1pOSzdXZWJDb3JlOUZyYW1lVHJlZTE0aXNEZXNjZW5kYW50
T2ZFUEtOU181RnJhbWVFCiBfX1pOSzdXZWJDb3JlOUZyYW1lVHJlZTIwdHJhdmVyc2VOZXh0V2l0
aFdyYXBFYgogX19aTks3V2ViQ29yZTlGcmFtZVRyZWUyNHRyYXZlcnNlUHJldmlvdXNXaXRoV3Jh
cEViCiBfX1pOSzdXZWJDb3JlOUZyYW1lVHJlZTRmaW5kRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UK
LV9fWk5LN1dlYkNvcmU5RnJhbWVUcmVlNnBhcmVudEViCitfX1pOSzdXZWJDb3JlOUZyYW1lVHJl
ZTZwYXJlbnRFdgogX19aTks3V2ViQ29yZTlGcmFtZVRyZWUxMGNoaWxkQ291bnRFdgogX19aTks3
V2ViQ29yZTlGcmFtZVZpZXcxMW5lZWRzTGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3
MTNpc1RyYW5zcGFyZW50RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1NTAxZDA0
ZmE5ODgwY2Q1MGU2MTgwMjU3NmM3NzI5N2FkNGU3N2Y5Li4xNTE4MWZlM2Y0ODZhNTk4ZGVlMGNm
Nzk3N2E3OGM4ODY2ZWY2Yzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yNDE0
LDMwICsyNDE0LDEzIEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25v
cmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9y
RGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi1ib29sIEVkaXRvcjo6aW5z
aWRlVmlzaWJsZUFyZWEoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KSBjb25zdAorYm9vbCBFZGl0
b3I6Omluc2lkZVZpc2libGVBcmVhKGNvbnN0IExheW91dFBvaW50JikgY29uc3QKIHsKICAgICBp
ZiAobV9mcmFtZS0+ZXhjbHVkZUZyb21UZXh0U2VhcmNoKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAKLSAgICAvLyBSaWdodCBub3csIHdlIG9ubHkgY2hlY2sgdGhlIHZpc2liaWxpdHkg
b2YgYSBwb2ludCBmb3IgZGlzY29ubmVjdGVkIGZyYW1lcy4gRm9yIGFsbCBvdGhlcgotICAgIC8v
IGZyYW1lcywgd2UgYXNzdW1lIHZpc2liaWxpdHkuCi0gICAgRnJhbWUqIGZyYW1lID0gbV9mcmFt
ZS0+aXNEaXNjb25uZWN0ZWQoKSA/IG1fZnJhbWUgOiBtX2ZyYW1lLT50cmVlKCktPnRvcCh0cnVl
KTsKLSAgICBpZiAoIWZyYW1lLT5pc0Rpc2Nvbm5lY3RlZCgpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IGZyYW1lLT5vd25lclJlbmRlcmVy
KCk7Ci0gICAgaWYgKCFyZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgUmVu
ZGVyQmxvY2sqIGNvbnRhaW5lciA9IHJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKTsKLSAgICBp
ZiAoIShjb250YWluZXItPnN0eWxlKCktPm92ZXJmbG93WCgpID09IE9ISURERU4gfHwgY29udGFp
bmVyLT5zdHlsZSgpLT5vdmVyZmxvd1koKSA9PSBPSElEREVOKSkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KLSAgICBMYXlvdXRSZWN0IHJlY3RJblBhZ2VDb29yZHMgPSBjb250YWluZXItPm92ZXJm
bG93Q2xpcFJlY3QoSW50UG9pbnQoKSwgMCk7IC8vIEZJWE1FOiBJbmNvcnJlY3QgZm9yIENTUyBy
ZWdpb25zLgotICAgIExheW91dFJlY3QgcmVjdEluRnJhbWVDb29yZHMgPSBMYXlvdXRSZWN0KHJl
bmRlcmVyLT54KCkgKiAtMSwgcmVuZGVyZXItPnkoKSAqIC0xLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3RJblBhZ2VDb29yZHMud2lkdGgoKSwgcmVj
dEluUGFnZUNvb3Jkcy5oZWlnaHQoKSk7Ci0KLSAgICByZXR1cm4gcmVjdEluRnJhbWVDb29yZHMu
Y29udGFpbnMocG9pbnQpOworICAgIC8vIFJpZ2h0IG5vdyB3ZSBhc3N1bWUgdmlzaWJpbGl0eS4K
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBFZGl0b3I6Omluc2lkZVZpc2libGVBcmVhKFJh
bmdlKiByYW5nZSkgY29uc3QKQEAgLTI0NDgsMjYgKzI0MzEsOCBAQCBib29sIEVkaXRvcjo6aW5z
aWRlVmlzaWJsZUFyZWEoUmFuZ2UqIHJhbmdlKSBjb25zdAogICAgIGlmIChtX2ZyYW1lLT5leGNs
dWRlRnJvbVRleHRTZWFyY2goKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIC8v
IFJpZ2h0IG5vdywgd2Ugb25seSBjaGVjayB0aGUgdmlzaWJpbGl0eSBvZiBhIHJhbmdlIGZvciBk
aXNjb25uZWN0ZWQgZnJhbWVzLiBGb3IgYWxsIG90aGVyCi0gICAgLy8gZnJhbWVzLCB3ZSBhc3N1
bWUgdmlzaWJpbGl0eS4KLSAgICBGcmFtZSogZnJhbWUgPSBtX2ZyYW1lLT5pc0Rpc2Nvbm5lY3Rl
ZCgpID8gbV9mcmFtZSA6IG1fZnJhbWUtPnRyZWUoKS0+dG9wKHRydWUpOwotICAgIGlmICghZnJh
bWUtPmlzRGlzY29ubmVjdGVkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAotICAgIFJl
bmRlclBhcnQqIHJlbmRlcmVyID0gZnJhbWUtPm93bmVyUmVuZGVyZXIoKTsKLSAgICBpZiAoIXJl
bmRlcmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBSZW5kZXJCbG9jayogY29udGFp
bmVyID0gcmVuZGVyZXItPmNvbnRhaW5pbmdCbG9jaygpOwotICAgIGlmICghKGNvbnRhaW5lci0+
c3R5bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT0hJRERFTiB8fCBjb250YWluZXItPnN0eWxlKCktPm92
ZXJmbG93WSgpID09IE9ISURERU4pKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIExheW91
dFJlY3QgcmVjdEluUGFnZUNvb3JkcyA9IGNvbnRhaW5lci0+b3ZlcmZsb3dDbGlwUmVjdChMYXlv
dXRQb2ludCgpLCAwKTsgLy8gRklYTUU6IEluY29ycmVjdCBmb3IgQ1NTIHJlZ2lvbnMuCi0gICAg
TGF5b3V0UmVjdCByZWN0SW5GcmFtZUNvb3JkcyA9IExheW91dFJlY3QocmVuZGVyZXItPngoKSAq
IC0xLCByZW5kZXJlci0+eSgpICogLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWN0SW5QYWdlQ29vcmRzLndpZHRoKCksIHJlY3RJblBhZ2VDb29yZHMuaGVpZ2h0KCkp
OwotICAgIExheW91dFJlY3QgcmVzdWx0UmVjdCA9IHJhbmdlLT5ib3VuZGluZ0JveCgpOwotICAg
IAotICAgIHJldHVybiByZWN0SW5GcmFtZUNvb3Jkcy5jb250YWlucyhyZXN1bHRSZWN0KTsKKyAg
ICAvLyBSaWdodCBub3cgd2UgYXNzdW1lIHZpc2liaWxpdHkuCisgICAgcmV0dXJuIHRydWU7CiB9
CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6Zmlyc3RWaXNpYmxlUmFuZ2UoY29uc3QgU3Ry
aW5nJiB0YXJnZXQsIEZpbmRPcHRpb25zIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCBlNDZmOWUxYTgzOGQzYzgzNzhmYTYzZWZkZDljMGQyYzc4NmI1ZDA3
Li4yYzY2MDkzZjM2OWZjOGU3MTVjODQxMjI2NDE2N2E4MjFjOGJjMDY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI5MzMsNyArMjkzMyw3IEBAIEZyYW1lKiBGcmFt
ZUxvYWRlcjo6ZmluZEZyYW1lRm9yTmF2aWdhdGlvbihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IERvY3VtZW50KiBhCiAgICAgLy8gYnJvd3NpbmcgY29udGV4dCBmbGFnIHNldCwgYW5kIGNvbnRp
bnVlIHRoZXNlIHN0ZXBzIGFzIGlmIHRoYXQKICAgICAvLyBicm93c2luZyBjb250ZXh0IHdhcyB0
aGUgb25lIHRoYXQgd2FzIGdvaW5nIHRvIGJlIG5hdmlnYXRlZCBpbnN0ZWFkLgogICAgIGlmIChm
cmFtZSA9PSBtX2ZyYW1lICYmIG5hbWUgIT0gIl9zZWxmIiAmJiBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5zaG91bGREaXNwbGF5U2VhbWxlc3NseVdpdGhQYXJlbnQoKSkgewotICAgICAgICBmb3IgKEZy
YW1lKiBhbmNlc3RvciA9IG1fZnJhbWU7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT50
cmVlKCktPnBhcmVudCh0cnVlKSkgeworICAgICAgICBmb3IgKEZyYW1lKiBhbmNlc3RvciA9IG1f
ZnJhbWU7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT50cmVlKCktPnBhcmVudCgpKSB7
CiAgICAgICAgICAgICBpZiAoIWFuY2VzdG9yLT5kb2N1bWVudCgpLT5zaG91bGREaXNwbGF5U2Vh
bWxlc3NseVdpdGhQYXJlbnQoKSkgewogICAgICAgICAgICAgICAgIGZyYW1lID0gYW5jZXN0b3I7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
ODZjMTIxMjZhNGM3YmFhMzM2OTc0ZDhjZjg3OWZiYmI4NmU1MzVmZS4uYzZhNGMwYjEzOGQ0MTdm
YTM3Y2U3OTU5YTg2ZGExMGM5YmFjNjI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMTI4Nyw3ICsxMjg3LDcgQEAgRE9NV2luZG93KiBET01XaW5kb3c6OnBhcmVudCgpIGNvbnN0
CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEZyYW1lKiBwYXJl
bnQgPSBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCh0cnVlKTsKKyAgICBGcmFtZSogcGFyZW50ID0g
bV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAgICBpZiAocGFyZW50KQogICAgICAgICByZXR1
cm4gcGFyZW50LT5kb21XaW5kb3coKTsKIApAQCAtMTMwMyw3ICsxMzAzLDcgQEAgRE9NV2luZG93
KiBET01XaW5kb3c6OnRvcCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCktPnRvcCh0cnVlKS0+ZG9tV2luZG93KCk7
CisgICAgcmV0dXJuIG1fZnJhbWUtPnRyZWUoKS0+dG9wKCktPmRvbVdpbmRvdygpOwogfQogCiBE
b2N1bWVudCogRE9NV2luZG93Ojpkb2N1bWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmlu
ZGV4IGM1ZjQ5ZDE5ZDE5NTNkNDhmNWMwYjhiMjI0NzE5OWNiMjMzZTQ3MjAuLjNhZjdjNjQ1Y2Y3
OTA0NTNiZDVjYWQ5NWIyYWRiMjNhZTBhZmVkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0x
NjQsNyArMTY0LDYgQEAgaW5saW5lIEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVP
d25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1fb3JpZW50YXRp
b24oMCkKICNlbmRpZgogICAgICwgbV9pblZpZXdTb3VyY2VNb2RlKGZhbHNlKQotICAgICwgbV9p
c0Rpc2Nvbm5lY3RlZChmYWxzZSkKICAgICAsIG1fZXhjbHVkZUZyb21UZXh0U2VhcmNoKGZhbHNl
KQogICAgICwgbV9hY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZENvdW50KDAp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggNDU3MTUyZTU5ZWZlOTI3ZTg2ZGI2ZWY2OGNhZjQxOGQ3
MmZiNGJmMi4uMDZlOWE5MTNhMWI0YWEzNzEyYmYzZDIwY2YzMmU4MWJjMGUxMmQ2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaApAQCAtMTE5LDggKzExOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IC8vID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93IHRoaXMgcG9pbnQgYXJlIGNh
bmRpZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90aGVyIGNsYXNzLiA9PT09PT09
PQogCi0gICAgICAgIGJvb2wgaXNEaXNjb25uZWN0ZWQoKSBjb25zdDsKLSAgICAgICAgdm9pZCBz
ZXRJc0Rpc2Nvbm5lY3RlZChib29sKTsKICAgICAgICAgYm9vbCBleGNsdWRlRnJvbVRleHRTZWFy
Y2goKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRFeGNsdWRlRnJvbVRleHRTZWFyY2goYm9vbCk7
CiAgICAgICAgIGJvb2wgaW5TY29wZShUcmVlU2NvcGUqKSBjb25zdDsKQEAgLTIzNyw3ICsyMzUs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgICAgICBib29sIG1faW5WaWV3
U291cmNlTW9kZTsKLSAgICAgICAgYm9vbCBtX2lzRGlzY29ubmVjdGVkOwogICAgICAgICBib29s
IG1fZXhjbHVkZUZyb21UZXh0U2VhcmNoOwogCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CkBAIC0zMTIsMTYgKzMwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJu
IG1fb3duZXJFbGVtZW50OwogICAgIH0KIAotICAgIGlubGluZSBib29sIEZyYW1lOjppc0Rpc2Nv
bm5lY3RlZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9pc0Rpc2Nvbm5lY3RlZDsK
LSAgICB9Ci0KLSAgICBpbmxpbmUgdm9pZCBGcmFtZTo6c2V0SXNEaXNjb25uZWN0ZWQoYm9vbCBp
c0Rpc2Nvbm5lY3RlZCkKLSAgICB7Ci0gICAgICAgIG1faXNEaXNjb25uZWN0ZWQgPSBpc0Rpc2Nv
bm5lY3RlZDsKLSAgICB9Ci0KICAgICBpbmxpbmUgYm9vbCBGcmFtZTo6ZXhjbHVkZUZyb21UZXh0
U2VhcmNoKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2V4Y2x1ZGVGcm9tVGV4dFNl
YXJjaDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAppbmRleCBjZWQ2MjAwNzJmY2JjZDI4Zjlh
OTg5OWFiOWY5ZDExMzhmODkwYjJhLi42Mzc4ZjNmYzgwZDhiM2RjMGQyYTMyOGI3OGQ2ZTQ4ZjY3
MjI0NDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCkBAIC01OCwxMCArNTgsOCBAQCB2
b2lkIEZyYW1lVHJlZTo6Y2xlYXJOYW1lKCkKICAgICBtX3VuaXF1ZU5hbWUgPSBBdG9taWNTdHJp
bmcoKTsKIH0KIAotRnJhbWUqIEZyYW1lVHJlZTo6cGFyZW50KGJvb2wgY2hlY2tGb3JEaXNjb25u
ZWN0ZWRGcmFtZSkgY29uc3QgCitGcmFtZSogRnJhbWVUcmVlOjpwYXJlbnQoKSBjb25zdCAKIHsg
Ci0gICAgaWYgKGNoZWNrRm9yRGlzY29ubmVjdGVkRnJhbWUgJiYgbV90aGlzRnJhbWUtPmlzRGlz
Y29ubmVjdGVkKCkpCi0gICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBtX3BhcmVudDsKIH0K
IApAQCAtMzgzLDE0ICszODEsMTEgQEAgRnJhbWUqIEZyYW1lVHJlZTo6ZGVlcExhc3RDaGlsZCgp
IGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRnJhbWUqIEZyYW1lVHJlZTo6dG9wKGJv
b2wgY2hlY2tGb3JEaXNjb25uZWN0ZWRGcmFtZSkgY29uc3QKK0ZyYW1lKiBGcmFtZVRyZWU6OnRv
cCgpIGNvbnN0CiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV90aGlzRnJhbWU7Ci0gICAgZm9yIChG
cmFtZSogcGFyZW50ID0gbV90aGlzRnJhbWU7IHBhcmVudDsgcGFyZW50ID0gcGFyZW50LT50cmVl
KCktPnBhcmVudCgpKSB7CisgICAgZm9yIChGcmFtZSogcGFyZW50ID0gbV90aGlzRnJhbWU7IHBh
cmVudDsgcGFyZW50ID0gcGFyZW50LT50cmVlKCktPnBhcmVudCgpKQogICAgICAgICBmcmFtZSA9
IHBhcmVudDsKLSAgICAgICAgaWYgKGNoZWNrRm9yRGlzY29ubmVjdGVkRnJhbWUgJiYgZnJhbWUt
PmlzRGlzY29ubmVjdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gZnJhbWU7Ci0gICAgfQogICAg
IHJldHVybiBmcmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKaW5kZXggNWY5ZTMxN2E5
YjMwMDQ4ZDM5NDkxNDY0OWM3NTJhYjBiY2FhOThjMS4uYzg2NTMzMDVhYTM4YmU4NmZiOWZmNmZl
Mzk5M2UwYWQzYzhkZDJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRy
ZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCkBAIC00OCw3ICs0OCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB1bmlx
dWVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV91bmlxdWVOYW1lOyB9CiAgICAgICAgIHZvaWQgc2V0
TmFtZShjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICAgICAgdm9pZCBjbGVhck5hbWUoKTsKLSAg
ICAgICAgRnJhbWUqIHBhcmVudChib29sIGNoZWNrRm9yRGlzY29ubmVjdGVkRnJhbWUgPSBmYWxz
ZSkgY29uc3Q7CisgICAgICAgIEZyYW1lKiBwYXJlbnQoKSBjb25zdDsKICAgICAgICAgdm9pZCBz
ZXRQYXJlbnQoRnJhbWUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogICAgICAgICAK
ICAgICAgICAgRnJhbWUqIG5leHRTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0U2libGlu
Zy5nZXQoKTsgfQpAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgQXRvbWljU3RyaW5nIHVuaXF1ZUNoaWxkTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIHJlcXVl
c3RlZE5hbWUpIGNvbnN0OwogCi0gICAgICAgIEZyYW1lKiB0b3AoYm9vbCBjaGVja0ZvckRpc2Nv
bm5lY3RlZEZyYW1lID0gZmFsc2UpIGNvbnN0OworICAgICAgICBGcmFtZSogdG9wKCkgY29uc3Q7
CiAKICAgICAgICAgRnJhbWUqIHNjb3BlZENoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAg
ICAgICAgRnJhbWUqIHNjb3BlZENoaWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3BwCmluZGV4IGY2NTExZDZhMzhjYTQ2ODA3YWEzMjc3ZDQw
OTY1YmNkMzI5N2E4YjguLmRmNmVhOGRmNTQyYjg1ZDkzYzdkMWU2ZGM1Mzk0ZjA4ZjViMDY1Zjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgUGFzc1JlZlB0
cjxET01TdHJpbmdMaXN0PiBMb2NhdGlvbjo6YW5jZXN0b3JPcmlnaW5zKCkgY29uc3QKICAgICBS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4gb3JpZ2lucyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIG9yaWdpbnMucmVsZWFzZSgpOwotICAg
IGZvciAoRnJhbWUqIGZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQodHJ1ZSk7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCh0cnVlKSkKKyAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9IG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCktPnBhcmVudCgpKQogICAgICAgICBvcmlnaW5zLT5hcHBlbmQoZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkpOwogICAgIHJldHVybiBvcmlnaW5zLnJl
bGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRleCA5YjViNzA2
NjE2YTUyN2U2Y2JiOGFiNjQwYWViYjJiNTY0MjE4YTcxLi4xOTBiZjM3YWY3ZTMzOGIzMzE4ZTBh
N2VmOTgzN2Q0MGJmNDY2YzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJl
ZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBA
IC02Miw3ICs2Miw3IEBAIGJvb2wgWE1MVHJlZVZpZXdlcjo6aGFzTm9TdHlsZUluZm9ybWF0aW9u
KCkgY29uc3QKICAgICBpZiAoIW1fZG9jdW1lbnQtPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3Mo
KS0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAobV9kb2N1bWVudC0+ZnJhbWUoKS0+dHJlZSgpLT5wYXJlbnQodHJ1ZSkpCisgICAgaWYg
KG1fZG9jdW1lbnQtPmZyYW1lKCktPnRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsgLy8gVGhpcyBkb2N1bWVudCBpcyBub3QgaW4gYSB0b3AgZnJhbWUKIAogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggMjU2MzE3NDgx
MTY0ZDRiYTdlNWFlOGVhNWM5NWNlNWYzNWJmNGMxNy4uYTBmZGI3Y2VlZTA2NzE1Zjc3ZDI0ZjZj
YTAwZGRkNWNjM2VmNmQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBA
IC05MTAsOSArOTEwLDEwIEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJj
ZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIHJldHVybiBfcHJpdmF0ZS0+Y29yZUZyYW1l
LT5kb21XaW5kb3coKS0+cGVuZGluZ1VubG9hZEV2ZW50TGlzdGVuZXJzKCk7CiB9CiAKKy8vIEZJ
WE1FOiBUaGlzIGlzIGJlaW5nIGtlcHQgYXJvdW5kIHRvIGF2b2lkIGxpbmtpbmcgaXNzdWVzIHdp
dGggdGhlIG5pZ2h0bHksCisvLyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBpdCBpcyBubyBs
b25nZXIgbmVlZGVkCiAtICh2b2lkKV9zZXRJc0Rpc2Nvbm5lY3RlZDooYm9vbClpc0Rpc2Nvbm5l
Y3RlZAogewotICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPnNldElzRGlzY29ubmVjdGVkKGlzRGlz
Y29ubmVjdGVkKTsKIH0KIAogLSAodm9pZClfc2V0RXhjbHVkZUZyb21UZXh0U2VhcmNoOihib29s
KWV4Y2x1ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCmlu
ZGV4IDlkZWE3ZTFiNGY5Y2RkOGFhM2JmZDkwMjY3NjhlOTUzZmMwY2ZiNzguLjQ3NmFlNWI4MTBm
YTkyOWYwOTUzZDg3NTg1MDUxMDk2NzdmMzZmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZVByaXZhdGUuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0IDxXZWJL
aXQvV2ViRnJhbWUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2ltcG9y
dCA8SmF2YVNjcmlwdENvcmUvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CiAKICNpZiAhZGVmaW5lZChF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKICNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9BUEkgMQpAQCAtODcsNyArODgsNiBAQCB0eXBlZGVmIGVudW0gewogCiAtICh1bnNpZ25lZClf
cGVuZGluZ0ZyYW1lVW5sb2FkRXZlbnRDb3VudDsKIAotLSAodm9pZClfc2V0SXNEaXNjb25uZWN0
ZWQ6KGJvb2wpaXNEaXNjb25uZWN0ZWQ7CiAtICh2b2lkKV9zZXRFeGNsdWRlRnJvbVRleHRTZWFy
Y2g6KGJvb2wpZXhjbHVkZTsKIAogI2lmIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJGcmFtZS5jcHAKaW5kZXggM2EzNzE1YjNiZWNhNDZmZTBlNzI2ZjQxNTk1MGY2MDcxY2Mx
ZjViMy4uZDE4NmVmZGY4MDc2NTk2ZTgyZTY1MGVjZGE3NWRlZjc2YjJiMWUyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkZyYW1lLmNwcApAQCAtMjk4LDExICsyOTgsNiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFdlYkZyYW1lOjphbGxvd3NTY3JvbGxpbmcoCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkZyYW1lOjpzZXRJc0Rpc2Nvbm5lY3RlZCgKICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykK
IHsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gY29yZSh0aGlzKSkgewotICAgICAgICBmcmFtZS0+
c2V0SXNEaXNjb25uZWN0ZWQoZmxhZyk7Ci0gICAgICAgIHJldHVybiBTX09LOwotICAgIH0KLQog
ICAgIHJldHVybiBFX0ZBSUw7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146768</attachid>
            <date>2012-06-10 20:27:17 -0700</date>
            <delta_ts>2012-06-10 20:31:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88723-20120610202929.patch</filename>
            <type>text/plain</type>
            <size>23461</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcxYWQwZDVjMjk5ZDU1
M2I3NTMyYmFjNzQyM2IyNjJmYmNkYjEwYi4uZjJkMzEzZDljZTMzY2JkMjAzZDJhZTE1YWFkNTk5
YzJhYTg4Y2IxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA2LTEwICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRp
c2Nvbm5lY3RlZC9leGNsdWRlZCBmcm9tIHNlYXJjaCBmcmFtZXMsIHRoZXkgYXJlIG5vdCB1c2Vk
IGJ5IFNhZmFyaSBhbnltb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04ODcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIFVwZGF0ZSBleHBvcnQuCisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyYW5n
ZU9mU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y291bnRNYXRjaGVzRm9yVGV4
dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKEVkaXRvcik6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhcmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnRvcCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludCk6Cisg
ICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUp
OgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKEZyYW1lKToKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnBhcmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRvcCk6CisgICAgICAgICogcGFnZS9GcmFt
ZVRyZWUuaDoKKyAgICAgICAgKEZyYW1lVHJlZSk6CisgICAgICAgICogcGFnZS9Mb2NhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhdGlvbjo6YW5jZXN0b3JPcmlnaW5zKToKKyAgICAg
ICAgKiB4bWwvWE1MVHJlZVZpZXdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxUcmVlVmll
d2VyOjpoYXNOb1N0eWxlSW5mb3JtYXRpb24pOgorICAgICAgICBVcGRhdGUgZm9yIHRoZSByZW1v
dmFsIG9mIGRpc2Nvbm5lY3RlZCBmcmFtZXMgYW5kIHRleHQgc2VhcmNoIGV4Y2x1c2lvbnMgY29u
Y2VwdHMuCisKIDIwMTItMDYtMDkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTg2MTggYW5kIHIx
MTkzNTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMWU3MGYyNmIzNjlmNWRiMDlkZjBiMWM4ODU4YjI3
ZjFlZjgyNjRjMC4uZTJjMTI3MGRkY2EwZjk2OWY4ZjVmODA3NDNhYWQ3NWRjMmRiNGNkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTEwICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRpc2Nvbm5lY3Rl
ZC9leGNsdWRlZCBmcm9tIHNlYXJjaCBmcmFtZXMsIHRoZXkgYXJlIG5vdCB1c2VkIGJ5IFNhZmFy
aSBhbnltb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04ODcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0
ZS5oOgorICAgICAgICBSZW1vdmUgLVtXZWJGcmFtZSBfc2V0SXNEaXNjb25uZWN0ZWQ6XSBhbmQg
LVtXZWJGcmFtZSBfc2V0RXhjbHVkZUZyb21UZXh0U2VhcmNoOl0KKwogMjAxMi0wNi0wOSAgU3Vr
b2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIFVO
RE9fTUFOQUdFUiBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTdiOGE4NzQ3ZTcyMjY2MDNhZmJl
M2EyNTRmNTU0Y2Y0NWY4NmEwNi4uNzA4YmEwOTI3ODMwYmYwMjkzOGNiMTE2YjYyNjIwNmQzZThj
MTllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTEwICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRp
c2Nvbm5lY3RlZC9leGNsdWRlZCBmcm9tIHNlYXJjaCBmcmFtZXMsIHRoZXkgYXJlIG5vdCB1c2Vk
IGJ5IFNhZmFyaSBhbnltb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04ODcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OnNldElzRGlzY29u
bmVjdGVkKToKKyAgICAgICAgKFdlYkZyYW1lOjpzZXRFeGNsdWRlRnJvbVRleHRTZWFyY2gpOgor
ICAgICAgICBTdG9wIGRvaW5nIGFueXRoaW5nIGluIHRoZXNlIGZ1bmN0aW9ucy4KKwogMjAxMi0w
NS0zMSAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OKHIxMTc1NzIpOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtcmVt
b3ZlLWZyYW1lLmh0bWwgY3Jhc2hlcyBvbiBNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZGYz
N2UzN2M5MjgwNTBhYjMzMzBmOWRkZWI3ZDVmYzk1MzFlZTlmNS4uZWU1MDg2ZGNiNzIwMWRhMjMy
NzM2NmQ5MmZlYmE4NzQ1YTI5YmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE1MjYsNyAr
MTUyNiw3IEBAIF9fWk5LN1dlYkNvcmU5RnJhbWVUcmVlMTRpc0Rlc2NlbmRhbnRPZkVQS05TXzVG
cmFtZUUKIF9fWk5LN1dlYkNvcmU5RnJhbWVUcmVlMjB0cmF2ZXJzZU5leHRXaXRoV3JhcEViCiBf
X1pOSzdXZWJDb3JlOUZyYW1lVHJlZTI0dHJhdmVyc2VQcmV2aW91c1dpdGhXcmFwRWIKIF9fWk5L
N1dlYkNvcmU5RnJhbWVUcmVlNGZpbmRFUktOM1dURjEyQXRvbWljU3RyaW5nRQotX19aTks3V2Vi
Q29yZTlGcmFtZVRyZWU2cGFyZW50RWIKK19fWk5LN1dlYkNvcmU5RnJhbWVUcmVlNnBhcmVudEV2
CiBfX1pOSzdXZWJDb3JlOUZyYW1lVHJlZTEwY2hpbGRDb3VudEV2CiBfX1pOSzdXZWJDb3JlOUZy
YW1lVmlldzExbmVlZHNMYXlvdXRFdgogX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxM2lzVHJhbnNw
YXJlbnRFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDU1MDFkMDRmYTk4ODBjZDUw
ZTYxODAyNTc2Yzc3Mjk3YWQ0ZTc3ZjkuLmI0NjBlZDE5MmFhMjNhMWY1M2ExMzhkMzU1OWFmODI3
NDY2YzFkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTI0MTQsMTQ0ICsyNDE0
LDYgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAg
IG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5n
QWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLWJvb2wgRWRpdG9yOjppbnNpZGVWaXNpYmxl
QXJlYShjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpIGNvbnN0Ci17Ci0gICAgaWYgKG1fZnJhbWUt
PmV4Y2x1ZGVGcm9tVGV4dFNlYXJjaCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0g
ICAgLy8gUmlnaHQgbm93LCB3ZSBvbmx5IGNoZWNrIHRoZSB2aXNpYmlsaXR5IG9mIGEgcG9pbnQg
Zm9yIGRpc2Nvbm5lY3RlZCBmcmFtZXMuIEZvciBhbGwgb3RoZXIKLSAgICAvLyBmcmFtZXMsIHdl
IGFzc3VtZSB2aXNpYmlsaXR5LgotICAgIEZyYW1lKiBmcmFtZSA9IG1fZnJhbWUtPmlzRGlzY29u
bmVjdGVkKCkgPyBtX2ZyYW1lIDogbV9mcmFtZS0+dHJlZSgpLT50b3AodHJ1ZSk7Ci0gICAgaWYg
KCFmcmFtZS0+aXNEaXNjb25uZWN0ZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0g
ICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZS0+b3duZXJSZW5kZXJlcigpOwotICAgIGlm
ICghcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFJlbmRlckJsb2NrKiBj
b250YWluZXIgPSByZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgaWYgKCEoY29udGFp
bmVyLT5zdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPSElEREVOIHx8IGNvbnRhaW5lci0+c3R5bGUo
KS0+b3ZlcmZsb3dZKCkgPT0gT0hJRERFTikpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg
TGF5b3V0UmVjdCByZWN0SW5QYWdlQ29vcmRzID0gY29udGFpbmVyLT5vdmVyZmxvd0NsaXBSZWN0
KEludFBvaW50KCksIDApOyAvLyBGSVhNRTogSW5jb3JyZWN0IGZvciBDU1MgcmVnaW9ucy4KLSAg
ICBMYXlvdXRSZWN0IHJlY3RJbkZyYW1lQ29vcmRzID0gTGF5b3V0UmVjdChyZW5kZXJlci0+eCgp
ICogLTEsIHJlbmRlcmVyLT55KCkgKiAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWN0SW5QYWdlQ29vcmRzLndpZHRoKCksIHJlY3RJblBhZ2VDb29y
ZHMuaGVpZ2h0KCkpOwotCi0gICAgcmV0dXJuIHJlY3RJbkZyYW1lQ29vcmRzLmNvbnRhaW5zKHBv
aW50KTsKLX0KLQotYm9vbCBFZGl0b3I6Omluc2lkZVZpc2libGVBcmVhKFJhbmdlKiByYW5nZSkg
Y29uc3QKLXsKLSAgICBpZiAoIXJhbmdlKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlm
IChtX2ZyYW1lLT5leGNsdWRlRnJvbVRleHRTZWFyY2goKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAotICAgIC8vIFJpZ2h0IG5vdywgd2Ugb25seSBjaGVjayB0aGUgdmlzaWJpbGl0eSBv
ZiBhIHJhbmdlIGZvciBkaXNjb25uZWN0ZWQgZnJhbWVzLiBGb3IgYWxsIG90aGVyCi0gICAgLy8g
ZnJhbWVzLCB3ZSBhc3N1bWUgdmlzaWJpbGl0eS4KLSAgICBGcmFtZSogZnJhbWUgPSBtX2ZyYW1l
LT5pc0Rpc2Nvbm5lY3RlZCgpID8gbV9mcmFtZSA6IG1fZnJhbWUtPnRyZWUoKS0+dG9wKHRydWUp
OwotICAgIGlmICghZnJhbWUtPmlzRGlzY29ubmVjdGVkKCkpCi0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIAotICAgIFJlbmRlclBhcnQqIHJlbmRlcmVyID0gZnJhbWUtPm93bmVyUmVuZGVyZXIo
KTsKLSAgICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBSZW5k
ZXJCbG9jayogY29udGFpbmVyID0gcmVuZGVyZXItPmNvbnRhaW5pbmdCbG9jaygpOwotICAgIGlm
ICghKGNvbnRhaW5lci0+c3R5bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT0hJRERFTiB8fCBjb250YWlu
ZXItPnN0eWxlKCktPm92ZXJmbG93WSgpID09IE9ISURERU4pKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIExheW91dFJlY3QgcmVjdEluUGFnZUNvb3JkcyA9IGNvbnRhaW5lci0+b3ZlcmZs
b3dDbGlwUmVjdChMYXlvdXRQb2ludCgpLCAwKTsgLy8gRklYTUU6IEluY29ycmVjdCBmb3IgQ1NT
IHJlZ2lvbnMuCi0gICAgTGF5b3V0UmVjdCByZWN0SW5GcmFtZUNvb3JkcyA9IExheW91dFJlY3Qo
cmVuZGVyZXItPngoKSAqIC0xLCByZW5kZXJlci0+eSgpICogLTEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWN0SW5QYWdlQ29vcmRzLndpZHRoKCksIHJlY3RJblBhZ2VD
b29yZHMuaGVpZ2h0KCkpOwotICAgIExheW91dFJlY3QgcmVzdWx0UmVjdCA9IHJhbmdlLT5ib3Vu
ZGluZ0JveCgpOwotICAgIAotICAgIHJldHVybiByZWN0SW5GcmFtZUNvb3Jkcy5jb250YWlucyhy
ZXN1bHRSZWN0KTsKLX0KLQotUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpmaXJzdFZpc2libGVS
YW5nZShjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucykKLXsKLSAgICBS
ZWZQdHI8UmFuZ2U+IHNlYXJjaFJhbmdlKHJhbmdlT2ZDb250ZW50cyhtX2ZyYW1lLT5kb2N1bWVu
dCgpKSk7Ci0gICAgUmVmUHRyPFJhbmdlPiByZXN1bHRSYW5nZSA9IGZpbmRQbGFpblRleHQoc2Vh
cmNoUmFuZ2UuZ2V0KCksIHRhcmdldCwgb3B0aW9ucyAmIH5CYWNrd2FyZHMpOwotICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotCi0gICAgd2hpbGUgKCFpbnNpZGVWaXNpYmxlQXJlYShyZXN1bHRS
YW5nZS5nZXQoKSkpIHsKLSAgICAgICAgc2VhcmNoUmFuZ2UtPnNldFN0YXJ0QWZ0ZXIocmVzdWx0
UmFuZ2UtPmVuZENvbnRhaW5lcigpLCBlYyk7Ci0gICAgICAgIGlmIChzZWFyY2hSYW5nZS0+c3Rh
cnRDb250YWluZXIoKSA9PSBzZWFyY2hSYW5nZS0+ZW5kQ29udGFpbmVyKCkpCi0gICAgICAgICAg
ICByZXR1cm4gUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpKTsKLSAgICAgICAgcmVz
dWx0UmFuZ2UgPSBmaW5kUGxhaW5UZXh0KHNlYXJjaFJhbmdlLmdldCgpLCB0YXJnZXQsIG9wdGlv
bnMgJiB+QmFja3dhcmRzKTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdFJhbmdlOwot
fQotCi1QYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6Omxhc3RWaXNpYmxlUmFuZ2UoY29uc3QgU3Ry
aW5nJiB0YXJnZXQsIEZpbmRPcHRpb25zIG9wdGlvbnMpCi17Ci0gICAgUmVmUHRyPFJhbmdlPiBz
ZWFyY2hSYW5nZShyYW5nZU9mQ29udGVudHMobV9mcmFtZS0+ZG9jdW1lbnQoKSkpOwotICAgIFJl
ZlB0cjxSYW5nZT4gcmVzdWx0UmFuZ2UgPSBmaW5kUGxhaW5UZXh0KHNlYXJjaFJhbmdlLmdldCgp
LCB0YXJnZXQsIG9wdGlvbnMgfCBCYWNrd2FyZHMpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotCi0gICAgd2hpbGUgKCFpbnNpZGVWaXNpYmxlQXJlYShyZXN1bHRSYW5nZS5nZXQoKSkpIHsK
LSAgICAgICAgc2VhcmNoUmFuZ2UtPnNldEVuZEJlZm9yZShyZXN1bHRSYW5nZS0+c3RhcnRDb250
YWluZXIoKSwgZWMpOwotICAgICAgICBpZiAoc2VhcmNoUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkg
PT0gc2VhcmNoUmFuZ2UtPmVuZENvbnRhaW5lcigpKQotICAgICAgICAgICAgcmV0dXJuIFJhbmdl
OjpjcmVhdGUobV9mcmFtZS0+ZG9jdW1lbnQoKSk7Ci0gICAgICAgIHJlc3VsdFJhbmdlID0gZmlu
ZFBsYWluVGV4dChzZWFyY2hSYW5nZS5nZXQoKSwgdGFyZ2V0LCBvcHRpb25zIHwgQmFja3dhcmRz
KTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdFJhbmdlOwotfQotCi1QYXNzUmVmUHRy
PFJhbmdlPiBFZGl0b3I6Om5leHRWaXNpYmxlUmFuZ2UoUmFuZ2UqIGN1cnJlbnRSYW5nZSwgY29u
c3QgU3RyaW5nJiB0YXJnZXQsIEZpbmRPcHRpb25zIG9wdGlvbnMpCi17Ci0gICAgaWYgKG1fZnJh
bWUtPmV4Y2x1ZGVGcm9tVGV4dFNlYXJjaCgpKQotICAgICAgICByZXR1cm4gUmFuZ2U6OmNyZWF0
ZShtX2ZyYW1lLT5kb2N1bWVudCgpKTsKLQotICAgIFJlZlB0cjxSYW5nZT4gcmVzdWx0UmFuZ2Ug
PSBjdXJyZW50UmFuZ2U7Ci0gICAgUmVmUHRyPFJhbmdlPiBzZWFyY2hSYW5nZShyYW5nZU9mQ29u
dGVudHMobV9mcmFtZS0+ZG9jdW1lbnQoKSkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGJvb2wgZm9yd2FyZCA9ICEob3B0aW9ucyAmIEJhY2t3YXJkcyk7Ci0gICAgZm9yICggOyAh
aW5zaWRlVmlzaWJsZUFyZWEocmVzdWx0UmFuZ2UuZ2V0KCkpOyByZXN1bHRSYW5nZSA9IGZpbmRQ
bGFpblRleHQoc2VhcmNoUmFuZ2UuZ2V0KCksIHRhcmdldCwgb3B0aW9ucykpIHsKLSAgICAgICAg
aWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoZWMpKSB7Ci0gICAgICAgICAgICBpZiAoIXJlc3Vs
dFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5pc0luU2hhZG93VHJlZSgpKQotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgc2VhcmNoUmFuZ2UgPSByYW5nZU9mQ29udGVudHMobV9m
cmFtZS0+ZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBpZiAoZm9yd2FyZCkKLSAgICAgICAgICAg
ICAgICBzZWFyY2hSYW5nZS0+c2V0U3RhcnRBZnRlcihyZXN1bHRSYW5nZS0+c3RhcnRDb250YWlu
ZXIoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCksIGVjKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBzZWFyY2hSYW5nZS0+c2V0RW5kQmVmb3JlKHJlc3VsdFJhbmdlLT5zdGFydENv
bnRhaW5lcigpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKSwgZWMpOwotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZm9yd2FyZCkKLSAgICAgICAgICAgIHNlYXJj
aFJhbmdlLT5zZXRTdGFydEFmdGVyKHJlc3VsdFJhbmdlLT5lbmRDb250YWluZXIoKSwgZWMpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBzZWFyY2hSYW5nZS0+c2V0RW5kQmVmb3JlKHJlc3Vs
dFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBlYyk7Ci0KLSAgICAgICAgU2hhZG93Um9vdCogc2hh
ZG93Um9vdCA9IHNlYXJjaFJhbmdlLT5zaGFkb3dSb290KCk7Ci0gICAgICAgIGlmIChzZWFyY2hS
YW5nZS0+Y29sbGFwc2VkKGVjKSAmJiBzaGFkb3dSb290KSB7Ci0gICAgICAgICAgICBpZiAoZm9y
d2FyZCkKLSAgICAgICAgICAgICAgICBzZWFyY2hSYW5nZS0+c2V0RW5kKHNoYWRvd1Jvb3QsIHNo
YWRvd1Jvb3QtPmNoaWxkTm9kZUNvdW50KCksIGVjKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBzZWFyY2hSYW5nZS0+c2V0U3RhcnRCZWZvcmUoc2hhZG93Um9vdCwgZWMpOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoc2VhcmNoUmFuZ2UtPnN0YXJ0Q29udGFp
bmVyKCktPmlzRG9jdW1lbnROb2RlKCkgJiYgc2VhcmNoUmFuZ2UtPmVuZENvbnRhaW5lcigpLT5p
c0RvY3VtZW50Tm9kZSgpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIAotICAgIGlm
IChpbnNpZGVWaXNpYmxlQXJlYShyZXN1bHRSYW5nZS5nZXQoKSkpCi0gICAgICAgIHJldHVybiBy
ZXN1bHRSYW5nZTsKLSAgICAKLSAgICBpZiAoIShvcHRpb25zICYgV3JhcEFyb3VuZCkpCi0gICAg
ICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCkpOwotCi0gICAgaWYg
KG9wdGlvbnMgJiBCYWNrd2FyZHMpCi0gICAgICAgIHJldHVybiBsYXN0VmlzaWJsZVJhbmdlKHRh
cmdldCwgb3B0aW9ucyk7Ci0KLSAgICByZXR1cm4gZmlyc3RWaXNpYmxlUmFuZ2UodGFyZ2V0LCBv
cHRpb25zKTsKLX0KLQogdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIGJvb2wgY2xvc2VUeXBpbmcsIGJv
b2wgY2xlYXJUeXBpbmdTdHlsZSkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBv
cnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KQEAgLTI3NTAsOSArMjYx
Miw2IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmluZyhjb25zdCBTdHJp
bmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhCiAgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKG1fZnJhbWUtPmV4Y2x1ZGVGcm9tVGV4dFNl
YXJjaCgpKQotICAgICAgICByZXR1cm4gMDsKLQogICAgIC8vIFN0YXJ0IGZyb20gYW4gZWRnZSBv
ZiB0aGUgcmVmZXJlbmNlIHJhbmdlLCBpZiB0aGVyZSdzIGEgcmVmZXJlbmNlIHJhbmdlIHRoYXQn
cyBub3QgaW4gc2hhZG93IGNvbnRlbnQuIFdoaWNoIGVkZ2UKICAgICAvLyBpcyB1c2VkIGRlcGVu
ZHMgb24gd2hldGhlciB3ZSdyZSBzZWFyY2hpbmcgZm9yd2FyZCBvciBiYWNrd2FyZCwgYW5kIHdo
ZXRoZXIgc3RhcnRJblNlbGVjdGlvbiBpcyBzZXQuCiAgICAgUmVmUHRyPFJhbmdlPiBzZWFyY2hS
YW5nZShyYW5nZU9mQ29udGVudHMobV9mcmFtZS0+ZG9jdW1lbnQoKSkpOwpAQCAtMjgwNiwxMiAr
MjY2NSw2IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmluZyhjb25zdCBT
dHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhCiAgICAgICAgIHJlc3VsdFJhbmdlID0g
ZmluZFBsYWluVGV4dChzZWFyY2hSYW5nZS5nZXQoKSwgdGFyZ2V0LCBvcHRpb25zKTsKICAgICB9
CiAKLSAgICBpZiAoIWluc2lkZVZpc2libGVBcmVhKHJlc3VsdFJhbmdlLmdldCgpKSkgewotICAg
ICAgICByZXN1bHRSYW5nZSA9IG5leHRWaXNpYmxlUmFuZ2UocmVzdWx0UmFuZ2UuZ2V0KCksIHRh
cmdldCwgb3B0aW9ucyk7Ci0gICAgICAgIGlmICghcmVzdWx0UmFuZ2UpCi0gICAgICAgICAgICBy
ZXR1cm4gMDsKLSAgICB9Ci0KICAgICAvLyBJZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZyBhbmQg
d2UncmUgd3JhcHBpbmcsIHNlYXJjaCBhZ2FpbiBpbiB0aGUgZW50aXJlIGRvY3VtZW50ICh0aGlz
IHdpbGwKICAgICAvLyByZWR1bmRhbnRseSByZS1zZWFyY2ggdGhlIGFyZWEgYWxyZWFkeSBzZWFy
Y2hlZCBpbiBzb21lIGNhc2VzKS4KICAgICBpZiAocmVzdWx0UmFuZ2UtPmNvbGxhcHNlZCgpICYm
IG9wdGlvbnMgJiBXcmFwQXJvdW5kKSB7CkBAIC0yODc0LDEyICsyNzI3LDkgQEAgdW5zaWduZWQg
RWRpdG9yOjpjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSog
cmFuZ2UsIEZpbmRPcHQKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gT25seSB0cmVhdCB0aGUgcmVzdWx0IGFzIGEgbWF0Y2ggaWYgaXQgaXMgdmlzaWJsZQot
ICAgICAgICBpZiAoaW5zaWRlVmlzaWJsZUFyZWEocmVzdWx0UmFuZ2UuZ2V0KCkpKSB7Ci0gICAg
ICAgICAgICArK21hdGNoQ291bnQ7Ci0gICAgICAgICAgICBpZiAobWFya01hdGNoZXMpCi0gICAg
ICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVz
dWx0UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOwotICAgICAgICB9Cisg
ICAgICAgICsrbWF0Y2hDb3VudDsKKyAgICAgICAgaWYgKG1hcmtNYXRjaGVzKQorICAgICAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVzdWx0UmFuZ2Uu
Z2V0KCksIERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOwogCiAgICAgICAgIC8vIFN0b3AgbG9v
a2luZyBpZiB3ZSBoaXQgdGhlIHNwZWNpZmllZCBsaW1pdC4gQSBsaW1pdCBvZiAwIG1lYW5zIG5v
IGxpbWl0LgogICAgICAgICBpZiAobGltaXQgPiAwICYmIG1hdGNoQ291bnQgPj0gbGltaXQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA5MGEyM2UxMjE0NzUzNGEzMjkzMzM1ZDAxNTc1ZTNl
YjUzOTVhYjBjLi5mMGU1YzI0ZTY1YjkxZjYzNTcwMWM1MzU5ZTA5ZGMxZGM3YWI3ZWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTMyMiwxMCArMzIyLDYgQEAgcHVibGljOgogCiAgICAg
UGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSgpOwogICAgIAotICAgIC8vIFdlIHNob3Vs
ZCBtYWtlIHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRlIHdoZW4gdGhlaXIgY2FsbGVycyBpbiBGcmFt
ZSBhcmUgbW92ZWQgb3ZlciBoZXJlIHRvIEVkaXRvcgotICAgIGJvb2wgaW5zaWRlVmlzaWJsZUFy
ZWEoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKLSAgICBib29sIGluc2lkZVZpc2libGVBcmVh
KFJhbmdlKikgY29uc3Q7Ci0KICAgICB2b2lkIGFkZFRvS2lsbFJpbmcoUmFuZ2UqLCBib29sIHBy
ZXBlbmQpOwogCiAgICAgdm9pZCBzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoKTsKQEAgLTQz
MywxMCArNDI5LDYgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENv
bmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBv
c2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICBQYXNzUmVm
UHRyPFJhbmdlPiBmaXJzdFZpc2libGVSYW5nZShjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7
Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gbGFzdFZpc2libGVSYW5nZShjb25zdCBTdHJpbmcmLCBG
aW5kT3B0aW9ucyk7Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gbmV4dFZpc2libGVSYW5nZShSYW5n
ZSosIGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zKTsKLQogICAgIHZvaWQgY2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgYm9v
bCBjbG9zZVR5cGluZywgYm9vbCBjbGVhclR5cGluZ1N0eWxlKTsKIAogICAgIE5vZGUqIGZpbmRF
dmVudFRhcmdldEZyb21TZWxlY3Rpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IGU0NmY5ZTFhODM4ZDNjODM3OGZhNjNlZmRkOWMwZDJjNzg2YjVkMDcu
LjJjNjYwOTNmMzY5ZmM4ZTcxNWM4NDEyMjY0MTY3YTgyMWM4YmMwNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjkzMyw3ICsyOTMzLDcgQEAgRnJhbWUqIEZyYW1l
TG9hZGVyOjpmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
RG9jdW1lbnQqIGEKICAgICAvLyBicm93c2luZyBjb250ZXh0IGZsYWcgc2V0LCBhbmQgY29udGlu
dWUgdGhlc2Ugc3RlcHMgYXMgaWYgdGhhdAogICAgIC8vIGJyb3dzaW5nIGNvbnRleHQgd2FzIHRo
ZSBvbmUgdGhhdCB3YXMgZ29pbmcgdG8gYmUgbmF2aWdhdGVkIGluc3RlYWQuCiAgICAgaWYgKGZy
YW1lID09IG1fZnJhbWUgJiYgbmFtZSAhPSAiX3NlbGYiICYmIG1fZnJhbWUtPmRvY3VtZW50KCkt
PnNob3VsZERpc3BsYXlTZWFtbGVzc2x5V2l0aFBhcmVudCgpKSB7Ci0gICAgICAgIGZvciAoRnJh
bWUqIGFuY2VzdG9yID0gbV9mcmFtZTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnRy
ZWUoKS0+cGFyZW50KHRydWUpKSB7CisgICAgICAgIGZvciAoRnJhbWUqIGFuY2VzdG9yID0gbV9m
cmFtZTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnRyZWUoKS0+cGFyZW50KCkpIHsK
ICAgICAgICAgICAgIGlmICghYW5jZXN0b3ItPmRvY3VtZW50KCktPnNob3VsZERpc3BsYXlTZWFt
bGVzc2x5V2l0aFBhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUgPSBhbmNlc3RvcjsK
ICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA4
NmMxMjEyNmE0YzdiYWEzMzY5NzRkOGNmODc5ZmJiYjg2ZTUzNWZlLi5jNmE0YzBiMTM4ZDQxN2Zh
MzdjZTc5NTlhODZkYTEwYzliYWM2MjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0xMjg3LDcgKzEyODcsNyBAQCBET01XaW5kb3cqIERPTVdpbmRvdzo6cGFyZW50KCkgY29uc3QK
ICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgRnJhbWUqIHBhcmVu
dCA9IG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KHRydWUpOworICAgIEZyYW1lKiBwYXJlbnQgPSBt
X2ZyYW1lLT50cmVlKCktPnBhcmVudCgpOwogICAgIGlmIChwYXJlbnQpCiAgICAgICAgIHJldHVy
biBwYXJlbnQtPmRvbVdpbmRvdygpOwogCkBAIC0xMzAzLDcgKzEzMDMsNyBAQCBET01XaW5kb3cq
IERPTVdpbmRvdzo6dG9wKCkgY29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmV0dXJuIG1fZnJhbWUtPnRyZWUoKS0+dG9wKHRydWUpLT5kb21XaW5kb3coKTsK
KyAgICByZXR1cm4gbV9mcmFtZS0+dHJlZSgpLT50b3AoKS0+ZG9tV2luZG93KCk7CiB9CiAKIERv
Y3VtZW50KiBET01XaW5kb3c6OmRvY3VtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCA4ZmNmMWE0NmU4OGY1YTBhODRlOTMzYTRhYjgxOWI0ODYxODYwMGJl
Li45YzUxYjI5NzRlMzAzZWNiYTVlZjEzN2Q1NzI3OTc2ZDEwOWQ0OWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMDc5LDcgKzEwNzksNyBAQCBIaXRUZXN0UmVzdWx0
IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBv
aW50LCBib29sCiAgICAgRnJhbWUqIHJlc3VsdEZyYW1lID0gcmVzdWx0LmlubmVyTm9uU2hhcmVk
Tm9kZSgpID8gcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5kb2N1bWVudCgpLT5mcmFtZSgp
IDogMDsKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBG
cmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgICAgIGlmIChtX2ZyYW1l
ICE9IG1haW5GcmFtZSAmJiByZXN1bHRGcmFtZSAmJiByZXN1bHRGcmFtZSAhPSBtYWluRnJhbWUg
JiYgIXJlc3VsdEZyYW1lLT5lZGl0b3IoKS0+aW5zaWRlVmlzaWJsZUFyZWEocmVzdWx0LnBvaW50
KCkpKSB7CisgICAgICAgIGlmIChtX2ZyYW1lICE9IG1haW5GcmFtZSAmJiByZXN1bHRGcmFtZSAm
JiByZXN1bHRGcmFtZSAhPSBtYWluRnJhbWUpIHsKICAgICAgICAgICAgIEZyYW1lVmlldyogcmVz
dWx0VmlldyA9IHJlc3VsdEZyYW1lLT52aWV3KCk7CiAgICAgICAgICAgICBGcmFtZVZpZXcqIG1h
aW5WaWV3ID0gbWFpbkZyYW1lLT52aWV3KCk7CiAgICAgICAgICAgICBpZiAocmVzdWx0VmlldyAm
JiBtYWluVmlldykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBjNWY0OWQxOWQxOTUzZDQ4ZjVj
MGI4YjIyNDcxOTljYjIzM2U0NzIwLi45MWQzMWUzYmZkMTQ3YTg5MGY3NmE3MzkwMDBkM2IwMDI1
MzRmOGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTY0LDggKzE2NCw2IEBAIGlubGluZSBG
cmFtZTo6RnJhbWUoUGFnZSogcGFnZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1l
bnQsIEZyYW1lTG9hZGVyCiAgICAgLCBtX29yaWVudGF0aW9uKDApCiAjZW5kaWYKICAgICAsIG1f
aW5WaWV3U291cmNlTW9kZShmYWxzZSkKLSAgICAsIG1faXNEaXNjb25uZWN0ZWQoZmFsc2UpCi0g
ICAgLCBtX2V4Y2x1ZGVGcm9tVGV4dFNlYXJjaChmYWxzZSkKICAgICAsIG1fYWN0aXZlRE9NT2Jq
ZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWRDb3VudCgwKQogewogICAgIEFTU0VSVChwYWdlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuaAppbmRleCA0NTcxNTJlNTllZmU5MjdlODZkYjZlZjY4Y2FmNDE4ZDcyZmI0
YmYyLi43N2E3M2Q4MDcyNTcwYjBkYjI5ZDc0OWNjOTE3NDE3ZTZiNjkxMjg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oCkBAIC0xMTksMTAgKzExOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIC8v
ID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93IHRoaXMgcG9pbnQgYXJlIGNhbmRp
ZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90aGVyIGNsYXNzLiA9PT09PT09PQog
Ci0gICAgICAgIGJvb2wgaXNEaXNjb25uZWN0ZWQoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRJ
c0Rpc2Nvbm5lY3RlZChib29sKTsKLSAgICAgICAgYm9vbCBleGNsdWRlRnJvbVRleHRTZWFyY2go
KSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRFeGNsdWRlRnJvbVRleHRTZWFyY2goYm9vbCk7CiAg
ICAgICAgIGJvb2wgaW5TY29wZShUcmVlU2NvcGUqKSBjb25zdDsKIAogICAgICAgICB2b2lkIGlu
amVjdFVzZXJTY3JpcHRzKFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKTsKQEAgLTIzNyw4ICsyMzMs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgICAgICBib29sIG1faW5WaWV3
U291cmNlTW9kZTsKLSAgICAgICAgYm9vbCBtX2lzRGlzY29ubmVjdGVkOwotICAgICAgICBib29s
IG1fZXhjbHVkZUZyb21UZXh0U2VhcmNoOwogCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CiAgICAgLy8gRklYTUU6IFRoZSB0aWxlZCBiYWNraW5nIHN0b3JlIGJlbG9uZ3MgaW4gRnJhbWVW
aWV3LCBub3QgRnJhbWUuCkBAIC0zMTIsMjYgKzMwNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgcmV0dXJuIG1fb3duZXJFbGVtZW50OwogICAgIH0KIAotICAgIGlubGluZSBib29s
IEZyYW1lOjppc0Rpc2Nvbm5lY3RlZCgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9p
c0Rpc2Nvbm5lY3RlZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgdm9pZCBGcmFtZTo6c2V0SXNEaXNj
b25uZWN0ZWQoYm9vbCBpc0Rpc2Nvbm5lY3RlZCkKLSAgICB7Ci0gICAgICAgIG1faXNEaXNjb25u
ZWN0ZWQgPSBpc0Rpc2Nvbm5lY3RlZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBGcmFtZTo6
ZXhjbHVkZUZyb21UZXh0U2VhcmNoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2V4
Y2x1ZGVGcm9tVGV4dFNlYXJjaDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgdm9pZCBGcmFtZTo6c2V0
RXhjbHVkZUZyb21UZXh0U2VhcmNoKGJvb2wgZXhjbHVkZSkKLSAgICB7Ci0gICAgICAgIG1fZXhj
bHVkZUZyb21UZXh0U2VhcmNoID0gZXhjbHVkZTsKLSAgICB9Ci0KICAgICBpbmxpbmUgYm9vbCBG
cmFtZTo6aW5WaWV3U291cmNlTW9kZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9p
blZpZXdTb3VyY2VNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRy
ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IGNlZDYyMDA3
MmZjYmNkMjhmOWE5ODk5YWI5ZjlkMTEzOGY4OTBiMmEuLjYzNzhmM2ZjODBkOGIzZGMwZDJhMzI4
Yjc4ZDZlNDhmNjcyMjQ0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTU4LDEw
ICs1OCw4IEBAIHZvaWQgRnJhbWVUcmVlOjpjbGVhck5hbWUoKQogICAgIG1fdW5pcXVlTmFtZSA9
IEF0b21pY1N0cmluZygpOwogfQogCi1GcmFtZSogRnJhbWVUcmVlOjpwYXJlbnQoYm9vbCBjaGVj
a0ZvckRpc2Nvbm5lY3RlZEZyYW1lKSBjb25zdCAKK0ZyYW1lKiBGcmFtZVRyZWU6OnBhcmVudCgp
IGNvbnN0IAogeyAKLSAgICBpZiAoY2hlY2tGb3JEaXNjb25uZWN0ZWRGcmFtZSAmJiBtX3RoaXNG
cmFtZS0+aXNEaXNjb25uZWN0ZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIG1f
cGFyZW50OwogfQogCkBAIC0zODMsMTQgKzM4MSwxMSBAQCBGcmFtZSogRnJhbWVUcmVlOjpkZWVw
TGFzdENoaWxkKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1GcmFtZSogRnJhbWVU
cmVlOjp0b3AoYm9vbCBjaGVja0ZvckRpc2Nvbm5lY3RlZEZyYW1lKSBjb25zdAorRnJhbWUqIEZy
YW1lVHJlZTo6dG9wKCkgY29uc3QKIHsKICAgICBGcmFtZSogZnJhbWUgPSBtX3RoaXNGcmFtZTsK
LSAgICBmb3IgKEZyYW1lKiBwYXJlbnQgPSBtX3RoaXNGcmFtZTsgcGFyZW50OyBwYXJlbnQgPSBw
YXJlbnQtPnRyZWUoKS0+cGFyZW50KCkpIHsKKyAgICBmb3IgKEZyYW1lKiBwYXJlbnQgPSBtX3Ro
aXNGcmFtZTsgcGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPnRyZWUoKS0+cGFyZW50KCkpCiAgICAg
ICAgIGZyYW1lID0gcGFyZW50OwotICAgICAgICBpZiAoY2hlY2tGb3JEaXNjb25uZWN0ZWRGcmFt
ZSAmJiBmcmFtZS0+aXNEaXNjb25uZWN0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBmcmFtZTsK
LSAgICB9CiAgICAgcmV0dXJuIGZyYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaAppbmRl
eCA1ZjllMzE3YTliMzAwNDhkMzk0OTE0NjQ5Yzc1MmFiMGJjYWE5OGMxLi5jODY1MzMwNWFhMzhi
ZTg2ZmI5ZmY2ZmUzOTkzZTBhZDNjOGRkMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKQEAg
LTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHVuaXF1ZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX3VuaXF1ZU5hbWU7IH0KICAgICAg
ICAgdm9pZCBzZXROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgICAgICB2b2lkIGNsZWFy
TmFtZSgpOwotICAgICAgICBGcmFtZSogcGFyZW50KGJvb2wgY2hlY2tGb3JEaXNjb25uZWN0ZWRG
cmFtZSA9IGZhbHNlKSBjb25zdDsKKyAgICAgICAgRnJhbWUqIHBhcmVudCgpIGNvbnN0OwogICAg
ICAgICB2b2lkIHNldFBhcmVudChGcmFtZSogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9
CiAgICAgICAgIAogICAgICAgICBGcmFtZSogbmV4dFNpYmxpbmcoKSBjb25zdCB7IHJldHVybiBt
X25leHRTaWJsaW5nLmdldCgpOyB9CkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBBdG9taWNTdHJpbmcgdW5pcXVlQ2hpbGROYW1lKGNvbnN0IEF0b21pY1N0
cmluZyYgcmVxdWVzdGVkTmFtZSkgY29uc3Q7CiAKLSAgICAgICAgRnJhbWUqIHRvcChib29sIGNo
ZWNrRm9yRGlzY29ubmVjdGVkRnJhbWUgPSBmYWxzZSkgY29uc3Q7CisgICAgICAgIEZyYW1lKiB0
b3AoKSBjb25zdDsKIAogICAgICAgICBGcmFtZSogc2NvcGVkQ2hpbGQodW5zaWduZWQgaW5kZXgp
IGNvbnN0OwogICAgICAgICBGcmFtZSogc2NvcGVkQ2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAKaW5kZXggZjY1MTFkNmEzOGNhNDY4
MDdhYTMyNzdkNDA5NjViY2QzMjk3YThiOC4uZGY2ZWE4ZGY1NDJiODVkOTNjN2QxZTZkYzUzOTRm
MDhmNWIwNjVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAKQEAgLTEyOSw3ICsxMjksNyBA
QCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IExvY2F0aW9uOjphbmNlc3Rvck9yaWdpbnMoKSBj
b25zdAogICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBvcmlnaW5zID0gRE9NU3RyaW5nTGlzdDo6
Y3JlYXRlKCk7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gb3JpZ2lucy5yZWxl
YXNlKCk7Ci0gICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCh0
cnVlKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KHRydWUpKQorICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIG9yaWdpbnMtPmFwcGVuZChmcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSk7CiAgICAgcmV0dXJu
IG9yaWdpbnMucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TFRyZWVWaWV3ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCmlu
ZGV4IDliNWI3MDY2MTZhNTI3ZTZjYmI4YWI2NDBhZWJiMmI1NjQyMThhNzEuLjE5MGJmMzdhZjdl
MzM4YjMzMThlMGE3ZWY5ODM3ZDQwYmY0NjZjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxUcmVlVmlld2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZp
ZXdlci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgYm9vbCBYTUxUcmVlVmlld2VyOjpoYXNOb1N0eWxl
SW5mb3JtYXRpb24oKSBjb25zdAogICAgIGlmICghbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgp
LT5zZXR0aW5ncygpLT5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmIChtX2RvY3VtZW50LT5mcmFtZSgpLT50cmVlKCktPnBhcmVudCh0cnVl
KSkKKyAgICBpZiAobV9kb2N1bWVudC0+ZnJhbWUoKS0+dHJlZSgpLT5wYXJlbnQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOyAvLyBUaGlzIGRvY3VtZW50IGlzIG5vdCBpbiBhIHRvcCBmcmFtZQog
CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRl
eCAyNTYzMTc0ODExNjRkNGJhN2U1YWU4ZWE1Yzk1Y2U1ZjM1YmY0YzE3Li4zYzQ5N2Y2NjNmZjc0
ZGNkY2ViZWY3ZTY1OTZjMmJiNGFlZDZhMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0KQEAgLTkxMCwxNiArOTEwLDYgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNl
ICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgcmV0dXJuIF9wcml2YXRl
LT5jb3JlRnJhbWUtPmRvbVdpbmRvdygpLT5wZW5kaW5nVW5sb2FkRXZlbnRMaXN0ZW5lcnMoKTsK
IH0KIAotLSAodm9pZClfc2V0SXNEaXNjb25uZWN0ZWQ6KGJvb2wpaXNEaXNjb25uZWN0ZWQKLXsK
LSAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5zZXRJc0Rpc2Nvbm5lY3RlZChpc0Rpc2Nvbm5lY3Rl
ZCk7Ci19Ci0KLS0gKHZvaWQpX3NldEV4Y2x1ZGVGcm9tVGV4dFNlYXJjaDooYm9vbClleGNsdWRl
Ci17Ci0gICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2V0RXhjbHVkZUZyb21UZXh0U2VhcmNoKGV4
Y2x1ZGUpOwotfQotCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAtICh2b2lkKV9y
ZWN1cnNpdmVfcmVzdW1lTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2lucwogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKaW5kZXggOWRlYTdlMWI0Zjlj
ZGQ4YWEzYmZkOTAyNjc2OGU5NTNmYzBjZmI3OC4uNDA5Yzk3ZjQ0NmU5MmY2NThjYTliNzNiMTZi
MzM1ZTQ3MDIwODE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJp
dmF0ZS5oCkBAIC04Nyw5ICs4Nyw2IEBAIHR5cGVkZWYgZW51bSB7CiAKIC0gKHVuc2lnbmVkKV9w
ZW5kaW5nRnJhbWVVbmxvYWRFdmVudENvdW50OwogCi0tICh2b2lkKV9zZXRJc0Rpc2Nvbm5lY3Rl
ZDooYm9vbClpc0Rpc2Nvbm5lY3RlZDsKLS0gKHZvaWQpX3NldEV4Y2x1ZGVGcm9tVGV4dFNlYXJj
aDooYm9vbClleGNsdWRlOwotCiAjaWYgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkKIC0gKHZv
aWQpX3JlY3Vyc2l2ZV9yZXN1bWVOdWxsRXZlbnRzRm9yQWxsTmV0c2NhcGVQbHVnaW5zOwogLSAo
dm9pZClfcmVjdXJzaXZlX3BhdXNlTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2luczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkZyYW1lLmNwcAppbmRleCAzYTM3MTViM2JlY2E0NmZlMGU3MjZmNDE1OTUwZjYwNzFj
YzFmNWIzLi44NzMyZGE4NTg0ODZiMWE1ODdhZjFmY2VhZjk1NGQ1NGM3YjgxOTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViRnJhbWUuY3BwCkBAIC0yOTgsMjIgKzI5OCwxMiBAQCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYkZyYW1lOjphbGxvd3NTY3JvbGxpbmcoCiBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFdlYkZyYW1lOjpzZXRJc0Rpc2Nvbm5lY3RlZCgKICAgICAvKiBbaW5dICovIEJPT0wgZmxh
ZykKIHsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gY29yZSh0aGlzKSkgewotICAgICAgICBmcmFt
ZS0+c2V0SXNEaXNjb25uZWN0ZWQoZmxhZyk7Ci0gICAgICAgIHJldHVybiBTX09LOwotICAgIH0K
LQogICAgIHJldHVybiBFX0ZBSUw7CiB9CiAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
RnJhbWU6OnNldEV4Y2x1ZGVGcm9tVGV4dFNlYXJjaCgKICAgICAvKiBbaW5dICovIEJPT0wgZmxh
ZykKIHsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gY29yZSh0aGlzKSkgewotICAgICAgICBmcmFt
ZS0+c2V0RXhjbHVkZUZyb21UZXh0U2VhcmNoKGZsYWcpOwotICAgICAgICByZXR1cm4gU19PSzsK
LSAgICB9Ci0KICAgICByZXR1cm4gRV9GQUlMOwogfQogCg==
</data>
<flag name="review"
          id="154111"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>