<?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>54523</bug_id>
          
          <creation_ts>2011-02-15 19:46:58 -0800</creation_ts>
          <short_desc>WebPluginSiteDataManager should work with plug-in process</short_desc>
          <delta_ts>2011-02-15 20:11:06 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351835</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-15 19:46:58 -0800</bug_when>
    <thetext>WebPluginSiteDataManager should work with plug-in process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351840</commentid>
    <comment_count>1</comment_count>
      <attachid>82577</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-15 19:58:55 -0800</bug_when>
    <thetext>Created attachment 82577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351848</commentid>
    <comment_count>2</comment_count>
      <attachid>82577</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-02-15 20:09:44 -0800</bug_when>
    <thetext>Comment on attachment 82577
Patch

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

&gt; Source/WebKit2/UIProcess/WebContext.cpp:255
&gt;      m_pluginSiteDataManager-&gt;invalidate();

This could deserve a comment. It is subtle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351849</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-15 20:11:06 -0800</bug_when>
    <thetext>Committed r78676: &lt;http://trac.webkit.org/changeset/78676&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82577</attachid>
            <date>2011-02-15 19:58:55 -0800</date>
            <delta_ts>2011-02-15 20:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54523-20110215195853.patch</filename>
            <type>text/plain</type>
            <size>34190</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4Njc1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIyIEBACisyMDExLTAyLTE1ICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyIHNob3VsZCB3
b3JrIHdpdGggcGx1Zy1pbiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NDUyMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY4OTMxMj4K
KworICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnJlbW92ZVdlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgQ2FsbCBzdGFydFNodXRkb3duVGltZXJJZk5lY2Vzc2FyeSgpLgorCisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblByb2Nlc3M6OmdldFNpdGVzV2l0aERhdGEpOgorICAgICAgICBBc2sgdGhlIHBs
dWctaW4gbW9kdWxlIGZvciB0aGUgc2l0ZXMgd2l0aCBkYXRhIGFuZCBzZW5kIHRoZW0gYmFjawor
ICAgICAgICBpbiBhIFBsdWdpblByb2Nlc3NQcm94eTo6RGlkR2V0U2l0ZXNXaXRoRGF0YSBtZXNz
YWdlLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OmNsZWFyU2l0ZURhdGEpOgor
ICAgICAgICBDbGVhciBzaXRlIGRhdGEgYW5kIHNlbmQgYmFjayBhIERpZENsZWFyU2l0ZURhdGEg
bWVzc2FnZS4KKworICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpzdGFydFNodXRkb3du
VGltZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIEZhY3RvciBjb2RlIG91dCBmcm9tIHJlbW92ZVdl
YlByb2Nlc3NDb25uZWN0aW9uLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgbmV3IG1lc3NhZ2VzLgorCisgICAgICAgICog
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luSW5mb1N0b3JlOjpwbHVnaW5zKToKKyAgICAgICAgTmV3IGZ1bmN0aW9uIGZvciBnZXR0
aW5nIGFsbCBwbHVnLWlucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6
OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBnZXRPckNyZWF0ZVBs
dWdpblByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6Omdl
dFNpdGVzV2l0aERhdGEpOgorICAgICAgICBHZXQgYSBwbHVnLWluIHByb2Nlc3MgcHJveHkgYW5k
IGNhbGwgZ2V0U2l0ZXNXaXRoRGF0YS4KKworICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNz
TWFuYWdlcjo6Y2xlYXJTaXRlRGF0YSk6CisgICAgICAgIEdldCBhIHBsdWctaW4gcHJvY2VzcyBw
cm94eSBhbmQgY2FsbCBjbGVhclNpdGVEYXRhLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3NNYW5hZ2VyOjpnZXRPckNyZWF0ZVBsdWdpblByb2Nlc3MpOgorICAgICAgICBGYWN0b3Ig
Y29kZSB0byBjcmVhdGUgYSBwbHVnLWluIHByb2Nlc3Mgb3V0IGludG8gYSBzZXBhcmF0ZSBmdW5j
dGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6Z2V0U2l0ZXNXaXRoRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6Y2xlYXJTaXRlRGF0YSk6
CisgICAgICAgIFVwZGF0ZSB0aGUgcGVuZGluZyByZXBseSBzdHJ1Y3QuIElmIHRoZSBwcm9jZXNz
IGlzIHN0aWxsIGxhdW5jaGluZywKKyAgICAgICAgZW5xdWV1ZSB0aGUgcmVxdWVzdC4gT3RoZXJ3
aXNlLCBqdXN0IHNlbmQgdGhlIG1lc3NhZ2UuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJv
Y2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAg
ICBNYWtlIHN1cmUgdGhhdCBwZW5kaW5nIHJlcGxpZXMgYXJlIHNlbnQgb3V0LgorCisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAg
ICAgU2VuZCBvdXIgcGVuZGluZyByZXF1ZXN0cy4KKworICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzUHJveHk6OmRpZEdldFNpdGVzV2l0aERhdGEpOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzUHJveHk6OmRpZENsZWFyU2l0ZURhdGEpOgorICAgICAgICBDYWxsIGRvd24gdG8g
dGhlIHBsdWctaW4gc2l0ZSBkYXRhIG1hbmFnZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBEaWRHZXRT
aXRlc1dpdGhEYXRhIGFuZCBEaWRDbGVhclNpdGVEYXRhIG1lc3NhZ2VzLgorCisgICAgICAgICog
VUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpHZXRTaXRlc1dpdGhEYXRhU3RhdGU6
OkdldFNpdGVzV2l0aERhdGFTdGF0ZSk6CisgICAgICAgIEluaXRpYWxpemUgdGhlIHN0YXRlLgor
CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6R2V0U2l0ZXNXaXRo
RGF0YVN0YXRlOjpnZXRTaXRlc1dpdGhEYXRhRm9yTmV4dFBsdWdpbik6CisgICAgICAgIElmIHRo
ZSBwbHVnLWluIHF1ZXVlIGlzIGVtcHR5LCBjYWxsIGRpZEdldFNpdGVzV2l0aERhdGFGb3JBbGxQ
bHVnaW5zLiBPdGhlcndpc2UsIGFzaworICAgICAgICB0aGUgcGx1Zy1pbiBwcm9jZXNzIG1hbmFn
ZXIgdG8gZ2V0IHNpdGVzIGZvciB0aGUgbmV4dCBwbHVnLWluLgorCisgICAgICAgIChXZWJLaXQ6
OldlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6R2V0U2l0ZXNXaXRoRGF0YVN0YXRlOjpkaWRHZXRT
aXRlc1dpdGhEYXRhRm9yU2luZ2xlUGx1Z2luKToKKyAgICAgICAgVXBkYXRlIHRoZSBzaXRlcyBz
ZXQgYW5kIGdldCBzaXRlcyBmb3IgdGhlIG5leHQgcGx1Zy1pbi4KKworICAgICAgICAoV2ViS2l0
OjpXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OkNsZWFyU2l0ZURhdGFTdGF0ZTo6Q2xlYXJTaXRl
RGF0YVN0YXRlKToKKyAgICAgICAgSW5pdGlhbGl6ZSB0aGUgc3RhdGUuCisKKyAgICAgICAgKFdl
YktpdDo6V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpDbGVhclNpdGVEYXRhU3RhdGU6OmNsZWFy
U2l0ZURhdGFGb3JOZXh0UGx1Z2luKToKKyAgICAgICAgSWYgdGhlIHBsdWctaW4gcXVldWUgaXMg
ZW1wdHksIGNhbGwgZGlkQ2xlYXJTaXRlRGF0YUZvckFsbFBsdWdpbnMuIE90aGVyd2lzZSwgYXNr
CisgICAgICAgIHRoZSBwbHVnLWluIHByb2Nlc3MgbWFuYWdlciB0byBnZXQgc2l0ZXMgZm9yIHRo
ZSBuZXh0IHBsdWctaW4uCisgICAgICAgIAorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5TaXRl
RGF0YU1hbmFnZXI6OkNsZWFyU2l0ZURhdGFTdGF0ZTo6ZGlkQ2xlYXJTaXRlRGF0YUZvclNpbmds
ZVBsdWdpbik6CisgICAgICAgIFVwZGF0ZSB0aGUgc2l0ZXMgc2V0IGFuZCBhc2sgdGhlIG5leHQg
cGx1Zy1pbiB0byBjbGVhciBzaXRlIGRhdGEuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyOjp+V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKToKKyAgICAgICAgQXNz
ZXJ0IHRoYXQgYWxsIG1hcHMgYXJlIGVtcHR5LgorCisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdp
blNpdGVEYXRhTWFuYWdlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIERlbGV0ZSBhbmQgY2xlYXIg
dGhlIHBlbmRpbmcgc3RhdGUgbWFwcy4KKworICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5TaXRl
RGF0YU1hbmFnZXI6OmdldFNpdGVzV2l0aERhdGEpOgorICAgICAgICBJbiB0aGUgRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKSBjYXNlLCBhbGxvY2F0ZSBhIG5ldyBHZXRTaXRlc1dpdGhEYXRhU3RhdGUg
b2JqZWN0IGFuZAorICAgICAgICB0ZWxsIGl0IHRvIGdldCBzaXRlcyBmb3IgdGhlIG5leHQgcGx1
Zy1pbi4gT3RoZXJ3aXNlLCBtYWtlIHN1cmUgdGhhdCB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAg
aXMgYWxpdmUgYmVmb3JlIHNlbmRpbmcgYSBHZXRTaXRlc1dpdGhQbHVnaW5EYXRhIG1lc3NhZ2Uu
CisgICAgICAgIAorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmNs
ZWFyU2l0ZURhdGEpOgorICAgICAgICBJbiB0aGUgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKSBjYXNl
LCBhbGxvY2F0ZSBhIG5ldyBDbGVhclNpdGVEYXRhU3RhdGUgb2JqZWN0IGFuZAorICAgICAgICB0
ZWxsIGl0IHRvIGdldCBzaXRlcyBmb3IgdGhlIG5leHQgcGx1Zy1pbi4gT3RoZXJ3aXNlLCBtYWtl
IHN1cmUgdGhhdCB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaXMgYWxpdmUgYmVmb3JlIHNlbmRp
bmcgYSBDbGVhclBsdWdpblNpdGVEYXRhIG1lc3NhZ2UuCisgICAgICAgIAorICAgICAgICAoV2Vi
S2l0OjpXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmRpZEdldFNpdGVzV2l0aERhdGFGb3JTaW5n
bGVQbHVnaW4pOgorICAgICAgICBDYWxsIGRvd24gdG8gdGhlIEdldFNpdGVzV2l0aERhdGFTdGF0
ZSBvYmplY3QuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpk
aWRHZXRTaXRlc1dpdGhEYXRhRm9yQWxsUGx1Z2lucyk6CisgICAgICAgIEZyZWUgdGhlIEdldFNp
dGVzV2l0aERhdGFTdGF0ZSBvYmplY3QgYW5kIGludm9rZSB0aGUgY2FsbGJhY2suCisKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpkaWRDbGVhclNpdGVEYXRhRm9y
U2luZ2xlUGx1Z2luKToKKyAgICAgICAgQ2FsbCBkb3duIHRvIHRoZSBHZXRTaXRlc1dpdGhEYXRh
U3RhdGUgb2JqZWN0LgorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyOjpkaWRDbGVhclNpdGVEYXRhRm9yQWxsUGx1Z2lucyk6CisgICAgICAgIEZyZWUg
dGhlIEdldFNpdGVzV2l0aERhdGFTdGF0ZSBvYmplY3QgYW5kIGludm9rZSB0aGUgY2FsbGJhY2su
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHQ6OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgIERvbid0IGludmFsaWRhdGUg
dGhlIHBsdWctaW4gc2l0ZSBkYXRhIG1hbmFnZXIgaWYgd2UncmUgdXNpbmcgYSBwbHVnLWluIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJQbHVnaW5TaXRlRGF0YSk6CisgICAgICAgIENhbGwgc2h1
dGRvd25JZlBvc3NpYmxlKCkuCisKIDIwMTEtMDItMTUgIEpvbiBIb25leWN1dHQgIDxqaG9uZXlj
dXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBDb3B5IG92ZXIgbmV3IFdlYktpdCAyIGhlYWRlci4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cAkocmV2aXNpb24gNzg2MzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoUExVR0lOX1BST0NFU1MpCiAKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAtNzIsMTAgKzczLDcgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzOjpyZW1vdmVXZWJQcm9jZXNzQ29ubgogCiAgICAgbV93ZWJQcm9jZXNz
Q29ubmVjdGlvbnMucmVtb3ZlKHZlY3RvckluZGV4KTsKIAotICAgIGlmIChtX3dlYlByb2Nlc3ND
b25uZWN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gU3RhcnQgdGhlIHNodXRkb3duIHRp
bWVyLgotICAgICAgICBtX3NodXRkb3duVGltZXIuc3RhcnRPbmVTaG90KHNodXRkb3duVGltZW91
dCk7Ci0gICAgfQorICAgIHN0YXJ0U2h1dGRvd25UaW1lcklmTmVjZXNzYXJ5KCk7CiB9CiAKIE5l
dHNjYXBlUGx1Z2luTW9kdWxlKiBQbHVnaW5Qcm9jZXNzOjpuZXRzY2FwZVBsdWdpbk1vZHVsZSgp
CkBAIC0xNDYsNiArMTQ0LDQzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vz
c0Nvbm4KICAgICBtX3NodXRkb3duVGltZXIuc3RvcCgpOwogfQogCit2b2lkIFBsdWdpblByb2Nl
c3M6OmdldFNpdGVzV2l0aERhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBWZWN0b3I8
U3RyaW5nPiBzaXRlczsKKyAgICBpZiAoTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG1vZHVsZSA9IG5l
dHNjYXBlUGx1Z2luTW9kdWxlKCkpCisgICAgICAgIHNpdGVzID0gbW9kdWxlLT5zaXRlc1dpdGhE
YXRhKCk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb2Nlc3NQ
cm94eTo6RGlkR2V0U2l0ZXNXaXRoRGF0YShzaXRlcywgY2FsbGJhY2tJRCksIDApOworCisgICAg
c3RhcnRTaHV0ZG93blRpbWVySWZOZWNlc3NhcnkoKTsKK30KKwordm9pZCBQbHVnaW5Qcm9jZXNz
OjpjbGVhclNpdGVEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgZmxh
Z3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAg
ICBpZiAoTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG1vZHVsZSA9IG5ldHNjYXBlUGx1Z2luTW9kdWxl
KCkpIHsKKyAgICAgICAgaWYgKHNpdGVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8gQ2xl
YXIgZXZlcnl0aGluZy4KKyAgICAgICAgICAgIG1vZHVsZS0+Y2xlYXJTaXRlRGF0YShTdHJpbmco
KSwgZmxhZ3MsIG1heEFnZUluU2Vjb25kcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpdGVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAg
ICAgIG1vZHVsZS0+Y2xlYXJTaXRlRGF0YShzaXRlc1tpXSwgZmxhZ3MsIG1heEFnZUluU2Vjb25k
cyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlBsdWdpblByb2Nlc3NQcm94eTo6RGlkQ2xlYXJTaXRlRGF0YShjYWxsYmFja0lEKSwgMCk7CisK
KyAgICBzdGFydFNodXRkb3duVGltZXJJZk5lY2Vzc2FyeSgpOworfQorCit2b2lkIFBsdWdpblBy
b2Nlc3M6OnN0YXJ0U2h1dGRvd25UaW1lcklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIW1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
U3RhcnQgdGhlIHNodXRkb3duIHRpbWVyLgorICAgIG1fc2h1dGRvd25UaW1lci5zdGFydE9uZVNo
b3Qoc2h1dGRvd25UaW1lb3V0KTsKK30KKwogdm9pZCBQbHVnaW5Qcm9jZXNzOjpzaHV0ZG93blRp
bWVyRmlyZWQoKQogewogICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS0+c3RvcCgpOwpJbmRleDogU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgJKHJldmlzaW9uIDc4
NjMyKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNl
aXZlUGx1Z2luUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBpbml0aWFsaXpl
UGx1Z2luUHJvY2Vzcyhjb25zdCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAg
ICAgdm9pZCBjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpOwotICAgIAorICAgIHZvaWQgZ2V0
U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGNsZWFyU2l0ZURh
dGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBmbGFncywgdWludDY0X3Qg
bWF4QWdlSW5TZWNvbmRzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIHZvaWQgc3RhcnRT
aHV0ZG93blRpbWVySWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHNodXRkb3duVGltZXJGaXJlZCgp
OwogCiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgUGx1Z2luUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYpOwpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gNzg2MzIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDE0IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb2Nlc3Mg
ewogICAgICMgVGhlIHBsdWctaW4gcHJvY2VzcyBzZW5kcyBiYWNrIGEgRGlkQ3JlYXRlV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24gbWVzc2FnZSB3aXRoCiAgICAgIyBhIGNvbm5lY3Rpb24gaWRlbnRpZmll
ci4KICAgICBDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpCisKKyAgICAjIEFza3MgdGhlIHBs
dWctaW4gcHJvY2VzcyBmb3Igc2l0ZXMgd2l0aCBkYXRhLiBUaGUgcGx1Zy1pbiBwcm9jZXNzIHNl
bmRzIGJhY2sgYSAKKyAgICAjIERpZEdldFNpdGVzV2l0aERhdGEgbWVzc2FnZSB3aXRoIHRoZSBz
aXRlcy4KKyAgICBHZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisKKyAgICAj
IEFza3MgdGhlIHBsdWctaW4gdG8gY2xlYXIgZGF0YSBmb3IgdGhlIGdpdmVuIHNpdGVzLiBUaGUg
cGx1Zy1pbiBwcm9jZXNzIHNlbmRzIGJhY2sKKyAgICAjIGEgRGlkQ2xlYXJTaXRlRGF0YSBtZXNz
YWdlIHdoZW4gZG9uZS4KKyAgICBDbGVhclNpdGVEYXRhKFZlY3RvcjxXVEY6OlN0cmluZz4gc2l0
ZXMsIHVpbnQ2NF90IGZsYWdzLCB1aW50NjRfdCBtYXhBZ2VJblNlY29uZHMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAkocmV2aXNpb24gNzg2NjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MCw3ICsyNTAsMTAgQEAgdm9pZCBX
ZWJDb250ZXh0Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvYwogCiAgICAgbV9kYXRhYmFzZU1hbmFn
ZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmlu
dmFsaWRhdGUoKTsKKworI2lmICFFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAgICAgbV9wbHVnaW5T
aXRlRGF0YU1hbmFnZXItPmludmFsaWRhdGUoKTsKKyNlbmRpZgogCiAgICAgbV9wcm9jZXNzID0g
MDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24g
Nzg2NjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDAsMTIgKzE0MCwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERhdGFi
YXNlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgZGlyKSB7IG1fb3ZlcnJpZGVEYXRhYmFzZURpcmVj
dG9yeSA9IGRpcjsgfQogCisgICAgdm9pZCBlbnN1cmVXZWJQcm9jZXNzKCk7CisKIHByaXZhdGU6
CiAgICAgV2ViQ29udGV4dChQcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5k
bGVQYXRoKTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlw
ZTsgfQogCi0gICAgdm9pZCBlbnN1cmVXZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAogICAg
IC8vIEhpc3RvcnkgY2xpZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5JbmZvU3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAJKHJldmlzaW9uIDc4NjQ3KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIzLDYgKzEyMywxMyBAQCB2b2lkIFBsdWdpbkluZm9TdG9yZTo6Z2V0UGx1
Z2luUGF0aHMoVmVjCiAgICAgICAgIHBsdWdpblBhdGhzLmFwcGVuZChtX3BsdWdpbnNbaV0ucGF0
aCk7CiB9CiAKK2NvbnN0IFZlY3RvcjxQbHVnaW5JbmZvU3RvcmU6OlBsdWdpbj4mIFBsdWdpbklu
Zm9TdG9yZTo6cGx1Z2lucygpCit7CisgICAgbG9hZFBsdWdpbnNJZk5lY2Vzc2FyeSgpOworCisg
ICAgcmV0dXJuIG1fcGx1Z2luczsKK30KKwogUGx1Z2luSW5mb1N0b3JlOjpQbHVnaW4gUGx1Z2lu
SW5mb1N0b3JlOjpmaW5kUGx1Z2luRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkK
IHsKICAgICBBU1NFUlQoIW1pbWVUeXBlLmlzTnVsbCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oCShyZXZpc2lvbiA3
ODY0NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9y
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAg
IH07CiAKKyAgICBjb25zdCBWZWN0b3I8UGx1Z2luPiYgcGx1Z2lucygpOworCiAgICAgLy8gUmV0
dXJucyB0aGUgaW5mbyBmb3IgYSBwbHVnLWluIHRoYXQgY2FuIGhhbmRsZSB0aGUgZ2l2ZW4gTUlN
RSB0eXBlLgogICAgIC8vIElmIHRoZSBNSU1FIHR5cGUgaXMgbnVsbCwgdGhlIGZpbGUgZXh0ZW5z
aW9uIG9mIHRoZSBnaXZlbiB1cmwgd2lsbCBiZSB1c2VkIHRvIGluZmVyIHRoZQogICAgIC8vIHBs
dWctaW4gdHlwZS4gSW4gdGhhdCBjYXNlLCBtaW1lVHlwZSB3aWxsIGJlIGZpbGxlZCBpbiB3aXRo
IHRoZSByaWdodCBNSU1FIHR5cGUuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCShyZXZpc2lvbiA3
ODYzMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NN
YW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxF
KFBMVUdJTl9QUk9DRVNTKQogCi0jaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTUxLDIwICs1MCw3IEBAIHZvaWQgUGx1Z2luUHJv
Y2Vzc01hbmFnZXI6OmdldFBsdWdpblByb2MKICAgICBBU1NFUlQoIXBsdWdpblBhdGguaXNOdWxs
KCkpOwogCiAgICAgUGx1Z2luSW5mb1N0b3JlOjpQbHVnaW4gcGx1Z2luID0gd2ViUHJvY2Vzc1By
b3h5LT5jb250ZXh0KCktPnBsdWdpbkluZm9TdG9yZSgpLT5pbmZvRm9yUGx1Z2luV2l0aFBhdGgo
cGx1Z2luUGF0aCk7Ci0KLSAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3MgPSAw
OwotICAgIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wbHVnaW5Qcm9jZXNzZXMuc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1fcGx1Z2luUHJvY2Vzc2VzW2ldLT5wbHVnaW5JbmZv
KCkucGF0aCA9PSBwbHVnaW4ucGF0aCkgewotICAgICAgICAgICAgcGx1Z2luUHJvY2VzcyA9IG1f
cGx1Z2luUHJvY2Vzc2VzW2ldOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBpZiAoIXBsdWdpblByb2Nlc3MpIHsKLSAgICAgICAgcGx1Z2luUHJvY2VzcyA9IFBs
dWdpblByb2Nlc3NQcm94eTo6Y3JlYXRlKHRoaXMsIHBsdWdpbikubGVha1B0cigpOwotICAgICAg
ICBtX3BsdWdpblByb2Nlc3Nlcy5hcHBlbmQocGx1Z2luUHJvY2Vzcyk7Ci0gICAgfQorICAgIFBs
dWdpblByb2Nlc3NQcm94eSogcGx1Z2luUHJvY2VzcyA9IGdldE9yQ3JlYXRlUGx1Z2luUHJvY2Vz
cyhwbHVnaW4pOwogCiAgICAgcGx1Z2luUHJvY2Vzcy0+Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24od2ViUHJvY2Vzc1Byb3h5LCByZXBseSk7CiB9CkBAIC03Nyw2ICs2MywzMSBAQCB2b2lkIFBs
dWdpblByb2Nlc3NNYW5hZ2VyOjpyZW1vdmVQbHVnaW5QCiAgICAgbV9wbHVnaW5Qcm9jZXNzZXMu
cmVtb3ZlKHZlY3RvckluZGV4KTsKIH0KIAordm9pZCBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6Z2V0
U2l0ZXNXaXRoRGF0YShjb25zdCBQbHVnaW5JbmZvU3RvcmU6OlBsdWdpbiYgcGx1Z2luLCBXZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXIqIHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKK3sKKyAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3MgPSBn
ZXRPckNyZWF0ZVBsdWdpblByb2Nlc3MocGx1Z2luKTsKKyAgICBwbHVnaW5Qcm9jZXNzLT5nZXRT
aXRlc1dpdGhEYXRhKHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciwgY2FsbGJhY2tJRCk7Cit9CisK
K3ZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OmNsZWFyU2l0ZURhdGEoY29uc3QgUGx1Z2luSW5m
b1N0b3JlOjpQbHVnaW4mIHBsdWdpbiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiB3ZWJQbHVn
aW5TaXRlRGF0YU1hbmFnZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3Qg
ZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sK
KyAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3MgPSBnZXRPckNyZWF0ZVBsdWdp
blByb2Nlc3MocGx1Z2luKTsKKyAgICBwbHVnaW5Qcm9jZXNzLT5jbGVhclNpdGVEYXRhKHdlYlBs
dWdpblNpdGVEYXRhTWFuYWdlciwgc2l0ZXMsIGZsYWdzLCBtYXhBZ2VJblNlY29uZHMsIGNhbGxi
YWNrSUQpOworfQorCitQbHVnaW5Qcm9jZXNzUHJveHkqIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpn
ZXRPckNyZWF0ZVBsdWdpblByb2Nlc3MoY29uc3QgUGx1Z2luSW5mb1N0b3JlOjpQbHVnaW4mIHBs
dWdpbikKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcGx1Z2luUHJvY2Vzc2VzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX3BsdWdpblByb2Nlc3Nlc1tpXS0+cGx1Z2luSW5m
bygpLnBhdGggPT0gcGx1Z2luLnBhdGgpCisgICAgICAgICAgICByZXR1cm4gbV9wbHVnaW5Qcm9j
ZXNzZXNbaV07CisgICAgfQorCisgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KiBwbHVnaW5Qcm9jZXNz
ID0gUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGUodGhpcywgcGx1Z2luKS5sZWFrUHRyKCk7Cisg
ICAgbV9wbHVnaW5Qcm9jZXNzZXMuYXBwZW5kKHBsdWdpblByb2Nlc3MpOworCisgICAgcmV0dXJu
IHBsdWdpblByb2Nlc3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCShyZXZpc2lvbiA3ODYz
MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5h
Z2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShQTFVH
SU5fUFJPQ0VTUykKIAorI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtNDAsNiArNDEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
UGx1Z2luUHJvY2Vzc1Byb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworY2xhc3MgV2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyOwogCiBjbGFzcyBQbHVnaW5Qcm9jZXNzTWFuYWdlciB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGx1Z2luUHJvY2Vzc01hbmFnZXIpOwpAQCAtNDksOSArNTEs
MTQgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3Qg
U3RyaW5nJiBwbHVnaW5QYXRoLCBXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqIHJlcGx5KTsKICAgICB2b2lkIHJlbW92ZVBsdWdpblByb2Nlc3NQcm94eShQbHVnaW5Q
cm9jZXNzUHJveHkqKTsKIAorICAgIHZvaWQgZ2V0U2l0ZXNXaXRoRGF0YShjb25zdCBQbHVnaW5J
bmZvU3RvcmU6OlBsdWdpbiYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciosIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOworICAgIHZvaWQgY2xlYXJTaXRlRGF0YShjb25zdCBQbHVnaW5JbmZvU3RvcmU6
OlBsdWdpbiYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciosIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzaXRlcywgdWludDY0X3QgZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CisKIHByaXZhdGU6CiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXIoKTsK
IAorICAgIFBsdWdpblByb2Nlc3NQcm94eSogZ2V0T3JDcmVhdGVQbHVnaW5Qcm9jZXNzKGNvbnN0
IFBsdWdpbkluZm9TdG9yZTo6UGx1Z2luJik7CisKICAgICBWZWN0b3I8UGx1Z2luUHJvY2Vzc1By
b3h5Kj4gbV9wbHVnaW5Qcm9jZXNzZXM7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHJldmlz
aW9uIDc4NjMyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC04MCw2ICs4MSwzOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6Y3JlYXRlV2Vi
UHJvY2VzCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzOjpD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwLCBDb3JlSVBDOjpEaXNwYXRjaE1lc3NhZ2VF
dmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQogCit2b2lkIFBsdWdpblByb2Nlc3NQcm94
eTo6Z2V0U2l0ZXNXaXRoRGF0YShXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIHdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlciwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBBU1NFUlQoIW1fcGVu
ZGluZ0dldFNpdGVzUmVwbGllcy5jb250YWlucyhjYWxsYmFja0lEKSk7CisgICAgbV9wZW5kaW5n
R2V0U2l0ZXNSZXBsaWVzLnNldChjYWxsYmFja0lELCB3ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIp
OworCisgICAgaWYgKG1fcHJvY2Vzc0xhdW5jaGVyLT5pc0xhdW5jaGluZygpKSB7CisgICAgICAg
IG1fcGVuZGluZ0dldFNpdGVzUmVxdWVzdHMuYXBwZW5kKGNhbGxiYWNrSUQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gQXNrIHRoZSBwbHVnLWluIHByb2Nlc3MgZm9yIHRoZSBz
aXRlcyB3aXRoIGRhdGEuCisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Q
cm9jZXNzOjpHZXRTaXRlc1dpdGhEYXRhKGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBQbHVn
aW5Qcm9jZXNzUHJveHk6OmNsZWFyU2l0ZURhdGEoV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiB3
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWlu
dDY0X3QgZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3QgY2FsbGJhY2tJ
RCkKK3sKKyAgICBBU1NFUlQoIW1fcGVuZGluZ0NsZWFyU2l0ZURhdGFSZXBsaWVzLmNvbnRhaW5z
KGNhbGxiYWNrSUQpKTsKKyAgICBtX3BlbmRpbmdDbGVhclNpdGVEYXRhUmVwbGllcy5zZXQoY2Fs
bGJhY2tJRCwgd2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKTsKKworICAgIGlmIChtX3Byb2Nlc3NM
YXVuY2hlci0+aXNMYXVuY2hpbmcoKSkgeworICAgICAgICBDbGVhclNpdGVEYXRhUmVxdWVzdCBy
ZXF1ZXN0OworICAgICAgICByZXF1ZXN0LnNpdGVzID0gc2l0ZXM7CisgICAgICAgIHJlcXVlc3Qu
ZmxhZ3MgPSBmbGFnczsKKyAgICAgICAgcmVxdWVzdC5tYXhBZ2VJblNlY29uZHMgPSBtYXhBZ2VJ
blNlY29uZHM7CisgICAgICAgIHJlcXVlc3QuY2FsbGJhY2tJRCA9IGNhbGxiYWNrSUQ7CisgICAg
ICAgIG1fcGVuZGluZ0NsZWFyU2l0ZURhdGFSZXF1ZXN0cy5hcHBlbmQocmVxdWVzdCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBBc2sgdGhlIHBsdWctaW4gcHJvY2VzcyB0byBj
bGVhciB0aGUgc2l0ZSBkYXRhLgorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UGx1
Z2luUHJvY2Vzczo6Q2xlYXJTaXRlRGF0YShzaXRlcywgZmxhZ3MsIG1heEFnZUluU2Vjb25kcywg
Y2FsbGJhY2tJRCksIDApOworfQorCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGx1Z2luUHJv
Y2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKIHsKICAgICAvLyBUaGUgcGx1Zy1pbiBwcm9j
ZXNzIG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc2VuZCBhbnkgcGVuZGluZyBzeW5jIHJl
cGxpZXMgd2UgbWlnaHQgaGF2ZS4KQEAgLTkzLDYgKzEyNywxMiBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyCiAgICAgICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5LT5j
b25uZWN0aW9uKCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwogICAgIH0KIAorICAgIHdoaWxlICgh
bV9wZW5kaW5nR2V0U2l0ZXNSZXBsaWVzLmlzRW1wdHkoKSkKKyAgICAgICAgZGlkR2V0U2l0ZXNX
aXRoRGF0YShWZWN0b3I8U3RyaW5nPigpLCBtX3BlbmRpbmdHZXRTaXRlc1JlcGxpZXMuYmVnaW4o
KS0+Zmlyc3QpOworCisgICAgd2hpbGUgKCFtX3BlbmRpbmdDbGVhclNpdGVEYXRhUmVwbGllcy5p
c0VtcHR5KCkpCisgICAgICAgIGRpZENsZWFyU2l0ZURhdGEobV9wZW5kaW5nQ2xlYXJTaXRlRGF0
YVJlcGxpZXMuYmVnaW4oKS0+Zmlyc3QpOworCiAgICAgLy8gVGVsbCB0aGUgcGx1Zy1pbiBwcm9j
ZXNzIG1hbmFnZXIgdG8gZm9yZ2V0IGFib3V0IHRoaXMgcGx1Zy1pbiBwcm9jZXNzIHByb3h5Lgog
ICAgIG1fcGx1Z2luUHJvY2Vzc01hbmFnZXItPnJlbW92ZVBsdWdpblByb2Nlc3NQcm94eSh0aGlz
KTsKICAgICBkZWxldGUgdGhpczsKQEAgLTEzNCw2ICsxNzQsMTYgQEAgdm9pZCBQbHVnaW5Qcm9j
ZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaAogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UGx1Z2luUHJvY2Vzczo6SW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MocGFyYW1ldGVycyksIDAp
OwogCiAgICAgLy8gU2VuZCBhbGwgb3VyIHBlbmRpbmcgcmVxdWVzdHMuCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX3BlbmRpbmdHZXRTaXRlc1JlcXVlc3RzLnNpemUoKTsgKytpKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb2Nlc3M6OkdldFNpdGVz
V2l0aERhdGEobV9wZW5kaW5nR2V0U2l0ZXNSZXF1ZXN0c1tpXSksIDApOworICAgIG1fcGVuZGlu
Z0dldFNpdGVzUmVxdWVzdHMuY2xlYXIoKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9wZW5kaW5nQ2xlYXJTaXRlRGF0YVJlcXVlc3RzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNv
bnN0IENsZWFyU2l0ZURhdGFSZXF1ZXN0JiByZXF1ZXN0ID0gbV9wZW5kaW5nQ2xlYXJTaXRlRGF0
YVJlcXVlc3RzW2ldOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlBsdWdp
blByb2Nlc3M6OkNsZWFyU2l0ZURhdGEocmVxdWVzdC5zaXRlcywgcmVxdWVzdC5mbGFncywgcmVx
dWVzdC5tYXhBZ2VJblNlY29uZHMsIHJlcXVlc3QuY2FsbGJhY2tJRCksIDApOworICAgIH0KKyAg
ICBtX3BlbmRpbmdDbGVhclNpdGVEYXRhUmVxdWVzdHMuY2xlYXIoKTsKKwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7ICsraSkKICAg
ICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzOjpDcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwKTsKICAgICAKQEAgLTE1NCw2ICsyMDQsMjIgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlBybwogICAgIHJlcGx5V2ViUHJvY2Vz
c1Byb3h5LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwogfQogCit2b2lkIFBs
dWdpblByb2Nlc3NQcm94eTo6ZGlkR2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRyPFdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlcj4gd2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyID0gbV9wZW5kaW5nR2V0U2l0
ZXNSZXBsaWVzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKHdlYlBsdWdpblNpdGVEYXRh
TWFuYWdlcik7CisKKyAgICB3ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXItPmRpZEdldFNpdGVzV2l0
aERhdGFGb3JTaW5nbGVQbHVnaW4oc2l0ZXMsIGNhbGxiYWNrSUQpOworfQorCit2b2lkIFBsdWdp
blByb2Nlc3NQcm94eTo6ZGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQorewor
ICAgIFJlZlB0cjxXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI+IHdlYlBsdWdpblNpdGVEYXRhTWFu
YWdlciA9IG1fcGVuZGluZ0NsZWFyU2l0ZURhdGFSZXBsaWVzLnRha2UoY2FsbGJhY2tJRCk7Cisg
ICAgQVNTRVJUKHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcik7CisgICAgCisgICAgd2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLT5kaWRDbGVhclNpdGVEYXRhRm9yU2luZ2xlUGx1Z2luKGNhbGxiYWNr
SUQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShQTFVH
SU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCShyZXZpc2lvbiA3ODYzMikKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBQbHVnaW5Qcm9jZXNzTWFuYWdlcjsKK2NsYXNzIFdlYlBsdWdpblNpdGVE
YXRhTWFuYWdlcjsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIHN0cnVjdCBQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOwogCkBAIC01NCw3ICs1NSwxMyBAQCBwdWJsaWM6CiAgICAgLy8g
QXNrcyB0aGUgcGx1Zy1pbiBwcm9jZXNzIHRvIGNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEg
d2ViIHByb2Nlc3MuIFRoZSBjb25uZWN0aW9uIGlkZW50aWZpZXIgd2lsbCBiZSAKICAgICAvLyBl
bmNvZGVkIGluIHRoZSBnaXZlbiBhcmd1bWVudCBlbmNvZGVyIGFuZCBzZW50IGJhY2sgdG8gdGhl
IGNvbm5lY3Rpb24gb2YgdGhlIGdpdmVuIHdlYiBwcm9jZXNzLgogICAgIHZvaWQgY3JlYXRlV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiByZXBseSk7Ci0gICAgCisKKyAgICAvLyBBc2tzIHRoZSBwbHVnLWluIHByb2Nlc3MgdG8g
Z2V0IGEgbGlzdCBvZiBkb21haW5zIGZvciB3aGljaCB0aGUgcGx1Zy1pbiBoYXMgZGF0YSBzdG9y
ZWQuCisgICAgdm9pZCBnZXRTaXRlc1dpdGhEYXRhKFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcios
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOworCisgICAgLy8gQXNrcyB0aGUgcGx1Zy1pbiBwcm9jZXNz
IHRvIGNsZWFyIHRoZSBkYXRhIGZvciB0aGUgZ2l2ZW4gc2l0ZXMuCisgICAgdm9pZCBjbGVhclNp
dGVEYXRhKFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBz
aXRlcywgdWludDY0X3QgZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3Qg
Y2FsbGJhY2tJRCk7CisKIHByaXZhdGU6CiAgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KFBsdWdpblBy
b2Nlc3NNYW5hZ2VyKiwgY29uc3QgUGx1Z2luSW5mb1N0b3JlOjpQbHVnaW4mKTsKIApAQCAtNzEs
NiArNzgsOCBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRp
ZFJlY2VpdmVQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQg
ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmKTsK
KyAgICB2b2lkIGRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVz
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRpZENsZWFyU2l0ZURhdGEodWludDY0
X3QgY2FsbGJhY2tJRCk7CiAKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nl
c3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycyk7CiAKQEAgLTg4
LDEwICs5NywyMSBAQCBwcml2YXRlOgogCiAgICAgRGVxdWU8c3RkOjpwYWlyPFJlZlB0cjxXZWJQ
cm9jZXNzUHJveHk+LCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqPiA+IG1fcGVuZGluZ0Nvbm5l
Y3Rpb25SZXBsaWVzOwogCisgICAgVmVjdG9yPHVpbnQ2NF90PiBtX3BlbmRpbmdHZXRTaXRlc1Jl
cXVlc3RzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXI+ID4gbV9wZW5kaW5nR2V0U2l0ZXNSZXBsaWVzOworCisgICAgc3RydWN0IENsZWFyU2l0
ZURhdGFSZXF1ZXN0IHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gc2l0ZXM7CisgICAgICAgIHVp
bnQ2NF90IGZsYWdzOworICAgICAgICB1aW50NjRfdCBtYXhBZ2VJblNlY29uZHM7CisgICAgICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQ7CisgICAgfTsKKyAgICBWZWN0b3I8Q2xlYXJTaXRlRGF0YVJl
cXVlc3Q+IG1fcGVuZGluZ0NsZWFyU2l0ZURhdGFSZXF1ZXN0czsKKyAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyPiA+IG1fcGVuZGluZ0NsZWFyU2l0
ZURhdGFSZXBsaWVzOworCiAgICAgLy8gSWYgY3JlYXRlUGx1Z2luQ29ubmVjdGlvbiBpcyBjYWxs
ZWQgd2hpbGUgdGhlIHByb2Nlc3MgaXMgc3RpbGwgbGF1bmNoaW5nIHdlJ2xsIGtlZXAgY291bnQg
b2YgaXQgYW5kIHNlbmQgYSBidW5jaCBvZiByZXF1ZXN0cwogICAgIC8vIHdoZW4gdGhlIHByb2Nl
c3MgZmluaXNoZXMgbGF1bmNoaW5nLgogICAgIHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nvbm5lY3Rp
b25SZXF1ZXN0czsKLSAgIAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA3ODYzMikKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29y
a2luZyBjb3B5KQpAQCAtMjUsNiArMjUsOSBAQAogbWVzc2FnZXMgLT4gUGx1Z2luUHJvY2Vzc1By
b3h5IHsKICAgICAjIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmljCiAgICAgRGlkQ3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oQ29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbklkZW50
aWZpZXIpCisKKyAgICBEaWRHZXRTaXRlc1dpdGhEYXRhKFZlY3RvcjxXVEY6OlN0cmluZz4gc2l0
ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgRGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBj
YWxsYmFja0lEKQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAko
cmV2aXNpb24gNzg2NjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9XZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJJbW11
dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogCkBAIC0z
NCw2ICszNSw4MyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCitjbGFzcyBXZWJQbHVnaW5TaXRlRGF0
YU1hbmFnZXI6OkdldFNpdGVzV2l0aERhdGFTdGF0ZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
R2V0U2l0ZXNXaXRoRGF0YVN0YXRlKFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciogd2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgICAgICA6IG1fd2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyKHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcikKKyAgICAgICAgLCBt
X2NhbGxiYWNrSUQoY2FsbGJhY2tJRCkKKyAgICAgICAgLCBtX3BsdWdpbnMod2ViUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyLT5tX3dlYkNvbnRleHQtPnBsdWdpbkluZm9TdG9yZSgpLT5wbHVnaW5zKCkp
CisgICAgeworICAgIH0KKworICAgIHZvaWQgZ2V0U2l0ZXNXaXRoRGF0YUZvck5leHRQbHVnaW4o
KQorICAgIHsKKyAgICAgICAgaWYgKG1fcGx1Z2lucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IHNpdGVzOworICAgICAgICAgICAgY29weVRvVmVjdG9yKG1fc2l0ZXMs
IHNpdGVzKTsKKworICAgICAgICAgICAgbV93ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXItPmRpZEdl
dFNpdGVzV2l0aERhdGFGb3JBbGxQbHVnaW5zKHNpdGVzLCBtX2NhbGxiYWNrSUQpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6
OnNoYXJlZCgpLmdldFNpdGVzV2l0aERhdGEobV9wbHVnaW5zLmxhc3QoKSwgbV93ZWJQbHVnaW5T
aXRlRGF0YU1hbmFnZXIsIG1fY2FsbGJhY2tJRCk7CisgICAgICAgIG1fcGx1Z2lucy5yZW1vdmVM
YXN0KCk7CisgICAgfQorCisgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhRm9yU2luZ2xlUGx1
Z2luKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcykKKyAgICB7CisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l0ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBtX3NpdGVzLmFk
ZChzaXRlc1tpXSk7CisKKyAgICAgICAgZ2V0U2l0ZXNXaXRoRGF0YUZvck5leHRQbHVnaW4oKTsK
KyAgICB9CisgICAgCitwcml2YXRlOgorICAgIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciogbV93
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CisgICAgdWludDY0X3QgbV9jYWxsYmFja0lEOworICAg
IFZlY3RvcjxQbHVnaW5JbmZvU3RvcmU6OlBsdWdpbj4gbV9wbHVnaW5zOworICAgIEhhc2hTZXQ8
U3RyaW5nPiBtX3NpdGVzOworfTsKKworY2xhc3MgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpD
bGVhclNpdGVEYXRhU3RhdGUgeworcHVibGljOgorICAgIGV4cGxpY2l0IENsZWFyU2l0ZURhdGFT
dGF0ZShXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBmbGFncywgdWludDY0X3QgbWF4
QWdlSW5TZWNvbmRzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgICAgICA6IG1fd2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyKHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcikKKyAgICAgICAgLCBtX3Np
dGVzKHNpdGVzKQorICAgICAgICAsIG1fZmxhZ3MoZmxhZ3MpCisgICAgICAgICwgbV9tYXhBZ2VJ
blNlY29uZHMobWF4QWdlSW5TZWNvbmRzKQorICAgICAgICAsIG1fY2FsbGJhY2tJRChjYWxsYmFj
a0lEKQorICAgICAgICAsIG1fcGx1Z2lucyh3ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXItPm1fd2Vi
Q29udGV4dC0+cGx1Z2luSW5mb1N0b3JlKCktPnBsdWdpbnMoKSkKKyAgICB7CisgICAgfQorCisg
ICAgdm9pZCBjbGVhclNpdGVEYXRhRm9yTmV4dFBsdWdpbigpCisgICAgeworICAgICAgICBpZiAo
bV9wbHVnaW5zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgbV93ZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXItPmRpZENsZWFyU2l0ZURhdGFGb3JBbGxQbHVnaW5zKG1fY2FsbGJhY2tJRCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBQbHVnaW5Qcm9jZXNzTWFuYWdl
cjo6c2hhcmVkKCkuY2xlYXJTaXRlRGF0YShtX3BsdWdpbnMubGFzdCgpLCBtX3dlYlBsdWdpblNp
dGVEYXRhTWFuYWdlciwgbV9zaXRlcywgbV9mbGFncywgbV9tYXhBZ2VJblNlY29uZHMsIG1fY2Fs
bGJhY2tJRCk7CisgICAgICAgIG1fcGx1Z2lucy5yZW1vdmVMYXN0KCk7CisgICAgfQorCisgICAg
dm9pZCBkaWRDbGVhclNpdGVEYXRhRm9yU2luZ2xlUGx1Z2luKCkKKyAgICB7CisgICAgICAgIGNs
ZWFyU2l0ZURhdGFGb3JOZXh0UGx1Z2luKCk7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIG1fd2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOworICAg
IFZlY3RvcjxTdHJpbmc+IG1fc2l0ZXM7CisgICAgdWludDY0X3QgbV9mbGFnczsKKyAgICB1aW50
NjRfdCBtX21heEFnZUluU2Vjb25kczsKKyAgICB1aW50NjRfdCBtX2NhbGxiYWNrSUQ7CisgICAg
VmVjdG9yPFBsdWdpbkluZm9TdG9yZTo6UGx1Z2luPiBtX3BsdWdpbnM7Cit9OworI2VuZGlmIC8v
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKwogUGFzc1JlZlB0cjxXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXI+IFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6Y3JlYXRlKFdlYkNvbnRleHQqIHdlYkNv
bnRleHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQbHVnaW5TaXRlRGF0YU1hbmFn
ZXIod2ViQ29udGV4dCkpOwpAQCAtNDYsMTEgKzEyNCwyNCBAQCBXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXI6OldlYlBsdWdpblNpdGVECiAKIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6fldlYlBs
dWdpblNpdGVEYXRhTWFuYWdlcigpCiB7CisgICAgQVNTRVJUKG1fYXJyYXlDYWxsYmFja3MuaXNF
bXB0eSgpKTsKKyAgICBBU1NFUlQobV92b2lkQ2FsbGJhY2tzLmlzRW1wdHkoKSk7CisjaWYgRU5B
QkxFKFBMVUdJTl9QUk9DRVNTKQorICAgIEFTU0VSVChtX3BlbmRpbmdHZXRTaXRlc1dpdGhEYXRh
LmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0NsZWFyU2l0ZURhdGEuaXNFbXB0eSgp
KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6aW52YWxpZGF0
ZSgpCiB7CiAgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOworCisj
aWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3BlbmRpbmdH
ZXRTaXRlc1dpdGhEYXRhKTsKKyAgICBtX3BlbmRpbmdHZXRTaXRlc1dpdGhEYXRhLmNsZWFyKCk7
CisgICAgZGVsZXRlQWxsVmFsdWVzKG1fcGVuZGluZ0NsZWFyU2l0ZURhdGEpOworICAgIG1fcGVu
ZGluZ0NsZWFyU2l0ZURhdGEuY2xlYXIoKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlcjo6Z2V0U2l0ZXNXaXRoRGF0YShQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+
IHBycENhbGxiYWNrKQpAQCAtNjEsMjAgKzE1MiwyNiBAQCB2b2lkIFdlYlBsdWdpblNpdGVEYXRh
TWFuYWdlcjo6Z2V0U2l0ZXNXCiAgICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgICAgIAorCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9
IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJh
Y2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKwogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykK
LSAgICAvLyBGSVhNRTogSW1wbGVtZW50LgotICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7Cisg
ICAgQVNTRVJUKCFtX3BlbmRpbmdHZXRTaXRlc1dpdGhEYXRhLmNvbnRhaW5zKGNhbGxiYWNrSUQp
KTsKKworICAgIEdldFNpdGVzV2l0aERhdGFTdGF0ZSogc3RhdGUgPSBuZXcgR2V0U2l0ZXNXaXRo
RGF0YVN0YXRlKHRoaXMsIGNhbGxiYWNrSUQpOworICAgIG1fcGVuZGluZ0dldFNpdGVzV2l0aERh
dGEuc2V0KGNhbGxiYWNrSUQsIHN0YXRlKTsKKyAgICBzdGF0ZS0+Z2V0U2l0ZXNXaXRoRGF0YUZv
ck5leHRQbHVnaW4oKTsKICNlbHNlCiAgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJv
Y2VzcygpKSB7CisgICAgICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJy
YXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKICAgICAgICAgY2FsbGJhY2stPmludmFsaWRh
dGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
Y2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFj
a0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gcGx1Z2luUGF0
aHM7CiAgICAgbV93ZWJDb250ZXh0LT5wbHVnaW5JbmZvU3RvcmUoKS0+Z2V0UGx1Z2luUGF0aHMo
cGx1Z2luUGF0aHMpOworICAgIG1fd2ViQ29udGV4dC0+ZW5zdXJlV2ViUHJvY2VzcygpOyAgICAK
ICAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
R2V0U2l0ZXNXaXRoUGx1Z2luRGF0YShwbHVnaW5QYXRocywgY2FsbGJhY2tJRCksIDApOwogI2Vu
ZGlmCiB9CkBAIC0xMDQsMzMgKzIwMSw0MCBAQCB2b2lkIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdl
cjo6Y2xlYXJTaXRlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBWZWN0b3I8U3RyaW5n
PiBzaXRlc1ZlY3RvcjsKKwogICAgIC8vIElmIHRoZSBhcnJheSBpcyBlbXB0eSwgZG9uJ3QgZG8g
YW55dGhpbmcuCi0gICAgaWYgKHNpdGVzICYmICFzaXRlcy0+c2l6ZSgpKSB7Ci0gICAgICAgIGNh
bGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChzaXRl
cykgeworICAgICAgICBpZiAoIXNpdGVzLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNr
LT5wZXJmb3JtQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l0ZXMtPnNpemUoKTsgKytpKSB7CisgICAg
ICAgICAgICBpZiAoV2ViU3RyaW5nKiBzaXRlID0gc2l0ZXMtPmF0PFdlYlN0cmluZz4oaSkpCisg
ICAgICAgICAgICAgICAgc2l0ZXNWZWN0b3IuYXBwZW5kKHNpdGUtPnN0cmluZygpKTsKKyAgICAg
ICAgfQogICAgIH0KIAorICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJh
Y2tJRCgpOworICAgIG1fdm9pZENhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVs
ZWFzZSgpKTsKKwogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLSAgICAvLyBGSVhNRTogSW1w
bGVtZW50LgotICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgQVNTRVJUKCFtX3BlbmRp
bmdDbGVhclNpdGVEYXRhLmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKworICAgIENsZWFyU2l0ZURh
dGFTdGF0ZSogc3RhdGUgPSBuZXcgQ2xlYXJTaXRlRGF0YVN0YXRlKHRoaXMsIHNpdGVzVmVjdG9y
LCBmbGFncywgbWF4QWdlSW5TZWNvbmRzLCBjYWxsYmFja0lEKTsKKyAgICBtX3BlbmRpbmdDbGVh
clNpdGVEYXRhLnNldChjYWxsYmFja0lELCBzdGF0ZSk7CisgICAgc3RhdGUtPmNsZWFyU2l0ZURh
dGFGb3JOZXh0UGx1Z2luKCk7CiAjZWxzZQorCiAgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1Zh
bGlkUHJvY2VzcygpKSB7CisgICAgICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0g
bV92b2lkQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CiAgICAgICAgIGNhbGxiYWNrLT5pbnZh
bGlkYXRlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV92b2lkQ2FsbGJhY2tzLnNldChjYWxs
YmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gc2l0ZXNW
ZWN0b3I7Ci0gICAgaWYgKHNpdGVzKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l0ZXMtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoV2ViU3RyaW5nKiBzaXRlID0g
c2l0ZXMtPmF0PFdlYlN0cmluZz4oaSkpCi0gICAgICAgICAgICAgICAgc2l0ZXNWZWN0b3IuYXBw
ZW5kKHNpdGUtPnN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIFZlY3RvcjxTdHJp
bmc+IHBsdWdpblBhdGhzOwogICAgIG1fd2ViQ29udGV4dC0+cGx1Z2luSW5mb1N0b3JlKCktPmdl
dFBsdWdpblBhdGhzKHBsdWdpblBhdGhzKTsKKyAgICBtX3dlYkNvbnRleHQtPmVuc3VyZVdlYlBy
b2Nlc3MoKTsgICAgCiAgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OkNsZWFyUGx1Z2luU2l0ZURhdGEocGx1Z2luUGF0aHMsIHNpdGVzVmVjdG9y
LCBmbGFncywgbWF4QWdlSW5TZWNvbmRzLCBjYWxsYmFja0lEKSwgMCk7CiAjZW5kaWYKIH0KQEAg
LTE0Niw1ICsyNTAsNDAgQEAgdm9pZCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmRpZENsZWFy
UwogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKIH0KIAorI2lmIEVOQUJMRShQTFVH
SU5fUFJPQ0VTUykKK3ZvaWQgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpkaWRHZXRTaXRlc1dp
dGhEYXRhRm9yU2luZ2xlUGx1Z2luKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBHZXRTaXRlc1dpdGhEYXRhU3RhdGUqIHN0YXRlID0gbV9w
ZW5kaW5nR2V0U2l0ZXNXaXRoRGF0YS5nZXQoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKHN0YXRl
KTsKKworICAgIHN0YXRlLT5kaWRHZXRTaXRlc1dpdGhEYXRhRm9yU2luZ2xlUGx1Z2luKHNpdGVz
KTsKK30KKwordm9pZCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmRpZEdldFNpdGVzV2l0aERh
dGFGb3JBbGxQbHVnaW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKK3sKKyAgICBPd25QdHI8R2V0U2l0ZXNXaXRoRGF0YVN0YXRlPiBzdGF0ZSA9IGFk
b3B0UHRyKG1fcGVuZGluZ0dldFNpdGVzV2l0aERhdGEudGFrZShjYWxsYmFja0lEKSk7CisgICAg
QVNTRVJUKHN0YXRlKTsKKworICAgIGRpZEdldFNpdGVzV2l0aERhdGEoc2l0ZXMsIGNhbGxiYWNr
SUQpOworfQorCit2b2lkIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6ZGlkQ2xlYXJTaXRlRGF0
YUZvclNpbmdsZVBsdWdpbih1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIENsZWFyU2l0ZURh
dGFTdGF0ZSogc3RhdGUgPSBtX3BlbmRpbmdDbGVhclNpdGVEYXRhLmdldChjYWxsYmFja0lEKTsK
KyAgICBBU1NFUlQoc3RhdGUpOworICAgIAorICAgIHN0YXRlLT5kaWRDbGVhclNpdGVEYXRhRm9y
U2luZ2xlUGx1Z2luKCk7Cit9CisKK3ZvaWQgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpkaWRD
bGVhclNpdGVEYXRhRm9yQWxsUGx1Z2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIE93
blB0cjxDbGVhclNpdGVEYXRhU3RhdGU+IHN0YXRlID0gYWRvcHRQdHIobV9wZW5kaW5nQ2xlYXJT
aXRlRGF0YS50YWtlKGNhbGxiYWNrSUQpKTsKKyAgICBBU1NFUlQoc3RhdGUpOworCisgICAgZGlk
Q2xlYXJTaXRlRGF0YShjYWxsYmFja0lEKTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVn
aW5TaXRlRGF0YU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaAkocmV2aXNpb24gNzg2NjMpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFn
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
Y2xlYXJTaXRlRGF0YShJbW11dGFibGVBcnJheSogc2l0ZXMsIHVpbnQ2NF90IGZsYWdzLCB1aW50
NjRfdCBtYXhBZ2VJblNlY29uZHMsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAgICAgdm9p
ZCBkaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCisjaWYgRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKQorICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRoRGF0YUZvclNpbmdsZVBsdWdp
bihjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAg
IHZvaWQgZGlkQ2xlYXJTaXRlRGF0YUZvclNpbmdsZVBsdWdpbih1aW50NjRfdCBjYWxsYmFja0lE
KTsgICAgCisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJQbHVnaW5TaXRlRGF0
YU1hbmFnZXIoV2ViQ29udGV4dCopOwogCkBAIC02Miw2ICs2NywxNyBAQCBwcml2YXRlOgogICAg
IFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gbV92b2lkQ2FsbGJhY2tzOworCisjaWYgRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKQorICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRoRGF0YUZvckFsbFBsdWdpbnMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2
b2lkIGRpZENsZWFyU2l0ZURhdGFGb3JBbGxQbHVnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwor
CisgICAgY2xhc3MgR2V0U2l0ZXNXaXRoRGF0YVN0YXRlOworICAgIEhhc2hNYXA8dWludDY0X3Qs
IEdldFNpdGVzV2l0aERhdGFTdGF0ZSo+IG1fcGVuZGluZ0dldFNpdGVzV2l0aERhdGE7CisKKyAg
ICBjbGFzcyBDbGVhclNpdGVEYXRhU3RhdGU7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgQ2xlYXJT
aXRlRGF0YVN0YXRlKj4gbV9wZW5kaW5nQ2xlYXJTaXRlRGF0YTsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAJKHJldmlzaW9uIDc4NjYzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU4LDYgKzY1OCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6Z2V0U2l0ZXNXaXRoUGx1Z2luRGF0YSgKICAgICBjb3B5VG9WZWN0b3Ioc2l0ZXNT
ZXQsIHNpdGVzKTsKIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4
dDo6RGlkR2V0U2l0ZXNXaXRoUGx1Z2luRGF0YShzaXRlcywgY2FsbGJhY2tJRCksIDApOworICAg
IHNodXRkb3duSWZQb3NzaWJsZSgpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUGx1Z2lu
U2l0ZURhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBsdWdpblBhdGhzLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGZsYWdzLCB1aW50NjRfdCBtYXhBZ2VJblNlY29uZHMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC02NzgsNiArNjc5LDcgQEAgdm9pZCBXZWJQcm9jZXNz
OjpjbGVhclBsdWdpblNpdGVEYXRhKGNvbgogICAgIH0KIAogICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6V2ViQ29udGV4dDo6RGlkQ2xlYXJQbHVnaW5TaXRlRGF0YShjYWxsYmFja0lE
KSwgMCk7CisgICAgc2h1dGRvd25JZlBvc3NpYmxlKCk7CiB9CiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="74253"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>