<?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>133929</bug_id>
          
          <creation_ts>2014-06-15 12:17:32 -0700</creation_ts>
          <short_desc>Add an autorelease() member function to RetainPtr</short_desc>
          <delta_ts>2014-06-15 21:10: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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015777</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-15 12:17:32 -0700</bug_when>
    <thetext>Add an autorelease() member function to RetainPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015779</commentid>
    <comment_count>1</comment_count>
      <attachid>233145</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-15 12:19:47 -0700</bug_when>
    <thetext>Created attachment 233145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015780</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-15 12:21:51 -0700</bug_when>
    <thetext>Attachment 233145 did not pass style-queue:


ERROR: Source/WTF/wtf/RetainPtr.h:171:  Extra space before [  [whitespace/braces] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015781</commentid>
    <comment_count>3</comment_count>
      <attachid>233145</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-15 12:28:27 -0700</bug_when>
    <thetext>Comment on attachment 233145
Patch

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

&gt; Source/WTF/wtf/RetainPtr.h:172
&gt; +#if __has_feature(objc_arc)
&gt; +        return ptr;
&gt; +#else
&gt; +        return [(id)CFMakeCollectable(ptr) autorelease];
&gt; +#endif

Can this be written more concisely as
    return CFBridgingRelease(ptr);
?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015782</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-15 12:30:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 233145 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233145&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/RetainPtr.h:172
&gt; &gt; +#if __has_feature(objc_arc)
&gt; &gt; +        return ptr;
&gt; &gt; +#else
&gt; &gt; +        return [(id)CFMakeCollectable(ptr) autorelease];
&gt; &gt; +#endif
&gt; 
&gt; Can this be written more concisely as
&gt;     return CFBridgingRelease(ptr);
&gt; ?

Yes, that&apos;s the function I was looking for!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015783</commentid>
    <comment_count>5</comment_count>
      <attachid>233145</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-15 12:30:53 -0700</bug_when>
    <thetext>Comment on attachment 233145
Patch

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

&gt; Source/WTF/wtf/RetainPtr.h:171
&gt; +        return [(id)CFMakeCollectable(ptr) autorelease];

We use CFRetain/CFRelease everywhere, shouldn&apos;t this be CFAutorelease?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015784</commentid>
    <comment_count>6</comment_count>
      <attachid>233145</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-15 12:31:58 -0700</bug_when>
    <thetext>Comment on attachment 233145
Patch

r=me with CFBridgingRelease.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015785</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-15 12:34:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 233145 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233145&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/RetainPtr.h:171
&gt; &gt; +        return [(id)CFMakeCollectable(ptr) autorelease];
&gt; 
&gt; We use CFRetain/CFRelease everywhere, shouldn&apos;t this be CFAutorelease?

It can&apos;t be CFAutorelease because:

1. It&apos;s not available on 10.8
2. I don&apos;t think it does the right thing for garbage collected Objective-C apps using WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015791</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-15 16:16:57 -0700</bug_when>
    <thetext>Committed r169995: &lt;http://trac.webkit.org/changeset/169995&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015804</commentid>
    <comment_count>9</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-15 20:31:14 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r169995: &lt;http://trac.webkit.org/changeset/169995&gt;

This broke the iOS build with:

In file included from Source/WebCore/bindings/objc/DOM.mm:32:
In file included from Source/WebCore/loader/cache/CachedImage.h:26:
In file included from Source/WebCore/loader/cache/CachedResource.h:29:
In file included from Source/WebCore/platform/network/cf/ResourceError.h:31:
WebKitBuild/Release-iphonesimulator/usr/local/include/wtf/RetainPtr.h:166:16: error: cannot initialize return object of type &apos;PtrType&apos; (aka &apos;CGImage *&apos;) with an rvalue of type &apos;id&apos;
Source/WebCore/bindings/objc/DOM.mm:613:68: note: in instantiation of member function &apos;WTF::RetainPtr&lt;CGImage *&gt;::autorelease&apos; requested here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015808</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-15 21:10:24 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Committed r169995: &lt;http://trac.webkit.org/changeset/169995&gt;
&gt; 
&gt; This broke the iOS build with:
&gt; 
&gt; In file included from Source/WebCore/bindings/objc/DOM.mm:32:
&gt; In file included from Source/WebCore/loader/cache/CachedImage.h:26:
&gt; In file included from Source/WebCore/loader/cache/CachedResource.h:29:
&gt; In file included from Source/WebCore/platform/network/cf/ResourceError.h:31:
&gt; WebKitBuild/Release-iphonesimulator/usr/local/include/wtf/RetainPtr.h:166:16: error: cannot initialize return object of type &apos;PtrType&apos; (aka &apos;CGImage *&apos;) with an rvalue of type &apos;id&apos;
&gt; Source/WebCore/bindings/objc/DOM.mm:613:68: note: in instantiation of member function &apos;WTF::RetainPtr&lt;CGImage *&gt;::autorelease&apos; requested here

I tried to fix that in &lt;http://trac.webkit.org/r169999&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233145</attachid>
            <date>2014-06-15 12:19:47 -0700</date>
            <delta_ts>2014-06-15 12:31:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133929-20140615121924.patch</filename>
            <type>text/plain</type>
            <size>15607</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDYyMDIyNDEzNDAxYjE0NjQ1ZGE2Y2U5
ZjlmYjM3ZGQzYTdjZDUyOTMuLjRlNThjMTgyMWJkMjIyMzkzY2EzN2Y1YjliYjViNTRiZjk0ZDc4
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDYtMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYW4gYXV0b3JlbGVhc2UoKSBtZW1iZXIg
ZnVuY3Rpb24gdG8gUmV0YWluUHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzM5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHd0Zi9SZXRhaW5QdHIuaDoKKwogMjAxNC0wNi0xMyAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
ZGlzYWJsaW5nIGNzcyBqaXQgb24gYXJtdjcuICBJdCdzIG5vdCBxdWl0ZSByZWFkeSB5ZXQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMTI4NGIzZmRkMmUyMzFhMDdiYWIwNmMwN2Q2MjY4N2VjZWRmNWRjZi4uOTQ3
OTE5NzRlZThjNTg3ZDU2YjlmODkyOGQ4NGYyM2IyYzE2MTgwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE0LTA2LTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGFuIGF1dG9yZWxlYXNlKCkgbWVtYmVyIGZ1bmN0aW9uIHRvIFJl
dGFpblB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMzOTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTS5tbToKKyAgICAgICAgKC1bRE9NTm9kZSByZW5kZXJlZEltYWdl
XSk6CisgICAgICAgICgtW0RPTVJhbmdlIHJlbmRlcmVkSW1hZ2VGb3JjaW5nQmxhY2tUZXh0OnJl
bmRlcmVkSW1hZ2VGb3JjaW5nQmxhY2tUZXh0Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NVUlLaXRFeHRlbnNpb25zLm1tOgorICAgICAgICAoLVtET01IVE1MSW1hZ2VFbGVtZW50IGRh
dGFSZXByZXNlbnRhdGlvbjpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgt
W1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9u
OndpbGxTZW5kUmVxdWVzdDpyZWRpcmVjdFJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsQ2Fj
aGVSZXNwb25zZTpdKToKKwogMjAxNC0wNi0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IEhUVFBIZWFkZXJOYW1lIGluIFJlc291cmNlUmVz
cG9uc2VCYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzJhNGNhMDk1YWVkMWE1ZDQ4NDc4YTM2YTdh
MTU5MzdiMDcyZjc2My4uYWM2ZjUxOWNlY2Y4OTZjNTQ1YzVmYzNlYjg1NGQ4ZWE2NzA1MmZlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA2LTE1ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFuIGF1dG9yZWxlYXNl
KCkgbWVtYmVyIGZ1bmN0aW9uIHRvIFJldGFpblB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzOTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAg
ICAgICgtW1dlYkRhdGFTb3VyY2UgZGF0YV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZp
ZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZWxlY3Rpb25EcmFnZ2luZ0ltYWdlXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNlbGVjdGlvbkltYWdlRm9yY2luZ0JsYWNrVGV4dDpz
ZWxlY3Rpb25JbWFnZUZvcmNpbmdCbGFja1RleHQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJS
ZXNvdXJjZS5tbToKKyAgICAgICAgKC1bV2ViUmVzb3VyY2UgZGF0YV0pOgorCiAyMDE0LTA2LTEx
ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJGcmFtZU5l
dHdvcmtDb250ZXh0IHNob3VsZCBub3QgaGF2ZSBhIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmll
ciBpbiBXSzEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGZmZWMyMzhmMDRiOWYxYjY1YWFmYzM5ZmVjNThhYjg2
NWQ5NWQ5MC4uMmQ4OGE2MmRlZmNmODQ1ZjRiYmJlMTI4OWM5NDI3MTNlNmMxMzIzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE0LTA2LTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGFuIGF1dG9yZWxlYXNlKCkgbWVtYmVyIGZ1
bmN0aW9uIHRvIFJldGFpblB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMzOTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1t
OgorICAgICAgICAoLVtfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RQcm94eVdp
dGhJbnRlcmZhY2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBuYXZpZ2F0aW9uRGVsZWdhdGVdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IFVJRGVsZWdhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGxvYWRSZXF1
ZXN0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6YmFzZVVSTDpdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IGdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgZ29CYWNrXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBnb0ZvcndhcmRd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHJlbG9hZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
cmVsb2FkRnJvbU9yaWdpbl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2hpc3RvcnlEZWxlZ2F0
ZV0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZS5tbToKKyAgICAgICAgKFdlYktpdDo6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVW
YWx1ZSk6CisKKzIwMTQtMDYtMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KKwogICAgICAgICBSZW1vdmUgV0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lX2IKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzkyNgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1Jl
dGFpblB0ci5oCmluZGV4IDUxMDVmOTRhNWQwMDMyMTk3ZTUyMTZiMDA4ZjljNjEwZDQ5YjA2Yjku
LmZmNWZkMDY1ODYxMWVkMTg3YWFkMDYxODAzMTg1OGU1ZDhhODNlY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5o
CkBAIC03Nyw2ICs3Nyw3IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIHZvaWQgY2xlYXIo
KTsKICAgICAgICAgUHRyVHlwZSBsZWFrUmVmKCkgV0FSTl9VTlVTRURfUkVUVVJOOworICAgICAg
ICBQdHJUeXBlIGF1dG9yZWxlYXNlKCk7CiAKICAgICAgICAgUHRyVHlwZSBnZXQoKSBjb25zdCB7
IHJldHVybiBmcm9tU3RvcmFnZVR5cGUobV9wdHIpOyB9CiAgICAgICAgIFB0clR5cGUgb3BlcmF0
b3ItPigpIGNvbnN0IHsgcmV0dXJuIGZyb21TdG9yYWdlVHlwZShtX3B0cik7IH0KQEAgLTE1OSw2
ICsxNjAsMTkgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQog
CisjaWZkZWYgX19PQkpDX18KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYXV0byBS
ZXRhaW5QdHI8VD46OmF1dG9yZWxlYXNlKCkgLT4gUHRyVHlwZQorICAgIHsKKyAgICAgICAgUHRy
VHlwZSBwdHIgPSBsZWFrUmVmKCk7CisKKyNpZiBfX2hhc19mZWF0dXJlKG9iamNfYXJjKQorICAg
ICAgICByZXR1cm4gcHRyOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIFsoaWQpQ0ZNYWtlQ29sbGVj
dGFibGUocHRyKSBhdXRvcmVsZWFzZV07CisjZW5kaWYKKyAgICB9CisjZW5kaWYKKwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZXRhaW5QdHI8VD4mIFJldGFpblB0cjxUPjo6b3Bl
cmF0b3I9KGNvbnN0IFJldGFpblB0ciYgbykKICAgICB7CiAgICAgICAgIFJldGFpblB0ciBwdHIg
PSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQppbmRleCA2ZmI4MDFiYmRkMDc3NWM2
Y2ZlNTgyZTk5NWU5NTVlMGNkYjMxNjdhLi4yNjc0NTI2MzU3OTBlNzEzMjc5NmUxODdjMjU5MWIz
ODA1YzdmM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQpAQCAtNTU1LDcgKzU1
NSw3IEBAIGlkIDxET01FdmVudFRhcmdldD4ga2l0KFdlYkNvcmU6OkV2ZW50VGFyZ2V0KiBldmVu
dFRhcmdldCkKICAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4g
W2NyZWF0ZURyYWdJbWFnZUZvck5vZGUoKmZyYW1lLCAqbm9kZSkubGVha1JlZigpIGF1dG9yZWxl
YXNlXTsKKyAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZSgqZnJhbWUsICpub2RlKS5h
dXRvcmVsZWFzZSgpOwogfQogI2VuZGlmCiAKQEAgLTYxMCwxMiArNjEwLDcgQEAgaWQgPERPTUV2
ZW50VGFyZ2V0PiBraXQoV2ViQ29yZTo6RXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0KQogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSNpZiBQTEFURk9STShJT1MpCi0gICAg
Q0dJbWFnZVJlZiBkcmFnSW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2VGb3JSYW5nZSgqZnJhbWUsICpy
YW5nZSwgZm9yY2VCbGFja1RleHQpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gZHJhZ0ltYWdlID8g
KENHSW1hZ2VSZWYpQ0ZBdXRvcmVsZWFzZShkcmFnSW1hZ2UpIDogbmlsOwotI2Vsc2UKLSAgICBy
ZXR1cm4gW2NyZWF0ZURyYWdJbWFnZUZvclJhbmdlKCpmcmFtZSwgKnJhbmdlLCBmb3JjZUJsYWNr
VGV4dCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKLSNlbmRpZgorICAgIHJldHVybiBjcmVhdGVE
cmFnSW1hZ2VGb3JSYW5nZSgqZnJhbWUsICpyYW5nZSwgZm9yY2VCbGFja1RleHQpLmF1dG9yZWxl
YXNlKCk7CiB9CiAKIC0gKE5TQXJyYXkgKil0ZXh0UmVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlLaXRFeHRlbnNpb25zLm1tIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01VSUtpdEV4dGVuc2lvbnMubW0KaW5kZXggMjlmZmY4NjkzOGNk
ZmRjZDk5MmFkMzRkZWM5MThkYTE4NTk3MjQ1Mi4uMzAwYTgzZTlmMWVjOGI3ZTk2ZjdiOGI3MmYz
MzVlZTRlY2Y4ZDJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01VSUtpdEV4dGVuc2lvbnMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01VSUtpdEV4dGVuc2lvbnMubW0KQEAgLTQ4Myw4ICs0ODMsOCBAQCB1c2luZyBXZWJDb3JlOjpW
aXNpYmxlUG9zaXRpb247CiAgICAgfQogICAgIGlmICghZGF0YSkKICAgICAgICAgcmV0dXJuIG5p
bDsKLSAgICAKLSAgICByZXR1cm4gW2RhdGEtPmNyZWF0ZU5TRGF0YSgpLmxlYWtSZWYoKSBhdXRv
cmVsZWFzZV07CisKKyAgICByZXR1cm4gZGF0YS0+Y3JlYXRlTlNEYXRhKCkuYXV0b3JlbGVhc2Uo
KTsKIH0KIAogLSAoTlNTdHJpbmcgKiltaW1lVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCmluZGV4IDhmMDUw
Mzk1MmFlYmIwNmE1YjY4ODUzYTJkMTNhODUxOThmZjg0YzcuLjZkYjBkNWQ2MjNhMzc2NWI3OTli
M2RkZWZhMmM5ZWI5Y2U4ZDkxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KQEAgLTEzMSw3ICsxMzEsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICB9KTsKIAogICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwotICAgIHJldHVy
biBbbV9yZXF1ZXN0UmVzdWx0LmxlYWtSZWYoKSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIG1f
cmVxdWVzdFJlc3VsdC5hdXRvcmVsZWFzZSgpOwogfQogCiAtICh2b2lkKWNvbm5lY3Rpb246KE5T
VVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCkBAIC0zMzMsNyAr
MzMzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgfSk7CiAKICAgICBkaXNwYXRj
aF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKLSAg
ICByZXR1cm4gW21fY2FjaGVkUmVzcG9uc2VSZXN1bHQubGVha1JlZigpIGF1dG9yZWxlYXNlXTsK
KyAgICByZXR1cm4gbV9jYWNoZWRSZXNwb25zZVJlc3VsdC5hdXRvcmVsZWFzZSgpOwogfQogCiBA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2Uu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KaW5kZXggZjJh
MDU3NjQ2MzcyNTIxZDA2ZWYwMmI2MWM0NWFjNGNhNTE4ZGQ0ZC4uMzkxZDNiNWJhNDFjZTFmYzFm
MmMyYzJjZTg5MTkwNGE3ZTI2NDQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RGF0YVNvdXJjZS5tbQpAQCAtNTI2LDcgKzUyNiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRU
eXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0Ns
CiAgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtYWluUmVzb3VyY2VEYXRhID0gdG9Qcml2YXRl
KF9wcml2YXRlKS0+bG9hZGVyLT5tYWluUmVzb3VyY2VEYXRhKCk7CiAgICAgaWYgKCFtYWluUmVz
b3VyY2VEYXRhKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBbbWFpblJlc291cmNl
RGF0YS0+Y3JlYXRlTlNEYXRhKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4g
bWFpblJlc291cmNlRGF0YS0+Y3JlYXRlTlNEYXRhKCkuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAo
aWQgPFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+KXJlcHJlc2VudGF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBkMzQyMDQ2NmYzMjI4MGM5YjdjNDc1
YTc0ZmUxNDE4ODMzZGJkZDM1Li5hZDRhN2EwZGQwNmI2YTY1YjY3MGM5ZmNkMDQzZDRkOTBlYWMy
YjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTIwMjUs
OSArMjAyNSwxMCBAQCBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhO
U0V2ZW50ICpldmVudCkKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIE5TSW1hZ2UgKmRyYWdJbWFnZSA9IFtjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24o
KmNvcmVGcmFtZSkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICBhdXRvIGRyYWdJbWFnZSA9
IGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1lKTsKICAgICBbZHJhZ0ltYWdl
IF93ZWJfZGlzc29sdmVUb0ZyYWN0aW9uOldlYkRyYWdJbWFnZUFscGhhXTsKLSAgICByZXR1cm4g
ZHJhZ0ltYWdlOworCisgICAgcmV0dXJuIGRyYWdJbWFnZS5hdXRvcmVsZWFzZSgpOwogfQogCiAt
IChOU1JlY3QpX3NlbGVjdGlvbkRyYWdnaW5nUmVjdApAQCAtNjY1NCw3ICs2NjU1LDcgQEAgc3Rh
dGljIENHSW1hZ2VSZWYgc2VsZWN0aW9uSW1hZ2UoRnJhbWUqIGZyYW1lLCBib29sIGZvcmNlQmxh
Y2tUZXh0KQogI2lmIFBMQVRGT1JNKElPUykKICAgICByZXR1cm4gc2VsZWN0aW9uSW1hZ2UoY29y
ZUZyYW1lLCBmb3JjZUJsYWNrVGV4dCk7CiAjZWxzZQotICAgIHJldHVybiBbY3JlYXRlRHJhZ0lt
YWdlRm9yU2VsZWN0aW9uKCpjb3JlRnJhbWUsIGZvcmNlQmxhY2tUZXh0KS5sZWFrUmVmKCkgYXV0
b3JlbGVhc2VdOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oKmNvcmVG
cmFtZSwgZm9yY2VCbGFja1RleHQpLmF1dG9yZWxlYXNlKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KaW5kZXggNjU5MmI5YTI0ZTIxMjEwMDg4
ODgyNDNjMTMxZGQ5ZmFmYmY5NGFmMS4uM2FkMGQyOWRmYjI0OGQ3M2Q4MTU2YjgyZGE0MmE4MmUz
ZjEyYzQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0y
MTEsNyArMjExLDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViUmVzb3VyY2VSZXNwb25z
ZUtleSA9ICAgICAgICAgIEAiV2ViUmVzb3VyY2VSZXNwb25zZSIKICAgICAgICAgcmV0dXJuIG5p
bDsKICAgICBpZiAoIV9wcml2YXRlLT5jb3JlUmVzb3VyY2UtPmRhdGEoKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKLSAgICByZXR1cm4gW19wcml2YXRlLT5jb3JlUmVzb3VyY2UtPmRhdGEoKS0+Y3Jl
YXRlTlNEYXRhKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gX3ByaXZhdGUt
PmNvcmVSZXNvdXJjZS0+ZGF0YSgpLT5jcmVhdGVOU0RhdGEoKS5hdXRvcmVsZWFzZSgpOwogfQog
CiAtIChOU1VSTCAqKVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXggM2YyMDY0ODY5YzhiZmFi
NGE0Mzc0NmNjY2IxNjgwNTI4N2FjYzIxNC4uYWViYjk1ZTQ5NDhkNDUzZDUzNjRmZTdjNGI2M2Yx
OGMxYzk0ZTA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9f
V0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC03NywxMCArNzcsMTAgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICAgICAgcmV0dXJuIHJlbW90ZU9iamVjdFByb3h5Owog
CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBpZGVudGlmaWVyID0gYWRvcHROUyhbaW50ZXJmYWNl
LmlkZW50aWZpZXIgY29weV0pOwotICAgIFJldGFpblB0cjxXS1JlbW90ZU9iamVjdD4gcmVtb3Rl
T2JqZWN0ID0gYWRvcHROUyhbW1dLUmVtb3RlT2JqZWN0IGFsbG9jXSBfaW5pdFdpdGhPYmplY3RS
ZWdpc3RyeTpzZWxmIGludGVyZmFjZTppbnRlcmZhY2VdKTsKKyAgICBhdXRvIHJlbW90ZU9iamVj
dCA9IGFkb3B0TlMoW1tXS1JlbW90ZU9iamVjdCBhbGxvY10gX2luaXRXaXRoT2JqZWN0UmVnaXN0
cnk6c2VsZiBpbnRlcmZhY2U6aW50ZXJmYWNlXSk7CiAgICAgW19yZW1vdGVPYmplY3RQcm94aWVz
IHNldE9iamVjdDpyZW1vdGVPYmplY3QuZ2V0KCkgZm9yS2V5OmlkZW50aWZpZXIuZ2V0KCldOwog
Ci0gICAgcmV0dXJuIFtyZW1vdGVPYmplY3QubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICBy
ZXR1cm4gcmVtb3RlT2JqZWN0LmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKGlkKV9pbml0V2l0aE1l
c3NhZ2VTZW5kZXI6KElQQzo6TWVzc2FnZVNlbmRlciYpbWVzc2FnZVNlbmRlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBjZWExOWQz
NDBlOTlkZTZiNzE5YjgzYzdmYjVmMzZhZDQ5MDJlNmQxLi4wNDYxNjdiMTc3MDY3N2I2YzhiZDkx
NjE3YTM3ZWJhYzYxNjBjNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzQ1LDcgKzM0NSw3IEBAIHN0YXRpYyBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uKCkKIAogLSAoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiluYXZpZ2F0
aW9uRGVsZWdhdGUKIHsKLSAgICByZXR1cm4gW19uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb25E
ZWxlZ2F0ZSgpLmxlYWtSZWYoKSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIF9uYXZpZ2F0aW9u
U3RhdGUtPm5hdmlnYXRpb25EZWxlZ2F0ZSgpLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKHZvaWQp
c2V0TmF2aWdhdGlvbkRlbGVnYXRlOihpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+KW5hdmlnYXRp
b25EZWxlZ2F0ZQpAQCAtMzU1LDcgKzM1NSw3IEBAIHN0YXRpYyBpbnQzMl90IGRldmljZU9yaWVu
dGF0aW9uKCkKIAogLSAoaWQgPFdLVUlEZWxlZ2F0ZT4pVUlEZWxlZ2F0ZQogewotICAgIHJldHVy
biBbX3VpRGVsZWdhdGUtPmRlbGVnYXRlKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICBy
ZXR1cm4gX3VpRGVsZWdhdGUtPmRlbGVnYXRlKCkuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAodm9p
ZClzZXRVSURlbGVnYXRlOihpZDxXS1VJRGVsZWdhdGU+KVVJRGVsZWdhdGUKQEAgLTM2OCw3ICsz
NjgsNyBAQCBzdGF0aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpCiAgICAgdWludDY0X3Qg
bmF2aWdhdGlvbklEID0gX3BhZ2UtPmxvYWRSZXF1ZXN0KHJlcXVlc3QpOwogICAgIGF1dG8gbmF2
aWdhdGlvbiA9IF9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihu
YXZpZ2F0aW9uSUQsIHJlcXVlc3QpOwogCi0gICAgcmV0dXJuIFtuYXZpZ2F0aW9uLmxlYWtSZWYo
KSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIG5hdmlnYXRpb24uYXV0b3JlbGVhc2UoKTsKIH0K
IAogLSAoV0tOYXZpZ2F0aW9uICopbG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGJh
c2VVUkw6KE5TVVJMICopYmFzZVVSTApAQCAtMzc2LDcgKzM3Niw3IEBAIHN0YXRpYyBpbnQzMl90
IGRldmljZU9yaWVudGF0aW9uKCkKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQgPSBfcGFnZS0+
bG9hZEhUTUxTdHJpbmcoc3RyaW5nLCBiYXNlVVJMLmFic29sdXRlU3RyaW5nKTsKICAgICBhdXRv
IG5hdmlnYXRpb24gPSBfbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkRGF0YU5hdmlnYXRpb24o
bmF2aWdhdGlvbklEKTsKIAotICAgIHJldHVybiBbbmF2aWdhdGlvbi5sZWFrUmVmKCkgYXV0b3Jl
bGVhc2VdOworICAgIHJldHVybiBuYXZpZ2F0aW9uLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKFdL
TmF2aWdhdGlvbiAqKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0
ZW0gKilpdGVtCkBAIC0zODUsNyArMzg1LDcgQEAgc3RhdGljIGludDMyX3QgZGV2aWNlT3JpZW50
YXRpb24oKQogCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRl
QmFja0ZvcndhcmROYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCwgaXRlbS5faXRlbSk7CiAKLSAgICBy
ZXR1cm4gW25hdmlnYXRpb24ubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gbmF2
aWdhdGlvbi5hdXRvcmVsZWFzZSgpOwogfQogCiAtIChOU1N0cmluZyAqKXRpdGxlCkBAIC00MzIs
NyArNDMyLDcgQEAgc3RhdGljIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24oKQogICAgIEFTU0VS
VChfcGFnZS0+YmFja0ZvcndhcmRMaXN0KCkuY3VycmVudEl0ZW0oKSk7CiAgICAgYXV0byBuYXZp
Z2F0aW9uID0gX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKG5h
dmlnYXRpb25JRCwgKl9wYWdlLT5iYWNrRm9yd2FyZExpc3QoKS5jdXJyZW50SXRlbSgpKTsKIAot
ICAgIHJldHVybiBbbmF2aWdhdGlvbi5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgIHJldHVy
biBuYXZpZ2F0aW9uLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKFdLTmF2aWdhdGlvbiAqKWdvRm9y
d2FyZApAQCAtNDQ0LDcgKzQ0NCw3IEBAIHN0YXRpYyBpbnQzMl90IGRldmljZU9yaWVudGF0aW9u
KCkKICAgICBBU1NFUlQoX3BhZ2UtPmJhY2tGb3J3YXJkTGlzdCgpLmN1cnJlbnRJdGVtKCkpOwog
ICAgIGF1dG8gbmF2aWdhdGlvbiA9IF9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJk
TmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQsICpfcGFnZS0+YmFja0ZvcndhcmRMaXN0KCkuY3VycmVu
dEl0ZW0oKSk7CiAKLSAgICByZXR1cm4gW25hdmlnYXRpb24ubGVha1JlZigpIGF1dG9yZWxlYXNl
XTsKKyAgICByZXR1cm4gbmF2aWdhdGlvbi5hdXRvcmVsZWFzZSgpOwogfQogCiAtIChXS05hdmln
YXRpb24gKilyZWxvYWQKQEAgLTQ1Myw3ICs0NTMsNyBAQCBzdGF0aWMgaW50MzJfdCBkZXZpY2VP
cmllbnRhdGlvbigpCiAgICAgQVNTRVJUKG5hdmlnYXRpb25JRCk7CiAKICAgICBhdXRvIG5hdmln
YXRpb24gPSBfbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVSZWxvYWROYXZpZ2F0aW9uKG5hdmlnYXRp
b25JRCk7Ci0gICAgcmV0dXJuIFtuYXZpZ2F0aW9uLmxlYWtSZWYoKSBhdXRvcmVsZWFzZV07Cisg
ICAgcmV0dXJuIG5hdmlnYXRpb24uYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAoV0tOYXZpZ2F0aW9u
ICopcmVsb2FkRnJvbU9yaWdpbgpAQCAtNDYyLDcgKzQ2Miw3IEBAIHN0YXRpYyBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uKCkKICAgICBBU1NFUlQobmF2aWdhdGlvbklEKTsKIAogICAgIGF1dG8g
bmF2aWdhdGlvbiA9IF9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZVJlbG9hZE5hdmlnYXRpb24obmF2
aWdhdGlvbklEKTsKLSAgICByZXR1cm4gW25hdmlnYXRpb24ubGVha1JlZigpIGF1dG9yZWxlYXNl
XTsKKyAgICByZXR1cm4gbmF2aWdhdGlvbi5hdXRvcmVsZWFzZSgpOwogfQogCiAtICh2b2lkKXN0
b3BMb2FkaW5nCkBAIC0xMzU2LDcgKzEzNTYsNyBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2lu
dCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgog
CiAtIChpZCA8V0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlPilfaGlzdG9yeURlbGVnYXRlCiB7Ci0g
ICAgcmV0dXJuIFtfbmF2aWdhdGlvblN0YXRlLT5oaXN0b3J5RGVsZWdhdGUoKS5sZWFrUmVmKCkg
YXV0b3JlbGVhc2VdOworICAgIHJldHVybiBfbmF2aWdhdGlvblN0YXRlLT5oaXN0b3J5RGVsZWdh
dGUoKS5hdXRvcmVsZWFzZSgpOwogfQogCiAtICh2b2lkKV9zZXRIaXN0b3J5RGVsZWdhdGU6KGlk
IDxXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGU+KWhpc3RvcnlEZWxlZ2F0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDg5MTJkYjg1MmFhYjQ3NzAyZGQ1NmIxZjhlM2Q1
Y2ExZTE1NDI0OWUuLjYxNWJmNmEyYTVhZmIyOTc0N2ZlNTdlMzQ3NGJjY2EwZGU1OTUwYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTY4OCw3ICs2ODgsNyBAQCBz
dGF0aWMgTlNPYmplY3QqIGFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUoY29uc3QgUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZQogICAgICAgICByZXR1cm4gW05TVmFsdWUgdmFsdWVXaXRo
Q0FUcmFuc2Zvcm0zRDprZXlmcmFtZVZhbHVlLnRyYW5zZm9ybVZhbHVlKCldOwogICAgICAgICAg
ICAgCiAgICAgY2FzZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjpG
aWx0ZXJLZXlUeXBlOgotICAgICAgICByZXR1cm4gW1BsYXRmb3JtQ0FGaWx0ZXJzOjpmaWx0ZXJW
YWx1ZUZvck9wZXJhdGlvbihrZXlmcmFtZVZhbHVlLmZpbHRlclZhbHVlKCksIDAgLyogdW51c2Vk
ICovKS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgICAgICByZXR1cm4gUGxhdGZvcm1DQUZp
bHRlcnM6OmZpbHRlclZhbHVlRm9yT3BlcmF0aW9uKGtleWZyYW1lVmFsdWUuZmlsdGVyVmFsdWUo
KSwgMCAvKiB1bnVzZWQgKi8pLmF1dG9yZWxlYXNlKCk7CiAgICAgfQogfQogCg==
</data>
<flag name="review"
          id="257638"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>