<?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>173142</bug_id>
          
          <creation_ts>2017-06-09 02:23:27 -0700</creation_ts>
          <short_desc>[GTK] Remove WKInspectorClientGtk</short_desc>
          <delta_ts>2017-06-11 23:05:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1317308</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-09 02:23:27 -0700</bug_when>
    <thetext>It&apos;s only used internally in GTk+ API, we can simplify it by using a C++ client instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317310</commentid>
    <comment_count>1</comment_count>
      <attachid>312414</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-09 02:26:38 -0700</bug_when>
    <thetext>Created attachment 312414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317965</commentid>
    <comment_count>2</comment_count>
      <attachid>312590</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-10 23:32:42 -0700</bug_when>
    <thetext>Created attachment 312590
Rebased patch

It should apply now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318119</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-11 23:05:39 -0700</bug_when>
    <thetext>Committed r218089: &lt;http://trac.webkit.org/changeset/218089&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312414</attachid>
            <date>2017-06-09 02:26:38 -0700</date>
            <delta_ts>2017-06-10 23:32:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-inspector-client.diff</filename>
            <type>text/plain</type>
            <size>26883</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiM2Q2NjFjZGQwYy4uNDM1MTgzYjdkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNyBAQAogMjAxNy0wNi0wOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW0dUS10gUmVtb3ZlIFdLSW5zcGVjdG9yQ2xpZW50R3RrCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMxNDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIG9ubHkg
dXNlZCBpbnRlcm5hbGx5IGluIEdUaysgQVBJLCB3ZSBjYW4gc2ltcGxpZnkgaXQgYnkgdXNpbmcg
YSBDKysgY2xpZW50IGluc3RlYWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3Rr
Lmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHA6Cisg
ICAgICAgIChfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZTo6fl9XZWJLaXRXZWJJbnNwZWN0b3JQ
cml2YXRlKToKKyAgICAgICAgKHdlYmtpdFdlYkluc3BlY3RvckNyZWF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNs
aWVudEd0ay5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0
b3JQcm94eUNsaWVudC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYklu
c3BlY3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6
OnNldENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJ
bnNwZWN0b3JXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1EaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybUJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1BdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1EZXRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlD
aGFuZ2VkKToKKworMjAxNy0wNi0wOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKICAgICAgICAgW0dUS10gUmVtb3ZlIFdLRnVsbFNjcmVlbkNsaWVudEd0awog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMTQwCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZDJjNTZhYmYzZGYuLjg1YjE5MDEwYmMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTA5LDcgKzEwOSw2IEBAIGxpc3QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJvL1dLSWNvbkRhdGFi
YXNlQ2Fpcm8uY3BwCiAKLSAgICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50
R3RrLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tUZXh0Q2hlY2tlckd0ay5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHAKIApAQCAtMzM2LDcgKzMzNSw2IEBAIGxp
c3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBv
c2l0b3IuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKICAgICBV
SVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCi0gICAgVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0
b3JQcm94eUd0ay5jcHAKICAgICBVSVByb2Nlc3MvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5j
cHAKICAgICBVSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0
ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5NTIzOTQwNmIzLi4wMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9y
Q2xpZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIldLSW5zcGVjdG9yQ2xpZW50R3RrLmgiCi0KLSNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwotCi12b2lkIFdLSW5zcGVjdG9yU2V0SW5zcGVjdG9yQ2xpZW50R3RrKFdLSW5zcGVj
dG9yUmVmIGluc3BlY3RvclJlZiwgY29uc3QgV0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlKiB3a0Ns
aWVudCkKLXsKLSAgICB0b0ltcGwoaW5zcGVjdG9yUmVmKS0+aW5pdGlhbGl6ZUluc3BlY3RvckNs
aWVudEd0ayh3a0NsaWVudCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJlNjBiYzc5MzFlLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgV0tJbnNwZWN0b3JDbGllbnRHdGtfaAotI2RlZmluZSBXS0lu
c3BlY3RvckNsaWVudEd0a19oCi0KLSNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+Ci0KLSNpZmRl
ZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotdHlwZWRlZiBib29sICgqV0tJ
bnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0b3JDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYgaW5zcGVj
dG9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9y
Q2xpZW50R3RrSW5zcGVjdG9yRGlkQ2xvc2VDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYgaW5zcGVj
dG9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9y
Q2xpZW50R3RrSW5zcGVjdGVkVVJMQ2hhbmdlZENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNw
ZWN0b3IsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci10eXBlZGVm
IHZvaWQgKCpXS0luc3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaGVkSGVpZ2h0Q2FsbGJh
Y2spKFdLSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgdW5zaWduZWQgaGVpZ2h0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hh
bmdlQXR0YWNoZWRXaWR0aENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNwZWN0b3IsIHVuc2ln
bmVkIHdpZHRoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5z
cGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5Q2FsbGJhY2spKFdLSW5z
cGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBhdmFpbGFibGUsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwotCi10eXBlZGVmIHN0cnVjdCBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2UgewotICAgIGlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9u
OwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGllbnRJbmZvOwotfSBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2U7Ci0KLXR5cGVkZWYgc3Ry
dWN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrVjAgewotICAgIFdLSW5zcGVjdG9yQ2xpZW50R3RrQmFz
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOwotCi0gICAgV0tJbnNwZWN0b3JDbGll
bnRHdGtJbnNwZWN0b3JDYWxsYmFjayAgICAgICAgICAgICAgIG9wZW5XaW5kb3c7Ci0gICAgV0tJ
bnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0b3JEaWRDbG9zZUNhbGxiYWNrICAgICAgIGRpZENsb3Nl
OwotICAgIFdLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yQ2FsbGJhY2sgICAgICAgICAgICAg
ICBicmluZ1RvRnJvbnQ7Ci0gICAgV0tJbnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0ZWRVUkxDaGFu
Z2VkQ2FsbGJhY2sgICAgIGluc3BlY3RlZFVSTENoYW5nZWQ7Ci0gICAgV0tJbnNwZWN0b3JDbGll
bnRHdGtJbnNwZWN0b3JDYWxsYmFjayAgICAgICAgICAgICAgIGF0dGFjaDsKLSAgICBXS0luc3Bl
Y3RvckNsaWVudEd0a0luc3BlY3RvckNhbGxiYWNrICAgICAgICAgICAgICAgZGV0YWNoOwotICAg
IFdLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHRDYWxsYmFjayBkaWRD
aGFuZ2VBdHRhY2hlZEhlaWdodDsKLSAgICBXS0luc3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0
dGFjaGVkV2lkdGhDYWxsYmFjayAgZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aDsKLSAgICBXS0luc3Bl
Y3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaEF2YWlsYWJpbGl0eUNhbGxiYWNrIGRpZENoYW5n
ZUF0dGFjaEF2YWlsYWJpbGl0eTsKLX0gV0tJbnNwZWN0b3JDbGllbnRHdGtWMDsKLQotV0tfRVhQ
T1JUIHZvaWQgV0tJbnNwZWN0b3JTZXRJbnNwZWN0b3JDbGllbnRHdGsoV0tJbnNwZWN0b3JSZWYg
aW5zcGVjdG9yUmVmLCBjb25zdCBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2UqIGNsaWVudCk7Ci0K
LSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS0luc3BlY3RvckNs
aWVudEd0a19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmgKaW5kZXggYWNkOWUyODM4YWYuLmEyMjAzMzE5MTEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oCkBAIC0zNSw3ICsz
NSw2IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogI2luY2x1
ZGUgPFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0luc3BlY3Rv
ci5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0luc3BlY3RvckNsaWVudEd0ay5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKaW5k
ZXggNWQzZWNlNGQwNDcuLjI5NDkyNDVkYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKQEAgLTIxLDYgKzIx
LDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJJbnNwZWN0b3IuaCIKIAogI2luY2x1ZGUgIldlYklu
c3BlY3RvclByb3h5LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHlDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4
bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CkBAIC03OCw3ICs3OSw3IEBA
IGVudW0gewogc3RydWN0IF9XZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlIHsKICAgICB+X1dlYktp
dFdlYkluc3BlY3RvclByaXZhdGUoKQogICAgIHsKLSAgICAgICAgV0tJbnNwZWN0b3JTZXRJbnNw
ZWN0b3JDbGllbnRHdGsodG9BUEkod2ViSW5zcGVjdG9yLmdldCgpKSwgMCk7CisgICAgICAgIHdl
Ykluc3BlY3Rvci0+c2V0Q2xpZW50KG51bGxwdHIpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJJ
bnNwZWN0b3JQcm94eT4gd2ViSW5zcGVjdG9yOwpAQCAtMjgxLDg5ICsyODIsODQgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfY2xhc3NfaW5pdChXZWJLaXRXZWJJbnNwZWN0b3JD
bGFzcyogZmluZENsYXNzKQogICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7CiB9CiAKLXN0YXRp
YyBib29sIG9wZW5XaW5kb3coV0tJbnNwZWN0b3JSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Ci17Ci0gICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7Ci0gICAgZ19zaWduYWxfZW1pdChXRUJLSVRf
V0VCX0lOU1BFQ1RPUihjbGllbnRJbmZvKSwgc2lnbmFsc1tPUEVOX1dJTkRPV10sIDAsICZyZXR1
cm5WYWx1ZSk7Ci0gICAgcmV0dXJuIHJldHVyblZhbHVlOwotfQorY2xhc3MgV2ViS2l0SW5zcGVj
dG9yQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkluc3BlY3RvclByb3h5Q2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBXZWJLaXRJbnNwZWN0b3JDbGllbnQoV2ViS2l0V2ViSW5zcGVjdG9y
KiBpbnNwZWN0b3IpCisgICAgICAgIDogbV9pbnNwZWN0b3IoaW5zcGVjdG9yKQorICAgIHsKKyAg
ICB9CiAKLXN0YXRpYyB2b2lkIGRpZENsb3NlKFdLSW5zcGVjdG9yUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQotewotICAgIGdfc2lnbmFsX2VtaXQoV0VCS0lUX1dFQl9JTlNQRUNUT1IoY2xp
ZW50SW5mbyksIHNpZ25hbHNbQ0xPU0VEXSwgMCk7Ci19Citwcml2YXRlOgorICAgIGJvb2wgb3Bl
bldpbmRvdyhXZWJJbnNwZWN0b3JQcm94eSYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBnYm9v
bGVhbiByZXR1cm5WYWx1ZTsKKyAgICAgICAgZ19zaWduYWxfZW1pdChtX2luc3BlY3Rvciwgc2ln
bmFsc1tPUEVOX1dJTkRPV10sIDAsICZyZXR1cm5WYWx1ZSk7CisgICAgICAgIHJldHVybiByZXR1
cm5WYWx1ZTsKKyAgICB9CiAKLXN0YXRpYyBib29sIGJyaW5nVG9Gcm9udChXS0luc3BlY3RvclJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsK
LSAgICBnX3NpZ25hbF9lbWl0KFdFQktJVF9XRUJfSU5TUEVDVE9SKGNsaWVudEluZm8pLCBzaWdu
YWxzW0JSSU5HX1RPX0ZST05UXSwgMCwgJnJldHVyblZhbHVlKTsKLSAgICByZXR1cm4gcmV0dXJu
VmFsdWU7Ci19CisgICAgdm9pZCBkaWRDbG9zZShXZWJJbnNwZWN0b3JQcm94eSYpIG92ZXJyaWRl
CisgICAgeworICAgICAgICBnX3NpZ25hbF9lbWl0KG1faW5zcGVjdG9yLCBzaWduYWxzW0NMT1NF
RF0sIDApOworICAgIH0KIAotc3RhdGljIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChXS0luc3Bl
Y3RvclJlZiwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAg
IFdlYktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gV0VCS0lUX1dFQl9JTlNQRUNUT1IoY2xp
ZW50SW5mbyk7Ci0gICAgQ1N0cmluZyB1cmkgPSB0b0ltcGwodXJsKS0+c3RyaW5nKCkudXRmOCgp
OwotICAgIGlmICh1cmkgPT0gaW5zcGVjdG9yLT5wcml2LT5pbnNwZWN0ZWRVUkkpCi0gICAgICAg
IHJldHVybjsKLSAgICBpbnNwZWN0b3ItPnByaXYtPmluc3BlY3RlZFVSSSA9IHVyaTsKLSAgICBn
X29iamVjdF9ub3RpZnkoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImluc3BlY3RlZC11cmkiKTsKLX0K
KyAgICBib29sIGJyaW5nVG9Gcm9udChXZWJJbnNwZWN0b3JQcm94eSYpIG92ZXJyaWRlCisgICAg
eworICAgICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICAgICAgZ19zaWduYWxfZW1pdCht
X2luc3BlY3Rvciwgc2lnbmFsc1tCUklOR19UT19GUk9OVF0sIDAsICZyZXR1cm5WYWx1ZSk7Cisg
ICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKKyAgICB9CiAKLXN0YXRpYyBib29sIGF0dGFjaChX
S0luc3BlY3RvclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBnYm9vbGVhbiBy
ZXR1cm5WYWx1ZTsKLSAgICBnX3NpZ25hbF9lbWl0KFdFQktJVF9XRUJfSU5TUEVDVE9SKGNsaWVu
dEluZm8pLCBzaWduYWxzW0FUVEFDSF0sIDAsICZyZXR1cm5WYWx1ZSk7Ci0gICAgcmV0dXJuIHJl
dHVyblZhbHVlOwotfQorICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChXZWJJbnNwZWN0b3JQ
cm94eSYsIGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgQ1N0cmlu
ZyB1cmkgPSB1cmwudXRmOCgpOworICAgICAgICBpZiAodXJpID09IG1faW5zcGVjdG9yLT5wcml2
LT5pbnNwZWN0ZWRVUkkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1faW5zcGVjdG9y
LT5wcml2LT5pbnNwZWN0ZWRVUkkgPSB1cmk7CisgICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVChtX2luc3BlY3RvciksICJpbnNwZWN0ZWQtdXJpIik7CisgICAgfQogCi1zdGF0aWMgYm9v
bCBkZXRhY2goV0tJbnNwZWN0b3JSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAg
Z2Jvb2xlYW4gcmV0dXJuVmFsdWU7Ci0gICAgZ19zaWduYWxfZW1pdChXRUJLSVRfV0VCX0lOU1BF
Q1RPUihjbGllbnRJbmZvKSwgc2lnbmFsc1tERVRBQ0hdLCAwLCAmcmV0dXJuVmFsdWUpOwotICAg
IHJldHVybiByZXR1cm5WYWx1ZTsKLX0KKyAgICBib29sIGF0dGFjaChXZWJJbnNwZWN0b3JQcm94
eSYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICAg
ICAgZ19zaWduYWxfZW1pdChtX2luc3BlY3Rvciwgc2lnbmFsc1tBVFRBQ0hdLCAwLCAmcmV0dXJu
VmFsdWUpOworICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CisgICAgfQogCi1zdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodChXS0luc3BlY3RvclJlZiwgdW5zaWduZWQgaGVpZ2h0
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFdlYktpdFdlYkluc3BlY3RvciogaW5z
cGVjdG9yID0gV0VCS0lUX1dFQl9JTlNQRUNUT1IoY2xpZW50SW5mbyk7Ci0gICAgaWYgKGluc3Bl
Y3Rvci0+cHJpdi0+YXR0YWNoZWRIZWlnaHQgPT0gaGVpZ2h0KQotICAgICAgICByZXR1cm47Ci0g
ICAgaW5zcGVjdG9yLT5wcml2LT5hdHRhY2hlZEhlaWdodCA9IGhlaWdodDsKLSAgICBnX29iamVj
dF9ub3RpZnkoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImF0dGFjaGVkLWhlaWdodCIpOwotfQorICAg
IGJvb2wgZGV0YWNoKFdlYkluc3BlY3RvclByb3h5Jikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IGdib29sZWFuIHJldHVyblZhbHVlOworICAgICAgICBnX3NpZ25hbF9lbWl0KG1faW5zcGVjdG9y
LCBzaWduYWxzW0RFVEFDSF0sIDAsICZyZXR1cm5WYWx1ZSk7CisgICAgICAgIHJldHVybiByZXR1
cm5WYWx1ZTsKKyAgICB9CiAKLXN0YXRpYyB2b2lkIGRpZENoYW5nZUF0dGFjaEF2YWlsYWJpbGl0
eShXS0luc3BlY3RvclJlZiwgYm9vbCBhdmFpbGFibGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Ci17Ci0gICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSBXRUJLSVRfV0VCX0lOU1BF
Q1RPUihjbGllbnRJbmZvKTsKLSAgICBpZiAoaW5zcGVjdG9yLT5wcml2LT5jYW5BdHRhY2ggPT0g
YXZhaWxhYmxlKQotICAgICAgICByZXR1cm47Ci0gICAgaW5zcGVjdG9yLT5wcml2LT5jYW5BdHRh
Y2ggPSBhdmFpbGFibGU7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGNsaWVudEluZm8p
LCAiY2FuLWF0dGFjaCIpOwotfQorICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQoV2Vi
SW5zcGVjdG9yUHJveHkmLCB1bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBpZiAobV9pbnNwZWN0b3ItPnByaXYtPmF0dGFjaGVkSGVpZ2h0ID09IGhlaWdodCkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgbV9pbnNwZWN0b3ItPnByaXYtPmF0dGFjaGVkSGVpZ2h0
ID0gaGVpZ2h0OworICAgICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QobV9pbnNwZWN0b3Ip
LCAiYXR0YWNoZWQtaGVpZ2h0Iik7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFuZ2VBdHRhY2hl
ZFdpZHRoKFdlYkluc3BlY3RvclByb3h5JiwgdW5zaWduZWQgd2lkdGgpIG92ZXJyaWRlCisgICAg
eworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5KFdlYkluc3Bl
Y3RvclByb3h5JiwgYm9vbCBhdmFpbGFibGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAo
bV9pbnNwZWN0b3ItPnByaXYtPmNhbkF0dGFjaCA9PSBhdmFpbGFibGUpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIG1faW5zcGVjdG9yLT5wcml2LT5jYW5BdHRhY2ggPSBhdmFpbGFibGU7
CisgICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChtX2luc3BlY3RvciksICJjYW4tYXR0
YWNoIik7CisgICAgfQorCisgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBtX2luc3BlY3RvcjsKK307
CiAKIFdlYktpdFdlYkluc3BlY3Rvciogd2Via2l0V2ViSW5zcGVjdG9yQ3JlYXRlKFdlYkluc3Bl
Y3RvclByb3h5KiB3ZWJJbnNwZWN0b3IpCiB7CiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNw
ZWN0b3IgPSBXRUJLSVRfV0VCX0lOU1BFQ1RPUihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VC
X0lOU1BFQ1RPUiwgTlVMTCkpOwogICAgIGluc3BlY3Rvci0+cHJpdi0+d2ViSW5zcGVjdG9yID0g
d2ViSW5zcGVjdG9yOwotCi0gICAgV0tJbnNwZWN0b3JDbGllbnRHdGtWMCB3a0luc3BlY3RvckNs
aWVudEd0ayA9IHsKLSAgICAgICAgewotICAgICAgICAgICAgMCwgLy8gdmVyc2lvbgotICAgICAg
ICAgICAgaW5zcGVjdG9yLCAvLyBjbGllbnRJbmZvCi0gICAgICAgIH0sCi0gICAgICAgIG9wZW5X
aW5kb3csCi0gICAgICAgIGRpZENsb3NlLAotICAgICAgICBicmluZ1RvRnJvbnQsCi0gICAgICAg
IGluc3BlY3RlZFVSTENoYW5nZWQsCi0gICAgICAgIGF0dGFjaCwKLSAgICAgICAgZGV0YWNoLAot
ICAgICAgICBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCwKLSAgICAgICAgbnVsbHB0ciwgLy8gZGlk
Q2hhbmdlQXR0YWNoZWRXaWR0aAotICAgICAgICBkaWRDaGFuZ2VBdHRhY2hBdmFpbGFiaWxpdHkK
LSAgICB9OwotICAgIFdLSW5zcGVjdG9yU2V0SW5zcGVjdG9yQ2xpZW50R3RrKHRvQVBJKHdlYklu
c3BlY3RvciksICZ3a0luc3BlY3RvckNsaWVudEd0ay5iYXNlKTsKLQorICAgIHdlYkluc3BlY3Rv
ci0+c2V0Q2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0SW5zcGVjdG9yQ2xpZW50PihpbnNw
ZWN0b3IpKTsKICAgICByZXR1cm4gaW5zcGVjdG9yOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCA2ZjRkMDg2ZWI3MS4uOWU4YjEw
ZTVlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
LmNwcApAQCAtNDcsNiArNDcsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKKyNpZiBQTEFURk9STShHVEsp
CisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHlDbGllbnQuaCIKKyNlbmRpZgorCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDg3NjI3NTE3ZWNhLi45N2IwM2Fh
Yzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgK
QEAgLTQ5LDEwICs0OSw2IEBAIE9CSkNfQ0xBU1MgV0tXZWJJbnNwZWN0b3JXS1dlYlZpZXc7CiBP
QkpDX0NMQVNTIFdLV2ViVmlld0NvbmZpZ3VyYXRpb247CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JN
KEdUSykKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JDbGllbnRHdGsuaCIKLSNlbmRpZgotCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBVUkw7CiB9CkBAIC02MCw2ICs1Niw3IEBAIGNsYXNzIFVS
TDsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJGcmFtZVByb3h5OworY2xhc3MgV2Vi
SW5zcGVjdG9yUHJveHlDbGllbnQ7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcmVm
ZXJlbmNlczsKIApAQCAtMTE1LDcgKzExMiw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBHdGtXaWRnZXQqIGluc3BlY3RvclZpZXcoKSBjb25zdCB7IHJldHVybiBtX2luc3Bl
Y3RvclZpZXc7IH07Ci0gICAgdm9pZCBpbml0aWFsaXplSW5zcGVjdG9yQ2xpZW50R3RrKGNvbnN0
IFdLSW5zcGVjdG9yQ2xpZW50R3RrQmFzZSopOworICAgIHZvaWQgc2V0Q2xpZW50KHN0ZDo6dW5p
cXVlX3B0cjxXZWJJbnNwZWN0b3JQcm94eUNsaWVudD4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQg
c2hvd0NvbnNvbGUoKTsKQEAgLTI0Miw3ICsyMzksNyBAQCBwcml2YXRlOgogICAgIFJ1bkxvb3A6
OlRpbWVyPFdlYkluc3BlY3RvclByb3h5PiBtX2Nsb3NlVGltZXI7CiAgICAgU3RyaW5nIG1fdXJs
U3RyaW5nOwogI2VsaWYgUExBVEZPUk0oR1RLKQotICAgIFdlYkluc3BlY3RvckNsaWVudEd0ayBt
X2NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5zcGVjdG9yUHJveHlDbGllbnQ+IG1f
Y2xpZW50OwogICAgIEd0a1dpZGdldCogbV9pbnNwZWN0b3JWaWV3IHsgbnVsbHB0ciB9OwogICAg
IEd0a1dpZGdldCogbV9pbnNwZWN0b3JXaW5kb3cgeyBudWxscHRyIH07CiAgICAgR3RrV2lkZ2V0
KiBtX2hlYWRlckJhciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjQyNDczMzQ1NDUuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvckNsaWVu
dEd0ay5oIgotCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViSW5zcGVjdG9y
UHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLWJvb2wgV2ViSW5zcGVjdG9yQ2xpZW50R3RrOjpvcGVuV2luZG93KFdlYkluc3Bl
Y3RvclByb3h5KiBpbnNwZWN0b3IpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5vcGVuV2luZG93KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fY2xpZW50Lm9wZW5XaW5kb3codG9B
UEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJJ
bnNwZWN0b3JDbGllbnRHdGs6OmRpZENsb3NlKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3Ip
Ci17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRDbG9zZSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1f
Y2xpZW50LmRpZENsb3NlKHRvQVBJKGluc3BlY3RvciksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7Ci19Ci0KLWJvb2wgV2ViSW5zcGVjdG9yQ2xpZW50R3RrOjpicmluZ1RvRnJvbnQoV2ViSW5z
cGVjdG9yUHJveHkqIGluc3BlY3RvcikKLXsKLSAgICBpZiAoIW1fY2xpZW50LmJyaW5nVG9Gcm9u
dCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX2NsaWVudC5icmluZ1RvRnJv
bnQodG9BUEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9p
ZCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6Omluc3BlY3RlZFVSTENoYW5nZWQoV2ViSW5zcGVjdG9y
UHJveHkqIGluc3BlY3RvciwgY29uc3QgU3RyaW5nJiB1cmwpCi17Ci0gICAgaWYgKCFtX2NsaWVu
dC5pbnNwZWN0ZWRVUkxDaGFuZ2VkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9jbGllbnQuaW5z
cGVjdGVkVVJMQ2hhbmdlZCh0b0FQSShpbnNwZWN0b3IpLCB0b0FQSSh1cmwuaW1wbCgpKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotYm9vbCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6
OmF0dGFjaChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yKQotewotICAgIGlmICghbV9jbGll
bnQuYXR0YWNoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fY2xpZW50LmF0
dGFjaCh0b0FQSShpbnNwZWN0b3IpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotfQotCi1i
b29sIFdlYkluc3BlY3RvckNsaWVudEd0azo6ZGV0YWNoKFdlYkluc3BlY3RvclByb3h5KiBpbnNw
ZWN0b3IpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kZXRhY2gpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICByZXR1cm4gbV9jbGllbnQuZGV0YWNoKHRvQVBJKGluc3BlY3RvciksIG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50R3RrOjpkaWRD
aGFuZ2VBdHRhY2hlZEhlaWdodChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yLCB1bnNpZ25l
ZCBoZWlnaHQpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCkK
LSAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LmRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KHRv
QVBJKGluc3BlY3RvciksIGhlaWdodCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQot
dm9pZCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6OmRpZENoYW5nZUF0dGFjaGVkV2lkdGgoV2ViSW5z
cGVjdG9yUHJveHkqIGluc3BlY3RvciwgdW5zaWduZWQgd2lkdGgpCi17Ci0gICAgaWYgKCFtX2Ns
aWVudC5kaWRDaGFuZ2VBdHRhY2hlZFdpZHRoKQotICAgICAgICByZXR1cm47Ci0gICAgbV9jbGll
bnQuZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aCh0b0FQSShpbnNwZWN0b3IpLCB3aWR0aCwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6OmRp
ZENoYW5nZUF0dGFjaEF2YWlsYWJpbGl0eShXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yLCBi
b29sIGF2YWlsYWJsZSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUF0dGFjaEF2YWls
YWJpbGl0eSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LmRpZENoYW5nZUF0dGFjaEF2
YWlsYWJpbGl0eSh0b0FQSShpbnNwZWN0b3IpLCBhdmFpbGFibGUsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlDbGllbnQuaApzaW1pbGFyaXR5
IGluZGV4IDY1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYklu
c3BlY3RvckNsaWVudEd0ay5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkluc3BlY3RvclByb3h5Q2xpZW50LmgKaW5kZXggMmQ0ZjYxOTNmMDMuLjUwNTBiMWNjODNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNs
aWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9y
UHJveHlDbGllbnQuaApAQCAtMjUsMzMgKzI1LDIzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiQVBJQ2xpZW50LmgiCi0jaW5jbHVkZSAiV0tJbnNwZWN0b3JDbGllbnRHdGsuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIEFQSSB7Ci1jbGFzcyBP
YmplY3Q7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0luc3BlY3RvckNsaWVu
dEd0a0Jhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tJbnNwZWN0b3JDbGllbnRHdGtW
MD4gVmVyc2lvbnM7Ci19OwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSW5z
cGVjdG9yUHJveHk7CiAKLWNsYXNzIFdlYkluc3BlY3RvckNsaWVudEd0ayA6IHB1YmxpYyBBUEk6
OkNsaWVudDxXS0luc3BlY3RvckNsaWVudEd0a0Jhc2U+IHsKK2NsYXNzIFdlYkluc3BlY3RvclBy
b3h5Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBib29sIG9wZW5XaW5kb3coV2ViSW5zcGVjdG9yUHJv
eHkqKTsKLSAgICB2b2lkIGRpZENsb3NlKFdlYkluc3BlY3RvclByb3h5Kik7Ci0gICAgYm9vbCBi
cmluZ1RvRnJvbnQoV2ViSW5zcGVjdG9yUHJveHkqKTsKLSAgICB2b2lkIGluc3BlY3RlZFVSTENo
YW5nZWQoV2ViSW5zcGVjdG9yUHJveHkqLCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgYm9vbCBh
dHRhY2goV2ViSW5zcGVjdG9yUHJveHkqKTsKLSAgICBib29sIGRldGFjaChXZWJJbnNwZWN0b3JQ
cm94eSopOwotICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQoV2ViSW5zcGVjdG9yUHJv
eHkqLCB1bnNpZ25lZCBoZWlnaHQpOwotICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aChX
ZWJJbnNwZWN0b3JQcm94eSosIHVuc2lnbmVkIHdpZHRoKTsKLSAgICB2b2lkIGRpZENoYW5nZUF0
dGFjaEF2YWlsYWJpbGl0eShXZWJJbnNwZWN0b3JQcm94eSosIGJvb2wgYXZhaWxhYmxlKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgb3BlbldpbmRvdyhXZWJJbnNwZWN0b3JQcm94eSYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoV2ViSW5zcGVjdG9yUHJveHkmKSA9IDA7CisgICAgdmlydHVh
bCBib29sIGJyaW5nVG9Gcm9udChXZWJJbnNwZWN0b3JQcm94eSYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChXZWJJbnNwZWN0b3JQcm94eSYsIGNvbnN0IFN0cmlu
ZyYgdXJsKSA9IDA7CisgICAgdmlydHVhbCBib29sIGF0dGFjaChXZWJJbnNwZWN0b3JQcm94eSYp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGV0YWNoKFdlYkluc3BlY3RvclByb3h5JikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodChXZWJJbnNwZWN0b3JQcm94
eSYsIHVuc2lnbmVkIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBdHRh
Y2hlZFdpZHRoKFdlYkluc3BlY3RvclByb3h5JiwgdW5zaWduZWQgd2lkdGgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5KFdlYkluc3BlY3RvclByb3h5
JiwgYm9vbCBhdmFpbGFibGUpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3Rr
LmNwcAppbmRleCBkMWVkMjFjNjIxOS4uZGMyYTdkNzM2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJv
eHkuaCIKIAorI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5Q2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViS2l0SW5zcGVjdG9yV2luZG93LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCkBAIC01Niw5ICs1Nyw5IEBAIHN0YXRp
YyB1bnNpZ25lZCBsb25nIGxvbmcgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgV0tTZWN1cml0CiAgICAgcmV0dXJuIHN0ZDo6bWF4PHVuc2lnbmVkIGxvbmcgbG9u
Zz4oZXhwZWN0ZWRVc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UgKiAxLjI1KTsKIH0KIAotdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6aW5pdGlhbGl6ZUluc3BlY3RvckNsaWVudEd0ayhjb25zdCBX
S0luc3BlY3RvckNsaWVudEd0a0Jhc2UqIGluc3BlY3RvckNsaWVudCkKK3ZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnNldENsaWVudChzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5zcGVjdG9yUHJveHlDbGll
bnQ+JiYgY2xpZW50KQogewotICAgIG1fY2xpZW50LmluaXRpYWxpemUoaW5zcGVjdG9yQ2xpZW50
KTsKKyAgICBtX2NsaWVudCA9IFdURk1vdmUoY2xpZW50KTsKIH0KIAogV2ViUGFnZVByb3h5KiBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKQEAgLTE0Miw3
ICsxNDMsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0
ZUluc3BlY3RvclBhZ2UoKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0
b3JXaW5kb3coKQogewotICAgIGlmIChtX2NsaWVudC5vcGVuV2luZG93KHRoaXMpKQorICAgIGlm
IChtX2NsaWVudCAmJiBtX2NsaWVudC0+b3BlbldpbmRvdygqdGhpcykpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEd0a1dpZGdldCogaW5zcGVjdGVkVmlld1BhcmVudCA9IGd0a193aWRnZXRfZ2V0
X3RvcGxldmVsKGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKQEAgLTE4NCw3ICsxODUs
OCBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlKCkKICAgICBpZiAo
bV9pbnNwZWN0b3JWaWV3KQogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5
X2Z1bmMobV9pbnNwZWN0b3JWaWV3LCByZWludGVycHJldF9jYXN0PHZvaWQqPihpbnNwZWN0b3JW
aWV3RGVzdHJveWVkKSwgdGhpcyk7CiAKLSAgICBtX2NsaWVudC5kaWRDbG9zZSh0aGlzKTsKKyAg
ICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRDbG9zZSgqdGhpcyk7CiAKICAg
ICBpZiAobV9pbnNwZWN0b3JXaW5kb3cpIHsKICAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KG1f
aW5zcGVjdG9yV2luZG93KTsKQEAgLTIwOCw3ICsyMTAsNyBAQCB2b2lkIFdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybUhpZGUoKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJy
aW5nVG9Gcm9udCgpCiB7Ci0gICAgaWYgKG1fY2xpZW50LmJyaW5nVG9Gcm9udCh0aGlzKSkKKyAg
ICBpZiAobV9jbGllbnQgJiYgbV9jbGllbnQtPmJyaW5nVG9Gcm9udCgqdGhpcykpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEd0a1dpZGdldCogcGFyZW50ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2
ZWwobV9pbnNwZWN0b3JWaWV3KTsKQEAgLTIzMiw3ICsyMzQsOCBAQCBib29sIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIG1faW5zcGVj
dGVkVVJMU3RyaW5nID0gdXJsOwotICAgIG1fY2xpZW50Lmluc3BlY3RlZFVSTENoYW5nZWQodGhp
cywgdXJsKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5pbnNwZWN0ZWRV
UkxDaGFuZ2VkKCp0aGlzLCB1cmwpOwogCiAgICAgaWYgKG1faW5zcGVjdG9yV2luZG93KQogICAg
ICAgICB1cGRhdGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpOwpAQCAtMjg1LDcgKzI4OCw3IEBAIHZv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKICAgICAgICAgcGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZFdpZHRoLCBzdGQ6
Om1pbihkZWZhdWx0QXR0YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRXaWR0aCkpKTsKICAgICB9
CiAKLSAgICBpZiAobV9jbGllbnQuYXR0YWNoKHRoaXMpKQorICAgIGlmIChtX2NsaWVudCAmJiBt
X2NsaWVudC0+YXR0YWNoKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgd2Via2l0V2Vi
Vmlld0Jhc2VBZGRXZWJJbnNwZWN0b3IoV0VCS0lUX1dFQl9WSUVXX0JBU0UoaW5zcGVjdGVkUGFn
ZSgpLT52aWV3V2lkZ2V0KCkpLCBtX2luc3BlY3RvclZpZXcsIG1fYXR0YWNobWVudFNpZGUpOwpA
QCAtMjk4LDcgKzMwMSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGV0YWNo
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR1JlZlB0cjxHdGtXaWRnZXQ+IGluc3BlY3RvclZp
ZXcgPSBtX2luc3BlY3RvclZpZXc7Ci0gICAgaWYgKCFtX2NsaWVudC5kZXRhY2godGhpcykpIHsK
KyAgICBpZiAobV9jbGllbnQgJiYgIW1fY2xpZW50LT5kZXRhY2goKnRoaXMpKSB7CiAgICAgICAg
IC8vIERldGFjaCBpcyBjYWxsZWQgd2hlbiBtX2lzQXR0YWNoZWQgaXMgdHJ1ZSwgYnV0IGl0IGNv
dWxkIGNhbGxlZCBiZWZvcmUKICAgICAgICAgLy8gdGhlIGluc3BlY3RvciBpcyBvcGVuZWQgaWYg
dGhlIGluc3BlY3RvciBpcyBzaG93bi9jbG9zZWQgcXVpY2tseS4gU28sCiAgICAgICAgIC8vIHdl
IG1pZ2h0IG5vdCBoYXZlIGEgcGFyZW50IHlldC4KQEAgLTMyNCw3ICszMjcsOCBAQCB2b2lkIFdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVk
IGhlaWdodCkKICAgICBpZiAoIW1faXNBdHRhY2hlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9jbGllbnQuZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQodGhpcywgaGVpZ2h0KTsKKyAgICBpZiAo
bV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCgqdGhp
cywgaGVpZ2h0KTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdTaXplKFdF
QktJVF9XRUJfVklFV19CQVNFKGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKSwgaGVpZ2h0
KTsKIH0KIApAQCAtMzMzLDcgKzMzNyw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCB3aWR0aCkKICAgICBpZiAoIW1faXNB
dHRhY2hlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlQXR0YWNo
ZWRXaWR0aCh0aGlzLCB3aWR0aCk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVu
dC0+ZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aCgqdGhpcywgd2lkdGgpOwogICAgIHdlYmtpdFdlYlZp
ZXdCYXNlU2V0SW5zcGVjdG9yVmlld1NpemUoV0VCS0lUX1dFQl9WSUVXX0JBU0UoaW5zcGVjdGVk
UGFnZSgpLT52aWV3V2lkZ2V0KCkpLCB3aWR0aCk7CiB9CiAKQEAgLTM1NCw3ICszNTksOCBAQCB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaEF2YWls
YWJpbGl0eUNoYW5nZWQoYm9vbCBhdmFpbGFibGUpCiB7Ci0gICAgbV9jbGllbnQuZGlkQ2hhbmdl
QXR0YWNoQXZhaWxhYmlsaXR5KHRoaXMsIGF2YWlsYWJsZSk7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5KCp0aGlzLCBhdmFp
bGFibGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312590</attachid>
            <date>2017-06-10 23:32:42 -0700</date>
            <delta_ts>2017-06-11 08:09:26 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wk2-inspector-client.diff</filename>
            <type>text/plain</type>
            <size>26883</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiM2Q2NjFjZGQwYy4uNDM1MTgzYjdkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNyBAQAogMjAxNy0wNi0wOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW0dUS10gUmVtb3ZlIFdLSW5zcGVjdG9yQ2xpZW50R3RrCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMxNDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIG9ubHkg
dXNlZCBpbnRlcm5hbGx5IGluIEdUaysgQVBJLCB3ZSBjYW4gc2ltcGxpZnkgaXQgYnkgdXNpbmcg
YSBDKysgY2xpZW50IGluc3RlYWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3Rr
Lmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHA6Cisg
ICAgICAgIChfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZTo6fl9XZWJLaXRXZWJJbnNwZWN0b3JQ
cml2YXRlKToKKyAgICAgICAgKHdlYmtpdFdlYkluc3BlY3RvckNyZWF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNs
aWVudEd0ay5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0
b3JQcm94eUNsaWVudC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYklu
c3BlY3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6
OnNldENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJ
bnNwZWN0b3JXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1EaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybUJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1BdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1EZXRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlD
aGFuZ2VkKToKKworMjAxNy0wNi0wOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKICAgICAgICAgW0dUS10gUmVtb3ZlIFdLRnVsbFNjcmVlbkNsaWVudEd0awog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMTQwCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZDJjNTZhYmYzZGYuLjg1YjE5MDEwYmMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTA5LDcgKzEwOSw2IEBAIGxpc3QoQVBQRU5E
IFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJvL1dLSWNvbkRhdGFi
YXNlQ2Fpcm8uY3BwCiAKLSAgICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50
R3RrLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tUZXh0Q2hlY2tlckd0ay5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHAKIApAQCAtMzM2LDcgKzMzNSw2IEBAIGxp
c3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBv
c2l0b3IuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKICAgICBV
SVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCi0gICAgVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0
b3JQcm94eUd0ay5jcHAKICAgICBVSVByb2Nlc3MvZ3RrL1dlYktpdEluc3BlY3RvcldpbmRvdy5j
cHAKICAgICBVSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0
ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5NTIzOTQwNmIzLi4wMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9y
Q2xpZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIldLSW5zcGVjdG9yQ2xpZW50R3RrLmgiCi0KLSNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwotCi12b2lkIFdLSW5zcGVjdG9yU2V0SW5zcGVjdG9yQ2xpZW50R3RrKFdLSW5zcGVj
dG9yUmVmIGluc3BlY3RvclJlZiwgY29uc3QgV0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlKiB3a0Ns
aWVudCkKLXsKLSAgICB0b0ltcGwoaW5zcGVjdG9yUmVmKS0+aW5pdGlhbGl6ZUluc3BlY3RvckNs
aWVudEd0ayh3a0NsaWVudCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJlNjBiYzc5MzFlLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgV0tJbnNwZWN0b3JDbGllbnRHdGtfaAotI2RlZmluZSBXS0lu
c3BlY3RvckNsaWVudEd0a19oCi0KLSNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+Ci0KLSNpZmRl
ZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotdHlwZWRlZiBib29sICgqV0tJ
bnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0b3JDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYgaW5zcGVj
dG9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9y
Q2xpZW50R3RrSW5zcGVjdG9yRGlkQ2xvc2VDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYgaW5zcGVj
dG9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9y
Q2xpZW50R3RrSW5zcGVjdGVkVVJMQ2hhbmdlZENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNw
ZWN0b3IsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci10eXBlZGVm
IHZvaWQgKCpXS0luc3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaGVkSGVpZ2h0Q2FsbGJh
Y2spKFdLSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgdW5zaWduZWQgaGVpZ2h0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hh
bmdlQXR0YWNoZWRXaWR0aENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNwZWN0b3IsIHVuc2ln
bmVkIHdpZHRoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLSW5z
cGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5Q2FsbGJhY2spKFdLSW5z
cGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBhdmFpbGFibGUsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwotCi10eXBlZGVmIHN0cnVjdCBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2UgewotICAgIGlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9u
OwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGllbnRJbmZvOwotfSBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2U7Ci0KLXR5cGVkZWYgc3Ry
dWN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrVjAgewotICAgIFdLSW5zcGVjdG9yQ2xpZW50R3RrQmFz
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOwotCi0gICAgV0tJbnNwZWN0b3JDbGll
bnRHdGtJbnNwZWN0b3JDYWxsYmFjayAgICAgICAgICAgICAgIG9wZW5XaW5kb3c7Ci0gICAgV0tJ
bnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0b3JEaWRDbG9zZUNhbGxiYWNrICAgICAgIGRpZENsb3Nl
OwotICAgIFdLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yQ2FsbGJhY2sgICAgICAgICAgICAg
ICBicmluZ1RvRnJvbnQ7Ci0gICAgV0tJbnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0ZWRVUkxDaGFu
Z2VkQ2FsbGJhY2sgICAgIGluc3BlY3RlZFVSTENoYW5nZWQ7Ci0gICAgV0tJbnNwZWN0b3JDbGll
bnRHdGtJbnNwZWN0b3JDYWxsYmFjayAgICAgICAgICAgICAgIGF0dGFjaDsKLSAgICBXS0luc3Bl
Y3RvckNsaWVudEd0a0luc3BlY3RvckNhbGxiYWNrICAgICAgICAgICAgICAgZGV0YWNoOwotICAg
IFdLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHRDYWxsYmFjayBkaWRD
aGFuZ2VBdHRhY2hlZEhlaWdodDsKLSAgICBXS0luc3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0
dGFjaGVkV2lkdGhDYWxsYmFjayAgZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aDsKLSAgICBXS0luc3Bl
Y3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaEF2YWlsYWJpbGl0eUNhbGxiYWNrIGRpZENoYW5n
ZUF0dGFjaEF2YWlsYWJpbGl0eTsKLX0gV0tJbnNwZWN0b3JDbGllbnRHdGtWMDsKLQotV0tfRVhQ
T1JUIHZvaWQgV0tJbnNwZWN0b3JTZXRJbnNwZWN0b3JDbGllbnRHdGsoV0tJbnNwZWN0b3JSZWYg
aW5zcGVjdG9yUmVmLCBjb25zdCBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2UqIGNsaWVudCk7Ci0K
LSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS0luc3BlY3RvckNs
aWVudEd0a19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcml2YXRlLmgKaW5kZXggYWNkOWUyODM4YWYuLmEyMjAzMzE5MTEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oCkBAIC0zNSw3ICsz
NSw2IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogI2luY2x1
ZGUgPFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0luc3BlY3Rv
ci5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0luc3BlY3RvckNsaWVudEd0ay5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKaW5k
ZXggNWQzZWNlNGQwNDcuLjI5NDkyNDVkYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKQEAgLTIxLDYgKzIx
LDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJJbnNwZWN0b3IuaCIKIAogI2luY2x1ZGUgIldlYklu
c3BlY3RvclByb3h5LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHlDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4
bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CkBAIC03OCw3ICs3OSw3IEBA
IGVudW0gewogc3RydWN0IF9XZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlIHsKICAgICB+X1dlYktp
dFdlYkluc3BlY3RvclByaXZhdGUoKQogICAgIHsKLSAgICAgICAgV0tJbnNwZWN0b3JTZXRJbnNw
ZWN0b3JDbGllbnRHdGsodG9BUEkod2ViSW5zcGVjdG9yLmdldCgpKSwgMCk7CisgICAgICAgIHdl
Ykluc3BlY3Rvci0+c2V0Q2xpZW50KG51bGxwdHIpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJJ
bnNwZWN0b3JQcm94eT4gd2ViSW5zcGVjdG9yOwpAQCAtMjgxLDg5ICsyODIsODQgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfY2xhc3NfaW5pdChXZWJLaXRXZWJJbnNwZWN0b3JD
bGFzcyogZmluZENsYXNzKQogICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7CiB9CiAKLXN0YXRp
YyBib29sIG9wZW5XaW5kb3coV0tJbnNwZWN0b3JSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Ci17Ci0gICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7Ci0gICAgZ19zaWduYWxfZW1pdChXRUJLSVRf
V0VCX0lOU1BFQ1RPUihjbGllbnRJbmZvKSwgc2lnbmFsc1tPUEVOX1dJTkRPV10sIDAsICZyZXR1
cm5WYWx1ZSk7Ci0gICAgcmV0dXJuIHJldHVyblZhbHVlOwotfQorY2xhc3MgV2ViS2l0SW5zcGVj
dG9yQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkluc3BlY3RvclByb3h5Q2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBXZWJLaXRJbnNwZWN0b3JDbGllbnQoV2ViS2l0V2ViSW5zcGVjdG9y
KiBpbnNwZWN0b3IpCisgICAgICAgIDogbV9pbnNwZWN0b3IoaW5zcGVjdG9yKQorICAgIHsKKyAg
ICB9CiAKLXN0YXRpYyB2b2lkIGRpZENsb3NlKFdLSW5zcGVjdG9yUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQotewotICAgIGdfc2lnbmFsX2VtaXQoV0VCS0lUX1dFQl9JTlNQRUNUT1IoY2xp
ZW50SW5mbyksIHNpZ25hbHNbQ0xPU0VEXSwgMCk7Ci19Citwcml2YXRlOgorICAgIGJvb2wgb3Bl
bldpbmRvdyhXZWJJbnNwZWN0b3JQcm94eSYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBnYm9v
bGVhbiByZXR1cm5WYWx1ZTsKKyAgICAgICAgZ19zaWduYWxfZW1pdChtX2luc3BlY3Rvciwgc2ln
bmFsc1tPUEVOX1dJTkRPV10sIDAsICZyZXR1cm5WYWx1ZSk7CisgICAgICAgIHJldHVybiByZXR1
cm5WYWx1ZTsKKyAgICB9CiAKLXN0YXRpYyBib29sIGJyaW5nVG9Gcm9udChXS0luc3BlY3RvclJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsK
LSAgICBnX3NpZ25hbF9lbWl0KFdFQktJVF9XRUJfSU5TUEVDVE9SKGNsaWVudEluZm8pLCBzaWdu
YWxzW0JSSU5HX1RPX0ZST05UXSwgMCwgJnJldHVyblZhbHVlKTsKLSAgICByZXR1cm4gcmV0dXJu
VmFsdWU7Ci19CisgICAgdm9pZCBkaWRDbG9zZShXZWJJbnNwZWN0b3JQcm94eSYpIG92ZXJyaWRl
CisgICAgeworICAgICAgICBnX3NpZ25hbF9lbWl0KG1faW5zcGVjdG9yLCBzaWduYWxzW0NMT1NF
RF0sIDApOworICAgIH0KIAotc3RhdGljIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChXS0luc3Bl
Y3RvclJlZiwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAg
IFdlYktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gV0VCS0lUX1dFQl9JTlNQRUNUT1IoY2xp
ZW50SW5mbyk7Ci0gICAgQ1N0cmluZyB1cmkgPSB0b0ltcGwodXJsKS0+c3RyaW5nKCkudXRmOCgp
OwotICAgIGlmICh1cmkgPT0gaW5zcGVjdG9yLT5wcml2LT5pbnNwZWN0ZWRVUkkpCi0gICAgICAg
IHJldHVybjsKLSAgICBpbnNwZWN0b3ItPnByaXYtPmluc3BlY3RlZFVSSSA9IHVyaTsKLSAgICBn
X29iamVjdF9ub3RpZnkoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImluc3BlY3RlZC11cmkiKTsKLX0K
KyAgICBib29sIGJyaW5nVG9Gcm9udChXZWJJbnNwZWN0b3JQcm94eSYpIG92ZXJyaWRlCisgICAg
eworICAgICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICAgICAgZ19zaWduYWxfZW1pdCht
X2luc3BlY3Rvciwgc2lnbmFsc1tCUklOR19UT19GUk9OVF0sIDAsICZyZXR1cm5WYWx1ZSk7Cisg
ICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKKyAgICB9CiAKLXN0YXRpYyBib29sIGF0dGFjaChX
S0luc3BlY3RvclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBnYm9vbGVhbiBy
ZXR1cm5WYWx1ZTsKLSAgICBnX3NpZ25hbF9lbWl0KFdFQktJVF9XRUJfSU5TUEVDVE9SKGNsaWVu
dEluZm8pLCBzaWduYWxzW0FUVEFDSF0sIDAsICZyZXR1cm5WYWx1ZSk7Ci0gICAgcmV0dXJuIHJl
dHVyblZhbHVlOwotfQorICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChXZWJJbnNwZWN0b3JQ
cm94eSYsIGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgQ1N0cmlu
ZyB1cmkgPSB1cmwudXRmOCgpOworICAgICAgICBpZiAodXJpID09IG1faW5zcGVjdG9yLT5wcml2
LT5pbnNwZWN0ZWRVUkkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1faW5zcGVjdG9y
LT5wcml2LT5pbnNwZWN0ZWRVUkkgPSB1cmk7CisgICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVChtX2luc3BlY3RvciksICJpbnNwZWN0ZWQtdXJpIik7CisgICAgfQogCi1zdGF0aWMgYm9v
bCBkZXRhY2goV0tJbnNwZWN0b3JSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAg
Z2Jvb2xlYW4gcmV0dXJuVmFsdWU7Ci0gICAgZ19zaWduYWxfZW1pdChXRUJLSVRfV0VCX0lOU1BF
Q1RPUihjbGllbnRJbmZvKSwgc2lnbmFsc1tERVRBQ0hdLCAwLCAmcmV0dXJuVmFsdWUpOwotICAg
IHJldHVybiByZXR1cm5WYWx1ZTsKLX0KKyAgICBib29sIGF0dGFjaChXZWJJbnNwZWN0b3JQcm94
eSYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICAg
ICAgZ19zaWduYWxfZW1pdChtX2luc3BlY3Rvciwgc2lnbmFsc1tBVFRBQ0hdLCAwLCAmcmV0dXJu
VmFsdWUpOworICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CisgICAgfQogCi1zdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodChXS0luc3BlY3RvclJlZiwgdW5zaWduZWQgaGVpZ2h0
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFdlYktpdFdlYkluc3BlY3RvciogaW5z
cGVjdG9yID0gV0VCS0lUX1dFQl9JTlNQRUNUT1IoY2xpZW50SW5mbyk7Ci0gICAgaWYgKGluc3Bl
Y3Rvci0+cHJpdi0+YXR0YWNoZWRIZWlnaHQgPT0gaGVpZ2h0KQotICAgICAgICByZXR1cm47Ci0g
ICAgaW5zcGVjdG9yLT5wcml2LT5hdHRhY2hlZEhlaWdodCA9IGhlaWdodDsKLSAgICBnX29iamVj
dF9ub3RpZnkoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImF0dGFjaGVkLWhlaWdodCIpOwotfQorICAg
IGJvb2wgZGV0YWNoKFdlYkluc3BlY3RvclByb3h5Jikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IGdib29sZWFuIHJldHVyblZhbHVlOworICAgICAgICBnX3NpZ25hbF9lbWl0KG1faW5zcGVjdG9y
LCBzaWduYWxzW0RFVEFDSF0sIDAsICZyZXR1cm5WYWx1ZSk7CisgICAgICAgIHJldHVybiByZXR1
cm5WYWx1ZTsKKyAgICB9CiAKLXN0YXRpYyB2b2lkIGRpZENoYW5nZUF0dGFjaEF2YWlsYWJpbGl0
eShXS0luc3BlY3RvclJlZiwgYm9vbCBhdmFpbGFibGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Ci17Ci0gICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSBXRUJLSVRfV0VCX0lOU1BF
Q1RPUihjbGllbnRJbmZvKTsKLSAgICBpZiAoaW5zcGVjdG9yLT5wcml2LT5jYW5BdHRhY2ggPT0g
YXZhaWxhYmxlKQotICAgICAgICByZXR1cm47Ci0gICAgaW5zcGVjdG9yLT5wcml2LT5jYW5BdHRh
Y2ggPSBhdmFpbGFibGU7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGNsaWVudEluZm8p
LCAiY2FuLWF0dGFjaCIpOwotfQorICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQoV2Vi
SW5zcGVjdG9yUHJveHkmLCB1bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBpZiAobV9pbnNwZWN0b3ItPnByaXYtPmF0dGFjaGVkSGVpZ2h0ID09IGhlaWdodCkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgbV9pbnNwZWN0b3ItPnByaXYtPmF0dGFjaGVkSGVpZ2h0
ID0gaGVpZ2h0OworICAgICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QobV9pbnNwZWN0b3Ip
LCAiYXR0YWNoZWQtaGVpZ2h0Iik7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFuZ2VBdHRhY2hl
ZFdpZHRoKFdlYkluc3BlY3RvclByb3h5JiwgdW5zaWduZWQgd2lkdGgpIG92ZXJyaWRlCisgICAg
eworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5KFdlYkluc3Bl
Y3RvclByb3h5JiwgYm9vbCBhdmFpbGFibGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAo
bV9pbnNwZWN0b3ItPnByaXYtPmNhbkF0dGFjaCA9PSBhdmFpbGFibGUpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIG1faW5zcGVjdG9yLT5wcml2LT5jYW5BdHRhY2ggPSBhdmFpbGFibGU7
CisgICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChtX2luc3BlY3RvciksICJjYW4tYXR0
YWNoIik7CisgICAgfQorCisgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBtX2luc3BlY3RvcjsKK307
CiAKIFdlYktpdFdlYkluc3BlY3Rvciogd2Via2l0V2ViSW5zcGVjdG9yQ3JlYXRlKFdlYkluc3Bl
Y3RvclByb3h5KiB3ZWJJbnNwZWN0b3IpCiB7CiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNw
ZWN0b3IgPSBXRUJLSVRfV0VCX0lOU1BFQ1RPUihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VC
X0lOU1BFQ1RPUiwgTlVMTCkpOwogICAgIGluc3BlY3Rvci0+cHJpdi0+d2ViSW5zcGVjdG9yID0g
d2ViSW5zcGVjdG9yOwotCi0gICAgV0tJbnNwZWN0b3JDbGllbnRHdGtWMCB3a0luc3BlY3RvckNs
aWVudEd0ayA9IHsKLSAgICAgICAgewotICAgICAgICAgICAgMCwgLy8gdmVyc2lvbgotICAgICAg
ICAgICAgaW5zcGVjdG9yLCAvLyBjbGllbnRJbmZvCi0gICAgICAgIH0sCi0gICAgICAgIG9wZW5X
aW5kb3csCi0gICAgICAgIGRpZENsb3NlLAotICAgICAgICBicmluZ1RvRnJvbnQsCi0gICAgICAg
IGluc3BlY3RlZFVSTENoYW5nZWQsCi0gICAgICAgIGF0dGFjaCwKLSAgICAgICAgZGV0YWNoLAot
ICAgICAgICBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCwKLSAgICAgICAgbnVsbHB0ciwgLy8gZGlk
Q2hhbmdlQXR0YWNoZWRXaWR0aAotICAgICAgICBkaWRDaGFuZ2VBdHRhY2hBdmFpbGFiaWxpdHkK
LSAgICB9OwotICAgIFdLSW5zcGVjdG9yU2V0SW5zcGVjdG9yQ2xpZW50R3RrKHRvQVBJKHdlYklu
c3BlY3RvciksICZ3a0luc3BlY3RvckNsaWVudEd0ay5iYXNlKTsKLQorICAgIHdlYkluc3BlY3Rv
ci0+c2V0Q2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0SW5zcGVjdG9yQ2xpZW50PihpbnNw
ZWN0b3IpKTsKICAgICByZXR1cm4gaW5zcGVjdG9yOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCA2ZjRkMDg2ZWI3MS4uOWU4YjEw
ZTVlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
LmNwcApAQCAtNDcsNiArNDcsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKKyNpZiBQTEFURk9STShHVEsp
CisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHlDbGllbnQuaCIKKyNlbmRpZgorCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDg3NjI3NTE3ZWNhLi45N2IwM2Fh
Yzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgK
QEAgLTQ5LDEwICs0OSw2IEBAIE9CSkNfQ0xBU1MgV0tXZWJJbnNwZWN0b3JXS1dlYlZpZXc7CiBP
QkpDX0NMQVNTIFdLV2ViVmlld0NvbmZpZ3VyYXRpb247CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JN
KEdUSykKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JDbGllbnRHdGsuaCIKLSNlbmRpZgotCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBVUkw7CiB9CkBAIC02MCw2ICs1Niw3IEBAIGNsYXNzIFVS
TDsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJGcmFtZVByb3h5OworY2xhc3MgV2Vi
SW5zcGVjdG9yUHJveHlDbGllbnQ7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcmVm
ZXJlbmNlczsKIApAQCAtMTE1LDcgKzExMiw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBHdGtXaWRnZXQqIGluc3BlY3RvclZpZXcoKSBjb25zdCB7IHJldHVybiBtX2luc3Bl
Y3RvclZpZXc7IH07Ci0gICAgdm9pZCBpbml0aWFsaXplSW5zcGVjdG9yQ2xpZW50R3RrKGNvbnN0
IFdLSW5zcGVjdG9yQ2xpZW50R3RrQmFzZSopOworICAgIHZvaWQgc2V0Q2xpZW50KHN0ZDo6dW5p
cXVlX3B0cjxXZWJJbnNwZWN0b3JQcm94eUNsaWVudD4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQg
c2hvd0NvbnNvbGUoKTsKQEAgLTI0Miw3ICsyMzksNyBAQCBwcml2YXRlOgogICAgIFJ1bkxvb3A6
OlRpbWVyPFdlYkluc3BlY3RvclByb3h5PiBtX2Nsb3NlVGltZXI7CiAgICAgU3RyaW5nIG1fdXJs
U3RyaW5nOwogI2VsaWYgUExBVEZPUk0oR1RLKQotICAgIFdlYkluc3BlY3RvckNsaWVudEd0ayBt
X2NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5zcGVjdG9yUHJveHlDbGllbnQ+IG1f
Y2xpZW50OwogICAgIEd0a1dpZGdldCogbV9pbnNwZWN0b3JWaWV3IHsgbnVsbHB0ciB9OwogICAg
IEd0a1dpZGdldCogbV9pbnNwZWN0b3JXaW5kb3cgeyBudWxscHRyIH07CiAgICAgR3RrV2lkZ2V0
KiBtX2hlYWRlckJhciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjQyNDczMzQ1NDUuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvckNsaWVu
dEd0ay5oIgotCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViSW5zcGVjdG9y
UHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLWJvb2wgV2ViSW5zcGVjdG9yQ2xpZW50R3RrOjpvcGVuV2luZG93KFdlYkluc3Bl
Y3RvclByb3h5KiBpbnNwZWN0b3IpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5vcGVuV2luZG93KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fY2xpZW50Lm9wZW5XaW5kb3codG9B
UEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJJ
bnNwZWN0b3JDbGllbnRHdGs6OmRpZENsb3NlKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3Ip
Ci17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRDbG9zZSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1f
Y2xpZW50LmRpZENsb3NlKHRvQVBJKGluc3BlY3RvciksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7Ci19Ci0KLWJvb2wgV2ViSW5zcGVjdG9yQ2xpZW50R3RrOjpicmluZ1RvRnJvbnQoV2ViSW5z
cGVjdG9yUHJveHkqIGluc3BlY3RvcikKLXsKLSAgICBpZiAoIW1fY2xpZW50LmJyaW5nVG9Gcm9u
dCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX2NsaWVudC5icmluZ1RvRnJv
bnQodG9BUEkoaW5zcGVjdG9yKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9p
ZCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6Omluc3BlY3RlZFVSTENoYW5nZWQoV2ViSW5zcGVjdG9y
UHJveHkqIGluc3BlY3RvciwgY29uc3QgU3RyaW5nJiB1cmwpCi17Ci0gICAgaWYgKCFtX2NsaWVu
dC5pbnNwZWN0ZWRVUkxDaGFuZ2VkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9jbGllbnQuaW5z
cGVjdGVkVVJMQ2hhbmdlZCh0b0FQSShpbnNwZWN0b3IpLCB0b0FQSSh1cmwuaW1wbCgpKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotYm9vbCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6
OmF0dGFjaChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yKQotewotICAgIGlmICghbV9jbGll
bnQuYXR0YWNoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fY2xpZW50LmF0
dGFjaCh0b0FQSShpbnNwZWN0b3IpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotfQotCi1i
b29sIFdlYkluc3BlY3RvckNsaWVudEd0azo6ZGV0YWNoKFdlYkluc3BlY3RvclByb3h5KiBpbnNw
ZWN0b3IpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kZXRhY2gpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICByZXR1cm4gbV9jbGllbnQuZGV0YWNoKHRvQVBJKGluc3BlY3RvciksIG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50R3RrOjpkaWRD
aGFuZ2VBdHRhY2hlZEhlaWdodChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yLCB1bnNpZ25l
ZCBoZWlnaHQpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCkK
LSAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LmRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KHRv
QVBJKGluc3BlY3RvciksIGhlaWdodCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQot
dm9pZCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6OmRpZENoYW5nZUF0dGFjaGVkV2lkdGgoV2ViSW5z
cGVjdG9yUHJveHkqIGluc3BlY3RvciwgdW5zaWduZWQgd2lkdGgpCi17Ci0gICAgaWYgKCFtX2Ns
aWVudC5kaWRDaGFuZ2VBdHRhY2hlZFdpZHRoKQotICAgICAgICByZXR1cm47Ci0gICAgbV9jbGll
bnQuZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aCh0b0FQSShpbnNwZWN0b3IpLCB3aWR0aCwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6OmRp
ZENoYW5nZUF0dGFjaEF2YWlsYWJpbGl0eShXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yLCBi
b29sIGF2YWlsYWJsZSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUF0dGFjaEF2YWls
YWJpbGl0eSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LmRpZENoYW5nZUF0dGFjaEF2
YWlsYWJpbGl0eSh0b0FQSShpbnNwZWN0b3IpLCBhdmFpbGFibGUsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlDbGllbnQuaApzaW1pbGFyaXR5
IGluZGV4IDY1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYklu
c3BlY3RvckNsaWVudEd0ay5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkluc3BlY3RvclByb3h5Q2xpZW50LmgKaW5kZXggMmQ0ZjYxOTNmMDMuLjUwNTBiMWNjODNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNs
aWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9y
UHJveHlDbGllbnQuaApAQCAtMjUsMzMgKzI1LDIzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiQVBJQ2xpZW50LmgiCi0jaW5jbHVkZSAiV0tJbnNwZWN0b3JDbGllbnRHdGsuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIEFQSSB7Ci1jbGFzcyBP
YmplY3Q7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0luc3BlY3RvckNsaWVu
dEd0a0Jhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tJbnNwZWN0b3JDbGllbnRHdGtW
MD4gVmVyc2lvbnM7Ci19OwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSW5z
cGVjdG9yUHJveHk7CiAKLWNsYXNzIFdlYkluc3BlY3RvckNsaWVudEd0ayA6IHB1YmxpYyBBUEk6
OkNsaWVudDxXS0luc3BlY3RvckNsaWVudEd0a0Jhc2U+IHsKK2NsYXNzIFdlYkluc3BlY3RvclBy
b3h5Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBib29sIG9wZW5XaW5kb3coV2ViSW5zcGVjdG9yUHJv
eHkqKTsKLSAgICB2b2lkIGRpZENsb3NlKFdlYkluc3BlY3RvclByb3h5Kik7Ci0gICAgYm9vbCBi
cmluZ1RvRnJvbnQoV2ViSW5zcGVjdG9yUHJveHkqKTsKLSAgICB2b2lkIGluc3BlY3RlZFVSTENo
YW5nZWQoV2ViSW5zcGVjdG9yUHJveHkqLCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgYm9vbCBh
dHRhY2goV2ViSW5zcGVjdG9yUHJveHkqKTsKLSAgICBib29sIGRldGFjaChXZWJJbnNwZWN0b3JQ
cm94eSopOwotICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQoV2ViSW5zcGVjdG9yUHJv
eHkqLCB1bnNpZ25lZCBoZWlnaHQpOwotICAgIHZvaWQgZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aChX
ZWJJbnNwZWN0b3JQcm94eSosIHVuc2lnbmVkIHdpZHRoKTsKLSAgICB2b2lkIGRpZENoYW5nZUF0
dGFjaEF2YWlsYWJpbGl0eShXZWJJbnNwZWN0b3JQcm94eSosIGJvb2wgYXZhaWxhYmxlKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgb3BlbldpbmRvdyhXZWJJbnNwZWN0b3JQcm94eSYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoV2ViSW5zcGVjdG9yUHJveHkmKSA9IDA7CisgICAgdmlydHVh
bCBib29sIGJyaW5nVG9Gcm9udChXZWJJbnNwZWN0b3JQcm94eSYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChXZWJJbnNwZWN0b3JQcm94eSYsIGNvbnN0IFN0cmlu
ZyYgdXJsKSA9IDA7CisgICAgdmlydHVhbCBib29sIGF0dGFjaChXZWJJbnNwZWN0b3JQcm94eSYp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGV0YWNoKFdlYkluc3BlY3RvclByb3h5JikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodChXZWJJbnNwZWN0b3JQcm94
eSYsIHVuc2lnbmVkIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBdHRh
Y2hlZFdpZHRoKFdlYkluc3BlY3RvclByb3h5JiwgdW5zaWduZWQgd2lkdGgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5KFdlYkluc3BlY3RvclByb3h5
JiwgYm9vbCBhdmFpbGFibGUpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3Rr
LmNwcAppbmRleCBkMWVkMjFjNjIxOS4uZGMyYTdkNzM2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJv
eHkuaCIKIAorI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5Q2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViS2l0SW5zcGVjdG9yV2luZG93LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCkBAIC01Niw5ICs1Nyw5IEBAIHN0YXRp
YyB1bnNpZ25lZCBsb25nIGxvbmcgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgV0tTZWN1cml0CiAgICAgcmV0dXJuIHN0ZDo6bWF4PHVuc2lnbmVkIGxvbmcgbG9u
Zz4oZXhwZWN0ZWRVc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UgKiAxLjI1KTsKIH0KIAotdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6aW5pdGlhbGl6ZUluc3BlY3RvckNsaWVudEd0ayhjb25zdCBX
S0luc3BlY3RvckNsaWVudEd0a0Jhc2UqIGluc3BlY3RvckNsaWVudCkKK3ZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnNldENsaWVudChzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5zcGVjdG9yUHJveHlDbGll
bnQ+JiYgY2xpZW50KQogewotICAgIG1fY2xpZW50LmluaXRpYWxpemUoaW5zcGVjdG9yQ2xpZW50
KTsKKyAgICBtX2NsaWVudCA9IFdURk1vdmUoY2xpZW50KTsKIH0KIAogV2ViUGFnZVByb3h5KiBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKQEAgLTE0Miw3
ICsxNDMsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0
ZUluc3BlY3RvclBhZ2UoKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0
b3JXaW5kb3coKQogewotICAgIGlmIChtX2NsaWVudC5vcGVuV2luZG93KHRoaXMpKQorICAgIGlm
IChtX2NsaWVudCAmJiBtX2NsaWVudC0+b3BlbldpbmRvdygqdGhpcykpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEd0a1dpZGdldCogaW5zcGVjdGVkVmlld1BhcmVudCA9IGd0a193aWRnZXRfZ2V0
X3RvcGxldmVsKGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKQEAgLTE4NCw3ICsxODUs
OCBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlKCkKICAgICBpZiAo
bV9pbnNwZWN0b3JWaWV3KQogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5
X2Z1bmMobV9pbnNwZWN0b3JWaWV3LCByZWludGVycHJldF9jYXN0PHZvaWQqPihpbnNwZWN0b3JW
aWV3RGVzdHJveWVkKSwgdGhpcyk7CiAKLSAgICBtX2NsaWVudC5kaWRDbG9zZSh0aGlzKTsKKyAg
ICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRDbG9zZSgqdGhpcyk7CiAKICAg
ICBpZiAobV9pbnNwZWN0b3JXaW5kb3cpIHsKICAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KG1f
aW5zcGVjdG9yV2luZG93KTsKQEAgLTIwOCw3ICsyMTAsNyBAQCB2b2lkIFdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybUhpZGUoKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJy
aW5nVG9Gcm9udCgpCiB7Ci0gICAgaWYgKG1fY2xpZW50LmJyaW5nVG9Gcm9udCh0aGlzKSkKKyAg
ICBpZiAobV9jbGllbnQgJiYgbV9jbGllbnQtPmJyaW5nVG9Gcm9udCgqdGhpcykpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEd0a1dpZGdldCogcGFyZW50ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2
ZWwobV9pbnNwZWN0b3JWaWV3KTsKQEAgLTIzMiw3ICsyMzQsOCBAQCBib29sIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIG1faW5zcGVj
dGVkVVJMU3RyaW5nID0gdXJsOwotICAgIG1fY2xpZW50Lmluc3BlY3RlZFVSTENoYW5nZWQodGhp
cywgdXJsKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5pbnNwZWN0ZWRV
UkxDaGFuZ2VkKCp0aGlzLCB1cmwpOwogCiAgICAgaWYgKG1faW5zcGVjdG9yV2luZG93KQogICAg
ICAgICB1cGRhdGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpOwpAQCAtMjg1LDcgKzI4OCw3IEBAIHZv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKICAgICAgICAgcGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZFdpZHRoLCBzdGQ6
Om1pbihkZWZhdWx0QXR0YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRXaWR0aCkpKTsKICAgICB9
CiAKLSAgICBpZiAobV9jbGllbnQuYXR0YWNoKHRoaXMpKQorICAgIGlmIChtX2NsaWVudCAmJiBt
X2NsaWVudC0+YXR0YWNoKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgd2Via2l0V2Vi
Vmlld0Jhc2VBZGRXZWJJbnNwZWN0b3IoV0VCS0lUX1dFQl9WSUVXX0JBU0UoaW5zcGVjdGVkUGFn
ZSgpLT52aWV3V2lkZ2V0KCkpLCBtX2luc3BlY3RvclZpZXcsIG1fYXR0YWNobWVudFNpZGUpOwpA
QCAtMjk4LDcgKzMwMSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGV0YWNo
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR1JlZlB0cjxHdGtXaWRnZXQ+IGluc3BlY3RvclZp
ZXcgPSBtX2luc3BlY3RvclZpZXc7Ci0gICAgaWYgKCFtX2NsaWVudC5kZXRhY2godGhpcykpIHsK
KyAgICBpZiAobV9jbGllbnQgJiYgIW1fY2xpZW50LT5kZXRhY2goKnRoaXMpKSB7CiAgICAgICAg
IC8vIERldGFjaCBpcyBjYWxsZWQgd2hlbiBtX2lzQXR0YWNoZWQgaXMgdHJ1ZSwgYnV0IGl0IGNv
dWxkIGNhbGxlZCBiZWZvcmUKICAgICAgICAgLy8gdGhlIGluc3BlY3RvciBpcyBvcGVuZWQgaWYg
dGhlIGluc3BlY3RvciBpcyBzaG93bi9jbG9zZWQgcXVpY2tseS4gU28sCiAgICAgICAgIC8vIHdl
IG1pZ2h0IG5vdCBoYXZlIGEgcGFyZW50IHlldC4KQEAgLTMyNCw3ICszMjcsOCBAQCB2b2lkIFdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVk
IGhlaWdodCkKICAgICBpZiAoIW1faXNBdHRhY2hlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9jbGllbnQuZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQodGhpcywgaGVpZ2h0KTsKKyAgICBpZiAo
bV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCgqdGhp
cywgaGVpZ2h0KTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdTaXplKFdF
QktJVF9XRUJfVklFV19CQVNFKGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKSwgaGVpZ2h0
KTsKIH0KIApAQCAtMzMzLDcgKzMzNyw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCB3aWR0aCkKICAgICBpZiAoIW1faXNB
dHRhY2hlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlQXR0YWNo
ZWRXaWR0aCh0aGlzLCB3aWR0aCk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVu
dC0+ZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aCgqdGhpcywgd2lkdGgpOwogICAgIHdlYmtpdFdlYlZp
ZXdCYXNlU2V0SW5zcGVjdG9yVmlld1NpemUoV0VCS0lUX1dFQl9WSUVXX0JBU0UoaW5zcGVjdGVk
UGFnZSgpLT52aWV3V2lkZ2V0KCkpLCB3aWR0aCk7CiB9CiAKQEAgLTM1NCw3ICszNTksOCBAQCB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaEF2YWls
YWJpbGl0eUNoYW5nZWQoYm9vbCBhdmFpbGFibGUpCiB7Ci0gICAgbV9jbGllbnQuZGlkQ2hhbmdl
QXR0YWNoQXZhaWxhYmlsaXR5KHRoaXMsIGF2YWlsYWJsZSk7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlQXR0YWNoQXZhaWxhYmlsaXR5KCp0aGlzLCBhdmFp
bGFibGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="333515"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>