<?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>155130</bug_id>
          
          <creation_ts>2016-03-07 13:41:32 -0800</creation_ts>
          <short_desc>Fix lifetime issues regarding WebVideoFullscreenInterfaceMac</short_desc>
          <delta_ts>2016-03-08 11:34:04 -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>WebKit2</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171727</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-07 13:41:32 -0800</bug_when>
    <thetext>When WebVideoFullscreenManager::setUpVideoControlsManager() is called, we always clean up the old WebVideoFullscreenInterfaceContext associated with the context id associated with the current video controls manager and make a new one.  This is an issue if we are in the middle of handling fullscreen and it&apos;s still using that WebVideoFullscreenInterfaceContext, since a lot of fullscreen state is kept with that particular context.

Before the introduction of video controls manager, we only use WebVideoFullscreenInterfaceContext for full screen, so it&apos;s ok to invalidate the interface right after we exit the fullscreen mode. But now we need to do more bookkeeping since video controls manager also depends on WebVideoFullscreenInterfaceContext. We should keep track of a &quot;client count&quot; for each context ID so we&apos;ll only remove it from the context map when there are all clients are done with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171728</commentid>
    <comment_count>1</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-07 13:42:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/24978679&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171738</commentid>
    <comment_count>2</comment_count>
      <attachid>273209</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-07 14:02:36 -0800</bug_when>
    <thetext>Created attachment 273209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171739</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-07 14:04:36 -0800</bug_when>
    <thetext>Attachment 273209 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.mm:336:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 5 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>1171804</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-07 15:27:21 -0800</bug_when>
    <thetext>This looks good to me. It would be nice to get confirmation fro Jer or Eric that this seems okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172099</commentid>
    <comment_count>5</comment_count>
      <attachid>273209</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-03-08 10:57:03 -0800</bug_when>
    <thetext>Comment on attachment 273209
Patch

This is a little weird, since we&apos;re essentially reproducing RefCounted.  It seems like we should be able to do this just through the reference count of the final Model and Interface objects.  But we can revisit that idea later, and maybe even use this m_clientCount concept to do so. LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172116</commentid>
    <comment_count>6</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-03-08 11:34:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 273209 [details]
&gt; Patch
&gt; 
&gt; This is a little weird, since we&apos;re essentially reproducing RefCounted.  It
&gt; seems like we should be able to do this just through the reference count of
&gt; the final Model and Interface objects.  But we can revisit that idea later,
&gt; and maybe even use this m_clientCount concept to do so. LGTM.

Yep, agreed.  

Committed:
http://trac.webkit.org/changeset/197787</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273209</attachid>
            <date>2016-03-07 14:02:36 -0800</date>
            <delta_ts>2016-03-07 15:26:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155130-20160307140222.patch</filename>
            <type>text/plain</type>
            <size>17343</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3Njg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDBlMDFiOTQ0ZTRkMGE5
OTU2NjBkZmFmNjUxNTQ5YmJiMTc5ZmQyYy4uNTZhNTg5NTZkMDViODE1YTdhODBiMTRjMDc2ZTE2
N2U4OWQ0MDY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE2LTAzLTA0ICBBZGEg
Q2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsaWZldGltZSBpc3N1ZXMg
cmVnYXJkaW5nIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgYm90aCBmdWxsc2NyZWVu
IGFuZCB2aWRlbyBjb250cm9scyBtYW5hZ2VyIHJlbHkgb24gV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlLAorICAgICAgICB3ZSBub3cga2VlcCB0cmFjayBvZiBhICJjbGllbnQgY291bnQiIGZv
ciBlYWNoIGNvbnRleHQgSUQgc28gd2UnbGwgb25seSByZW1vdmUgaXQKKyAgICAgICAgZnJvbSB0
aGUgY29udGV4dCBtYXAgYWZ0ZXIgYWxsIHRoZSAiY2xpZW50cyIgYXJlIGRvbmUgd2l0aCBpdC4K
KworICAgICAgICBCZWZvcmUgdGhpcyBjaGFuZ2UsIGV2ZXJ5IHRpbWUgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0VXBWaWRlb0NvbnRyb2xzTWFuYWdlcigpCisgICAgICAgIGlzIGNhbGxl
ZCwgdGhlIGV4aXN0aW5nIGludGVyZmFjZSBpcyBjbGVhcmVkIGFuZCBhIG5ldyBvbmUgaXMgY3Jl
YXRlZCBldmVuIHdoZW4gdGhlcmUncworICAgICAgICBhbiBleGlzdGluZyBpbnRlcmZhY2UgZm9y
IHRoYXQuIFdpdGggdGhpcyBjaGFuZ2UsIHdlIHJldXNlIHRoZSBleGlzdGluZyBpbnRlcmZhY2Ug
Zm9yCisgICAgICAgIHRoZSB2aWRlbyBlbGVtZW50LgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAg
IEFsc28gY2xlYXIgb3V0IG1fY2xpZW50Q291bnRzLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmFkZENsaWVudEZvckNvbnRleHQpOgorICAgICAgICBJ
ZiB0aGUgY29udGV4dCBJRCBpcyBub3QgaW4gbV9jbGllbnRDb3VudHMgeWV0LCBhZGQgdGhlIGNv
dW50IG9mIDEgdG8KKyAgICAgICAgdGhhdCB0YWJsZSBmb3IgdGhhdCBJRC4gT3RoZXJ3aXNlLCBp
bmNyZW1lbnQgdGhlIGNvdW50IGJ5IDEuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6cmVtb3ZlQ2xpZW50Rm9yQ29udGV4dCk6CisgICAgICAgIEFzc2Vy
dCB0aGF0IHdlIGhhdmUgYWRkZWQgdGhpcyBjb250ZXh0IGlkIHRvIG1fY2xpZW50Q291bnRzIGJl
Zm9yZS4KKyAgICAgICAgRGVjcmVtZW50IHRoZSBjb3VudC4gSWYgaXQgcmVhY2hlcyAwLCByZW1v
dmUgdGhpcyBjb250ZXh0IElEIGZyb20gYm90aAorICAgICAgICBtX2NsaWVudENvdW50cyBhbmQg
bV9jb250ZXh0TWFwLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIFdlIGhhdmUgc3RhcnRlZCBh
IG5ldyBmdWxsc2NyZWVuIHNlc3Npb24gdXNpbmcgdGhpcyBpbnRlcmZhY2UuIENhbGwKKyAgICAg
ICAgYWRkQ2xpZW50Rm9yQ29udGV4dCgpIHRvIHVwZGF0ZSB0aGUgY2xpZW50IGNvdW50LgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFVwVmlkZW9D
b250cm9sc01hbmFnZXJXaXRoSUQpOgorICAgICAgICBJZiB0aGUgY3VycmVudCBjb250cm9scyBt
YW5hZ2VyIHNldCB1cCBoYXMgdGhlIHNhbWUgY29udGV4dCBJRCBhcyB0aGUgb25lCisgICAgICAg
IHBhc3NlZCBpbiwgd2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZy4gT3RoZXJ3aXNlLCBpZiB3
ZSBoYXZlIHNldCB1cAorICAgICAgICB0aGUgdmlkZW8gY29udHJvbHMgbWFuYWdlciB3aXRoIGEg
ZGlmZmVyZW50IElEIGJlZm9yZSwgY2FsbCByZW1vdmVDbGllbnRGb3JDb250ZXh0KCkKKyAgICAg
ICAgb24gdGhlIG9sZCBJRCB0byBkZWNyZW1lbnQgaXRzIGNsaWVudCBjb3VudC4gU2V0IG1fY29u
dHJvbHNNYW5hZ2VyQ29udGV4dElkCisgICAgICAgIHRvIHRoZSBuZXcgdmFsdWUgYW5kIGNhbGwg
YWRkQ2xpZW50Rm9yQ29udGV4dCgpIHdpdGggaXQuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICBJ
bnN0ZWFkIG9mIHJlbW92aW5nIHRoZSBtYXBwaW5nIGZyb20gbV9jb250ZXh0TWFwIGRpcmVjdGx5
LCByZXNldCB0aGUgZnVsbHNjcmVlbgorICAgICAgICBtb2RlIG9uIHRoZSBpbnRlcmZhY2UgYW5k
IGNhbGwgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dCgpLCB3aGljaCByZW1vdmVzIHRoZSBtYXBwaW5n
CisgICAgICAgIG9ubHkgaWYgdGhlcmUncyBubyBtb3JlIGNsaWVudCB1c2luZyB0aGUgaW50ZXJm
YWNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6fldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICBDbGVhciBtX2NsaWVudENvdW50cy4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVtb3ZlQ29udGV4dCk6
CisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgZm9yIHJlbW92aW5nIHRoZSBjb250ZXh0Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjphZGRDbGllbnRGb3JD
b250ZXh0KToKKyAgICAgICAgSWYgdGhlIGNvbnRleHQgSUQgaXMgbm90IGluIG1fY2xpZW50Q291
bnRzIHlldCwgYWRkIHRoZSBjb3VudCBvZiAxIHRvCisgICAgICAgIHRoYXQgdGFibGUgZm9yIHRo
YXQgSUQuIE90aGVyd2lzZSwgaW5jcmVtZW50IHRoZSBjb3VudCBieSAxLgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZW1vdmVDbGllbnRGb3JDb250ZXh0KToK
KyAgICAgICAgQXNzZXJ0IHRoYXQgd2UgaGF2ZSBhZGRlZCB0aGlzIGNvbnRleHQgaWQgdG8gbV9j
bGllbnRDb3VudHMgYmVmb3JlLgorICAgICAgICBEZWNyZW1lbnQgdGhlIGNvdW50LiBJZiBpdCBy
ZWFjaGVzIDAsIHJlbW92ZSB0aGlzIGNvbnRleHQgSUQgZnJvbQorICAgICAgICBtX2NsaWVudENv
dW50cyBhbmQgY2FsbCByZW1vdmVDb250ZXh0KCkgdG8gY2xlYW4gdXAgdGhpcyBjb250ZXh0Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisgICAgICAgIFdlIGhhdmUgc3RhcnRlZCBhIG5ldyBm
dWxsc2NyZWVuIHNlc3Npb24gdXNpbmcgdGhpcyBpbnRlcmZhY2UuIENhbGwKKyAgICAgICAgYWRk
Q2xpZW50Rm9yQ29udGV4dCgpIHRvIHVwZGF0ZSB0aGUgY2xpZW50IGNvdW50LiBDcmVhdGUgYSBs
YXllciBob3N0aW5nCisgICAgICAgIGNvbnRleHQgaWYgaXQncyBub3QgdGhlcmUuCisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFVwVmlkZW9Db250cm9sc01h
bmFnZXIpOgorICAgICAgICBJZiB3ZSBoYXZlIHNldCB1cCBhIGNvbnRleHQgZm9yIHRoaXMgdmlk
ZW8gZWxlbWVudCBiZWZvcmUsIHNlZSBpZiBpdCdzCisgICAgICAgIHRoZSBvbmUgd2UgYXJlIGN1
cnJlbnRseSBtYW5hZ2luZyB2aWRlbyBjb250cm9scyBmb3IuIElmIGl0IGlzLCByZXR1cm4gZWFy
bHkuCisgICAgICAgIE90aGVyd2lzZSwgY2FsbCByZW1vdmVDbGllbnRGb3JDb250ZXh0KCkgb24g
dGhlIHByZXZpb3VzIG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkCisgICAgICAgIGFuZCB1cGRh
dGUgbV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgdG8gdGhlIGNvbnRleHQgSUQgb2YgdGhpcyB2
aWRlbyBlbGVtZW50LgorICAgICAgICBJZiB0aGVyZSdzIG5vIGNvbnRleHQgY3JlYXRlZCBmb3Ig
dGhpcyB2aWRlbyBlbGVtZW50IHlldCwgc2V0IG9uZSB1cC4KKyAgICAgICAgU2VuZCBhIFNldFVw
VmlkZW9Db250cm9sc01hbmFnZXJXaXRoSUQgbWVzc2FnZSB0byB0aGUgcHJveHkgb2JqZWN0IGlu
IHRoZSBVSSBwcm9jZXNzCisgICAgICAgIHNvIGl0J2xsIHVwZGF0ZSBpdHMgY29udHJvbHMgbWFu
YWdlciBjb250ZXh0IElELiBBbHNvLCBjb25kaXRpb25hbGl6ZSBhbGwgb2YgdGhpcworICAgICAg
ICB1bmRlciBQTEFURk9STShNQUMpIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgSnVzdCByZXNldCB0aGUgZnVs
bHNjcmVlbiBtb2RlIG9uIHRoZSBpbnRlcmZhY2UgYW5kIGNhbGwgcmVtb3ZlQ2xpZW50Rm9yQ29u
dGV4dCgpIHdoaWNoCisgICAgICAgIG9ubHkgY2xlYW5zIHVwIHRoZSBjb250ZXh0IGlmIHRoZXJl
J3Mgbm8gbW9yZSBjbGllbnQgdXNpbmcgaXQuCisKIDIwMTYtMDMtMDUgIEVucmljYSBDYXN1Y2Np
ICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IHByZXZpZXcgb24gYXR0YWNo
bWVudCBlbGVtZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBiYjU0NDc3
N2ZmMDkzMTI4YzE4MTU3ZjNhZWZjYjU4ZmRmOTg2OGYyLi5mNzUyNTMzMjRmODY1MjE2YWI1MWU2
YzIxMTllMjgwNDk4MDUwN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0x
MzIsNiArMTMyLDggQEAgcHJpdmF0ZToKICAgICBNb2RlbEludGVyZmFjZVR1cGxlJiBlbnN1cmVN
b2RlbEFuZEludGVyZmFjZSh1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsQ29udGV4dCYgZW5zdXJlTW9kZWwodWludDY0X3QgY29udGV4dElkKTsKICAgICBQ
bGF0Zm9ybVdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSYgZW5zdXJlSW50ZXJmYWNlKHVpbnQ2
NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBhZGRDbGllbnRGb3JDb250ZXh0KHVpbnQ2NF90IGNv
bnRleHRJZCk7CisgICAgdm9pZCByZW1vdmVDbGllbnRGb3JDb250ZXh0KHVpbnQ2NF90IGNvbnRl
eHRJZCk7CiAKICAgICAvLyBNZXNzYWdlcyBmcm9tIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIK
ICAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQz
Ml90IHZpZGVvTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3QsIGZs
b2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUpOwpAQCAtMTgy
LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgTW9kZWxJbnRlcmZhY2VUdXBsZT4gbV9jb250ZXh0TWFwOwogICAgIHVp
bnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9OwotCisgICAgSGFzaE1hcDx1
aW50NjRfdCwgaW50PiBtX2NsaWVudENvdW50czsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDgyZGYzM2ZjOGZiYWEw
OGY5YjUzODA0ZmFhOGY0NzhhNWFiYWRkN2IuLmViZjEzNjlmYWYwYTYxYjU3YjZiNWYxYTEyNGE0
MGFmN2QxOTlhYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMjc4LDYg
KzI3OCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjppbnZhbGlkYXRl
KCkKICAgICB9CiAKICAgICBtX2NvbnRleHRNYXAuY2xlYXIoKTsKKyAgICBtX2NsaWVudENvdW50
cy5jbGVhcigpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVx
dWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpCkBAIC0zMzksNiArMzQwLDMwIEBAIFBsYXRmb3Jt
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlJiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVuc3VyZUludGVyCiAgICAgcmV0dXJuICpzdGQ6OmdldDwxPihlbnN1cmVNb2RlbEFuZElu
dGVyZmFjZShjb250ZXh0SWQpKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmFkZENsaWVudEZvckNvbnRleHQodWludDY0X3QgY29udGV4dElkKQoreworICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9jbGllbnRDb3VudHMuYWRkKGNvbnRleHRJZCwgMSk7CisgICAgaWYg
KCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSsrOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVtb3ZlQ2xp
ZW50Rm9yQ29udGV4dCh1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgQVNTRVJUKG1fY2xpZW50
Q291bnRzLmNvbnRhaW5zKGNvbnRleHRJZCkpOworCisgICAgaW50IGNsaWVudENvdW50ID0gbV9j
bGllbnRDb3VudHMuZ2V0KGNvbnRleHRJZCk7CisgICAgQVNTRVJUKGNsaWVudENvdW50ID4gMCk7
CisgICAgY2xpZW50Q291bnQtLTsKKworICAgIGlmIChjbGllbnRDb3VudCA8PSAwKSB7CisgICAg
ICAgIG1fY2xpZW50Q291bnRzLnJlbW92ZShjb250ZXh0SWQpOworICAgICAgICBtX2NvbnRleHRN
YXAucmVtb3ZlKGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2Ns
aWVudENvdW50cy5zZXQoY29udGV4dElkLCBjbGllbnRDb3VudCk7Cit9CisKICNwcmFnbWEgbWFy
ayBNZXNzYWdlcyBmcm9tIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIKIAogdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50NjRfdCBj
b250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
aW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wg
YWxsb3dzUGljdHVyZUluUGljdHVyZSkKQEAgLTM0OCw2ICszNzMsNyBAQCB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQ2NF90IGNv
bnRleHRJZCwgdQogICAgIFJlZlB0cjxQbGF0Zm9ybVdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZT4gaW50ZXJmYWNlOwogCiAgICAgc3RkOjp0aWUobW9kZWwsIGludGVyZmFjZSkgPSBlbnN1cmVN
b2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOworICAgIGFkZENsaWVudEZvckNvbnRleHQoY29u
dGV4dElkKTsKIAogICAgIFJldGFpblB0cjxXS0xheWVySG9zdFZpZXc+IHZpZXcgPSBzdGF0aWNf
Y2FzdDxXS0xheWVySG9zdFZpZXcqPihtb2RlbC0+bGF5ZXJIb3N0VmlldygpKTsKICAgICBpZiAo
IXZpZXcpIHsKQEAgLTM3NywxNiArNDAzLDE1IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1CiB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VXBWaWRlb0NvbnRyb2xzTWFu
YWdlcldpdGhJRCh1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IC8vIElmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIGNvbnRyb2xzIG1hbmFnZXIsIGNsZWFuIGl0IHVw
LgotICAgIGlmIChtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCkKLSAgICAgICAgbV9jb250ZXh0
TWFwLnJlbW92ZShtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCk7CisgICAgaWYgKG1fY29udHJv
bHNNYW5hZ2VyQ29udGV4dElkID09IGNvbnRleHRJZCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAg
UmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dD4gbW9kZWw7Ci0gICAgUmVmUHRy
PFBsYXRmb3JtV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlPiBpbnRlcmZhY2U7CisgICAgaWYg
KG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkKQorICAgICAgICByZW1vdmVDbGllbnRGb3JDb250
ZXh0KG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkKTsKIAotICAgIHN0ZDo6dGllKG1vZGVsLCBp
bnRlcmZhY2UpID0gZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKICAgICBtX2Nv
bnRyb2xzTWFuYWdlckNvbnRleHRJZCA9IGNvbnRleHRJZDsKLSAgICBpbnRlcmZhY2UtPmVuc3Vy
ZUNvbnRyb2xzTWFuYWdlcigpOworICAgIGVuc3VyZUludGVyZmFjZShtX2NvbnRyb2xzTWFuYWdl
ckNvbnRleHRJZCkuZW5zdXJlQ29udHJvbHNNYW5hZ2VyKCk7CisgICAgYWRkQ2xpZW50Rm9yQ29u
dGV4dChtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShjb250ZXh0SWQpOwogI2VuZGlmCkBAIC01OTIsMTQgKzYxNywxOCBAQCB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCkKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFudXBG
dWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKLSAgICBhdXRvJiBtb2RlbCA9IGVuc3Vy
ZU1vZGVsKGNvbnRleHRJZCk7CisgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29u
dGV4dD4gbW9kZWw7CisgICAgUmVmUHRyPFBsYXRmb3JtV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlPiBpbnRlcmZhY2U7CisKKyAgICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3Vy
ZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAKICAgICBbQ0FUcmFuc2FjdGlvbiBmbHVz
aF07Ci0gICAgW21vZGVsLmxheWVySG9zdFZpZXcoKSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKLSAg
ICBtb2RlbC5zZXRMYXllckhvc3RWaWV3KG51bGxwdHIpOworICAgIFttb2RlbC0+bGF5ZXJIb3N0
VmlldygpIHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgIG1vZGVsLT5zZXRMYXllckhvc3RWaWV3
KG51bGxwdHIpOwogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6RGlkQ2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQo
KSk7CiAKLSAgICBtX2NvbnRleHRNYXAucmVtb3ZlKGNvbnRleHRJZCk7CisgICAgaW50ZXJmYWNl
LT5zZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUp
OworICAgIHJlbW92ZUNsaWVudEZvckNvbnRleHQoY29udGV4dElkKTsKIH0KIAogdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJGcmFtZSh1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
aW5kZXggZGM2NDViMzMzMzhjMzJiNmRhYmNmNTViNTM5YjgyYzlmMGE5YmJjNy4uMzZkY2NiNjVm
NDY5MjAxZjA3ZjNiYzkxY2I2MDBkYjAwYjhkMGYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
QEAgLTEyOSw2ICsxMjksOSBAQCBwcm90ZWN0ZWQ6CiAgICAgTW9kZWxJbnRlcmZhY2VUdXBsZSYg
ZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UodWludDY0X3QgY29udGV4dElkKTsKICAgICBXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudCYgZW5zdXJlTW9kZWwodWludDY0
X3QgY29udGV4dElkKTsKICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0JiBl
bnN1cmVJbnRlcmZhY2UodWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRl
eHQodWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGFkZENsaWVudEZvckNvbnRleHQodWlu
dDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHJlbW92ZUNsaWVudEZvckNvbnRleHQodWludDY0
X3QgY29udGV4dElkKTsKIAogICAgIC8vIEludGVyZmFjZSB0byBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VDb250ZXh0CiAgICAgdm9pZCByZXNldE1lZGlhU3RhdGUodWludDY0X3QgY29udGV4
dElkKTsKQEAgLTE3MSw2ICsxNzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50KiwgdWludDY0X3Q+IG1fdmlkZW9FbGVtZW50czsKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBNb2RlbEludGVyZmFjZVR1cGxlPiBtX2NvbnRleHRNYXA7CiAgICAgdWlu
dDY0X3QgbV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CisgICAgSGFzaE1hcDx1aW50
NjRfdCwgaW50PiBtX2NsaWVudENvdW50czsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCAxM2U0MGViMTViOWFjNGFmYTE5ZjJiOGVl
NTQ2OTY3ZmUxZTkxOGUyLi4yNGY1Nzk3YmZjZTYzNDY4NTQwNWY1Yzc4MTZjYThhMjczYzExMjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0xODIsNiArMTgyLDcgQEAgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQogCiAgICAgbV9j
b250ZXh0TWFwLmNsZWFyKCk7CiAgICAgbV92aWRlb0VsZW1lbnRzLmNsZWFyKCk7CisgICAgbV9j
bGllbnRDb3VudHMuY2xlYXIoKTsKIAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KQEAgLTIxNSw2ICsyMTYs
NDQgQEAgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dCYgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZW5zdXJlSW50ZXJmYWNlKHUKICAgICByZXR1cm4gKnN0ZDo6Z2V0PDE+KGVu
c3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCkpOwogfQogCit2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OnJlbW92ZUNvbnRleHQodWludDY0X3QgY29udGV4dElkKQoreworICAg
IFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudD4gbW9kZWw7CisgICAg
UmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKKyAg
ICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNv
bnRleHRJZCk7CisKKyAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0g
bW9kZWwtPnZpZGVvRWxlbWVudCgpOworICAgIG1vZGVsLT5zZXRWaWRlb0VsZW1lbnQobnVsbHB0
cik7CisgICAgbW9kZWwtPnNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZShudWxscHRyKTsK
KyAgICBpbnRlcmZhY2UtPmludmFsaWRhdGUoKTsKKyAgICBtX3ZpZGVvRWxlbWVudHMucmVtb3Zl
KHZpZGVvRWxlbWVudC5nZXQoKSk7CisgICAgbV9jb250ZXh0TWFwLnJlbW92ZShjb250ZXh0SWQp
OworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmFkZENsaWVudEZvckNvbnRl
eHQodWludDY0X3QgY29udGV4dElkKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9jbGllbnRD
b3VudHMuYWRkKGNvbnRleHRJZCwgMSk7CisgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkK
KyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSsrOworfQorCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OnJlbW92ZUNsaWVudEZvckNvbnRleHQodWludDY0X3QgY29udGV4
dElkKQoreworICAgIEFTU0VSVChtX2NsaWVudENvdW50cy5jb250YWlucyhjb250ZXh0SWQpKTsK
KworICAgIGludCBjbGllbnRDb3VudCA9IG1fY2xpZW50Q291bnRzLmdldChjb250ZXh0SWQpOwor
ICAgIEFTU0VSVChjbGllbnRDb3VudCA+IDApOworICAgIGNsaWVudENvdW50LS07CisKKyAgICBp
ZiAoY2xpZW50Q291bnQgPD0gMCkgeworICAgICAgICBtX2NsaWVudENvdW50cy5yZW1vdmUoY29u
dGV4dElkKTsKKyAgICAgICAgcmVtb3ZlQ29udGV4dChjb250ZXh0SWQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9jbGllbnRDb3VudHMuc2V0KGNvbnRleHRJZCwgY2xpZW50Q291
bnQpOworfQorCiAjcHJhZ21hIG1hcmsgSW50ZXJmYWNlIHRvIENocm9tZUNsaWVudDoKIAogYm9v
bCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkgY29u
c3QKQEAgLTI0Myw2ICsyODIsOSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZQogICAgIFJlZlB0
cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudD4gbW9kZWw7CiAgICAgUmVmUHRy
PFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKICAgICBzdGQ6
OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJ
ZCk7CisgICAgYWRkQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOworICAgIGlmICghaW50ZXJm
YWNlLT5sYXllckhvc3RpbmdDb250ZXh0KCkpCisgICAgICAgIGludGVyZmFjZS0+c2V0TGF5ZXJI
b3N0aW5nQ29udGV4dChMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3Rp
bmdQcm9jZXNzKCkpOwogCiAgICAgRmxvYXRSZWN0IGNsaWVudFJlY3QgPSBjbGllbnRSZWN0Rm9y
RWxlbWVudCgmdmlkZW9FbGVtZW50KTsKICAgICBGbG9hdFJlY3QgdmlkZW9MYXllckZyYW1lID0g
RmxvYXRSZWN0KDAsIDAsIGNsaWVudFJlY3Qud2lkdGgoKSwgY2xpZW50UmVjdC5oZWlnaHQoKSk7
CkBAIC0yODEsMzAgKzMyMywyNSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTAogCiB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFVwVmlkZW9Db250cm9sc01hbmFnZXIoV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50KQogewotICAgIC8vIElmIHRoZXJlIGlz
IGFuIGV4aXN0aW5nIGNvbnRyb2xzIG1hbmFnZXIsIGNsZWFuIGl0IHVwLgotICAgIGlmIChtX2Nv
bnRyb2xzTWFuYWdlckNvbnRleHRJZCkgewotICAgICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQ+IG1vZGVsOwotICAgICAgICBSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQ29udGV4dD4gaW50ZXJmYWNlOwotICAgICAgICBzdGQ6OnRpZShtb2Rl
bCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKG1fY29udHJvbHNNYW5hZ2Vy
Q29udGV4dElkKTsKLQotICAgICAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVt
ZW50ID0gbW9kZWwtPnZpZGVvRWxlbWVudCgpOwotICAgICAgICBtb2RlbC0+c2V0VmlkZW9FbGVt
ZW50KG51bGxwdHIpOwotICAgICAgICBtb2RlbC0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlKG51bGxwdHIpOwotICAgICAgICBpbnRlcmZhY2UtPmludmFsaWRhdGUoKTsKLSAgICAgICAg
bV92aWRlb0VsZW1lbnRzLnJlbW92ZSh2aWRlb0VsZW1lbnQuZ2V0KCkpOwotICAgICAgICBtX2Nv
bnRleHRNYXAucmVtb3ZlKG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkKTsKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgaWYgKG1fdmlkZW9FbGVtZW50cy5jb250YWlucygmdmlkZW9FbGVtZW50KSkg
eworICAgICAgICB1aW50NjRfdCBjb250ZXh0SWQgPSBtX3ZpZGVvRWxlbWVudHMuZ2V0KCZ2aWRl
b0VsZW1lbnQpOworICAgICAgICBpZiAobV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgPT0gY29u
dGV4dElkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChtX2NvbnRyb2xzTWFu
YWdlckNvbnRleHRJZCkKKyAgICAgICAgICAgIHJlbW92ZUNsaWVudEZvckNvbnRleHQobV9jb250
cm9sc01hbmFnZXJDb250ZXh0SWQpOworICAgICAgICBtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJ
ZCA9IGNvbnRleHRJZDsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGFkZFJlc3VsdCA9IG1f
dmlkZW9FbGVtZW50cy5lbnN1cmUoJnZpZGVvRWxlbWVudCwgWyZdIHsgcmV0dXJuIG5leHRDb250
ZXh0SWQoKTsgfSk7CisgICAgICAgIGF1dG8gY29udGV4dElkID0gYWRkUmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZTsKKyAgICAgICAgbV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgPSBjb250ZXh0SWQ7
CisgICAgICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkuc2V0VmlkZW9FbGVtZW50KCZ2aWRlb0Vs
ZW1lbnQpOwogICAgIH0KIAotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb0VsZW1lbnRzLmVu
c3VyZSgmdmlkZW9FbGVtZW50LCBbJl0geyByZXR1cm4gbmV4dENvbnRleHRJZCgpOyB9KTsKLSAg
ICBhdXRvIGNvbnRleHRJZCA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7Ci0gICAgbV9jb250
cm9sc01hbmFnZXJDb250ZXh0SWQgPSBjb250ZXh0SWQ7Ci0KLSAgICBSZWZQdHI8V2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ+IG1vZGVsOwotICAgIFJlZlB0cjxXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0PiBpbnRlcmZhY2U7Ci0gICAgc3RkOjp0aWUobW9kZWws
IGludGVyZmFjZSkgPSBlbnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwotICAgIG1v
ZGVsLT5zZXRWaWRlb0VsZW1lbnQoJnZpZGVvRWxlbWVudCk7Ci0gICAgCi0gICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFVwVmlkZW9D
b250cm9sc01hbmFnZXJXaXRoSUQoY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAg
YWRkQ2xpZW50Rm9yQ29udGV4dChtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCk7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFVw
VmlkZW9Db250cm9sc01hbmFnZXJXaXRoSUQobV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC01NTgsMTEgKzU5NSw4
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4o
dWludDY0X3QgY29udGV4dElkKQogICAgIG1vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihu
aWwpOwogICAgIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiB2aWRlb0VsZW1lbnQgPSBtb2RlbC0+
dmlkZW9FbGVtZW50KCk7CiAKLSAgICBtb2RlbC0+c2V0VmlkZW9FbGVtZW50KG51bGxwdHIpOwot
ICAgIG1vZGVsLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UobnVsbHB0cik7Ci0gICAg
aW50ZXJmYWNlLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV92aWRlb0VsZW1lbnRzLnJlbW92ZSh2aWRl
b0VsZW1lbnQuZ2V0KCkpOwotICAgIG1fY29udGV4dE1hcC5yZW1vdmUoY29udGV4dElkKTsKKyAg
ICBpbnRlcmZhY2UtPnNldEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgIHJlbW92ZUNsaWVudEZvckNvbnRleHQoY29udGV4
dElkKTsKIAogICAgIGlmICghdmlkZW9FbGVtZW50IHx8ICF0YXJnZXRJc0Z1bGxzY3JlZW4pCiAg
ICAgICAgIHJldHVybjsK
</data>
<flag name="review"
          id="297813"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>