<?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>125156</bug_id>
          
          <creation_ts>2013-12-03 08:50:37 -0800</creation_ts>
          <short_desc>[MSE][Mac] Report the intrinsic size of the media element</short_desc>
          <delta_ts>2014-01-10 12:44:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>955905</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-12-03 08:50:37 -0800</bug_when>
    <thetext>[MSE][Mac] Report the intrinsic size of the media element from MediaPlayerPrivateMediaSourceAVFObjC::naturalSize().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965786</commentid>
    <comment_count>1</comment_count>
      <attachid>220699</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-01-08 23:32:25 -0800</bug_when>
    <thetext>Created attachment 220699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965889</commentid>
    <comment_count>2</comment_count>
      <attachid>220699</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-01-09 07:30:06 -0800</bug_when>
    <thetext>Comment on attachment 220699
Patch

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

A test case would be useful.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:331
&gt; +            auto videoTrack = VideoTrackPrivateMediaSourceAVFObjC::create(track, this);

This seems like one if the cases where &quot;auto&quot; is not helpful because someone reading the code can&apos;t know what style of ref-ptr VideoTrackPrivateMediaSourceAVFObjC::create returns.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:338
&gt; +            auto audioTrack = AudioTrackPrivateMediaSourceAVFObjC::create(track, this);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966127</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-01-09 16:25:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 220699 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220699&amp;action=review
&gt; 
&gt; A test case would be useful.

Unfortunately, this isn&apos;t really testable at the moment; we could add a Mock test, but that wouldn&apos;t test this change.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:331
&gt; &gt; +            auto videoTrack = VideoTrackPrivateMediaSourceAVFObjC::create(track, this);
&gt; 
&gt; This seems like one if the cases where &quot;auto&quot; is not helpful because someone reading the code can&apos;t know what style of ref-ptr VideoTrackPrivateMediaSourceAVFObjC::create returns.

I wonder if &quot;RefPtr&lt;auto&gt;&quot; would be valid syntax?

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:338
&gt; &gt; +            auto audioTrack = AudioTrackPrivateMediaSourceAVFObjC::create(track, this);
&gt; 
&gt; Ditto.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966131</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-01-09 16:29:11 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 220699 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220699&amp;action=review
&gt; &gt; 
&gt; &gt; A test case would be useful.
&gt; 
&gt; Unfortunately, this isn&apos;t really testable at the moment; we could add a Mock test, but that wouldn&apos;t test this change.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:331
&gt; &gt; &gt; +            auto videoTrack = VideoTrackPrivateMediaSourceAVFObjC::create(track, this);
&gt; &gt; 
&gt; &gt; This seems like one if the cases where &quot;auto&quot; is not helpful because someone reading the code can&apos;t know what style of ref-ptr VideoTrackPrivateMediaSourceAVFObjC::create returns.
&gt; 
&gt; I wonder if &quot;RefPtr&lt;auto&gt;&quot; would be valid syntax?
&gt; 

Nope. &quot;error: &apos;auto&apos; not allowed in template argument&quot;.  I&apos;ll switch these back to non-auto types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966160</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-01-09 17:45:51 -0800</bug_when>
    <thetext>Committed r161612: &lt;http://trac.webkit.org/changeset/161612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966520</commentid>
    <comment_count>6</comment_count>
      <attachid>220699</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-10 12:44:52 -0800</bug_when>
    <thetext>Comment on attachment 220699
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:648
&gt; +    for (auto videoTrack : m_videoTracks) {

Here auto is causing reference count churn. You could use auto&amp; or const auto&amp; to avoid that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220699</attachid>
            <date>2014-01-08 23:32:25 -0800</date>
            <delta_ts>2014-01-10 12:44:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125156-20140108233223.patch</filename>
            <type>text/plain</type>
            <size>22046</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjliNWY4MWQ4ZmEyODA2
OTJlYjNlNmFhNTdhMjA5MzM0ODFlZjkxNy4uZjNlOWUzYTlhYmJhZjdlNmQ4NDVkZDEzMTVkN2M0
ODliYWJhNjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAxLTA4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gUmVwb3J0
IHRoZSBpbnRyaW5zaWMgc2l6ZSBvZiB0aGUgbWVkaWEgZWxlbWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1MTU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpuYXR1cmFsU2l6ZSk6IFBhc3MgdG8gTWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c2l6ZUNoYW5nZWQpOiBBZGRlZDsgUGFzcyB0byBNZWRpYVBsYXllci4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZh
dGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U291cmNlUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxTaXplKTogUmV0dXJuIHRoZSB1bmlvbiBvZiB0
aGUgbmF0dXJhbFNpemVzIG9mIGFsbCBhY3RpdmUgYnVmZmVycy4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQpOiBOb3RpZnkgdGhlIG1lZGlh
IHBsYXllciB0aGF0IHRoZSBzaXplIGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUpOiBSZXR1cm4gdGhlIHNpemUgb2YgdGhl
IHNlbGVjdGVkIHZpZGVvIHRyYWNrLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5jcHAuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6YXNzZXRUcmFjayk6IE1hZGUgY29uc3QuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bmF0dXJhbFNpemUpOiBSZXR1
cm4gdGhlIHNpemUgb2YgdGhlIEFWQXNzZXRUcmFjay4KKwogMjAxNC0wMS0wNyAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBQbGF0Zm9ybUxheWVyIGNvbnRhaW5p
bmcgc2Nyb2xsYmFycyBkb2VzIG5vdCBkaXNhcHBlYXIgd2hlbiBzZXR0aW5nIG92ZXJmbG93Omhp
ZGRlbiBvbiBwYWdlIHJvb3QsIHVudGlsIHJlc2l6ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NWQ0MmEyNWVhZTU2NmE3Y2I1
Y2E0ZWI5NGE1ZmI4NGM4MzAwYmUwLi5lMDY0ZjMyNzkxYTA2ZmMzM2RhMTM5N2RhZTNlZTZkOGY4
MDY5YmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC01MzkxLDcgKzUzOTEsNyBAQAogCQlDRDgyMDMwRDEzOTVBQjZBMDBGOTU2
QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzA5MTM5NUFCNkEwMEY5
NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tICovOyB9Owog
CQlDRDgyMDMxMDEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwRTEzOTVBQ0U3
MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q4MjAzMTExMzk1QUNFNzAwRjk1NkM2IC8qIFdl
YldpbmRvd0FuaW1hdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEODIwMzBGMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24u
bW0gKi87IH07Ci0JCUNEOEI1QTQyMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDhCNUE0MDE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwICovOyB9OworCQlDRDhCNUE0MjE4MEQxNDlBMDA4QjhF
NjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0MDE4MEQxNDlBMDA4QjhF
NjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi87IH07CiAJCUNE
OEI1QTQzMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4
QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmggKi87IH07CiAJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVk
aWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEOEI1QTQ1MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaCAqLzsg
fTsKIAkJQ0Q4QjVBNDkxODBFMTM4QjAwOEI4RTY1IC8qIFRleHRUcmFja01lZGlhU291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCNUE0ODE4
MEUxMzhCMDA4QjhFNjUgLyogVGV4dFRyYWNrTWVkaWFTb3VyY2UuaCAqLzsgfTsKQEAgLTEyNTIy
LDcgKzEyNTIyLDcgQEAKIAkJQ0Q4MjAzMDkxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDgyMDMwRTEzOTVBQ0U3MDBGOTU2QzYgLyog
V2ViV2luZG93QW5pbWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YldpbmRvd0FuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDgyMDMw
RjEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViV2luZG93QW5pbWF0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlDRDhCNUE0MDE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwOyBw
YXRoID0gb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEI1QTQwMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRl
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OyBwYXRoID0gb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZp
ZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHBhdGgg
PSBvYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEOEI1QTQ0MTgwREQ4RDYwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
TWVkaWFTb3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvVHJhY2tNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOEI1QTQ1MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1Ry
YWNrTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9U
cmFja01lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDYxOCw3
ICsyMDYxOCw3IEBACiAJCQkJQ0RDOEI1QTgxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDLm1tICovLAogCQkJCUNEMzM2RjY1MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwICovLAogCQkJCUNEMzM2RjY2MTdGQTBBQzYwMERE
RENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCAqLywKLQkJCQlDRDhCNUE0MDE4MEQx
NDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwICov
LAorCQkJCUNEOEI1QTQwMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbSAqLywKIAkJCQlDRDhCNUE0MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlk
ZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLywKIAkJCQlDRDdFMDUyMDE2NTFB
ODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLywKQEAg
LTI2NDg0LDcgKzI2NDg0LDcgQEAKIAkJCQkwNzk2OURCOTE3RDE0MTUxMDA3RkY4NDIgLyogSlNS
VENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMEZFRjM3MkIyN0M1M0VB
QzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyRURCRUEw
QjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNE
OEI1QTQyMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDhCNUE0MjE4MEQxNDlBMDA4QjhFNjUgLyog
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlCQzYwRDhGMjBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5NzNEQzYzRjE0NUE5NDA5MDAyODQyQzIgLyogRXhjZXB0aW9uQ29kZURlc2Ny
aXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Q0FDREIxMTNDRTg3NUMwMEJCQkUzRiAv
KiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oCmluZGV4IDIwMTgxOGU5MmY2YTc4ZjEzM2JiMmVlMjE0ZWRiY2EyZjdlOTEx
Y2UuLjI3N2U1YTg0NzJlZDM3ZmI0NTA2ZTEyMDJkNjZlODAwM2Q2M2Y1MzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1cmF0
aW9uQ2hhbmdlZCgpOwogCiAgICAgdm9pZCBlZmZlY3RpdmVSYXRlQ2hhbmdlZCgpOworICAgIHZv
aWQgc2l6ZUNoYW5nZWQoKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAwZWQ4ZjY5OWMyZmVkOWE1
YTU2NGRkYmM0ZDMwZWRjMGJiNjA4MjM3Li43ZjQyZjk4Mjk2YWY3MjQ1OGQzMmFmNzQzMWY0NmNh
NTRhY2NlODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0zMDMsOCArMzAzLDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldE11dGVkKGJv
b2wgbXV0ZWQpCiAKIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUUoMTI1MTU2KTogUmVwb3J0IHRo
ZSBpbnRyaW5zaWMgc2l6ZSBvZiB0aGUgZW5hYmxlZCB2aWRlbyB0cmFjay4KLSAgICByZXR1cm4g
SW50U2l6ZSgpOworICAgIHJldHVybiBtX21lZGlhU291cmNlUHJpdmF0ZS0+bmF0dXJhbFNpemUo
KTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Omhhc1Zp
ZGVvKCkgY29uc3QKQEAgLTUyMCw2ICs1MTksMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmVmZmVjdGl2ZVJhdGVDaGFuZ2VkKCkKICAgICBtX3BsYXllci0+
cmF0ZUNoYW5nZWQoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnNpemVDaGFuZ2VkKCkKK3sKKyAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKK30K
Kwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFJlYWR5U3Rh
dGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSkKIHsKICAgICBpZiAobV9yZWFk
eVN0YXRlID09IHJlYWR5U3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKaW5kZXggMTgzNDAwOTMwZjFlODI1NmFmMGVjNTkwNmY1
ZjQxYjk2ZjUzM2I3ZS4uYzRmYzE3YTJiMTEwMWRjMDE0ZGYxM2JhMzdlZmE5MGU2MTAxZmM1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9i
akMuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0
OwogCiAgICAgTWVkaWFUaW1lIHNlZWtUb1RpbWUoTWVkaWFUaW1lLCBNZWRpYVRpbWUgbmVnYXRp
dmVUaHJlc2hvbGQsIE1lZGlhVGltZSBwb3NpdGl2ZVRocmVzaG9sZCk7CisgICAgSW50U2l6ZSBu
YXR1cmFsU2l6ZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIE1lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQppbmRleCBi
ODNiZTcyMzkxZTRhNDg5Y2RkNmY4N2IyOWIzM2Q2YjRlODEyMGQ1Li41M2ZhYzdiN2JhNjE0YjE5
NDc1Y2JjMWMwMzc5Mzc1ZWZlYWQ0Mjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KQEAgLTE3NCw2ICsxNzQsMTYgQEAgTWVk
aWFUaW1lIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OnNlZWtUb1RpbWUoTWVkaWFUaW1lIHRh
cmdldFRpbWUsIE1lZGlhVGltZQogICAgIHJldHVybiBzZWVrVGltZTsKIH0KIAorSW50U2l6ZSBN
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpuYXR1cmFsU2l6ZSgpIGNvbnN0Cit7CisgICAgSW50
U2l6ZSByZXN1bHQ7CisKKyAgICBmb3IgKGF1dG8qIHNvdXJjZUJ1ZmZlciA6IG1fYWN0aXZlU291
cmNlQnVmZmVycykKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmV4cGFuZGVkVG8oc291cmNlQnVm
ZmVyLT5uYXR1cmFsU2l6ZSgpKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRl
eCBjMDU0YzFkOWExYjM2MjY1OTk3MThhNjI5ZWZjYjQ1ZTcxYjVhZGI2Li44MmNhOWE0ZDNkZTUw
ZTc0NmIwMGM4ZWQwNGIwM2M0NmFiYTlkZmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZWVrVG9UaW1lKE1lZGlhVGltZSk7CiAgICAgTWVkaWFUaW1lIGZh
c3RTZWVrVGltZUZvck1lZGlhVGltZShNZWRpYVRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVz
aG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKTsKKyAgICBJbnRTaXplIG5hdHVyYWxT
aXplKCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyopOwpAQCAtMTA0LDggKzEwNSw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKGludCB0cmFja0lEKTsK
ICAgICB2b2lkIGRlc3Ryb3lSZW5kZXJlcnMoKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8VmlkZW9U
cmFja1ByaXZhdGU+PiBtX3ZpZGVvVHJhY2tzOwotICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFj
a1ByaXZhdGU+PiBtX2F1ZGlvVHJhY2tzOworICAgIFZlY3RvcjxSZWZQdHI8VmlkZW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBtX3ZpZGVvVHJhY2tzOworICAgIFZlY3RvcjxSZWZQ
dHI8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBtX2F1ZGlvVHJhY2tzOwog
CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtRGF0YVBhcnNlcj4gbV9wYXJzZXI7CiAgICAgUmV0YWlu
UHRyPEFWQXNzZXQ+IG1fYXNzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDIxMDI4MThjYWNkNjA1OGNlMWEwZmNk
MzA5ZWZmMTAwNzQ3YWVhMWQuLmMwYThiNDk2NjUyYWJmMDhhOWMzNDY4NTdmMDNlNDJiMTRmYTU2
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLm1tCkBAIC0zMTksMTggKzMxOSwyNSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQogCiAg
ICAgbV9hc3NldCA9IGFzc2V0OwogCisgICAgbV92aWRlb1RyYWNrcy5jbGVhcigpOworICAgIG1f
YXVkaW9UcmFja3MuY2xlYXIoKTsKKwogICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6Oklu
aXRpYWxpemF0aW9uU2VnbWVudCBzZWdtZW50OwogICAgIHNlZ21lbnQuZHVyYXRpb24gPSB0b01l
ZGlhVGltZShbbV9hc3NldCBkdXJhdGlvbl0pOwogCiAgICAgZm9yIChBVkFzc2V0VHJhY2sqIHRy
YWNrIGluIFttX2Fzc2V0IHRyYWNrc10pIHsKICAgICAgICAgaWYgKFt0cmFjayBoYXNNZWRpYUNo
YXJhY3RlcmlzdGljOkFWTWVkaWFDaGFyYWN0ZXJpc3RpY1Zpc3VhbF0pIHsKICAgICAgICAgICAg
IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudDo6VmlkZW9U
cmFja0luZm9ybWF0aW9uIGluZm87Ci0gICAgICAgICAgICBpbmZvLnRyYWNrID0gVmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0ZSh0cmFjaywgdGhpcyk7CisgICAgICAg
ICAgICBhdXRvIHZpZGVvVHJhY2sgPSBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6Y3JlYXRlKHRyYWNrLCB0aGlzKTsKKyAgICAgICAgICAgIGluZm8udHJhY2sgPSB2aWRlb1Ry
YWNrOworICAgICAgICAgICAgbV92aWRlb1RyYWNrcy5hcHBlbmQodmlkZW9UcmFjayk7CiAgICAg
ICAgICAgICBpbmZvLmRlc2NyaXB0aW9uID0gTWVkaWFEZXNjcmlwdGlvbkFWRk9iakM6OmNyZWF0
ZSh0cmFjayk7CiAgICAgICAgICAgICBzZWdtZW50LnZpZGVvVHJhY2tzLmFwcGVuZChpbmZvKTsK
ICAgICAgICAgfSBlbHNlIGlmIChbdHJhY2sgaGFzTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlh
Q2hhcmFjdGVyaXN0aWNBdWRpYmxlXSkgewogICAgICAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0
ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50OjpBdWRpb1RyYWNrSW5mb3JtYXRpb24gaW5m
bzsKLSAgICAgICAgICAgIGluZm8udHJhY2sgPSBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6Y3JlYXRlKHRyYWNrLCB0aGlzKTsKKyAgICAgICAgICAgIGF1dG8gYXVkaW9UcmFj
ayA9IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGUodHJhY2ssIHRo
aXMpOworICAgICAgICAgICAgaW5mby50cmFjayA9IGF1ZGlvVHJhY2s7CisgICAgICAgICAgICBt
X2F1ZGlvVHJhY2tzLmFwcGVuZChhdWRpb1RyYWNrKTsKICAgICAgICAgICAgIGluZm8uZGVzY3Jp
cHRpb24gPSBNZWRpYURlc2NyaXB0aW9uQVZGT2JqQzo6Y3JlYXRlKHRyYWNrKTsKICAgICAgICAg
ICAgIHNlZ21lbnQuYXVkaW9UcmFja3MuYXBwZW5kKGluZm8pOwogICAgICAgICB9CkBAIC0zMzgs
NiArMzQ1LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VTdHJl
YW1EYXRhQXNBc3NldChBVkFzc2V0KiBhc3NldCkKICAgICAgICAgLy8gRklYTUUoMTI1MTYxKTog
QWRkIFRleHRUcmFjayBzdXBwb3J0CiAgICAgfQogCisgICAgaWYgKCFtX3ZpZGVvVHJhY2tzLmlz
RW1wdHkoKSkKKyAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNpemVDaGFuZ2VkKCk7
CisKICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlzLCBzZWdtZW50KTsKIH0KQEAg
LTYzMyw2ICs2NDMsMTYgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vla1Rv
VGltZShNZWRpYVRpbWUgdGltZSkKICAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVTZWVrVG9UaW1lKHRoaXMsIHRpbWUpOwogfQogCitJbnRTaXplIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpuYXR1cmFsU2l6ZSgpCit7CisgICAgZm9yIChhdXRvIHZpZGVvVHJhY2sgOiBt
X3ZpZGVvVHJhY2tzKSB7CisgICAgICAgIGlmICh2aWRlb1RyYWNrLT5zZWxlY3RlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIHZpZGVvVHJhY2stPm5hdHVyYWxTaXplKCk7CisgICAgfQorCisgICAg
cmV0dXJuIEludFNpemUoKTsKK30KKwogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCkKIHsKICAgICBpZiAodHJh
Y2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0YmQ4OGM4ODhiMzg3Nzc0NjFjYjI4MTE5
NmM0NTEwYjkzOGMzNDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJW
aWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIgotCi0jaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQotCi0jaW5jbHVkZSAiQVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbC5oIgotI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OlZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKEFWQXNzZXRUcmFjayog
dHJhY2ssIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBwYXJlbnQpCi0gICAgOiBtX2ltcGwo
c3RkOjptYWtlX3VuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCi0gICAg
LCBtX3BhcmVudChwYXJlbnQpCi0gICAgLCBtX3RyYWNrSUQoLTEpCi0gICAgLCBtX3NlbGVjdGVk
KGZhbHNlKQotewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwotfQotCi12b2lkIFZp
ZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJh
Y2soKQotewotICAgIG1fdHJhY2tJRCA9IG1faW1wbC0+dHJhY2tJRCgpOwotCi0gICAgc2V0S2lu
ZChtX2ltcGwtPnZpZGVvS2luZCgpKTsKLSAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwotICAgIHNl
dExhYmVsKG1faW1wbC0+bGFiZWwoKSk7Ci0gICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFn
ZSgpKTsKLX0KLQotdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0
QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sgKnRyYWNrKQotewotICAgIG1faW1wbCA9IHN0ZDo6bWFr
ZV91bmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spOwotICAgIHJlc2V0UHJv
cGVydGllc0Zyb21UcmFjaygpOwotfQotCi1BVkFzc2V0VHJhY2sqIFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKLXsKLSAgICByZXR1cm4gbV9pbXBsLT5h
c3NldFRyYWNrKCk7Ci19Ci0KLQotYm9vbCBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6c2VsZWN0ZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3NlbGVjdGVkOwotfQotCi12
b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRTZWxlY3RlZChib29s
IHNlbGVjdGVkKQotewotICAgIGlmIChtX3NlbGVjdGVkID09IHNlbGVjdGVkKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3NlbGVjdGVkID0gc2VsZWN0ZWQ7Ci0gICAgbV9wYXJlbnQtPnRyYWNr
RGlkQ2hhbmdlRW5hYmxlZCh0aGlzKTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCmluZGV4IGIzMzZlMWJiY2Y3NmJiOWI2OGE1YTcxZDVkYmE0MzlhZTM2OTQyNmEuLmE1
ZTA5MGU5ZGZiMzM4NjlmZjViNGMwMzI2YzU5MGE0MDcyOTdjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQ19oCiAjZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDX2gKIAorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0
ZUFWRi5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RSQUNL
KQpAQCAtNTAsMTAgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0
ZWQoYm9vbCkgT1ZFUlJJREU7CiAKICAgICB2b2lkIHNldEFzc2V0VHJhY2soQVZBc3NldFRyYWNr
Kik7Ci0gICAgQVZBc3NldFRyYWNrKiBhc3NldFRyYWNrKCk7CisgICAgQVZBc3NldFRyYWNrKiBh
c3NldFRyYWNrKCkgY29uc3Q7CiAKICAgICBpbnQgdHJhY2tJRCgpIHsgcmV0dXJuIG1fdHJhY2tJ
RDsgfQogCisgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKEFWQXNzZXRUcmFj
ayosIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBwYXJlbnQpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTljNzgxNzYwZjNmNjRmZGQzMGY0YTI5ZWFjOTk4
YTc1NWQ2NDBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0KQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShWSURFT19UUkFDSykKKworI2ltcG9ydCAiQVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbC5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMuaCIKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0VHJhY2suaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKKyAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5p
cXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKKyAgICAsIG1fcGFyZW50KHBh
cmVudCkKKyAgICAsIG1fdHJhY2tJRCgtMSkKKyAgICAsIG1fc2VsZWN0ZWQoZmFsc2UpCit7Cisg
ICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7Cit9CisKK3ZvaWQgVmlkZW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpCit7CisgICAg
bV90cmFja0lEID0gbV9pbXBsLT50cmFja0lEKCk7CisKKyAgICBzZXRLaW5kKG1faW1wbC0+dmlk
ZW9LaW5kKCkpOworICAgIHNldElkKG1faW1wbC0+aWQoKSk7CisgICAgc2V0TGFiZWwobV9pbXBs
LT5sYWJlbCgpKTsKKyAgICBzZXRMYW5ndWFnZShtX2ltcGwtPmxhbmd1YWdlKCkpOworfQorCit2
b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRBc3NldFRyYWNrKEFW
QXNzZXRUcmFjayAqdHJhY2spCit7CisgICAgbV9pbXBsID0gc3RkOjptYWtlX3VuaXF1ZTxBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjayk7CisgICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKCk7Cit9CisKK0FWQXNzZXRUcmFjayogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmFzc2V0VHJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2ltcGwtPmFzc2V0VHJh
Y2soKTsKK30KKworCitib29sIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
ZWxlY3RlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWQ7Cit9CisKK3ZvaWQgVmlk
ZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFNlbGVjdGVkKGJvb2wgc2VsZWN0
ZWQpCit7CisgICAgaWYgKG1fc2VsZWN0ZWQgPT0gc2VsZWN0ZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fc2VsZWN0ZWQgPSBzZWxlY3RlZDsKKyAgICBtX3BhcmVudC0+dHJhY2tEaWRDaGFu
Z2VFbmFibGVkKHRoaXMpOworfQorCitJbnRTaXplIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpuYXR1cmFsU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEludFNpemUoW2Fz
c2V0VHJhY2soKSBuYXR1cmFsU2l6ZV0pOworfQorCit9CisKKyNlbmRpZgo=
</data>
<flag name="review"
          id="244468"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>