<?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>137158</bug_id>
          
          <creation_ts>2014-09-26 14:47:29 -0700</creation_ts>
          <short_desc>Replace OSObjectPtr with RetainPtr/adoptOS</short_desc>
          <delta_ts>2014-10-03 17:39:32 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>137231</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1037563</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-09-26 14:47:29 -0700</bug_when>
    <thetext>Replace OSObjectPtr with RetainPtr/adoptOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037565</commentid>
    <comment_count>1</comment_count>
      <attachid>238740</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-09-26 14:52:24 -0700</bug_when>
    <thetext>Created attachment 238740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037580</commentid>
    <comment_count>2</comment_count>
      <attachid>238740</attachid>
    <who name="">mitz</who>
    <bug_when>2014-09-26 16:24:07 -0700</bug_when>
    <thetext>Comment on attachment 238740
Patch

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

&gt; Source/WTF/ChangeLog:15
&gt; +        in that unlike adoptCF(), it can be passed an objective-c type (since OS objects
&gt; +        are sometimes objective-c objects, but not always), and unlike adoptNS() it doesn&apos;t 
&gt; +        require us to jump through hoops to appease GC (since OS objects are not objective-c

Objective-C</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037793</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-09-28 14:00:20 -0700</bug_when>
    <thetext>Fixed in https://trac.webkit.org/r174045 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037966</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-09-29 09:46:56 -0700</bug_when>
    <thetext>Looks like this patch introduced a PLT3 crasher in Yosemite :(  See &lt;rdar://problem/18487776&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038058</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-29 14:23:10 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 137231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039421</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-10-03 17:39:32 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Re-opened since this is blocked by bug 137231

Scrapping this for now.  In 32-bit, OS Objects are not objective-c objects, but also not CFObjects, so they can&apos;t be CFRetain()/CFReleased().  I think we are going to need to stick with OSObjectPtr for now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238740</attachid>
            <date>2014-09-26 14:52:24 -0700</date>
            <delta_ts>2014-09-26 16:24:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137158-20140926145224.patch</filename>
            <type>text/plain</type>
            <size>40051</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNzQwMjApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE0LTA5LTI2ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBPU09iamVjdFB0ciB3aXRoIFJldGFpblB0ci9h
ZG9wdE9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzcxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9PU09iamVjdFB0
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9SZXRhaW5QdHIuaDoKKyAgICAgICAgKFdURjo6
YWRvcHRPUyk6CisgICAgICAgIEFkZGVkLiBUaGlzIGFkb3B0IGZ1bmN0aW9uIGlzIHNsaWdodGx5
IGRpZmZlcmVudCB0aGFuIGJvdGggYWRvcHRDRiBhbmQgYWRvcHROUywKKyAgICAgICAgaW4gdGhh
dCB1bmxpa2UgYWRvcHRDRigpLCBpdCBjYW4gYmUgcGFzc2VkIGFuIG9iamVjdGl2ZS1jIHR5cGUg
KHNpbmNlIE9TIG9iamVjdHMKKyAgICAgICAgYXJlIHNvbWV0aW1lcyBvYmplY3RpdmUtYyBvYmpl
Y3RzLCBidXQgbm90IGFsd2F5cyksIGFuZCB1bmxpa2UgYWRvcHROUygpIGl0IGRvZXNuJ3QgCisg
ICAgICAgIHJlcXVpcmUgdXMgdG8ganVtcCB0aHJvdWdoIGhvb3BzIHRvIGFwcGVhc2UgR0MgKHNp
bmNlIE9TIG9iamVjdHMgYXJlIG5vdCBvYmplY3RpdmUtYworICAgICAgICBvYmplY3RzIGlmIEdD
IGlzIGVuYWJsZWQpLgorCiAyMDE0LTA5LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgRlRMIHNob3VsZCBzaW5rIG9iamVjdCBhbGxvY2F0aW9ucwpJbmRleDog
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNzQwMTcp
CisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC03Myw3ICs3Myw2IEBACiAJCTJDREVEMEVGMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5M
b29wQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkNERUQwRUUxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgKi87IH07CiAJCTJDREVE
MEYzMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDREVEMEYxMTgxMTVDODUwMDREQkE3MCAvKiBSdW5M
b29wLmNwcCAqLzsgfTsKIAkJMkNERUQwRjQxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDREVEMEYyMTgx
MTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggKi87IH07Ci0JCTdDQkJBMDc0MTlCQjdGREMwMEJC
RjAyNSAvKiBPU09iamVjdFB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NCQkEwNzMxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggKi87
IH07CiAJCTdDREQ3RkY4MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0REN0ZGNzE4NkQy
OTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oICovOyB9OwogCQk3Q0REN0ZGQTE4NkQy
QTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9y
UmFuZ2UuaCAqLzsgfTsKIAkJN0UyOUMzM0UxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1l
RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLzsgfTsKQEAg
LTM2MCw3ICszNTksNiBAQAogCQk1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxl
YXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdCNzMxNDY4OUM0NzAwRTc4Qjc2IC8qIFdURi54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQueGNjb25maWc7IHBhdGggPSBXVEYueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1NDFDQUY0MTYzMERCMjYwMDZEMERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBDb3B5V1RGSGVhZGVycy54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NCQkEwNzMxOUJCN0ZEQzAwQkJG
MDI1IC8qIE9TT2JqZWN0UHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9T
T2JqZWN0UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDREQ3RkY3MTg2RDI5
MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEl0ZXJhdG9yQWRhcHRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXRlcmF0b3JSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRy
YXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT2JqY1J1bnRpbWVFeHRyYXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc5MCw3ICs3ODgsNiBAQAogCQkJCTdF
MjlDMzNEMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oICovLAogCQkJCUE4
QTQ3MkQ3MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvci5oICovLAogCQkJCUE4QTQ3MkQ4
MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCAqLywKLQkJCQk3Q0JCQTA3
MzE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIuaCAqLywKIAkJCQlBOEE0NzJEQTE1MUE4
MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuY3BwICovLAogCQkJCUE4QTQ3MkRCMTUxQTgy
NUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5oICovLAogCQkJCTFBRkRFNjUyMTk1M0IyM0Qw
MEM0OEZGQSAvKiBPcHRpb25hbC5oICovLApAQCAtMTA4NSw3ICsxMDgyLDYgQEAKIAkJCQlBOEE0
NzNFODE1MUE4MjVCMDA0MTIzRkYgLyogTWF0aEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNCMUFBODAxODBFNUFGMzAwNEEyRjA1IC8qIFBhc3NSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3M0VBMTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuaCBpbiBIZWFkZXJzICovLAotCQkJCTdD
QkJBMDc0MTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0Q1NDk3QUQxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDczRUIxNTFBODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDczRUQxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuaCBp
biBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dURi93dGYvT1NPYmplY3RQdHIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9PU09iamVjdFB0ci5oCShyZXZpc2lvbiAxNzQwMTcpCisr
KyBTb3VyY2UvV1RGL3d0Zi9PU09iamVjdFB0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2NiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBPU09iamVjdFB0cl9oCi0jZGVmaW5lIE9TT2Jq
ZWN0UHRyX2gKLQotI2luY2x1ZGUgPG9zL29iamVjdC5oPgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMDAwCi0KLSNpZiBfX2hh
c19pbmNsdWRlKDxvcy9vYmplY3RfcHJpdmF0ZS5oPikKLSNpbmNsdWRlIDxvcy9vYmplY3RfcHJp
dmF0ZS5oPgotI2VuZGlmCi0KLSNpZiBPU19PQkpFQ1RfVVNFX09CSkMKLUBjbGFzcyBPU19vYmpl
Y3Q7Ci10eXBlZGVmIE9TX29iamVjdCAqX29zX29iamVjdF90OwotI2Vsc2UKLXR5cGVkZWYgc3Ry
dWN0IF9vc19vYmplY3RfcyAqX29zX29iamVjdF90OwotI2VuZGlmCi0KLWV4dGVybiAiQyIgX29z
X29iamVjdF90IF9vc19vYmplY3RfcmV0YWluKF9vc19vYmplY3RfdCBvYmplY3QpOwotZXh0ZXJu
ICJDIiB2b2lkIF9vc19vYmplY3RfcmVsZWFzZShfb3Nfb2JqZWN0X3Qgb2JqZWN0KTsKLQotI2Vu
ZGlmCi0KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE9T
T2JqZWN0UHRyOwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gT1NPYmplY3RQdHI8VD4gYWRvcHRPU09i
amVjdChUKTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0YXRpYyBpbmxpbmUgdm9pZCByZXRh
aW5PU09iamVjdChUIHB0cikKLXsKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwIHx8IFBMQVRGT1JNKElPUykKLSAgICBvc19yZXRh
aW4ocHRyKTsKLSNlbHNlCi0jaWYgT1NfT0JKRUNUX1VTRV9PQkpDX1JFVEFJTl9SRUxFQVNFCi0g
ICAgW3B0ciByZXRhaW5dOwotI2Vsc2UKLSAgICBfb3Nfb2JqZWN0X3JldGFpbigoX29zX29iamVj
dF90KXB0cik7Ci0jZW5kaWYKLSNlbmRpZgotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3Rh
dGljIGlubGluZSB2b2lkIHJlbGVhc2VPU09iamVjdChUIHB0cikKLXsKLSNpZiBQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwIHx8IFBMQVRG
T1JNKElPUykKLSAgICBvc19yZWxlYXNlKHB0cik7Ci0jZWxzZQotI2lmIE9TX09CSkVDVF9VU0Vf
T0JKQ19SRVRBSU5fUkVMRUFTRQotICAgIFtwdHIgcmVsZWFzZV07Ci0jZWxzZQotICAgIF9vc19v
YmplY3RfcmVsZWFzZSgoX29zX29iamVjdF90KXB0cik7Ci0jZW5kaWYKLSNlbmRpZgotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPU09iamVjdFB0ciB7Ci1wdWJsaWM6Ci0gICAgT1NP
YmplY3RQdHIoKQotICAgICAgICA6IG1fcHRyKG51bGxwdHIpCi0gICAgewotICAgIH0KLQotICAg
IH5PU09iamVjdFB0cigpCi0gICAgewotICAgICAgICBpZiAobV9wdHIpCi0gICAgICAgICAgICBy
ZWxlYXNlT1NPYmplY3QobV9wdHIpOwotICAgIH0KLQotICAgIFQgZ2V0KCkgY29uc3QgeyByZXR1
cm4gbV9wdHI7IH0KLQotICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biBtX3B0cjsgfQotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fcHRyOyB9
Ci0KLSAgICBPU09iamVjdFB0cihjb25zdCBPU09iamVjdFB0ciYgb3RoZXIpCi0gICAgICAgIDog
bV9wdHIob3RoZXIubV9wdHIpCi0gICAgewotICAgICAgICBpZiAobV9wdHIpCi0gICAgICAgICAg
ICByZXRhaW5PU09iamVjdChtX3B0cik7Ci0gICAgfQotCi0gICAgT1NPYmplY3RQdHIoT1NPYmpl
Y3RQdHImJiBvdGhlcikKLSAgICAgICAgOiBtX3B0cihvdGhlci5tX3B0cikKLSAgICB7Ci0gICAg
ICAgIG90aGVyLm1fcHRyID0gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBPU09iamVjdFB0ciYgb3Bl
cmF0b3I9KGNvbnN0IE9TT2JqZWN0UHRyJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIE9TT2JqZWN0
UHRyIHB0ciA9IG90aGVyOwotICAgICAgICBzd2FwKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhp
czsKLSAgICB9Ci0KLSAgICBPU09iamVjdFB0ciYgb3BlcmF0b3I9KE9TT2JqZWN0UHRyJiYgb3Ro
ZXIpCi0gICAgewotICAgICAgICBPU09iamVjdFB0ciBwdHIgPSBXVEY6Om1vdmUob3RoZXIpOwot
ICAgICAgICBzd2FwKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBP
U09iamVjdFB0ciYgb3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90KQotICAgIHsKLSAgICAgICAgaWYg
KG1fcHRyKQotICAgICAgICAgICAgcmVsZWFzZU9TT2JqZWN0KG1fcHRyKTsKLSAgICAgICAgbV9w
dHIgPSBudWxscHRyOwotCi0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICB2b2lk
IHN3YXAoT1NPYmplY3RQdHImIG90aGVyKQotICAgIHsKLSAgICAgICAgc3RkOjpzd2FwKG1fcHRy
LCBvdGhlci5tX3B0cik7Ci0gICAgfQotCi0gICAgZnJpZW5kIE9TT2JqZWN0UHRyIGFkb3B0T1NP
YmplY3Q8VD4oVCk7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IEFkb3B0T1NPYmplY3QgeyB9Owot
ICAgIE9TT2JqZWN0UHRyKEFkb3B0T1NPYmplY3QsIFQgcHRyKQotICAgICAgICA6IG1fcHRyKHB0
cikKLSAgICB7Ci0gICAgfQotCi0gICAgVCBtX3B0cjsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGlubGluZSBPU09iamVjdFB0cjxUPiBhZG9wdE9TT2JqZWN0KFQgcHRyKQotewotICAgIHJl
dHVybiBPU09iamVjdFB0cjxUPih0eXBlbmFtZSBPU09iamVjdFB0cjxUPjo6QWRvcHRPU09iamVj
dCB7IH0sIHB0cik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6Ok9TT2Jq
ZWN0UHRyOwotdXNpbmcgV1RGOjphZG9wdE9TT2JqZWN0OwotCi0jZW5kaWYgLy8gT1NPYmplY3RQ
dHJfaApJbmRleDogU291cmNlL1dURi93dGYvUmV0YWluUHRyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvUmV0YWluUHRyLmgJKHJldmlzaW9uIDE3NDAxNykKKysrIFNvdXJjZS9XVEYv
d3RmL1JldGFpblB0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBAIG5hbWVzcGFj
ZSBXVEYgewogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmV0YWluUHRyOwogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmV0YWluUHRyPFQ+IGFkb3B0T1MoVCBDRl9SRUxFQVNF
U19BUkdVTUVOVCkgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IFJldGFpblB0cjxUPiBhZG9wdENGKFQgQ0ZfUkVMRUFTRVNfQVJHVU1FTlQpIFdBUk5fVU5VU0VE
X1JFVFVSTjsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZXRhaW5QdHI8VD4gYWRvcHROUyhU
IE5TX1JFTEVBU0VTX0FSR1VNRU5UKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAKQEAgLTEwMCw2ICsx
MDEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgICAgICB2b2lkIHN3YXAoUmV0YWluUHRyJik7
CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIFJldGFpblB0cjxVPiBhZG9w
dE9TKFUgQ0ZfUkVMRUFTRVNfQVJHVU1FTlQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKICAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIFJldGFpblB0cjxVPiBhZG9wdENGKFUgQ0ZfUkVM
RUFTRVNfQVJHVU1FTlQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKICAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4gZnJpZW5kIFJldGFpblB0cjxVPiBhZG9wdE5TKFUgTlNfUkVMRUFTRVNfQVJHVU1F
TlQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKIApAQCAtMjQ5LDYgKzI1MSwxMSBAQCBuYW1lc3BhY2Ug
V1RGIHsKICAgICAgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsgCiAgICAgfQogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gaW5saW5lIFJldGFpblB0cjxUPiBhZG9wdE9TKFQgQ0ZfUkVMRUFTRVNf
QVJHVU1FTlQgcHRyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFJldGFpblB0cjxUPihwdHIsIFJl
dGFpblB0cjxUPjo6QWRvcHQpOworICAgIH0KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBSZXRhaW5QdHI8VD4gYWRvcHRDRihUIENGX1JFTEVBU0VTX0FSR1VNRU5UIHB0cikKICAg
ICB7CiAjaWZkZWYgX19PQkpDX18KQEAgLTMxNCw2ICszMjEsNyBAQCBuYW1lc3BhY2UgV1RGIHsK
IH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlJldGFpblB0cjsKK3VzaW5nIFdURjo6
YWRvcHRPUzsKIHVzaW5nIFdURjo6YWRvcHRDRjsKIHVzaW5nIFdURjo6YWRvcHROUzsKIHVzaW5n
IFdURjo6cmV0YWluUHRyOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MDIwKQorKysgU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIw
MTQtMDktMjYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNl
IE9TT2JqZWN0UHRyIHdpdGggUmV0YWluUHRyL2Fkb3B0T1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzE1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2ludC5tbToKKyAgICAgICAgKERh
dGFiYXNlU2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpOZXR3b3JrU2Vy
dmljZUluaXRpYWxpemVyRGVsZWdhdGUpOgorICAgICAgICAoTmV0d29ya1NlcnZpY2VJbml0aWFs
aXplcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcjo6SWRlbnRpZmllcik6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uVGVy
bWluYXRpb25XYXRjaGRvZzo6Y3JlYXRlQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2cpOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uVGVybWluYXRpb25XYXRjaGRvZzo6Q29ubmVjdGlvblRl
cm1pbmF0aW9uV2F0Y2hkb2cpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9t
YWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OlBsdWdpblNlcnZpY2VJbml0aWFs
aXplckRlbGVnYXRlKToKKyAgICAgICAgKFBsdWdpblNlcnZpY2VJbml0aWFsaXplcik6CisgICAg
ICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyRGVs
ZWdhdGU6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6
WFBDU2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbToKKyAgICAgICAgKFdl
YktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmNoZWNrRW50aXRsZW1lbnRzKToK
KyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6Omhhc0VudGl0
bGVtZW50KToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2Vy
dmljZS9YUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbToKKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUV2ZW50SGFuZGxlcik6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6OlhQ
Q1NlcnZpY2VFdmVudEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMv
UHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0VG9TZXJ2aWNl
KToKKyAgICAgICAgKFdlYktpdDo6Y29ubmVjdFRvUmVFeGVjU2VydmljZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50
cnlQb2ludC5tbToKKyAgICAgICAgKFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIpOgorCiAy
MDE0LTA5LTI2ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgV0tJbnNwZWN0b3IgYmFjayBmdW5jdGlvbiBzdHVicyB0aGF0IHdlbnQgbWlzc2luZyBm
cm9tIHIxNzM5MjkuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL0RhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0JKHJldmlzaW9uIDE3NDAxNykKKysr
IFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNl
L0RhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2LDUgKzM2
LDUgQEAgZXh0ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBEYXRhYmFzZVNlcnZpYwogCiB2b2lkIERh
dGFiYXNlU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBj
X29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSkKIHsKLSAgICBYUENTZXJ2aWNlSW5pdGlhbGl6
ZXI8RGF0YWJhc2VQcm9jZXNzLCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRP
U09iamVjdChjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKKyAgICBYUENTZXJ2aWNl
SW5pdGlhbGl6ZXI8RGF0YWJhc2VQcm9jZXNzLCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0
ZT4oYWRvcHRPUyhjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0
d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRy
eVBvaW50Lm1tCShyZXZpc2lvbiAxNzQwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlIDogcHVibGljIFhQQ1NlcnZp
Y2VJbml0aWFsaXplckRlbGVnYXRlIHsKIHB1YmxpYzoKLSAgICBOZXR3b3JrU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGUoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwg
eHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSkKKyAgICBOZXR3b3JrU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGUoUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhw
Y19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpCiAgICAgICAgIDogWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGUoV1RGOjptb3ZlKGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2Up
CiAgICAgewogICAgIH0KQEAgLTUzLDYgKzUzLDYgQEAgdm9pZCBOZXR3b3JrU2VydmljZUluaXRp
YWxpemVyKHhwY19jb25uZQogICAgIC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGlu
c2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCiAgICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlw
VmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9TZWNJdGVt
U2hpbS5keWxpYiIpOwogCi0gICAgWFBDU2VydmljZUluaXRpYWxpemVyPE5ldHdvcmtQcm9jZXNz
LCBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGFkb3B0T1NPYmplY3QoY29ubmVj
dGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSk7CisgICAgWFBDU2VydmljZUluaXRpYWxpemVyPE5l
dHdvcmtQcm9jZXNzLCBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGFkb3B0T1Mo
Y29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSk7CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMTc0MDE3KQorKysg
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsOCArNDIsOCBAQAogCiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgPG1hY2gvbWFjaF9w
b3J0Lmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHhwYy94cGMuaD4K
LSNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShFRkwpCkBAIC0xMTEsMTQgKzExMSwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IHsKICAgICAgICAgfQogCi0gICAgICAgIElkZW50aWZpZXIobWFjaF9wb3J0X3QgcG9ydCwgT1NP
YmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4geHBjQ29ubmVjdGlvbikKKyAgICAgICAgSWRlbnRp
ZmllcihtYWNoX3BvcnRfdCBwb3J0LCBSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25fdD4geHBjQ29u
bmVjdGlvbikKICAgICAgICAgICAgIDogcG9ydChwb3J0KQogICAgICAgICAgICAgLCB4cGNDb25u
ZWN0aW9uKFdURjo6bW92ZSh4cGNDb25uZWN0aW9uKSkKICAgICAgICAgewogICAgICAgICB9CiAK
ICAgICAgICAgbWFjaF9wb3J0X3QgcG9ydDsKLSAgICAgICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5l
Y3Rpb25fdD4geHBjQ29ubmVjdGlvbjsKKyAgICAgICAgUmV0YWluUHRyPHhwY19jb25uZWN0aW9u
X3Q+IHhwY0Nvbm5lY3Rpb247CiAgICAgfTsKICAgICBzdGF0aWMgYm9vbCBpZGVudGlmaWVySXNO
dWxsKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gaWRlbnRpZmllci5wb3J0ID09IE1B
Q0hfUE9SVF9OVUxMOyB9CiAgICAgeHBjX2Nvbm5lY3Rpb25fdCB4cGNDb25uZWN0aW9uKCkgeyBy
ZXR1cm4gbV94cGNDb25uZWN0aW9uLmdldCgpOyB9CkBAIC0zMjAsNyArMzIwLDcgQEAgcHJpdmF0
ZToKICAgICBkaXNwYXRjaF9zb3VyY2VfdCBtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291
cmNlOwogI2VuZGlmCiAKLSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX3hwY0Nv
bm5lY3Rpb247CisgICAgUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+IG1feHBjQ29ubmVjdGlv
bjsKIAogI2VsaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAgLy8gQ2FsbGVkIG9uIHRo
ZSBjb25uZWN0aW9uIHF1ZXVlLgpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21h
Yy9Db25uZWN0aW9uTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQkocmV2aXNpb24gMTc0MDE3KQorKysgU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC03NSwxMyArNzUsMTMgQEAgZW51bSB7CiAvLyAgICB0byBlbnN1cmUgaXQgaGFzIGEgY2hhbmNl
IHRvIHRlcm1pbmF0ZSBjbGVhbmx5LgogY2xhc3MgQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hk
b2cgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUNvbm5lY3Rpb25UZXJtaW5hdGlv
bldhdGNoZG9nKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+JiB4cGNDb25uZWN0aW9uLCBk
b3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCisgICAgc3RhdGljIHZvaWQgY3JlYXRlQ29ubmVjdGlv
blRlcm1pbmF0aW9uV2F0Y2hkb2coUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+JiB4cGNDb25u
ZWN0aW9uLCBkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCiAgICAgewogICAgICAgICBuZXcgQ29u
bmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2coeHBjQ29ubmVjdGlvbiwgaW50ZXJ2YWxJblNlY29u
ZHMpOwogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0
Y2hkb2coT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4mIHhwY0Nvbm5lY3Rpb24sIGRvdWJs
ZSBpbnRlcnZhbEluU2Vjb25kcykKKyAgICBDb25uZWN0aW9uVGVybWluYXRpb25XYXRjaGRvZyhS
ZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25fdD4mIHhwY0Nvbm5lY3Rpb24sIGRvdWJsZSBpbnRlcnZh
bEluU2Vjb25kcykKICAgICAgICAgOiBtX3hwY0Nvbm5lY3Rpb24oeHBjQ29ubmVjdGlvbikKICAg
ICAgICAgLCBtX3dhdGNoZG9nVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmQ29ubmVjdGlv
blRlcm1pbmF0aW9uV2F0Y2hkb2c6OndhdGNoZG9nVGltZXJGaXJlZCkKICNpZiBQTEFURk9STShJ
T1MpCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGRlbGV0ZSB0aGlzOwogICAg
IH0KIAotICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IG1feHBjQ29ubmVjdGlvbjsK
KyAgICBSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV94cGNDb25uZWN0aW9uOwogICAgIFJ1
bkxvb3A6OlRpbWVyPENvbm5lY3Rpb25UZXJtaW5hdGlvbldhdGNoZG9nPiBtX3dhdGNoZG9nVGlt
ZXI7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlByb2Nl
c3NBbmRVSUFzc2VydGlvbj4gbV9hc3NlcnRpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9p
bnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAx
NzQwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQ
Q1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5o
IgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKQEAgLTM3LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFBs
dWdpblNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlIDogcHVibGljIFhQQ1NlcnZpY2VJbml0aWFs
aXplckRlbGVnYXRlIHsKIHB1YmxpYzoKLSAgICBQbHVnaW5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxl
Z2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0
X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAgIFBsdWdpblNlcnZpY2VJbml0aWFsaXplckRlbGVn
YXRlKFJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3Qg
aW5pdGlhbGl6ZXJNZXNzYWdlKQogICAgICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVn
YXRlKFdURjo6bW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKQogICAgIHsKICAg
ICB9CkBAIC03Niw2ICs3Nyw2IEBAIHZvaWQgUGx1Z2luU2VydmljZUluaXRpYWxpemVyKHhwY19j
b25uZWMKICAgICAvLyBzcGF3bmVkIGJ5IHRoZSBQbHVnaW5Qcm9jZXNzIGRvbid0IHRyeSB0byBp
bnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgogICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJp
cFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvUGx1Z2lu
UHJvY2Vzc1NoaW0uZHlsaWIiKTsKIAotICAgIFhQQ1NlcnZpY2VJbml0aWFsaXplcjxQbHVnaW5Q
cm9jZXNzLCBQbHVnaW5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChj
b25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKKyAgICBYUENTZXJ2aWNlSW5pdGlhbGl6
ZXI8UGx1Z2luUHJvY2VzcywgUGx1Z2luU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGFkb3B0
T1MoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSk7CiAjZW5kaWYgLy8gRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9Y
UENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgJKHJldmlzaW9uIDE3NDAxNykKKysrIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VFbnRyeVBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAog
I2ltcG9ydCAiQ2hpbGRQcm9jZXNzLmgiCiAjaW1wb3J0ICJXZWJLaXQySW5pdGlhbGl6ZS5oIgot
I2ltcG9ydCA8d3RmL09TT2JqZWN0UHRyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAK
ICNpZiBIQVZFKFZPVUNIRVJTKQogI2lmIF9faGFzX2luY2x1ZGUoPG9zL3ZvdWNoZXJfcHJpdmF0
ZS5oPikKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFhQQ1Nl
cnZpY2VJbml0aWFsaXplckRlbGVnYXRlIHsKIHB1YmxpYzoKLSAgICBYUENTZXJ2aWNlSW5pdGlh
bGl6ZXJEZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4
cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAgIFhQQ1NlcnZpY2VJbml0aWFsaXpl
ckRlbGVnYXRlKFJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2Jq
ZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQogICAgICAgICA6IG1fY29ubmVjdGlvbihXVEY6Om1v
dmUoY29ubmVjdGlvbikpCiAgICAgICAgICwgbV9pbml0aWFsaXplck1lc3NhZ2UoaW5pdGlhbGl6
ZXJNZXNzYWdlKQogICAgIHsKQEAgLTYxLDEyICs2MSwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBoYXNFbnRpdGxlbWVudChjb25zdCBjaGFyKiBlbnRpdGxlbWVudCk7CiAgICAgYm9vbCBpc0Ns
aWVudFNhbmRib3hlZCgpOwogCi0gICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9j
b25uZWN0aW9uOworICAgIFJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247
CiAgICAgeHBjX29iamVjdF90IG1faW5pdGlhbGl6ZXJNZXNzYWdlOwogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgWFBDU2VydmljZVR5cGUsIHR5cGVuYW1lIFhQQ1NlcnZpY2VJbml0aWFsaXplckRl
bGVnYXRlVHlwZT4KLXZvaWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0UHRyPHhwY19j
b25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2Up
Cit2b2lkIFhQQ1NlcnZpY2VJbml0aWFsaXplcihSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
Y29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSkKIHsKICAgICBYUENT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGUgZGVsZWdhdGUoV1RGOjptb3ZlKGNvbm5lY3Rp
b24pLCBpbml0aWFsaXplck1lc3NhZ2UpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQkocmV2aXNpb24gMTc0MDE3
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKICNpbXBvcnQgIlNhbmRib3hVdGls
aXRpZXMuaCIKICNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCisjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CiAKICNpZiBfX2hhc19pbmNsdWRlKDx4cGMvcHJpdmF0ZS5oPikKICNpbXBv
cnQgPHhwYy9wcml2YXRlLmg+CkBAIC01NSw3ICs1Niw3IEBAIGJvb2wgWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGU6OmNoZWMKICAgICB9CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgYXV0byB2YWx1ZSA9IGFkb3B0T1NPYmplY3QoeHBjX2Nvbm5lY3Rpb25fY29weV9lbnRpdGxl
bWVudF92YWx1ZShtX2Nvbm5lY3Rpb24uZ2V0KCksICJrZXljaGFpbi1hY2Nlc3MtZ3JvdXBzIikp
OworICAgIGF1dG8gdmFsdWUgPSBhZG9wdE9TKHhwY19jb25uZWN0aW9uX2NvcHlfZW50aXRsZW1l
bnRfdmFsdWUobV9jb25uZWN0aW9uLmdldCgpLCAia2V5Y2hhaW4tYWNjZXNzLWdyb3VwcyIpKTsK
ICAgICBpZiAodmFsdWUgJiYgeHBjX2dldF90eXBlKHZhbHVlLmdldCgpKSA9PSBYUENfVFlQRV9B
UlJBWSkgewogICAgICAgICB4cGNfYXJyYXlfYXBwbHkodmFsdWUuZ2V0KCksIF5ib29sKHNpemVf
dCBpbmRleCwgeHBjX29iamVjdF90IG9iamVjdCkgewogICAgICAgICAgICAgaWYgKHhwY19nZXRf
dHlwZShvYmplY3QpID09IFhQQ19UWVBFX1NUUklORyAmJiAhc3RyY21wKHhwY19zdHJpbmdfZ2V0
X3N0cmluZ19wdHIob2JqZWN0KSwgImNvbS5hcHBsZS5pZGVudGl0aWVzIikpIHsKQEAgLTEwNSw3
ICsxMDYsNyBAQCBib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRFCiAKIGJv
b2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6Omhhc0VudGl0bGVtZW50KGNvbnN0IGNo
YXIqIGVudGl0bGVtZW50KQogewotICAgIGF1dG8gdmFsdWUgPSBhZG9wdE9TT2JqZWN0KHhwY19j
b25uZWN0aW9uX2NvcHlfZW50aXRsZW1lbnRfdmFsdWUobV9jb25uZWN0aW9uLmdldCgpLCBlbnRp
dGxlbWVudCkpOworICAgIGF1dG8gdmFsdWUgPSBhZG9wdE9TKHhwY19jb25uZWN0aW9uX2NvcHlf
ZW50aXRsZW1lbnRfdmFsdWUobV9jb25uZWN0aW9uLmdldCgpLCBlbnRpdGxlbWVudCkpOwogICAg
IGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1h
aW4uRGV2ZWxvcG1lbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4uRGV2ZWxvcG1l
bnQubW0JKHJldmlzaW9uIDE3NDAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0IDxzcGF3bi5oPiAKICNp
bXBvcnQgPHN0ZGlvLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4KLSNpbXBvcnQgPHd0Zi9PU09iamVj
dFB0ci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8eHBjL3hwYy5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgdm9pZCBYUENT
ZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jCiAgICAgICAgICAgICAgICAgICAgIGV4aXQoRVhJVF9G
QUlMVVJFKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBhdXRvIHJlcGx5
ID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVhdGVfcmVwbHkoZXZlbnQpKTsKKyAg
ICAgICAgICAgICAgICBhdXRvIHJlcGx5ID0gYWRvcHRPUyh4cGNfZGljdGlvbmFyeV9jcmVhdGVf
cmVwbHkoZXZlbnQpKTsKICAgICAgICAgICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5n
KHJlcGx5LmdldCgpLCAibWVzc2FnZS1uYW1lIiwgInByb2Nlc3MtZmluaXNoZWQtbGF1bmNoaW5n
Iik7CiAgICAgICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKHhwY19kaWN0
aW9uYXJ5X2dldF9yZW1vdGVfY29ubmVjdGlvbihldmVudCksIHJlcGx5LmdldCgpKTsKIApJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHJl
dmlzaW9uIDE3NDAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKIAogI2ltcG9ydCA8Q29yZUZvdW5kYXRp
b24vQ29yZUZvdW5kYXRpb24uaD4KLSNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8eHBjL3hwYy5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxl
cih4cGNfYwogICAgICAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgYXV0byByZXBseSA9IGFkb3B0T1NPYmplY3Qo
eHBjX2RpY3Rpb25hcnlfY3JlYXRlX3JlcGx5KGV2ZW50KSk7CisgICAgICAgICAgICAgICAgYXV0
byByZXBseSA9IGFkb3B0T1MoeHBjX2RpY3Rpb25hcnlfY3JlYXRlX3JlcGx5KGV2ZW50KSk7CiAg
ICAgICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhyZXBseS5nZXQoKSwgIm1l
c3NhZ2UtbmFtZSIsICJwcm9jZXNzLWZpbmlzaGVkLWxhdW5jaGluZyIpOwogICAgICAgICAgICAg
ICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSh4cGNfZGljdGlvbmFyeV9nZXRfcmVtb3Rl
X2Nvbm5lY3Rpb24oZXZlbnQpLCByZXBseS5nZXQoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVy
TWFjLm1tCShyZXZpc2lvbiAxNzQwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjAyLDcg
KzIwMiw3IEBAIHN0YXRpYyBib29sIHNob3VsZExlYWtCb29zdChjb25zdCBQcm9jZXMKIHN0YXRp
YyB2b2lkIGNvbm5lY3RUb1NlcnZpY2UoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRp
b25zJiBsYXVuY2hPcHRpb25zLCBib29sIGZvckRldmVsb3BtZW50LCBQcm9jZXNzTGF1bmNoZXIq
IHRoYXQsIERpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3NGdW5jdGlvbiBkaWRGaW5pc2hMYXVuY2hp
bmdQcm9jZXNzRnVuY3Rpb24sIFVVSURIb2xkZXIqIGluc3RhbmNlVVVJRCkKIHsKICAgICAvLyBD
cmVhdGUgYSBjb25uZWN0aW9uIHRvIHRoZSBXZWJLaXQgWFBDIHNlcnZpY2UuCi0gICAgYXV0byBj
b25uZWN0aW9uID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVhdGUoc2VydmljZU5h
bWUobGF1bmNoT3B0aW9ucywgZm9yRGV2ZWxvcG1lbnQpLCAwKSk7CisgICAgYXV0byBjb25uZWN0
aW9uID0gYWRvcHRPUyh4cGNfY29ubmVjdGlvbl9jcmVhdGUoc2VydmljZU5hbWUobGF1bmNoT3B0
aW9ucywgZm9yRGV2ZWxvcG1lbnQpLCAwKSk7CiAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2luc3Rh
bmNlKGNvbm5lY3Rpb24uZ2V0KCksIGluc3RhbmNlVVVJRC0+dXVpZCk7CiAKICNpZiBQTEFURk9S
TShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCkBAIC0y
MTEsNyArMjExLDcgQEAgc3RhdGljIHZvaWQgY29ubmVjdFRvU2VydmljZShjb25zdCBQcm9jZQog
ICAgIC8vIDEuMS4gQW4gaW1wb3J0YW50IGNhc2UgaXMgV2ViS2l0VGVzdFJ1bm5lciwgd2hlcmUg
d2Ugc2hvdWxkIHVzZSBFbmdsaXNoIGxvY2FsaXphdGlvbnMgZm9yIGFsbCBzeXN0ZW0gZnJhbWV3
b3Jrcy4KICAgICAvLyAyLiBXaGVuIEFwcGxlTGFuZ3VhZ2VzIGlzIHBhc3NlZCBhcyBjb21tYW5k
IGxpbmUgYXJndW1lbnQgZm9yIFVJIHByb2Nlc3MsIG9yIHNldCBpbiBpdHMgcHJlZmVyZW5jZXMs
IHdlIHNob3VsZCByZXNwZWN0IGl0IGluIGNoaWxkIHByb2Nlc3Nlcy4KICAgICBpZiAoX0NGQnVu
ZGxlU2V0dXBYUENCb290c3RyYXBQdHIoKSkgewotICAgICAgICBhdXRvIGluaXRpYWxpemF0aW9u
TWVzc2FnZSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51
bGxwdHIsIDApKTsKKyAgICAgICAgYXV0byBpbml0aWFsaXphdGlvbk1lc3NhZ2UgPSBhZG9wdE9T
KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CiAgICAgICAgIF9D
RkJ1bmRsZVNldHVwWFBDQm9vdHN0cmFwUHRyKCkoaW5pdGlhbGl6YXRpb25NZXNzYWdlLmdldCgp
KTsKICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2Jvb3RzdHJhcChjb25uZWN0aW9uLmdldCgp
LCBpbml0aWFsaXphdGlvbk1lc3NhZ2UuZ2V0KCkpOwogICAgIH0KQEAgLTIyMiw3ICsyMjIsNyBA
QCBzdGF0aWMgdm9pZCBjb25uZWN0VG9TZXJ2aWNlKGNvbnN0IFByb2NlCiAgICAgeHBjX2Nvbm5l
Y3Rpb25fcmVzdW1lKGNvbm5lY3Rpb24uZ2V0KCkpOwogICAgIAogICAgIGlmIChzaG91bGRMZWFr
Qm9vc3QobGF1bmNoT3B0aW9ucykpIHsKLSAgICAgICAgYXV0byBwcmVCb290c3RyYXBNZXNzYWdl
ID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwg
MCkpOworICAgICAgICBhdXRvIHByZUJvb3RzdHJhcE1lc3NhZ2UgPSBhZG9wdE9TKHhwY19kaWN0
aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CiAgICAgICAgIHhwY19kaWN0aW9u
YXJ5X3NldF9zdHJpbmcocHJlQm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgIm1lc3NhZ2UtbmFtZSIs
ICJwcmUtYm9vdHN0cmFwIik7CiAgICAgICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShj
b25uZWN0aW9uLmdldCgpLCBwcmVCb290c3RyYXBNZXNzYWdlLmdldCgpKTsKICAgICB9CkBAIC0y
MzgsNyArMjM4LDcgQEAgc3RhdGljIHZvaWQgY29ubmVjdFRvU2VydmljZShjb25zdCBQcm9jZQog
ICAgIENTdHJpbmcgY2xpZW50SWRlbnRpZmllciA9IGJ1bmRsZUlkZW50aWZpZXIgPyBTdHJpbmco
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSkudXRmOCgpIDogKl9OU0dl
dFByb2duYW1lKCk7CiAKICAgICAvLyBGSVhNRTogU3dpdGNoIHRvIHhwY19jb25uZWN0aW9uX3Nl
dF9ib290c3RyYXAgb25jZSBpdCdzIGF2YWlsYWJsZSBldmVyeXdoZXJlIHdlIG5lZWQuCi0gICAg
YXV0byBib290c3RyYXBNZXNzYWdlID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVh
dGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgIGF1dG8gYm9vdHN0cmFwTWVzc2FnZSA9IGFk
b3B0T1MoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKICAgICB4
cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJtZXNzYWdl
LW5hbWUiLCAiYm9vdHN0cmFwIik7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290
c3RyYXBNZXNzYWdlLmdldCgpLCAiZnJhbWV3b3JrLWV4ZWN1dGFibGUtcGF0aCIsIFtbW05TQnVu
ZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFwcGxlLldlYktpdCJdIGV4ZWN1dGFibGVQ
YXRoXSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb25dKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
bWFjaF9zZW5kKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJzZXJ2ZXItcG9ydCIsIGxpc3Rlbmlu
Z1BvcnQpOwpAQCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyB2b2lkIGNvbm5lY3RUb1NlcnZpY2Uo
Y29uc3QgUHJvY2UKICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2ZkKGJvb3RzdHJhcE1lc3Nh
Z2UuZ2V0KCksICJzdGRlcnIiLCBTVERFUlJfRklMRU5PKTsKICAgICB9CiAKLSAgICBhdXRvIGV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVh
dGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgIGF1dG8gZXh0cmFJbml0aWFsaXphdGlvbkRh
dGEgPSBhZG9wdE9TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7
CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGtleVZhbHVlUGFpciA6IGxhdW5jaE9wdGlvbnMuZXh0
cmFJbml0aWFsaXphdGlvbkRhdGEpCiAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
ZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCksIGtleVZhbHVlUGFpci5rZXkudXRmOCgpLmRh
dGEoKSwga2V5VmFsdWVQYWlyLnZhbHVlLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMzAwLDcgKzMwMCw3
IEBAIHN0YXRpYyB2b2lkIGNvbm5lY3RUb1JlRXhlY1NlcnZpY2UoY29uc3QKICAgICAvLyBGSVhN
RTogVGhpcyBVVUlEIHNob3VsZCBiZSBzdG9yZWQgb24gdGhlIENoaWxkUHJvY2Vzc1Byb3h5Lgog
ICAgIFJlZlB0cjxVVUlESG9sZGVyPiBpbnN0YW5jZVVVSUQgPSBVVUlESG9sZGVyOjpjcmVhdGUo
KTsKIAotICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIGlmIHdlIGNvdWxkIHVzZSBPU09i
amVjdFB0ciBmb3IgdGhpcyBjb25uZWN0aW9uIGFzIHdlbGwsIGJ1dCB3ZSdkIGhhdmUgdG8gYmUg
Y2FyZWZ1bAorICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIGlmIHdlIGNvdWxkIHVzZSBS
ZXRhaW5QdHIgZm9yIHRoaXMgY29ubmVjdGlvbiBhcyB3ZWxsLCBidXQgd2UnZCBoYXZlIHRvIGJl
IGNhcmVmdWwKICAgICAvLyBub3QgdG8gaW50cm9kdWNlIGFueSByZXRhaW4gY3ljbGVzIGluIHRo
ZSBjYWxsIHRvIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyIGJlbG93LgogICAgIHhw
Y19jb25uZWN0aW9uX3QgcmVFeGVjQ29ubmVjdGlvbiA9IHhwY19jb25uZWN0aW9uX2NyZWF0ZShz
ZXJ2aWNlTmFtZShsYXVuY2hPcHRpb25zLCB0cnVlKSwgMCk7CiAgICAgeHBjX2Nvbm5lY3Rpb25f
c2V0X2luc3RhbmNlKHJlRXhlY0Nvbm5lY3Rpb24sIGluc3RhbmNlVVVJRC0+dXVpZCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2Vi
Q29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVu
dHJ5UG9pbnQubW0JKHJldmlzaW9uIDE3NDAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTUyLDUgKzUyLDUgQEAgdm9pZCBXZWJDb250ZW50U2Vydmlj
ZUluaXRpYWxpemVyKHhwY19jbwogICAgIEluaXRXZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNl
KCk7CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCi0gICAgWFBDU2VydmljZUluaXRpYWxpemVy
PFdlYlByb2Nlc3MsIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlPihhZG9wdE9TT2JqZWN0
KGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UpOworICAgIFhQQ1NlcnZpY2VJbml0aWFs
aXplcjxXZWJQcm9jZXNzLCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPUyhj
b25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKIH0KSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NDAyMCkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA5LTI2
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBPU09iamVj
dFB0ciB3aXRoIFJldGFpblB0ci9hZG9wdE9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2Rh
cndpbi9PU09iamVjdFB0ci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvZGFyd2luL1JldGFpblB0ck9TT2JqZWN0LmNwcDogQ29waWVkIGZyb20gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZGFyd2luL09TT2JqZWN0UHRyLmNwcC4KKyAgICAgICAg
UmVuYW1lIGFuZCBjaGFuZ2UgdGVzdCB0byB1c2UgUmV0YWluUHRyLiBSZW1vdmUgbm93IHVubmVl
ZGVkIHBhcnQgdGVzdGluZyBXVEY6OnJldGFpbk9TT2JqZWN0L1dURjo6cmVsZWFzZU9TT2JqZWN0
LgorCiAyMDE0LTA5LTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1hYyBFV1MgYm90cyBkbyBub3Qga2VlcCBsb2dzIGFzIHByb21pc2VkCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTc0MDE3KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTEyMyw3ICsxMjMsNyBAQAogCQk3Qzc0RDQyRjE4ODIyOEYzMDBFNUVENTcgLyogU3Ry
aW5nVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Qzc0RDQyRDE4ODIyOEYzMDBFNUVENTcgLyogU3RyaW5nVmlldy5jcHAgKi87IH07CiAJCTdD
OEREQUFCMTczNURFRUUwMEVBNUFDMCAvKiBDbG9zZVRoZW5UZXJtaW5hdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4RERBQTkxNzM1REUxRDAw
RUE1QUMwIC8qIENsb3NlVGhlblRlcm1pbmF0ZS5jcHAgKi87IH07CiAJCTdDOUVEOThCMTdBMTlG
NEIwMEU0REMzMyAvKiBhdHRyaWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOUVEOThBMTdB
MTlEMDYwMEU0REMzMyAvKiBhdHRyaWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sICovOyB9
OwotCQk3Q0JCQTA3ODE5QkI4QTkxMDBCQkYwMjUgLyogT1NPYmplY3RQdHIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCQkEwNzYxOUJCOEE5MTAw
QkJGMDI1IC8qIE9TT2JqZWN0UHRyLmNwcCAqLzsgfTsKKwkJN0NCQkEwNzgxOUJCOEE5MTAwQkJG
MDI1IC8qIFJldGFpblB0ck9TT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkJBMDc2MTlCQjhBOTEwMEJCRjAyNSAvKiBSZXRhaW5QdHJP
U09iamVjdC5jcHAgKi87IH07CiAJCTdDQzNFMUZDMTk3RTIzNDEwMEJFNjI1MiAvKiBVc2VyQ29u
dGVudENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0MzRTFGQTE5N0UyMzQxMDBCRTYyNTIgLyogVXNlckNvbnRlbnRDb250cm9sbGVy
Lm1tICovOyB9OwogCQk3Q0ZCQ0FERjE3NDMyMzRGMDBCMkJGQ0YgLyogV2lsbExvYWQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGQkNBREQxNzQz
MjM0RjAwQjJCRkNGIC8qIFdpbGxMb2FkLmNwcCAqLzsgfTsKIAkJN0NGQkNBRTUxNzQzMjM4RjAw
QjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0ZCQ0FFMzE3NDMyMzhFMDBCMkJGQ0YgLyogV2lsbExvYWRf
QnVuZGxlLmNwcCAqLzsgfTsKQEAgLTQ3Miw3ICs0NzIsNyBAQAogCQk3Qzc0RDQyRDE4ODIyOEYz
MDBFNUVENTcgLyogU3RyaW5nVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTdHJpbmdWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M4
RERBQTkxNzM1REUxRDAwRUE1QUMwIC8qIENsb3NlVGhlblRlcm1pbmF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDbG9zZVRoZW5UZXJtaW5hdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QzlFRDk4QTE3QTE5RDA2MDBFNERDMzMgLyogYXR0cmlidXRlZFN0cmluZ1N0cmlr
ZXRocm91Z2guaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGF0dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoLmh0
bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkJBMDc2MTlCQjhBOTEwMEJCRjAy
NSAvKiBPU09iamVjdFB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBPU09iamVjdFB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkJBMDc2
MTlCQjhBOTEwMEJCRjAyNSAvKiBSZXRhaW5QdHJPU09iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXRhaW5QdHJPU09iamVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDQzNFMUZBMTk3RTIzNDEwMEJFNjI1MiAvKiBVc2VyQ29udGVu
dENvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBV
c2VyQ29udGVudENvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
RkJDQUREMTc0MzIzNEYwMEIyQkZDRiAvKiBXaWxsTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDRkJDQUUzMTc0MzIzOEUwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbExvYWRfQnVuZGxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2Niw3ICs3NjYsNyBAQAogCQk3Q0JCQTA3
NTE5QkI4QTA5MDBCQkYwMjUgLyogZGFyd2luICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQk3Q0JCQTA3NjE5QkI4QTkxMDBCQkYwMjUgLyogT1NPYmplY3RQ
dHIuY3BwICovLAorCQkJCTdDQkJBMDc2MTlCQjhBOTEwMEJCRjAyNSAvKiBSZXRhaW5QdHJPU09i
amVjdC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGRhcndpbjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0xMzQ1LDcgKzEzNDUsNyBAQAogCQkJCTFBRUY5OTQ5MTdBMDlGNTQwMDk5
OEVGMCAvKiBHZXRQSURBZnRlckFib3J0ZWRQcm9jZXNzTGF1bmNoLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDMDI5QjE4MTQ4NkFENjQwMDgxN0RBOSAvKiBSZXRhaW5QdHIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkMwMjlCMUMxNDg2QjI1OTAwODE3REE5IC8qIFJldGFpblB0ci5tbSBpbiBT
b3VyY2VzICovLAotCQkJCTdDQkJBMDc4MTlCQjhBOTEwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0JCQTA3ODE5QkI4QTkxMDBCQkYwMjUgLyogUmV0YWlu
UHRyT1NPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA5OTFDNTExNDNDN0Q2ODAwNzk5
OEYyIC8qIFJldGFpblB0ckhhc2hpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1MzkzQ0Ex
NzU3QkFDNDAwQzA3MTIzIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRGM0IxMTMx
NUU0NUVBQjAwMjEwMDY5IC8qIFNhdHVyYXRlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZGFyd2luL09T
T2JqZWN0UHRyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9kYXJ3aW4vT1NPYmplY3RQdHIuY3BwCShyZXZpc2lvbiAxNzQwMTcpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9kYXJ3aW4vT1NPYmplY3RQdHIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
bmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KLQotI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNo
Lmg+Ci0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLQotbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewotCi1URVNUKE9TT2JqZWN0UHRyLCBBZG9wdE9TT2JqZWN0KQot
ewotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3F1ZXVlX3Q+IGZvbyA9IGFkb3B0T1NPYmplY3Qo
ZGlzcGF0Y2hfcXVldWVfY3JlYXRlKDAsIERJU1BBVENIX1FVRVVFX1NFUklBTCkpOwotCi0gICAg
RVhQRUNUX0VRKDEsIENGR2V0UmV0YWluQ291bnQoZm9vLmdldCgpKSk7Ci19Ci0KLVRFU1QoT1NP
YmplY3RQdHIsIFJldGFpblJlbGVhc2UpCi17Ci0gICAgZGlzcGF0Y2hfcXVldWVfdCBmb28gPSBk
aXNwYXRjaF9xdWV1ZV9jcmVhdGUoMCwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKTsKLSAgICBFWFBF
Q1RfRVEoMSwgQ0ZHZXRSZXRhaW5Db3VudChmb28pKTsKLQotICAgIFdURjo6cmV0YWluT1NPYmpl
Y3QoZm9vKTsKLSAgICBFWFBFQ1RfRVEoMiwgQ0ZHZXRSZXRhaW5Db3VudChmb28pKTsKLQotICAg
IFdURjo6cmVsZWFzZU9TT2JqZWN0KGZvbyk7Ci0gICAgRVhQRUNUX0VRKDEsIENGR2V0UmV0YWlu
Q291bnQoZm9vKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2Rhcndpbi9SZXRhaW5QdHJPU09iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZGFyd2luL1JldGFp
blB0ck9TT2JqZWN0LmNwcAkocmV2aXNpb24gMTc0MDE3KQkoZnJvbSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9kYXJ3aW4vT1NPYmplY3RQdHIuY3BwOjE3NDAxNykKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL2Rhcndpbi9SZXRhaW5QdHJPU09iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgorCisjaW5jbHVkZSA8ZGlzcGF0Y2gv
ZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoT1NPYmplY3RQdHIsIEFkb3B0T1NP
YmplY3QpCit7CisgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfcXVldWVfdD4gZm9vID0gYWRvcHRP
U09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoMCwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKSk7
CisKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZHZXRSZXRhaW5Db3VudChmb28uZ2V0KCkpKTsKK30KKwor
VEVTVChPU09iamVjdFB0ciwgUmV0YWluUmVsZWFzZSkKK3sKKyAgICBkaXNwYXRjaF9xdWV1ZV90
IGZvbyA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgwLCBESVNQQVRDSF9RVUVVRV9TRVJJQUwpOwor
ICAgIEVYUEVDVF9FUSgxLCBDRkdldFJldGFpbkNvdW50KGZvbykpOworCisgICAgV1RGOjpyZXRh
aW5PU09iamVjdChmb28pOworICAgIEVYUEVDVF9FUSgyLCBDRkdldFJldGFpbkNvdW50KGZvbykp
OworCisgICAgV1RGOjpyZWxlYXNlT1NPYmplY3QoZm9vKTsKKyAgICBFWFBFQ1RfRVEoMSwgQ0ZH
ZXRSZXRhaW5Db3VudChmb28pKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZGFyd2luL1JldGFpblB0ck9TT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9kYXJ3
aW4vUmV0YWluUHRyT1NPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9kYXJ3aW4vUmV0YWluUHRyT1NPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSwzMCArMjUsMTggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVk
ZSA8d3RmL09TT2JqZWN0UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiAjaW5j
bHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3Jl
Rm91bmRhdGlvbi5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLVRFU1QoT1NPYmpl
Y3RQdHIsIEFkb3B0T1NPYmplY3QpCitURVNUKFJldGFpblB0ck9TT2JqZWN0LCBBZG9wdE9TT2Jq
ZWN0KQogewotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3F1ZXVlX3Q+IGZvbyA9IGFkb3B0T1NP
YmplY3QoZGlzcGF0Y2hfcXVldWVfY3JlYXRlKDAsIERJU1BBVENIX1FVRVVFX1NFUklBTCkpOwor
ICAgIFJldGFpblB0cjxkaXNwYXRjaF9xdWV1ZV90PiBmb28gPSBhZG9wdE9TKGRpc3BhdGNoX3F1
ZXVlX2NyZWF0ZSgwLCBESVNQQVRDSF9RVUVVRV9TRVJJQUwpKTsKIAogICAgIEVYUEVDVF9FUSgx
LCBDRkdldFJldGFpbkNvdW50KGZvby5nZXQoKSkpOwogfQogCi1URVNUKE9TT2JqZWN0UHRyLCBS
ZXRhaW5SZWxlYXNlKQotewotICAgIGRpc3BhdGNoX3F1ZXVlX3QgZm9vID0gZGlzcGF0Y2hfcXVl
dWVfY3JlYXRlKDAsIERJU1BBVENIX1FVRVVFX1NFUklBTCk7Ci0gICAgRVhQRUNUX0VRKDEsIENG
R2V0UmV0YWluQ291bnQoZm9vKSk7Ci0KLSAgICBXVEY6OnJldGFpbk9TT2JqZWN0KGZvbyk7Ci0g
ICAgRVhQRUNUX0VRKDIsIENGR2V0UmV0YWluQ291bnQoZm9vKSk7Ci0KLSAgICBXVEY6OnJlbGVh
c2VPU09iamVjdChmb28pOwotICAgIEVYUEVDVF9FUSgxLCBDRkdldFJldGFpbkNvdW50KGZvbykp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>
<flag name="review"
          id="263481"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>