<?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>192708</bug_id>
          
          <creation_ts>2018-12-14 11:14:29 -0800</creation_ts>
          <short_desc>clang-tidy: Fix unnecessary object copies in WebCore/platform/graphics/avfoundation/objc/</short_desc>
          <delta_ts>2018-12-14 13:12:34 -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>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1487975</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-12-14 11:14:29 -0800</bug_when>
    <thetext>Running `clang-tidy -checks=&apos;-*,performance-*,-performance-noexcept-*&apos; ...` on WebCore source files found these unnecessary object copies:

Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:303:83: warning: the parameter &apos;pair&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
static ImageDecoderAVFObjCSample* toSample(PresentationOrderSampleMap::value_type pair)
                                                                                  ^
                                           const                                 &amp;

Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:1533:65: warning: the parameter &apos;asset&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
void MediaPlayerPrivateAVFoundationObjC::setAsset(RetainPtr&lt;id&gt; asset)
                                                                ^
                                                  const        &amp;
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:3056:30: warning: parameter &apos;seekableRanges&apos; is passed by value and only copied once; consider moving it to avoid unnecessary copies [performance-unnecessary-value-param]
    m_cachedSeekableRanges = seekableRanges;
                             ^
                             std::move(    )
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:3064:28: warning: parameter &apos;loadedRanges&apos; is passed by value and only copied once; consider moving it to avoid unnecessary copies [performance-unnecessary-value-param]
    m_cachedLoadedRanges = loadedRanges;
                           ^
                           std::move(  )
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:3126:79: warning: the parameter &apos;metadata&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
void MediaPlayerPrivateAVFoundationObjC::metadataDidArrive(RetainPtr&lt;NSArray&gt; metadata, const MediaTime&amp; mediaTime)
                                                                              ^
                                                           const             &amp;
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:3168:77: warning: the parameter &apos;tracks&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
void MediaPlayerPrivateAVFoundationObjC::tracksDidChange(RetainPtr&lt;NSArray&gt; tracks)
                                                                            ^
                                                         const             &amp;

Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:304:15: warning: loop variable is copied but only used as const reference; consider making it a const reference [performance-for-range-copy]
    for (auto key : m_sampleBufferAudioRendererMap.keys())
              ^
         const  &amp;
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:315:15: warning: loop variable is copied but only used as const reference; consider making it a const reference [performance-for-range-copy]
    for (auto key : m_sampleBufferAudioRendererMap.keys())
              ^
         const  &amp;
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:463:15: warning: loop variable is copied but only used as const reference; consider making it a const reference [performance-for-range-copy]
    for (auto key : m_sampleBufferAudioRendererMap.keys())
              ^
         const  &amp;

Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:1162:74: warning: the parameter &apos;time&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
MediaTime SourceBufferPrivateAVFObjC::fastSeekTimeForMediaTime(MediaTime time, MediaTime negativeThreshold, MediaTime positiveThreshold)
                                                                         ^
                                                               const    &amp;
Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:1162:90: warning: the parameter &apos;negativeThreshold&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
MediaTime SourceBufferPrivateAVFObjC::fastSeekTimeForMediaTime(MediaTime time, MediaTime negativeThreshold, MediaTime positiveThreshold)
                                                                                         ^
                                                                               const    &amp;
Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:1162:119: warning: the parameter &apos;positiveThreshold&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
MediaTime SourceBufferPrivateAVFObjC::fastSeekTimeForMediaTime(MediaTime time, MediaTime negativeThreshold, MediaTime positiveThreshold)
                                                                                                                      ^
                                                                                                            const    &amp;
Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:1174:55: warning: the parameter &apos;time&apos; is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
void SourceBufferPrivateAVFObjC::seekToTime(MediaTime time)
                                                      ^
                                            const    &amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487976</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-14 11:16:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/46735907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487978</commentid>
    <comment_count>2</comment_count>
      <attachid>357325</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-12-14 11:26:17 -0800</bug_when>
    <thetext>Created attachment 357325
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488019</commentid>
    <comment_count>3</comment_count>
      <attachid>357325</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-14 13:12:32 -0800</bug_when>
    <thetext>Comment on attachment 357325
Patch v1

Clearing flags on attachment: 357325

Committed r239230: &lt;https://trac.webkit.org/changeset/239230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488020</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-14 13:12:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357325</attachid>
            <date>2018-12-14 11:26:17 -0800</date>
            <delta_ts>2018-12-14 13:12:32 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-192708-20181214112616.patch</filename>
            <type>text/plain</type>
            <size>11469</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ0NTFlMTZhNGI2MmE2
YWI1NDdiMzM3NGVmZTg1MzY1YjcwNjg5Yy4uZDJkODc2OWVlNDRlMDNiZmZlYTliZjkxNzEzMTdk
MGM0ZTY1ZDAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE4LTEyLTE0ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgY2xhbmctdGlkeTogRml4
IHVubmVjZXNzYXJ5IG9iamVjdCBjb3BpZXMgaW4gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy8KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5MjcwOD4K
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2NzM1OTA3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2Ft
cGxlKToKKyAgICAgICAgLSBNYWtlIGFyZ3VtZW50IGEgY29uc3QgcmVmZXJlbmNlLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAtIFVwZGF0ZSBtZXRob2Qgc2lnbmF0dXJl
cyBmb3IgaW1wbGVtZW50YXRpb24gY2hhbmdlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c2V0QXNzZXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c2Vla2FibGVUaW1lUmFuZ2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmxvYWRlZFRpbWVSYW5nZXNEaWRD
aGFuZ2UpOgorICAgICAgICAtIE1ha2UgUmV0YWluUHRyPD4gYXJndW1lbnQgYW4gcnZhbHVlIHJl
ZmVyZW5jZSBhbmQgdXNlIFdURk1vdmUoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1ldGFkYXRhRGlkQXJyaXZlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrc0RpZENoYW5n
ZSk6CisgICAgICAgIC0gTWFrZSBSZXRhaW5QdHI8PiBhcmd1bWVudCBhIGNvbnN0IHJlZmVyZW5j
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0Vm9sdW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0TXV0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzZXRQcmVzZXJ2ZXNQaXRjaCk6CisgICAgICAgIC0gQ2hhbmdlIGZvciBsb29wIGtleXMgdG8g
YmUgY29uc3QgcmVmZXJlbmNlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgIC0gVXBk
YXRlIG1ldGhvZCBzaWduYXR1cmVzIGZvciBpbXBsZW1lbnRhdGlvbiBjaGFuZ2VzLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZSk6CisgICAgICAgIC0gTWFrZSBNZWRpYXRp
bWUgYXJndW1lbnRzIGEgY29uc3QgcmVmZXJlbmNlLgorCiAyMDE4LTEyLTE0ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgY2xhbmctdGlkeTogRml4IHVubmVj
ZXNzYXJ5IG9iamVjdCBjb3B5IGluIENQVU1vbml0b3I6OnNldENQVUxpbWl0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0lt
YWdlRGVjb2RlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1tCmluZGV4IGQ2ZDE0ODY3NDgw
MTNlOTNjZjA3ZTNkNjIxZWY5MTc0NTI4ZGQ3NGYuLmNlOGRhYjI4MjIyNTg5MDBiYmNiNzJjYWRj
OTA2NzBmZjRkMjhjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVy
QVZGT2JqQy5tbQpAQCAtMzAwLDcgKzMwMCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0Fs
cGhhIHsgZmFsc2UgfTsKIH07CiAKLXN0YXRpYyBJbWFnZURlY29kZXJBVkZPYmpDU2FtcGxlKiB0
b1NhbXBsZShQcmVzZW50YXRpb25PcmRlclNhbXBsZU1hcDo6dmFsdWVfdHlwZSBwYWlyKQorc3Rh
dGljIEltYWdlRGVjb2RlckFWRk9iakNTYW1wbGUqIHRvU2FtcGxlKGNvbnN0IFByZXNlbnRhdGlv
bk9yZGVyU2FtcGxlTWFwOjp2YWx1ZV90eXBlJiBwYWlyKQogewogICAgIHJldHVybiAoSW1hZ2VE
ZWNvZGVyQVZGT2JqQ1NhbXBsZSopcGFpci5zZWNvbmQuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKaW5kZXggM2FiOTQ2MjNmZDgzZThjYjhhNzQ3OTlhNTFiMTYzZjJkYmMzMzIxYi4uNzFh
Njk4YzY5ZGQ5MjE2ZTI4NjEyMDQwY2Y4MDUzZTQxMjlkMTMyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY2xlYXJNZWRp
YUNhY2hlKGNvbnN0IFN0cmluZyYsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpOwogICAgIHN0YXRp
YyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJiwgY29uc3QgSGFz
aFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYpOwogCi0gICAgdm9pZCBzZXRBc3NldChSZXRh
aW5QdHI8aWQ+KTsKKyAgICB2b2lkIHNldEFzc2V0KFJldGFpblB0cjxpZD4mJik7CiAgICAgdm9p
ZCB0cmFja3NDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJ
QV9TRUxFQ1RJT05fR1JPVVApCkBAIC0xMDYsMTQgKzEwNiwxNCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBwbGF5YmFja0J1ZmZlckVtcHR5RGlkQ2hhbmdlKGJvb2wpOwogICAgIHZvaWQgcGxheWJhY2tC
dWZmZXJGdWxsV2lsbENoYW5nZSgpOwogICAgIHZvaWQgcGxheWJhY2tCdWZmZXJGdWxsRGlkQ2hh
bmdlKGJvb2wpOwotICAgIHZvaWQgbG9hZGVkVGltZVJhbmdlc0RpZENoYW5nZShSZXRhaW5QdHI8
TlNBcnJheT4pOwotICAgIHZvaWQgc2Vla2FibGVUaW1lUmFuZ2VzRGlkQ2hhbmdlKFJldGFpblB0
cjxOU0FycmF5Pik7Ci0gICAgdm9pZCB0cmFja3NEaWRDaGFuZ2UoUmV0YWluUHRyPE5TQXJyYXk+
KTsKKyAgICB2b2lkIGxvYWRlZFRpbWVSYW5nZXNEaWRDaGFuZ2UoUmV0YWluUHRyPE5TQXJyYXk+
JiYpOworICAgIHZvaWQgc2Vla2FibGVUaW1lUmFuZ2VzRGlkQ2hhbmdlKFJldGFpblB0cjxOU0Fy
cmF5PiYmKTsKKyAgICB2b2lkIHRyYWNrc0RpZENoYW5nZShjb25zdCBSZXRhaW5QdHI8TlNBcnJh
eT4mKTsKICAgICB2b2lkIGhhc0VuYWJsZWRBdWRpb0RpZENoYW5nZShib29sKTsKICAgICB2b2lk
IHByZXNlbnRhdGlvblNpemVEaWRDaGFuZ2UoRmxvYXRTaXplKTsKICAgICB2b2lkIGR1cmF0aW9u
RGlkQ2hhbmdlKGNvbnN0IE1lZGlhVGltZSYpOwogICAgIHZvaWQgcmF0ZURpZENoYW5nZShkb3Vi
bGUpOwotICAgIHZvaWQgbWV0YWRhdGFEaWRBcnJpdmUoUmV0YWluUHRyPE5TQXJyYXk+LCBjb25z
dCBNZWRpYVRpbWUmKTsKKyAgICB2b2lkIG1ldGFkYXRhRGlkQXJyaXZlKGNvbnN0IFJldGFpblB0
cjxOU0FycmF5PiYsIGNvbnN0IE1lZGlhVGltZSYpOwogICAgIHZvaWQgZmlyc3RGcmFtZUF2YWls
YWJsZURpZENoYW5nZShib29sKTsKICAgICB2b2lkIHRyYWNrRW5hYmxlZERpZENoYW5nZShib29s
KTsKICAgICB2b2lkIGNhblBsYXlGYXN0UmV2ZXJzZURpZENoYW5nZShib29sKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCmluZGV4IDJhMDU2MGI0Mzg0M2JmZTU0ZGJlZTcyM2ExMTU0YjhjYzg5YmVk
ZTkuLmNhNjU3ZjBhYWU4YWQ1MzJhNjRlYjQ3ZTU5YmRiZGRiMTNhZTQ1NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQpAQCAtMTUzMCw5ICsxNTMwLDkgQEAgdW5zaWduZWQgbG9uZyBsb25nIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAg
IHJldHVybiBtX2NhY2hlZFRvdGFsQnl0ZXM7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6c2V0QXNzZXQoUmV0YWluUHRyPGlkPiBhc3NldCkKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0QXNzZXQoUmV0YWluUHRyPGlkPiYm
IGFzc2V0KQogewotICAgIG1fYXZBc3NldCA9IGFzc2V0OworICAgIG1fYXZBc3NldCA9IFdURk1v
dmUoYXNzZXQpOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OkFzc2V0U3Rh
dHVzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzKCkgY29u
c3QKQEAgLTMwNTEsMTcgKzMwNTEsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwbGF5YmFja0J1ZmZlckZ1bGxEaWRDaGFuZ2UoYm9vbCBidWZmZXIKICAgICAg
ICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c2Vla2FibGVUaW1lUmFuZ2VzRGlkQ2hhbmdlKFJldGFpblB0cjxOU0FycmF5PiBz
ZWVrYWJsZVJhbmdlcykKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c2Vla2FibGVUaW1lUmFuZ2VzRGlkQ2hhbmdlKFJldGFpblB0cjxOU0FycmF5PiYmIHNlZWthYmxl
UmFuZ2VzKQogewotICAgIG1fY2FjaGVkU2Vla2FibGVSYW5nZXMgPSBzZWVrYWJsZVJhbmdlczsK
KyAgICBtX2NhY2hlZFNlZWthYmxlUmFuZ2VzID0gV1RGTW92ZShzZWVrYWJsZVJhbmdlcyk7CiAK
ICAgICBzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCk7CiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9
CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bG9hZGVkVGltZVJh
bmdlc0RpZENoYW5nZShSZXRhaW5QdHI8TlNBcnJheT4gbG9hZGVkUmFuZ2VzKQordm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsb2FkZWRUaW1lUmFuZ2VzRGlkQ2hhbmdl
KFJldGFpblB0cjxOU0FycmF5PiYmIGxvYWRlZFJhbmdlcykKIHsKLSAgICBtX2NhY2hlZExvYWRl
ZFJhbmdlcyA9IGxvYWRlZFJhbmdlczsKKyAgICBtX2NhY2hlZExvYWRlZFJhbmdlcyA9IFdURk1v
dmUobG9hZGVkUmFuZ2VzKTsKIAogICAgIGxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkKCk7CiAgICAg
dXBkYXRlU3RhdGVzKCk7CkBAIC0zMTIzLDcgKzMxMjMsNyBAQCBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBtZXRhZGF0YVR5cGUoTlNTdHJpbmcgKmF2TWV0YWRhdGFLZXlTcGFjZSkKIAogI2Vu
ZGlmCiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFE
aWRBcnJpdmUoUmV0YWluUHRyPE5TQXJyYXk+IG1ldGFkYXRhLCBjb25zdCBNZWRpYVRpbWUmIG1l
ZGlhVGltZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRh
dGFEaWRBcnJpdmUoY29uc3QgUmV0YWluUHRyPE5TQXJyYXk+JiBtZXRhZGF0YSwgY29uc3QgTWVk
aWFUaW1lJiBtZWRpYVRpbWUpCiB7CiAgICAgbV9jdXJyZW50TWV0YURhdGEgPSBtZXRhZGF0YSAm
JiAhW21ldGFkYXRhIGlzS2luZE9mQ2xhc3M6W05TTnVsbCBjbGFzc11dID8gbWV0YWRhdGEgOiBu
aWw7CiAKQEAgLTMxNjUsNyArMzE2NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUoUmV0YWluUHRyPE5TQXJyYXk+IG1lCiAjZW5k
aWYKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp0cmFja3NE
aWRDaGFuZ2UoUmV0YWluUHRyPE5TQXJyYXk+IHRyYWNrcykKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6dHJhY2tzRGlkQ2hhbmdlKGNvbnN0IFJldGFpblB0cjxOU0Fy
cmF5PiYgdHJhY2tzKQogewogICAgIGZvciAoQVZQbGF5ZXJJdGVtVHJhY2sgKnRyYWNrIGluIG1f
Y2FjaGVkVHJhY2tzLmdldCgpKQogICAgICAgICBbdHJhY2sgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpj
T2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAImVuYWJsZWQiXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQppbmRleCBmYTczMjViYzU4OGZjNzUyNDI0OTUzNzhhOGI2YmRlMTE0MzY4ZDFmLi5k
NzczMjNkZjNlODNjODlmODJhMDE2YjY5YjJjOWNkYTI0MGEzMmQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnBhdXNlZCgpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogewotICAgIGZv
ciAoYXV0byBrZXkgOiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAg
IGZvciAoY29uc3QgYXV0byYga2V5IDogbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmtl
eXMoKSkKICAgICAgICAgWyhfX2JyaWRnZSBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilr
ZXkuZ2V0KCkgc2V0Vm9sdW1lOnZvbHVtZV07CiB9CiAKQEAgLTMxMiw3ICszMTIsNyBAQCBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNTY2FubmluZygp
IGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRN
dXRlZChib29sIG11dGVkKQogewotICAgIGZvciAoYXV0byBrZXkgOiBtX3NhbXBsZUJ1ZmZlckF1
ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAgIGZvciAoY29uc3QgYXV0byYga2V5IDogbV9zYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmtleXMoKSkKICAgICAgICAgWyhfX2JyaWRnZSBBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilrZXkuZ2V0KCkgc2V0TXV0ZWQ6bXV0ZWRdOwogfQog
CkBAIC00NjAsNyArNDYwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnNldFJhdGVEb3VibGUoZG91YmxlIHJhdGUpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRj
aCkKIHsKICAgICBOU1N0cmluZyAqYWxnb3JpdGhtID0gcHJlc2VydmVzUGl0Y2ggPyBBVkF1ZGlv
VGltZVBpdGNoQWxnb3JpdGhtU3BlY3RyYWwgOiBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtVmFy
aXNwZWVkOwotICAgIGZvciAoYXV0byBrZXkgOiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJN
YXAua2V5cygpKQorICAgIGZvciAoY29uc3QgYXV0byYga2V5IDogbV9zYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyTWFwLmtleXMoKSkKICAgICAgICAgWyhfX2JyaWRnZSBBVlNhbXBsZUJ1ZmZlckF1
ZGlvUmVuZGVyZXIgKilrZXkuZ2V0KCkgc2V0QXVkaW9UaW1lUGl0Y2hBbGdvcml0aG06YWxnb3Jp
dGhtXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmgKaW5kZXggZTdhMGZkYzgyYWJiMGZmNjJiZjY2ZjY1NzdiYWI2MThlM2U3
MGM1ZS4uODMwMGRjM2I2ZTM5ZThjYWIxNDVhZWJhMjE3NmU5ODExZGZjOTg3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBA
IC0xMDIsOCArMTAyLDggQEAgcHVibGljOgogICAgIHZvaWQgdHJhY2tEaWRDaGFuZ2VFbmFibGVk
KEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKik7CiAKICAgICB2b2lkIHdpbGxT
ZWVrKCk7Ci0gICAgdm9pZCBzZWVrVG9UaW1lKE1lZGlhVGltZSk7Ci0gICAgTWVkaWFUaW1lIGZh
c3RTZWVrVGltZUZvck1lZGlhVGltZShNZWRpYVRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVz
aG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKTsKKyAgICB2b2lkIHNlZWtUb1RpbWUo
Y29uc3QgTWVkaWFUaW1lJik7CisgICAgTWVkaWFUaW1lIGZhc3RTZWVrVGltZUZvck1lZGlhVGlt
ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBj
b25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKTsKICAgICBGbG9hdFNpemUgbmF0dXJh
bFNpemUoKTsKIAogICAgIGludCBwcm90ZWN0ZWRUcmFja0lEKCkgY29uc3QgeyByZXR1cm4gbV9w
cm90ZWN0ZWRUcmFja0lEOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDc1ZTAxZDgwYjliN2VjMTkzMmExZjExNjU2
NjM5NWEyYTgwODM2NTYuLmE5OWZlYjdmNjUzYzk5MTE2ZDBmMzM5ZWMzNzc1ZmMyMGNlZjBiZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tCkBAIC0xMTU5LDcgKzExNTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKHRoaXMsIGlzQWN0aXZlKTsK
IH0KIAotTWVkaWFUaW1lIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVG
b3JNZWRpYVRpbWUoTWVkaWFUaW1lIHRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwg
TWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKQorTWVkaWFUaW1lIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1l
LCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBv
c2l0aXZlVGhyZXNob2xkKQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybiB0
aW1lOwpAQCAtMTE3MSw3ICsxMTcxLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6d2lsbFNlZWsoKQogICAgIGZsdXNoKCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OnNlZWtUb1RpbWUoTWVkaWFUaW1lIHRpbWUpCit2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBp
ZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1Rv
VGltZSh0aW1lKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>