<?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>237706</bug_id>
          
          <creation_ts>2022-03-10 04:39:12 -0800</creation_ts>
          <short_desc>Remove use of MediaSampleAVFObjC from WebRTC pipelines</short_desc>
          <delta_ts>2022-03-21 00:15:28 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>237596</dependson>
          <blocked>237884</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1850032</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-10 04:39:12 -0800</bug_when>
    <thetext>Remove use of MediaSampleAVFObjC from WebRTC pipelines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851210</commentid>
    <comment_count>1</comment_count>
      <attachid>454683</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-15 02:42:04 -0700</bug_when>
    <thetext>Created attachment 454683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852244</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-17 05:40:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/90425391&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852655</commentid>
    <comment_count>3</comment_count>
      <attachid>455078</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-18 01:36:35 -0700</bug_when>
    <thetext>Created attachment 455078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853113</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-21 00:15:24 -0700</bug_when>
    <thetext>Committed r291550 (248656@main): &lt;https://commits.webkit.org/248656@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455078.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454683</attachid>
            <date>2022-03-15 02:42:04 -0700</date>
            <delta_ts>2022-03-18 01:36:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237706-20220315104202.patch</filename>
            <type>text/plain</type>
            <size>37723</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQwZmZlZjY0MDZjYjEy
MTY5NzhhYzRmODRkM2Y0NmRkNGNkYjc0Yy4uOGQzODNiNjNmMWEwNGUzYjJmNmQxZTgxOGJhNDRh
MWFhNjI1YWYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIyLTAzLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdXNlIG9mIE1l
ZGlhU2FtcGxlQVZGT2JqQyBmcm9tIFdlYlJUQyBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgTWVkaWFTYW1wbGVBVkZPYmpD
IGJ5IFZpZGVvRnJhbWVDViB3aGVuIGhhbmRsaW5nIENWUGl4ZWxCdWZmZXJzLgorCisgICAgICAg
IENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojp0b01lZGlh
U2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2Jq
Qzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRl
RnJvbVBpeGVsQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZlcik6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnBhaW50Q29tcG9z
aXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZU1lZGlhU2FtcGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRNZWRpYVNhbXBsZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GcmFtZUNWOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRl
b1NvdXJjZTo6YWRhcHRWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmFkYXB0VmlkZW9TYW1wbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChX
ZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBs
ZUJ1ZmZlckZyb21Db25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2E6OmNyZWF0ZVZpZGVvU2FtcGxlRnJvbUNWUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnRvVmlkZW9GcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6Y3JlYXRlTWVk
aWFTYW1wbGVGcm9tQ1ZQaXhlbEJ1ZmZlcik6IERlbGV0ZWQuCisKIDIwMjItMDMtMTUgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU2hhcmVkVmlkZW9G
cmFtZVJlYWRlciB1c2UgVmlkZW9GcmFtZUNWIGluc3RlYWQgb2YgTWVkaWFTYW1wbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggY2FlZDllYjUzMjQxNGEyNDdhZGYzZGJiYTAzM2ZjYjk3YWJiZmFlMy4uNmJjMmY0M2M0
ODAyMWJhMmY3YjhkZWYwMTUwOWEzZTk3MDRjNzk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMi0wMy0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIHVzZSBvZiBNZWRpYVNhbXBsZUFWRk9iakMgZnJvbSBXZWJSVEMgcGlwZWxpbmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc3MDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENDb2RlY3NQcm94eTo6Y3JlYXRlRGVjb2RlckNhbGxiYWNrKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6
OnJvdGF0ZVZpZGVvRnJhbWVJZk5lZWRlZCk6CisKIDIwMjItMDMtMTUgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU2hhcmVkVmlkZW9GcmFtZVJlYWRl
ciB1c2UgVmlkZW9GcmFtZUNWIGluc3RlYWQgb2YgTWVkaWFTYW1wbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggZWQxMTNmNzY2NzYyODJhMGJjZWM2MzA1
YjkwODA5MzFjODNkNzlkZC4uYjM3MDI4ZmYzZDZiNGY5YzRmNDQxNjg3ODkyNmJjYjdjZTc2ZWZl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTYyLDYg
KzYyLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTdHJpbmdBZGFwdG9ycy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWVD
Vi5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxt
YXRoLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTk4LDcgKzk5LDYg
QEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVB
VkZPYmpDLmgiCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjZW5kaWYK
IApAQCAtNzk4LDcgKzc5OCw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gSFRNTENhbnZhc0VsZW1l
bnQ6OnRvTWVkaWFTYW1wbGUoKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhl
bEJ1ZmZlcihXVEZNb3ZlKCpwaXhlbEJ1ZmZlcikpOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6
OmNyZWF0ZShXVEZNb3ZlKCpwaXhlbEJ1ZmZlcikpOwogI2VsaWYgVVNFKEdTVFJFQU1FUikKICAg
ICByZXR1cm4gTWVkaWFTYW1wbGVHU3RyZWFtZXI6OmNyZWF0ZUltYWdlU2FtcGxlKFdURk1vdmUo
KnBpeGVsQnVmZmVyKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLmgKaW5kZXggODdmYWM4NTEzZjY0NWNjMGQxMjVmYWFmNDM2ZmM2OWNiMDBlZjkz
Ni4uNWRjZmMwMmRhMWI4YjNmYzE2NDZjYjIyMWY5MTJmMTJiZDFlZDlmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
YW1wbGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKQEAgLTQ0LDExICs0NCw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZSwgdWludDY0X3QgdHJhY2tJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYVNhbXBsZUFWRk9iakMoc2FtcGxlLCB0cmFja0lEKSk7IH0KICAgICBzdGF0aWMgUmVm
PE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgQXRv
bVN0cmluZyB0cmFja0lEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2Jq
QyhzYW1wbGUsIHRyYWNrSUQpKTsgfQogICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVBVkZPYmpD
PiBjcmVhdGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9u
ID0gVmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUsIHJvdGF0aW9uLCBtaXJyb3Jl
ZCkpOyB9Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZUZyb21Q
aXhlbEJ1ZmZlcihQaXhlbEJ1ZmZlciYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
UHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlRnJvbVBpeGVsQnVmZmVyKFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiYmLCBWaWRlb1JvdGF0aW9uLCBib29sIG1pcnJvcmVkLCBNZWRpYVRp
bWUgcHJlc2VudGF0aW9uVGltZSA9IHsgfSwgTWVkaWFUaW1lIGRlY29kaW5nVGltZSA9IHsgfSk7
Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRBc0Rpc3BsYXlJbW1lZGlhdGVs
eShNZWRpYVNhbXBsZSYpOwotICAgIHN0YXRpYyBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IGNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZm
ZXJSZWYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEpTQzo6VWludDhDbGFtcGVkQXJy
YXk+IGdldFJHQkFJbWFnZURhdGEoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IDVkNjZhMDQyNmIwNGFhZWNkNjU3
N2RlY2MzNDZiNzcwNzBkZmVmNTYuLjY5OTNjZmNlMTM5ZDcxMmQxMTVkMmU5MWZjNWVjMzdjZGY4
MTRkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0K
QEAgLTc1LDU4ICs3NSw2IEBAIE1lZGlhU2FtcGxlQVZGT2JqQzo6TWVkaWFTYW1wbGVBVkZPYmpD
KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgVmlkZW9Sb3RhdGlvbiByCiAKIE1lZGlhU2FtcGxl
QVZGT2JqQzo6fk1lZGlhU2FtcGxlQVZGT2JqQygpID0gZGVmYXVsdDsKIAotUmVmUHRyPE1lZGlh
U2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIo
UGl4ZWxCdWZmZXImJiBwaXhlbEJ1ZmZlcikKLXsKLSAgICBhdXRvIHNpemUgPSBwaXhlbEJ1ZmZl
ci5zaXplKCk7Ci0gICAgYXV0byB3aWR0aCA9IHNpemUud2lkdGgoKTsKLSAgICBhdXRvIGhlaWdo
dCA9IHNpemUuaGVpZ2h0KCk7Ci0KLSAgICBhdXRvIGRhdGEgPSBwaXhlbEJ1ZmZlci50YWtlRGF0
YSgpOwotICAgIGF1dG8gZGF0YUJhc2VBZGRyZXNzID0gZGF0YS0+ZGF0YSgpOwotICAgIGF1dG8g
bGVha2VkRGF0YSA9ICZkYXRhLmxlYWtSZWYoKTsKLSAgICAKLSAgICBhdXRvIGRlcmVmQnVmZmVy
ID0gW10gKHZvaWQqIGNvbnRleHQsIGNvbnN0IHZvaWQqKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0
PEpTQzo6VWludDhDbGFtcGVkQXJyYXkqPihjb250ZXh0KS0+ZGVyZWYoKTsKLSAgICB9OwotCi0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBjdlBpeGVsQnVmZmVyUmF3ID0gbnVsbHB0cjsKLSAgICBhdXRv
IHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoQnl0ZXMoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgd2lkdGgsIGhlaWdodCwga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSwgZGF0YUJhc2VBZGRy
ZXNzLCB3aWR0aCAqIDQsIGRlcmVmQnVmZmVyLCBsZWFrZWREYXRhLCBudWxscHRyLCAmY3ZQaXhl
bEJ1ZmZlclJhdyk7Ci0KLSAgICBhdXRvIGN2UGl4ZWxCdWZmZXIgPSBhZG9wdENGKGN2UGl4ZWxC
dWZmZXJSYXcpOwotICAgIGlmICghY3ZQaXhlbEJ1ZmZlcikgewotICAgICAgICBkZXJlZkJ1ZmZl
cihsZWFrZWREYXRhLCBudWxscHRyKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
ICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCAhc3RhdHVzKTsKLSAgICByZXR1cm4gY3JlYXRlRnJv
bVBpeGVsQnVmZmVyKFdURk1vdmUoY3ZQaXhlbEJ1ZmZlciksIFZpZGVvUm90YXRpb246Ok5vbmUs
IGZhbHNlKTsKLX0KLQotUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVBVkZP
YmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYg
cGl4ZWxCdWZmZXIsIFZpZGVvUm90YXRpb24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQsIE1lZGlh
VGltZSBwcmVzZW50YXRpb25UaW1lLCBNZWRpYVRpbWUgZGVjb2RpbmdUaW1lKQotewotICAgIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvblJhdyA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZv
ckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLmdldCgpLCAmZm9y
bWF0RGVzY3JpcHRpb25SYXcpOwotICAgIGlmIChzdGF0dXMgfHwgIWZvcm1hdERlc2NyaXB0aW9u
UmF3KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0gICAgYXV0byBmb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0YoZm9ybWF0
RGVzY3JpcHRpb25SYXcpOwotCi0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHNhbXBsZVRpbWluZ0lu
Zm9ybWF0aW9uID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OnRvQ01UaW1lKHByZXNlbnRh
dGlvblRpbWUpLCBQQUw6OnRvQ01UaW1lKGRlY29kaW5nVGltZSkgfTsKLSAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGVCdWZmZXJSYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01T
YW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBwaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1wbGVUaW1p
bmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1ZmZlclJhdyk7Ci0gICAgaWYgKHN0YXR1cyB8fCAhc2Ft
cGxlQnVmZmVyUmF3KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9wdENGKHNh
bXBsZUJ1ZmZlclJhdyk7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gUEFMOjpD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLmdldCgp
LCB0cnVlKTsKLSAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50
KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICBDRk11dGFibGVE
aWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURpY3Rp
b25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkpOwot
ICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01TYW1wbGVB
dHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwotICAgIH0K
LSAgICByZXR1cm4gY3JlYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSwgcm90YXRpb24sIG1pcnJvcmVk
KTsKLX0KLQogTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0aW9uVGltZSgp
IGNvbnN0CiB7CiAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0
cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKQEAgLTM5NywxMSArMzQ1
LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0
ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUIKICAgICB9CiB9CiAKLXZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQot
ewotICAgIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KHNhbXBsZS5wbGF0Zm9y
bVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Ci19Ci0KIGJvb2wgTWVkaWFTYW1wbGVB
VkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKICAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheSht
X3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CkBAIC00NzIsMzkgKzQxNSw2IEBAIFZlY3RvcjxSZWY8TWVk
aWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVv
dXNTYW1wbGVzCiAgICAgcmV0dXJuIHNhbXBsZXM7CiB9CiAKLVJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlz
cGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKLXsKLSAgICBhdXRvIHBp
eGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZJbWFnZUJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1
ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZSkpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IFBBTDo6Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7Ci0gICAgaWYgKHN0YXR1cykKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgYXV0byByZXRhaW5lZEZvcm1hdERlc2NyaXB0aW9u
ID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlvbik7Ci0KLSAgICBDTUl0ZW1Db3VudCBpdGVtQ291
bnQgPSAwOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKLSAgICBpZiAoc3RhdHVz
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0lu
Zm8+IHRpbWluZ0luZm9BcnJheTsKLSAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQp
OwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJy
YXkoc2FtcGxlLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxwdHIpOwot
ICAgIGlmIChzdGF0dXMpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ01TYW1wbGVC
dWZmZXJSZWYgbmV3U2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZm
ZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1
ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZuZXdTYW1w
bGVCdWZmZXIpOwotICAgIGlmIChzdGF0dXMpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgc2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkobmV3U2FtcGxlQnVmZmVyKTsK
LQotICAgIHJldHVybiBhZG9wdENGKG5ld1NhbXBsZUJ1ZmZlcik7Ci19Ci0KIENWUGl4ZWxCdWZm
ZXJSZWYgTWVkaWFTYW1wbGVBVkZPYmpDOjpwaXhlbEJ1ZmZlcigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJ
bWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW0KaW5kZXggNDgzMWVjMWI5MTBmNzczMDdmZGJjODE1OTJmN2Y4MmNkOWY3MmQxNC4uMDFiODJm
YTZlMTJlODRlOTI4NzI5MjQ5YTZhZTVmZWRjYzdmNDgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCkBAIC01NSw3ICs1NSw2IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgotI2ltcG9ydCAiTWVkaWFTYW1w
bGVBVkZPYmpDLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzgyLDcgKzc4
MSw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGlmIChtX3Jlc291cmNlT3duZXIpCiAgICAgICAgIHNldE93bmVyc2hpcElkZW50aXR5Rm9y
Q1ZQaXhlbEJ1ZmZlcihtZWRpYVNhbXBsZVBpeGVsQnVmZmVyLmdldCgpLCBtX3Jlc291cmNlT3du
ZXIpOwotICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZl
cihXVEZNb3ZlKG1lZGlhU2FtcGxlUGl4ZWxCdWZmZXIpLCBNZWRpYVNhbXBsZUFWRk9iakM6OlZp
ZGVvUm90YXRpb246Ok5vbmUsIGZhbHNlKTsKKyAgICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVh
dGUoeyB9LCBmYWxzZSwgVmlkZW9GcmFtZUNWOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBXVEZNb3Zl
KG1lZGlhU2FtcGxlUGl4ZWxCdWZmZXIpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5tbQppbmRleCA2MjZjZDgzODYxZWFlYzczY2M4Y2M5Yzg1NWZjYzE4OTU4YzZkMTFjLi4z
ZWFiMDY4OWU5MDQ1MWFkNDU4Y2VmMzg5Njk0ZmY5ZTY5YjA2Zjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25T
ZXNzaW9uVlQubW0KQEAgLTEyNyw5ICsxMjcsOSBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZQog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFn
ZVJvdGF0aW9uU2Vzc2lvblZUOjpyb3RhdGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgY29uc3QgUm90
YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlvbiwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjZ0ltYWdlQ29t
cGF0aWJsZSkKK1JldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVJvdGF0aW9uU2Vzc2lv
blZUOjpyb3RhdGUoTWVkaWFTYW1wbGUmIHZpZGVvRnJhbWUsIGNvbnN0IFJvdGF0aW9uUHJvcGVy
dGllcyYgcm90YXRpb24sIElzQ0dJbWFnZUNvbXBhdGlibGUgY2dJbWFnZUNvbXBhdGlibGUpCiB7
Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBB
TDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5z
YW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gdmlkZW9GcmFt
ZS5waXhlbEJ1ZmZlcigpOwogICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7CiAgICAgaWYgKCFwaXhl
bEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgK
aW5kZXggZWUwMmFkYWFkYmRkNzU3ZDZhZGI1M2MzNDQzMDUzY2IxZjNmMzFhYi4uYmE4MTA0ZDY5
ODE0YjRkODFhMmM1OTQwOWU1ZTJkZmY3YTM1NDljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
aApAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJJbnRTaXplLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lLmgiCiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdl
UmVmOwpAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4obmV3IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQo
cGl4ZWxGb3JtYXQsIHNob3VsZFVzZUlPU3VyZmFjZSkpOwogICAgIH0KIAotICAgIFJlZlB0cjxN
ZWRpYVNhbXBsZT4gY29udmVydE1lZGlhU2FtcGxlKE1lZGlhU2FtcGxlJiwgY29uc3QgSW50U2l6
ZSYpOworICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gY29udmVydFZpZGVvRnJhbWUoTWVkaWFTYW1w
bGUmLCBjb25zdCBJbnRTaXplJik7CiAgICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRp
YVNhbXBsZShDR0ltYWdlUmVmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBJbnRTaXplJiwgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9u
ZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKTsKICAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0
ZU1lZGlhU2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBJ
bnRTaXplJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQubW0KaW5kZXggZTMxNzFkMzUzNzI3OGZkM2YxNjQwZmJjOTU2ZmEwMWNhNmE4NjVjMi4u
OGI2ZDc5NDU1YWI3MzMyYzM0Mzk5MjgxNDkzM2M2MDVmOTc5Y2M2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVy
U2Vzc2lvblZULm1tCkBAIC0yOSw5ICsyOSwxMCBAQAogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCi0jaW1w
b3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2lt
cG9ydCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVzY3JpcHRpb24uaD4KICNpbXBvcnQgPENvcmVNZWRp
YS9DTVNhbXBsZUJ1ZmZlci5oPgorI2ltcG9ydCA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVB
VkZvdW5kYXRpb24uaD4KIAogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg+CkBAIC0yNTQsMTggKzI1NSwxNiBAQCBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2Ft
cGxlQnVmZmVyKElPU3VyZgogfQogI2VuZGlmCiAKLVJlZlB0cjxNZWRpYVNhbXBsZT4gSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydE1lZGlhU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUs
IGNvbnN0IEludFNpemUmIHNpemUpCitSZWZQdHI8TWVkaWFTYW1wbGU+IEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNvbnZlcnRWaWRlb0ZyYW1lKE1lZGlhU2FtcGxlJiB2aWRlb0ZyYW1lLCBjb25z
dCBJbnRTaXplJiBzaXplKQogewotICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50
eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOworICAgIGlmIChzaXpl
ID09IGV4cGFuZGVkSW50U2l6ZSh2aWRlb0ZyYW1lLnByZXNlbnRhdGlvblNpemUoKSkpCisgICAg
ICAgIHJldHVybiAmdmlkZW9GcmFtZTsKIAotICAgIGlmIChzaXplID09IGV4cGFuZGVkSW50U2l6
ZShzYW1wbGUucHJlc2VudGF0aW9uU2l6ZSgpKSkKLSAgICAgICAgcmV0dXJuICZzYW1wbGU7Ci0K
LSAgICBhdXRvIHJlc2l6ZWRCdWZmZXIgPSBjb252ZXJ0Q01TYW1wbGVCdWZmZXIoc2FtcGxlLnBs
YXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCBzaXplKTsKKyAgICBhdXRvIHJl
c2l6ZWRCdWZmZXIgPSBjb252ZXJ0UGl4ZWxCdWZmZXIodmlkZW9GcmFtZS5waXhlbEJ1ZmZlcigp
LCBzaXplKTsKICAgICBpZiAoIXJlc2l6ZWRCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgcmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKHJlc2l6ZWRCdWZmZXIu
Z2V0KCksIHNhbXBsZS52aWRlb1JvdGF0aW9uKCksIHNhbXBsZS52aWRlb01pcnJvcmVkKCkpOwor
ICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZSh2aWRlb0ZyYW1lLnByZXNlbnRhdGlvblRp
bWUoKSwgdmlkZW9GcmFtZS52aWRlb01pcnJvcmVkKCksIHZpZGVvRnJhbWUudmlkZW9Sb3RhdGlv
bigpLCBXVEZNb3ZlKHJlc2l6ZWRCdWZmZXIpKTsKIH0KIAogI2lmICFQTEFURk9STShNQUNDQVRB
TFlTVCkKQEAgLTI3NSw3ICsyNzQsNyBAQCBSZWZQdHI8TWVkaWFTYW1wbGU+IEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmNyZWF0ZU1lZGlhU2FtcGxlKElPU3VyZmFjZVJlZiBzdXJmYQogICAgIGlm
ICghc2FtcGxlQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCksIHJvdGF0aW9uLCBt
aXJyb3JlZCk7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6Y3JlYXRlKHNhbXBsZUJ1ZmZlci5n
ZXQoKSwgbWlycm9yZWQsIHJvdGF0aW9uKTsKIH0KICNlbmRpZgogCkBAIC0yODUsNyArMjg0LDcg
QEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVNZWRp
YVNhbXBsZShDR0ltYWdlUmVmIGltYWdlLAogICAgIGlmICghc2FtcGxlQnVmZmVyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZShzYW1wbGVCdWZmZXIuZ2V0KCksIHJvdGF0aW9uLCBtaXJyb3JlZCk7CisgICAgcmV0dXJuIFZp
ZGVvRnJhbWVDVjo6Y3JlYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSwgbWlycm9yZWQsIHJvdGF0aW9u
KTsKIH0KIAogUmVmUHRyPE1lZGlhU2FtcGxlPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVh
dGVNZWRpYVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIsIGNvbnN0IE1lZGlhVGltZSYg
c2FtcGxlVGltZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQpCkBAIC0yOTQsNyArMjkzLDcgQEAgUmVmUHRyPE1l
ZGlhU2FtcGxlPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVNZWRpYVNhbXBsZShDTVNh
bXBsZUJ1ZmZlclJlZgogICAgIGlmICghc2FtcGxlQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZm
ZXIuZ2V0KCksIHJvdGF0aW9uLCBtaXJyb3JlZCk7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6
Y3JlYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSwgbWlycm9yZWQsIHJvdGF0aW9uKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb0ZyYW1lQ1YuaAppbmRleCAzMWMxZDZlZGJjMTI2YTBhZDkzNjM4OWEzNDgw
MDY2YjUzNDA3NWM3Li5jZThiZjQzOTc1MTZkYzNlMTM0ZjE2YzQwOGY0ODQ5MmUwZDkyMDA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1l
Q1YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1l
Q1YuaApAQCAtMzEsMTMgKzMxLDE4IEBACiAjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAordXNpbmcgQ01TYW1wbGVCdWZmZXJSZWYgPSBzdHJ1Y3Qg
b3BhcXVlQ01TYW1wbGVCdWZmZXIqOwogdXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBf
X0NWQnVmZmVyKjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQaXhlbEJ1ZmZlcjsK
KwogY2xhc3MgVmlkZW9GcmFtZUNWIDogcHVibGljIFZpZGVvRnJhbWUgewogcHVibGljOgorICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8VmlkZW9GcmFtZUNWPiBjcmVhdGUoUGl4ZWxC
dWZmZXImJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxWaWRlb0ZyYW1lQ1Y+IGNy
ZWF0ZShNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1Jv
dGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxWaWRlb0ZyYW1lQ1Y+IGNyZWF0ZShDTVNhbXBsZUJ1ZmZlclJlZiwgYm9v
bCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+VmlkZW9G
cmFtZUNWKCk7CiAKICAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tCmluZGV4IDM1MTcwN2FiZTcy
Y2NiYWY4MTg0NGQ4YjE0ZmM1NjgyZDU3YzJiYjUuLjRiMDdjNzEwMWY4OGZiMDAwMDQ5ZGE4MDUw
OTNkZGY5YWM4NjE4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvRnJhbWVDVi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0KQEAgLTI4LDExICsyOCw0OCBAQAogCiAjaWYgRU5BQkxF
KFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogI2luY2x1ZGUgIkNWVXRpbGl0aWVzLmgiCisj
aW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKICNp
bmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Jl
ZjxWaWRlb0ZyYW1lQ1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlciwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uKQorewor
ICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgYXV0byB0
aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0
YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgaWYgKENNVElNRV9JU19JTlZBTElEKHRpbWVTdGFtcCkp
CisgICAgICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25U
aW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0
ZShQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCksIGlzTWlycm9yZWQsIHJvdGF0aW9uLCBwaXhl
bEJ1ZmZlcik7Cit9CisKK1JlZlB0cjxWaWRlb0ZyYW1lQ1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRl
KFBpeGVsQnVmZmVyJiYgcGl4ZWxCdWZmZXIpCit7CisgICAgYXV0byBzaXplID0gcGl4ZWxCdWZm
ZXIuc2l6ZSgpOworICAgIGF1dG8gd2lkdGggPSBzaXplLndpZHRoKCk7CisgICAgYXV0byBoZWln
aHQgPSBzaXplLmhlaWdodCgpOworCisgICAgYXV0byBkYXRhID0gcGl4ZWxCdWZmZXIudGFrZURh
dGEoKTsKKyAgICBhdXRvIGRhdGFCYXNlQWRkcmVzcyA9IGRhdGEtPmRhdGEoKTsKKyAgICBhdXRv
IGxlYWtlZERhdGEgPSAmZGF0YS5sZWFrUmVmKCk7CisgICAgCisgICAgYXV0byBkZXJlZkJ1ZmZl
ciA9IFtdICh2b2lkKiBjb250ZXh0LCBjb25zdCB2b2lkKikgeworICAgICAgICBzdGF0aWNfY2Fz
dDxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5Kj4oY29udGV4dCktPmRlcmVmKCk7CisgICAgfTsKKwor
ICAgIENWUGl4ZWxCdWZmZXJSZWYgY3ZQaXhlbEJ1ZmZlclJhdyA9IG51bGxwdHI7CisgICAgYXV0
byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aEJ5dGVzKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHdpZHRoLCBoZWlnaHQsIGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEsIGRhdGFCYXNlQWRk
cmVzcywgd2lkdGggKiA0LCBkZXJlZkJ1ZmZlciwgbGVha2VkRGF0YSwgbnVsbHB0ciwgJmN2UGl4
ZWxCdWZmZXJSYXcpOworCisgICAgYXV0byBjdlBpeGVsQnVmZmVyID0gYWRvcHRDRihjdlBpeGVs
QnVmZmVyUmF3KTsKKyAgICBpZiAoIWN2UGl4ZWxCdWZmZXIpIHsKKyAgICAgICAgZGVyZWZCdWZm
ZXIobGVha2VkRGF0YSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KyAgICBBU1NFUlRfVU5VU0VEKHN0YXR1cywgIXN0YXR1cyk7CisgICAgcmV0dXJuIGNyZWF0ZSh7
IH0sIGZhbHNlLCBWaWRlb1JvdGF0aW9uOjpOb25lLCBXVEZNb3ZlKGN2UGl4ZWxCdWZmZXIpKTsK
K30KKwogUmVmPFZpZGVvRnJhbWVDVj4gVmlkZW9GcmFtZUNWOjpjcmVhdGUoTWVkaWFUaW1lIHBy
ZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIpCiB7CiAgICAgQVNTRVJU
KHBpeGVsQnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggNWI4NWJkZTRkNzVmOGFk
YTFhMjAzMTBhZmI4MDI1OWE0NTJmYWM4MS4uYTIzNWQ0MjNmMjkxMDRjNTk0OTI4NTRmMGY3NTdh
ZjA3ZjkyNGEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCIK
LSNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lQ1Yu
aCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzIsMzEgKzE3MiwyMyBAQCB2
b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNvdXJjZVN0b3BwZWQoKQogfQogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1SZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmFkYXB0
VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKLXsKLSAgICBpZiAoc2FtcGxlLnBsYXRm
b3JtU2FtcGxlKCkudHlwZSAhPSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKSB7
Ci0gICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IG1vcmUgZWZmaWNpZW50bHkgZG93bnNhbXBsaW5n
IG9mIHJlbW90ZSB2aWRlbyBmcmFtZXMgYnkgZG93bnNhbXBsaW5nIGluIEdQVVByb2Nlc3MuCi0g
ICAgICAgIGF1dG8gbmV3U2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4
ZWxCdWZmZXIoc2FtcGxlLnBpeGVsQnVmZmVyKCksIHNhbXBsZS52aWRlb1JvdGF0aW9uKCksIHNh
bXBsZS52aWRlb01pcnJvcmVkKCksIHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCksIHsgfSk7Ci0g
ICAgICAgIGlmICghbmV3U2FtcGxlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIHJldHVybiBhZGFwdFZpZGVvU2FtcGxlKCpuZXdTYW1wbGUpOwotICAgIH0KLSAgICBBU1NF
UlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1w
bGVCdWZmZXJUeXBlKTsKLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBzYW1wbGUudmlkZW9QaXhlbEZvcm1h
dCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVDo6Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCksIG1fc2hvdWxkVXNlSU9TdXJm
YWNlKTsKK1JlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVWaWRlb1NvdXJjZTo6YWRhcHRWaWRl
b0ZyYW1lKE1lZGlhU2FtcGxlJiB2aWRlb0ZyYW1lKQoreworICAgIGlmICghbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHZp
ZGVvRnJhbWUudmlkZW9QaXhlbEZvcm1hdCgpKQorICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHZpZGVvRnJhbWUudmlkZW9QaXhl
bEZvcm1hdCgpLCBtX3Nob3VsZFVzZUlPU3VyZmFjZSk7CiAKICAgICBBU1NFUlQobV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbik7CiAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gbWVkaWFTYW1wbGUgPSBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uLT5jb252ZXJ0TWVkaWFTYW1wbGUoc2FtcGxlLCBzaXplKCkpOwotICAgIEFTU0VS
VChtZWRpYVNhbXBsZSk7CisgICAgYXV0byBuZXdWaWRlb0ZyYW1lID0gbV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbi0+Y29udmVydFZpZGVvRnJhbWUodmlkZW9GcmFtZSwgc2l6ZSgpKTsKKyAgICBBU1NF
UlQobmV3VmlkZW9GcmFtZSk7CiAKLSAgICByZXR1cm4gbWVkaWFTYW1wbGU7CisgICAgcmV0dXJu
IG5ld1ZpZGVvRnJhbWU7CiB9CiAjZW5kaWYKIAotdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjp2
aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBWaWRlb0ZyYW1lVGltZU1l
dGFkYXRhIG1ldGFkYXRhKQordm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjp2aWRlb1NhbXBsZUF2
YWlsYWJsZShNZWRpYVNhbXBsZSYgdmlkZW9GcmFtZSwgVmlkZW9GcmFtZVRpbWVNZXRhZGF0YSBt
ZXRhZGF0YSkKIHsKICAgICBpZiAobV9mcmFtZURlY2ltYXRpb24gPiAxICYmICsrbV9mcmFtZURl
Y2ltYXRpb25Db3VudGVyICUgbV9mcmFtZURlY2ltYXRpb24pCiAgICAgICAgIHJldHVybjsKQEAg
LTIwOCwxNSArMjAwLDE1IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9GcmFtZVRpCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7Ci0gICAgaWYgKCFzaXplLmlz
RW1wdHkoKSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZShzYW1wbGUucHJlc2VudGF0aW9uU2l6
ZSgpKSkgewotICAgICAgICBpZiAoYXV0byBtZWRpYVNhbXBsZSA9IGFkYXB0VmlkZW9TYW1wbGUo
c2FtcGxlKSkgewotICAgICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoKm1lZGlhU2FtcGxlLCBtZXRhZGF0YSk7CisgICAgaWYgKCFzaXplLmlzRW1wdHko
KSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZSh2aWRlb0ZyYW1lLnByZXNlbnRhdGlvblNpemUo
KSkpIHsKKyAgICAgICAgaWYgKGF1dG8gbmV3VmlkZW9GcmFtZSA9IGFkYXB0VmlkZW9GcmFtZSh2
aWRlb0ZyYW1lKSkgeworICAgICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1w
bGVBdmFpbGFibGUoKm5ld1ZpZGVvRnJhbWUsIG1ldGFkYXRhKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgogCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
dmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlLCBtZXRhZGF0YSk7CisgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUodmlkZW9GcmFtZSwgbWV0YWRhdGEpOwogfQog
CiBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2xvbmUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5oCmluZGV4IDEzMzY4MDJlMDg5YmQzYmYxNzM3ZTc3YmU2NTM1MTRhNGIy
N2JlOTAuLmE3MTk0OTc4OWU0ZTA1YTkwYTg5ZmMxNDAzYmI4MDg4Y2ZmYmY4YTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvU291cmNlLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiwgVmlkZW9GcmFtZVRpbWVNZXRhZGF0YSkgZmluYWw7
CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGFkYXB0Vmlk
ZW9TYW1wbGUoTWVkaWFTYW1wbGUmKTsKKyAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGFkYXB0Vmlk
ZW9GcmFtZShNZWRpYVNhbXBsZSYpOwogI2VuZGlmCiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCBlNWUwYTVlMmQ2ZmUyMjU3MTEz
MjFkMzA4NzE2YzlkMTMxNDIyOTI1Li4zZWNmM2FmZGM4OWQ3ZTUwN2I1MTY0MzZlMmRlNjgxMDQw
N2M4ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC0zMywxOCArMzMsMTkg
QEAKICNpbXBvcnQgIkludFJlY3QuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1l
ZGlhQ29uc3RyYWludHMuaCIKLSNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2ltcG9y
dCAiUGxhdGZvcm1MYXllci5oIgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCiAjaW1wb3J0ICJSZWFs
dGltZVZpZGVvU291cmNlLmgiCiAjaW1wb3J0ICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCisj
aW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVE
ZXZpY2UuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVJbnB1dC5oPgogI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZU91dHB1dC5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9u
L0FWQ2FwdHVyZVNlc3Npb24uaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkVycm9yLmg+CiAj
aW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFU
aW1lQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQ
SS5oPgogCiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgpAQCAtNTYwLDEyICs1NjEsMTIg
QEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBs
ZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2EKICAgICBpZiAoKyttX2ZyYW1lc0NvdW50IDw9IGZy
YW1lc1RvRHJvcFdoZW5TdGFydGluZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBzYW1w
bGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZmZXIsIG1fc2FtcGxlUm90
YXRpb24sIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKTsKLSAgICBtX2J1ZmZl
ciA9ICZzYW1wbGUuZ2V0KCk7Ci0gICAgc2V0SW50cmluc2ljU2l6ZShleHBhbmRlZEludFNpemUo
c2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCkpKTsKKyAgICBhdXRvIHZpZGVvRnJhbWUgPSBWaWRl
b0ZyYW1lQ1Y6OmNyZWF0ZShzYW1wbGVCdWZmZXIsIFtjYXB0dXJlQ29ubmVjdGlvbiBpc1ZpZGVv
TWlycm9yZWRdLCBtX3NhbXBsZVJvdGF0aW9uKTsKKyAgICBtX2J1ZmZlciA9ICZ2aWRlb0ZyYW1l
LmdldCgpOworICAgIHNldEludHJpbnNpY1NpemUoZXhwYW5kZWRJbnRTaXplKHZpZGVvRnJhbWUt
PnByZXNlbnRhdGlvblNpemUoKSkpOwogICAgIFZpZGVvRnJhbWVUaW1lTWV0YWRhdGEgbWV0YWRh
dGE7CiAgICAgbWV0YWRhdGEuY2FwdHVyZVRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKS5zZWNv
bmRzU2luY2VFcG9jaCgpOwotICAgIGRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyhXVEZN
b3ZlKHNhbXBsZSksIG1ldGFkYXRhKTsKKyAgICBkaXNwYXRjaE1lZGlhU2FtcGxlVG9PYnNlcnZl
cnMoV1RGTW92ZSh2aWRlb0ZyYW1lKSwgbWV0YWRhdGEpOwogfQogCiB2b2lkIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZShib29sIHN0YXRlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGE3NDIyN2FiNDY3
ZmQyOWQyYWExODZhNTg2NjQ3NjkwNDM3NDhmMmQuLjAzNTMyNThhYjYxZjQyZGE0MjNjMTY1NzU0
MWMwODcwMzUzYmRkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
bW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZULmgiCiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCi0j
aW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbXBvcnQgIk1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgogI2ltcG9ydCAiUGxh
dGZvcm1MYXllci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EuaAppbmRleCA4YTAyNTI5NjIxMzZhMjIzZWQzNDJmNzgwNzcyNWFmODQ4ZDFiOGI1Li45
MmMyZmVjNjgyZGQ2YWU3NjRmYmIyOTA0Y2FjOGZlZmE0OTY3MzRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaApAQCAtMjksMTAgKzI5LDkgQEAK
IAogI2lmIFVTRShMSUJXRUJSVEMpCiAKLSNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgogI2luY2x1
ZGUgIlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUu
aCIKIAotdXNpbmcgQ01TYW1wbGVCdWZmZXJSZWYgPSBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZm
ZXIqOwogdXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVy
UG9vbCo7CiB1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOwogCkBA
IC01MCw4ICs0OSw4IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiwg
U3RyaW5nJiYpOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZy
b21WaWRlb0ZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpOwogICAgIENWUGl4ZWxCdWZm
ZXJQb29sUmVmIHBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIHdl
YnJ0Yzo6QnVmZmVyVHlwZSk7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiB0b1ZpZGVvRnJhbWUo
Y29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24pOwot
ICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gY3JlYXRlTWVkaWFTYW1wbGVGcm9tQ1ZQaXhlbEJ1ZmZl
cihDVlBpeGVsQnVmZmVyUmVmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiwgaW50NjRfdCk7
CisgICAgUmVmUHRyPFZpZGVvRnJhbWU+IHRvVmlkZW9GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVv
RnJhbWUmLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbik7CisgICAgUmVmPFZpZGVvRnJhbWU+
IGNyZWF0ZVZpZGVvU2FtcGxlRnJvbUNWUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiwgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24sIGludDY0X3QpOwogCiAgICAgLy8gcnRjOjpWaWRlb1Np
bmtJbnRlcmZhY2UKICAgICB2b2lkIE9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW0KaW5kZXggNTE4NTRmYjJiOWM1Mzk3OTdkNWM3Njc5NTZhODI1M2E5NTc0OTE3Mi4uZWUyODIz
YzFlYTczODVkOWExODQwMTk2YzdkY2JiNmIzMTA0MWIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtMzIsNyArMzIsNyBAQAogCiAj
aW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgotI2ltcG9ydCAiTWVk
aWFTYW1wbGVBVkZPYmpDLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQgIlZp
ZGVvRnJhbWVMaWJXZWJSVEMuaCIKICNpbXBvcnQgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCkBA
IC05MSwzMyArOTEsMTIgQEAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2kKICAgICByZXR1cm4gbV9w
aXhlbEJ1ZmZlclBvb2wuZ2V0KCk7CiB9CiAKLVJlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OmNyZWF0ZU1lZGlhU2FtcGxlRnJvbUNWUGl4ZWxCdWZm
ZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24gcm90YXRpb24sIGludDY0X3QgdGltZVN0YW1wKQorUmVmPFZpZGVvRnJhbWU+IFJlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpjcmVhdGVWaWRlb1NhbXBsZUZyb21DVlBpeGVsQnVm
ZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uIHJvdGF0aW9uLCBpbnQ2NF90IHRpbWVTdGFtcCkKIHsKLSAgICBDTVNhbXBsZVRpbWluZ0lu
Zm8gdGltaW5nSW5mbzsKLSAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IFBB
TDo6Q01UaW1lTWFrZSh0aW1lU3RhbXAsIDEwMDAwMDApOwotICAgIHRpbWluZ0luZm8uZGVjb2Rl
VGltZVN0YW1wID0gUEFMOjprQ01UaW1lSW52YWxpZDsKLSAgICB0aW1pbmdJbmZvLmR1cmF0aW9u
ID0gUEFMOjprQ01UaW1lSW52YWxpZDsKLQotICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbjsKLSAgICBPU1N0YXR1cyBvc3RhdHVzID0gUEFMOjpDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKLSAg
ICBpZiAob3N0YXR1cyAhPSBub0VycikgewotICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRy
KCksIExPR0lERU5USUZJRVIsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24gd2l0aCBlcnJvciAiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
QnVmZmVyOwotICAgIG9zdGF0dXMgPSBQQUw6OkNNU2FtcGxlQnVmZmVyQ3JlYXRlUmVhZHlXaXRo
SW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxC
dWZmZXIsIGZvcm1hdERlc2NyaXB0aW9uLCAmdGltaW5nSW5mbywgJnNhbXBsZUJ1ZmZlcik7Ci0g
ICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKLSAgICBpZiAob3N0YXR1cyAhPSBub0Vy
cikgewotICAgICAgICBFUlJPUl9MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIsICJG
YWlsZWQgdG8gY3JlYXRlIHRoZSBzYW1wbGUgYnVmZmVyIHdpdGggZXJyb3IgIiwgc3RhdGljX2Nh
c3Q8aW50Pihvc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAg
IGF1dG8gc2FtcGxlID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwotICAgIHJldHVybiBNZWRpYVNh
bXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGUuZ2V0KCksIHJvdGF0aW9uKTsKKyAgICByZXR1cm4g
VmlkZW9GcmFtZUNWOjpjcmVhdGUoTWVkaWFUaW1lKHRpbWVTdGFtcCwgMTAwMDAwMCksIGZhbHNl
LCByb3RhdGlvbiwgcGl4ZWxCdWZmZXIpOwogfQogCi1SZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjp0b1ZpZGVvRnJhbWUoY29uc3Qgd2VicnRjOjpW
aWRlb0ZyYW1lJiBmcmFtZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24pCitS
ZWZQdHI8VmlkZW9GcmFtZT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnRvVmlk
ZW9GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lLCBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbiByb3RhdGlvbikKIHsKICAgICBpZiAobXV0ZWQoKSkgewogICAgICAgICBpZiAo
IW1fYmxhY2tGcmFtZSB8fCBtX2JsYWNrRnJhbWVXaWR0aCAhPSBmcmFtZS53aWR0aCgpIHx8IG1f
YmxhY2tGcmFtZUhlaWdodCAhPSBmcmFtZS5oZWlnaHQoKSkgewpAQCAtMTI1LDcgKzEwNCw3IEBA
IFJlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnRv
VmlkZW9GcmFtZShjb25zdCB3ZWJydGM6CiAgICAgICAgICAgICBtX2JsYWNrRnJhbWVIZWlnaHQg
PSBmcmFtZS5oZWlnaHQoKTsKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNr
UGl4ZWxCdWZmZXIobV9ibGFja0ZyYW1lV2lkdGgsIG1fYmxhY2tGcmFtZUhlaWdodCk7CiAgICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGNyZWF0ZU1lZGlhU2FtcGxlRnJvbUNWUGl4ZWxCdWZmZXIo
bV9ibGFja0ZyYW1lLmdldCgpLCByb3RhdGlvbiwgZnJhbWUudGltZXN0YW1wX3VzKCkpOworICAg
ICAgICByZXR1cm4gY3JlYXRlVmlkZW9TYW1wbGVGcm9tQ1ZQaXhlbEJ1ZmZlcihtX2JsYWNrRnJh
bWUuZ2V0KCksIHJvdGF0aW9uLCBmcmFtZS50aW1lc3RhbXBfdXMoKSk7CiAgICAgfQogCiAgICAg
aWYgKGF1dG8qIHByb3ZpZGVyID0gdmlkZW9GcmFtZUJ1ZmZlclByb3ZpZGVyKGZyYW1lKSkgewpA
QCAtMTM3LDcgKzExNiw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6OnRvVmlkZW9GcmFtZShjb25zdCB3ZWJydGM6CiAKICAgICAvLyBJZiB3
ZSBhbHJlYWR5IGhhdmUgYSBDVlBpeGVsQnVmZmVyUmVmLCB1c2UgaXQgZGlyZWN0bHkuCiAgICAg
aWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSB3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1l
KSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZU1lZGlhU2FtcGxlRnJvbUNWUGl4ZWxCdWZmZXIocGl4
ZWxCdWZmZXIsIHJvdGF0aW9uLCBmcmFtZS50aW1lc3RhbXBfdXMoKSk7CisgICAgICAgIHJldHVy
biBjcmVhdGVWaWRlb1NhbXBsZUZyb21DVlBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCByb3RhdGlv
biwgZnJhbWUudGltZXN0YW1wX3VzKCkpOwogCiAgICAgLy8gSW4gY2FzZSBvZiBpbiBtZW1vcnkg
bGlid2VicnRjIHNhbXBsZXMsIHdlIGhhdmUgbm9uIGludGVybGVhdmVkIFlVViBkYXRhLCBsZXQn
cyBsYXppbHkgY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGlmIG5lZWRlZC4KICAgICByZXR1cm4gVmlk
ZW9GcmFtZUxpYldlYlJUQzo6Y3JlYXRlKE1lZGlhVGltZShmcmFtZS50aW1lc3RhbXBfdXMoKSwg
MTAwMDAwMCksIGZhbHNlLCByb3RhdGlvbiwgZnJhbWUudmlkZW9fZnJhbWVfYnVmZmVyKCksIFtw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgdGhpc10oYXV0byYgYnVmZmVyKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5tbQppbmRleCBkOGE0NmQ3OTA3ZDY1NTk4MjBjODQzYWE1MjA0ZWJlNjNjYTYyZThjLi5k
OGEyOTIyNjYxNmIyNjQ3ZjExZjg0NTYwMjlmM2RlZGVlMjNlMjE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0K
QEAgLTM5LDcgKzM5LDcgQEAKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9DVlV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9MaWJXZWJSVENQ
cm92aWRlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVNhbXBsZUFWRk9iakMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+CiAjaW1wb3J0IDx3ZWJydGMvc2RrL1dlYktpdC9X
ZWJLaXREZWNvZGVyLmg+CiAjaW1wb3J0IDx3ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRFbmNvZGVy
Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KQEAgLTk3LDEzICs5NywxMSBAQCBhdXRvIExp
YldlYlJUQ0NvZGVjc1Byb3h5OjpjcmVhdGVEZWNvZGVyQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50
aWZpZXIgaWRlbnRpZmllcgogICAgIGlmICh1c2VSZW1vdGVGcmFtZXMpCiAgICAgICAgIHZpZGVv
RnJhbWVPYmplY3RIZWFwID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC5wdHIoKTsKICAgICByZXR1
cm4gW2lkZW50aWZpZXIsIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb24sIHJlc291cmNlT3duZXIg
PSBtX3Jlc291cmNlT3duZXIsIHZpZGVvRnJhbWVPYmplY3RIZWFwID0gV1RGTW92ZSh2aWRlb0Zy
YW1lT2JqZWN0SGVhcCldIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0
aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBz
YW1wbGUgPSBXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZl
cihwaXhlbEJ1ZmZlciwgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUs
IGZhbHNlLCBNZWRpYVRpbWUodGltZVN0YW1wTnMsIDEpLCB7IH0pOwotICAgICAgICBpZiAoIXNh
bXBsZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byB2aWRlb0ZyYW1lID0gV2Vi
Q29yZTo6VmlkZW9GcmFtZUNWOjpjcmVhdGUoTWVkaWFUaW1lKHRpbWVTdGFtcE5zLCAxKSwgZmFs
c2UsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBwaXhlbEJ1ZmZl
cik7CiAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQotICAgICAgICAgICAgc2FtcGxlLT5zZXRP
d25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWUt
PnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogICAgICAgICBpZiAodmlkZW9G
cmFtZU9iamVjdEhlYXApIHsKLSAgICAgICAgICAgIGF1dG8gcHJvcGVydGllcyA9IHZpZGVvRnJh
bWVPYmplY3RIZWFwLT5hZGQoc2FtcGxlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAg
YXV0byBwcm9wZXJ0aWVzID0gdmlkZW9GcmFtZU9iamVjdEhlYXAtPmFkZChXVEZNb3ZlKHZpZGVv
RnJhbWUpKTsKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q0NvZGVjczo6Q29tcGxldGVkRGVjb2RpbmcgeyBpZGVudGlmaWVyLCB0aW1lU3RhbXAsIHRpbWVT
dGFtcE5zLCBXVEZNb3ZlKHByb3BlcnRpZXMpIH0sIDApOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCBiZDFjMmQxMjViYTlhNzcxZWM2MmE5OTU1MDI3
ZDIyYzNmMTY2Njk3Li41MmY2MThhMzg2YzMwZWFmNmRiZTA4ODAxNjRmNGM5ZjMyNjk4YjExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5oIgogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
U2FtcGxlQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcAppbmRleCA5NDAyNjMyN2QwMDQ1MjJiNWM5OGI3ZDEwNjJlNDE1NWUw
OWY5YTgxLi44ZDA0ZjJjYzVhNzg5YTdhNGU5NTg3NDBjN2I2OGI1MzkzZTViYTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVk
ZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNhbXBsZUFWRk9i
akMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAK
aW5kZXggM2FhMDA4NGVjMWZiYzNlMDY4YzliNDlkYTVlMDc1MzNmNjFjMTgzYS4uMmQ0NTNlNGRh
NzljMmQ4MmQxYTkxZDA0MmYzNDUxZWI4ZWRkYzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHAKQEAgLTQxLDkgKzQxLDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1w
bGVBVkZPYmpDLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvU291cmNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KIApAQCAtMTgyLDcgKzE4Miw3IEBA
IHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAobV9zaG91bGRBcHBseVJvdGF0aW9uICYmIHNh
bXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUp
IHsKICAgICAgICAgICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSByb3RhdGVQaXhlbEJ1ZmZlcihzYW1w
bGUpOwotICAgICAgICAgICAgcmV0dXJuIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJvbVBp
eGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6Tm9uZSwgc2FtcGxlLnZpZGVvTWlycm9yZWQoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUo
KSwgc2FtcGxlLmRlY29kZVRpbWUoKSk7CisgICAgICAgICAgICByZXR1cm4gVmlkZW9GcmFtZUNW
OjpjcmVhdGUoc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvTWlycm9yZWQo
KSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIFdURk1vdmUocGl4ZWxCdWZmZXIp
KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gJnNhbXBsZTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455078</attachid>
            <date>2022-03-18 01:36:35 -0700</date>
            <delta_ts>2022-03-21 00:15:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237706-20220318093633.patch</filename>
            <type>text/plain</type>
            <size>33185</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJiNmU5ODhkYjNmMDVj
N2U1ODg4NjFjZWNjZmNhYmU0ZTI4Zjk5ZC4uODcyNzc4YzgxMzg3ZGE2NDJhYTQzYjhhYTEyMzgy
ZjEyYzVlY2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAzLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdXNlIG9mIE1l
ZGlhU2FtcGxlQVZGT2JqQyBmcm9tIFdlYlJUQyBwaXBlbGluZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwNgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vOTA0MjUzOTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVwbGFjZSBNZWRpYVNhbXBsZUFWRk9iakMgYnkgVmlkZW9GcmFtZUNWIHdoZW4g
aGFuZGxpbmcgQ1ZQaXhlbEJ1ZmZlcnMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU2FtcGxlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvRnJhbWVDVi5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2EubW06CisKIDIwMjItMDMtMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBNZWRpYVNhbXBsZSB1c2FnZSBmcm9tIGNhbnZhcyBjYXB0dXJlIGNv
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNjhiOTQ0MmMwOTU5ZmVlZjYzMDc5NjBiOTYxNjE2MjRiYjYxYWI1ZC4u
M2MzMTQ5ZDNkNWU2YjMxM2FjZTk4NTZkMzA4M2YyZTY1YTVjOGQwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMi0wMy0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHVzZSBvZiBNZWRpYVNhbXBsZUFWRk9iakMgZnJvbSBXZWJSVEMg
cGlwZWxpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzc3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNDI1MzkxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisKIDIwMjItMDMtMTggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBNZWRpYVNhbXBsZSB1
c2FnZSBmcm9tIGNhbnZhcyBjYXB0dXJlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTYW1wbGVBVkZPYmpDLmgKaW5kZXggODdmYWM4NTEzZjY0NWNjMGQxMjVmYWFmNDM2ZmM2OWNi
MDBlZjkzNi4uNWRjZmMwMmRhMWI4YjNmYzE2NDZjYjIyMWY5MTJmMTJiZDFlZDlmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFTYW1wbGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKQEAgLTQ0LDExICs0NCw2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgdWludDY0X3QgdHJhY2tJRCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBNZWRpYVNhbXBsZUFWRk9iakMoc2FtcGxlLCB0cmFja0lEKSk7IH0KICAgICBzdGF0
aWMgUmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZSwgQXRvbVN0cmluZyB0cmFja0lEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxl
QVZGT2JqQyhzYW1wbGUsIHRyYWNrSUQpKTsgfQogICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVB
VkZPYmpDPiBjcmVhdGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlLCBWaWRlb1JvdGF0aW9uIHJv
dGF0aW9uID0gVmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCBtaXJyb3JlZCA9IGZhbHNlKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2FtcGxlQVZGT2JqQyhzYW1wbGUsIHJvdGF0aW9uLCBt
aXJyb3JlZCkpOyB9Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0
ZUZyb21QaXhlbEJ1ZmZlcihQaXhlbEJ1ZmZlciYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gY3JlYXRlRnJvbVBpeGVsQnVmZmVyKFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBWaWRlb1JvdGF0aW9uLCBib29sIG1pcnJvcmVkLCBN
ZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSA9IHsgfSwgTWVkaWFUaW1lIGRlY29kaW5nVGltZSA9
IHsgfSk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRBc0Rpc3BsYXlJbW1l
ZGlhdGVseShNZWRpYVNhbXBsZSYpOwotICAgIHN0YXRpYyBSZXRhaW5QdHI8Q01TYW1wbGVCdWZm
ZXJSZWY+IGNsb25lU2FtcGxlQnVmZmVyQW5kU2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1w
bGVCdWZmZXJSZWYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEpTQzo6VWludDhDbGFt
cGVkQXJyYXk+IGdldFJHQkFJbWFnZURhdGEoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IGJhYmM1OGQwMjQ0ZGE4
NDk5ZDQ0NmJlODE3YTIyNTQwNGQzZDA0YmMuLmEwNDU4NzBlZDdlNjg3ZDIxZjMzNzkxNDBiMjgw
NDY2ZWEzMWY5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMubW0KQEAgLTc1LDU4ICs3NSw2IEBAIE1lZGlhU2FtcGxlQVZGT2JqQzo6TWVkaWFTYW1wbGVB
VkZPYmpDKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgVmlkZW9Sb3RhdGlvbiByCiAKIE1lZGlh
U2FtcGxlQVZGT2JqQzo6fk1lZGlhU2FtcGxlQVZGT2JqQygpID0gZGVmYXVsdDsKIAotUmVmUHRy
PE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxC
dWZmZXIoUGl4ZWxCdWZmZXImJiBwaXhlbEJ1ZmZlcikKLXsKLSAgICBhdXRvIHNpemUgPSBwaXhl
bEJ1ZmZlci5zaXplKCk7Ci0gICAgYXV0byB3aWR0aCA9IHNpemUud2lkdGgoKTsKLSAgICBhdXRv
IGhlaWdodCA9IHNpemUuaGVpZ2h0KCk7Ci0KLSAgICBhdXRvIGRhdGEgPSBwaXhlbEJ1ZmZlci50
YWtlRGF0YSgpOwotICAgIGF1dG8gZGF0YUJhc2VBZGRyZXNzID0gZGF0YS0+ZGF0YSgpOwotICAg
IGF1dG8gbGVha2VkRGF0YSA9ICZkYXRhLmxlYWtSZWYoKTsKLSAgICAKLSAgICBhdXRvIGRlcmVm
QnVmZmVyID0gW10gKHZvaWQqIGNvbnRleHQsIGNvbnN0IHZvaWQqKSB7Ci0gICAgICAgIHN0YXRp
Y19jYXN0PEpTQzo6VWludDhDbGFtcGVkQXJyYXkqPihjb250ZXh0KS0+ZGVyZWYoKTsKLSAgICB9
OwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBjdlBpeGVsQnVmZmVyUmF3ID0gbnVsbHB0cjsKLSAg
ICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoQnl0ZXMoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgd2lkdGgsIGhlaWdodCwga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSwgZGF0YUJh
c2VBZGRyZXNzLCB3aWR0aCAqIDQsIGRlcmVmQnVmZmVyLCBsZWFrZWREYXRhLCBudWxscHRyLCAm
Y3ZQaXhlbEJ1ZmZlclJhdyk7Ci0KLSAgICBhdXRvIGN2UGl4ZWxCdWZmZXIgPSBhZG9wdENGKGN2
UGl4ZWxCdWZmZXJSYXcpOwotICAgIGlmICghY3ZQaXhlbEJ1ZmZlcikgewotICAgICAgICBkZXJl
ZkJ1ZmZlcihsZWFrZWREYXRhLCBudWxscHRyKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCAhc3RhdHVzKTsKLSAgICByZXR1cm4gY3Jl
YXRlRnJvbVBpeGVsQnVmZmVyKFdURk1vdmUoY3ZQaXhlbEJ1ZmZlciksIFZpZGVvUm90YXRpb246
Ok5vbmUsIGZhbHNlKTsKLX0KLQotUmVmUHRyPE1lZGlhU2FtcGxlQVZGT2JqQz4gTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+JiYgcGl4ZWxCdWZmZXIsIFZpZGVvUm90YXRpb24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQs
IE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBNZWRpYVRpbWUgZGVjb2RpbmdUaW1lKQotewot
ICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvblJhdyA9IG51
bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBQQUw6OkNNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZUZvckltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLmdldCgp
LCAmZm9ybWF0RGVzY3JpcHRpb25SYXcpOwotICAgIGlmIChzdGF0dXMgfHwgIWZvcm1hdERlc2Ny
aXB0aW9uUmF3KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBmb3JtYXREZXNjcmlwdGlvbiA9IGFkb3B0Q0Yo
Zm9ybWF0RGVzY3JpcHRpb25SYXcpOwotCi0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHNhbXBsZVRp
bWluZ0luZm9ybWF0aW9uID0geyBQQUw6OmtDTVRpbWVJbnZhbGlkLCBQQUw6OnRvQ01UaW1lKHBy
ZXNlbnRhdGlvblRpbWUpLCBQQUw6OnRvQ01UaW1lKGRlY29kaW5nVGltZSkgfTsKLSAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJSYXcgPSBudWxscHRyOwotICAgIHN0YXR1cyA9IFBB
TDo6Q01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBwaXhlbEJ1ZmZlci5nZXQoKSwgZm9ybWF0RGVzY3JpcHRpb24uZ2V0KCksICZzYW1w
bGVUaW1pbmdJbmZvcm1hdGlvbiwgJnNhbXBsZUJ1ZmZlclJhdyk7Ci0gICAgaWYgKHN0YXR1cyB8
fCAhc2FtcGxlQnVmZmVyUmF3KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBzYW1wbGVCdWZmZXIgPSBhZG9w
dENGKHNhbXBsZUJ1ZmZlclJhdyk7Ci0gICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0g
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVy
LmdldCgpLCB0cnVlKTsKLSAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdl
dENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICBDRk11
dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJs
ZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwg
aSkpOwotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywgUEFMOjprQ01T
YW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwot
ICAgIH0KLSAgICByZXR1cm4gY3JlYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSwgcm90YXRpb24sIG1p
cnJvcmVkKTsKLX0KLQogTWVkaWFUaW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6cHJlc2VudGF0aW9u
VGltZSgpIGNvbnN0CiB7CiAgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVy
R2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKG1fc2FtcGxlLmdldCgpKTsKQEAgLTM5Nywx
MSArMzQ1LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUlt
bWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUIKICAgICB9CiB9CiAKLXZvaWQgTWVk
aWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQotewotICAgIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KHNhbXBsZS5w
bGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Ci19Ci0KIGJvb2wgTWVkaWFT
YW1wbGVBVkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKICAgICBDRkFycmF5UmVmIGF0
dGFjaG1lbnRzQXJyYXkgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CkBAIC00NzIsMzkgKzQxNSw2IEBAIFZlY3RvcjxS
ZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9t
b2dlbmVvdXNTYW1wbGVzCiAgICAgcmV0dXJuIHNhbXBsZXM7CiB9CiAKLVJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZlckFuZFNl
dEFzRGlzcGxheUltbWVkaWF0ZWx5KENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKLXsKLSAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZJbWFnZUJ1ZmZlclJlZj4oUEFMOjpDTVNh
bXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZSkpOwotICAgIGlmICghcGl4ZWxCdWZmZXIp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IFBBTDo6
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZmZXIoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgcGl4ZWxCdWZmZXIsICZmb3JtYXREZXNjcmlwdGlvbik7Ci0gICAgaWYgKHN0YXR1
cykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgYXV0byByZXRhaW5lZEZvcm1hdERlc2Ny
aXB0aW9uID0gYWRvcHRDRihmb3JtYXREZXNjcmlwdGlvbik7Ci0KLSAgICBDTUl0ZW1Db3VudCBp
dGVtQ291bnQgPSAwOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKLSAgICBpZiAo
c3RhdHVzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIFZlY3RvcjxDTVNhbXBsZVRp
bWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKLSAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVt
Q291bnQpOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJ
bmZvQXJyYXkoc2FtcGxlLCBpdGVtQ291bnQsIHRpbWluZ0luZm9BcnJheS5kYXRhKCksIG51bGxw
dHIpOwotICAgIGlmIChzdGF0dXMpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ01T
YW1wbGVCdWZmZXJSZWYgbmV3U2FtcGxlQnVmZmVyOwotICAgIHN0YXR1cyA9IFBBTDo6Q01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBw
aXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sIHRpbWluZ0luZm9BcnJheS5kYXRhKCksICZu
ZXdTYW1wbGVCdWZmZXIpOwotICAgIGlmIChzdGF0dXMpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgc2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkobmV3U2FtcGxlQnVm
ZmVyKTsKLQotICAgIHJldHVybiBhZG9wdENGKG5ld1NhbXBsZUJ1ZmZlcik7Ci19Ci0KIENWUGl4
ZWxCdWZmZXJSZWYgTWVkaWFTYW1wbGVBVkZPYmpDOjpwaXhlbEJ1ZmZlcigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihtX3NhbXBsZS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQu
bW0KaW5kZXggNjI2Y2Q4Mzg2MWVhZWM3M2NjOGNjOWM4NTVmY2MxODk1OGM2ZDExYy4uM2VhYjA2
ODllOTA0NTFhZDQ1OGNlZjM4OTY5NGZmOWU2OWIwNmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lv
blZULm1tCkBAIC0xMjcsOSArMTI3LDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IElt
YWdlUm90YXRpb25TZXNzaW9uVlQ6OnJvdGF0ZShDVlBpeGVsQnVmZmVyUmVmIHBpeGUKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3Rh
dGlvblNlc3Npb25WVDo6cm90YXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIGNvbnN0IFJvdGF0aW9u
UHJvcGVydGllcyYgcm90YXRpb24sIElzQ0dJbWFnZUNvbXBhdGlibGUgY2dJbWFnZUNvbXBhdGli
bGUpCitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6
cm90YXRlKE1lZGlhU2FtcGxlJiB2aWRlb0ZyYW1lLCBjb25zdCBSb3RhdGlvblByb3BlcnRpZXMm
IHJvdGF0aW9uLCBJc0NHSW1hZ2VDb21wYXRpYmxlIGNnSW1hZ2VDb21wYXRpYmxlKQogewotICAg
IGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxl
LmNtU2FtcGxlQnVmZmVyKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHZpZGVvRnJhbWUucGl4
ZWxCdWZmZXIoKTsKICAgICBBU1NFUlQocGl4ZWxCdWZmZXIpOwogICAgIGlmICghcGl4ZWxCdWZm
ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCmluZGV4
IGVlMDJhZGFhZGJkZDc1N2Q2YWRiNTNjMzQ0MzA1M2NiMWYzZjMxYWIuLmJhODEwNGQ2OTgxNGI0
ZDgxYTJjNTk0MDllNWUyZGZmN2EzNTQ5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAg
LTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2lu
Y2x1ZGUgIk1lZGlhU2FtcGxlLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+KG5ldyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUKHBpeGVs
Rm9ybWF0LCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKICAgICB9CiAKLSAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IGNvbnZlcnRNZWRpYVNhbXBsZShNZWRpYVNhbXBsZSYsIGNvbnN0IEludFNpemUmKTsK
KyAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGNvbnZlcnRWaWRlb0ZyYW1lKE1lZGlhU2FtcGxlJiwg
Y29uc3QgSW50U2l6ZSYpOwogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gY3JlYXRlTWVkaWFTYW1w
bGUoQ0dJbWFnZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYsIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGJv
b2wgbWlycm9yZWQgPSBmYWxzZSk7CiAgICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBjcmVhdGVNZWRp
YVNhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6
ZSYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246Ok5vbmUsIGJvb2wgbWlycm9yZWQgPSBmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZU
Lm1tCmluZGV4IGUzMTcxZDM1MzcyNzhmZDNmMTY0MGZiYzk1NmZhMDFjYTZhODY1YzIuLjhiNmQ3
OTQ1NWFiNzMzMmMzNDM5OTI4MTQ5MzNjNjA1Zjk3OWNjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5tbQpAQCAtMjksOSArMjksMTAgQEAKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1w
b3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgotI2ltcG9ydCAi
TWVkaWFTYW1wbGVBVkZPYmpDLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQg
PENvcmVNZWRpYS9DTUZvcm1hdERlc2NyaXB0aW9uLmg+CiAjaW1wb3J0IDxDb3JlTWVkaWEvQ01T
YW1wbGVCdWZmZXIuaD4KKyNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3Vu
ZGF0aW9uLmg+CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0lPU3VyZmFjZVNQSS5oPgpAQCAtMjU0LDE4ICsyNTUsMTYgQEAgUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1
ZmZlcihJT1N1cmYKIH0KICNlbmRpZgogCi1SZWZQdHI8TWVkaWFTYW1wbGU+IEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmNvbnZlcnRNZWRpYVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBjb25z
dCBJbnRTaXplJiBzaXplKQorUmVmUHRyPE1lZGlhU2FtcGxlPiBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjb252ZXJ0VmlkZW9GcmFtZShNZWRpYVNhbXBsZSYgdmlkZW9GcmFtZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKIHsKLSAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9
PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKKyAgICBpZiAoc2l6ZSA9PSBl
eHBhbmRlZEludFNpemUodmlkZW9GcmFtZS5wcmVzZW50YXRpb25TaXplKCkpKQorICAgICAgICBy
ZXR1cm4gJnZpZGVvRnJhbWU7CiAKLSAgICBpZiAoc2l6ZSA9PSBleHBhbmRlZEludFNpemUoc2Ft
cGxlLnByZXNlbnRhdGlvblNpemUoKSkpCi0gICAgICAgIHJldHVybiAmc2FtcGxlOwotCi0gICAg
YXV0byByZXNpemVkQnVmZmVyID0gY29udmVydENNU2FtcGxlQnVmZmVyKHNhbXBsZS5wbGF0Zm9y
bVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlciwgc2l6ZSk7CisgICAgYXV0byByZXNpemVk
QnVmZmVyID0gY29udmVydFBpeGVsQnVmZmVyKHZpZGVvRnJhbWUucGl4ZWxCdWZmZXIoKSwgc2l6
ZSk7CiAgICAgaWYgKCFyZXNpemVkQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShyZXNpemVkQnVmZmVyLmdldCgp
LCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpLCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKTsKKyAgICBy
ZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVhdGUodmlkZW9GcmFtZS5wcmVzZW50YXRpb25UaW1lKCks
IHZpZGVvRnJhbWUudmlkZW9NaXJyb3JlZCgpLCB2aWRlb0ZyYW1lLnZpZGVvUm90YXRpb24oKSwg
V1RGTW92ZShyZXNpemVkQnVmZmVyKSk7CiB9CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
CkBAIC0yNzUsNyArMjc0LDcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUOjpjcmVhdGVNZWRpYVNhbXBsZShJT1N1cmZhY2VSZWYgc3VyZmEKICAgICBpZiAoIXNh
bXBsZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gTWVkaWFT
YW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVyLmdldCgpLCByb3RhdGlvbiwgbWlycm9y
ZWQpOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCks
IG1pcnJvcmVkLCByb3RhdGlvbik7CiB9CiAjZW5kaWYKIApAQCAtMjg1LDcgKzI4NCw3IEBAIFJl
ZlB0cjxNZWRpYVNhbXBsZT4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlTWVkaWFTYW1w
bGUoQ0dJbWFnZVJlZiBpbWFnZSwKICAgICBpZiAoIXNhbXBsZUJ1ZmZlcikKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2Ft
cGxlQnVmZmVyLmdldCgpLCByb3RhdGlvbiwgbWlycm9yZWQpOworICAgIHJldHVybiBWaWRlb0Zy
YW1lQ1Y6OmNyZWF0ZShzYW1wbGVCdWZmZXIuZ2V0KCksIG1pcnJvcmVkLCByb3RhdGlvbik7CiB9
CiAKIFJlZlB0cjxNZWRpYVNhbXBsZT4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlTWVk
aWFTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyLCBjb25zdCBNZWRpYVRpbWUmIHNhbXBs
ZVRpbWUsIGNvbnN0IEludFNpemUmIHNpemUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJv
dGF0aW9uLCBib29sIG1pcnJvcmVkKQpAQCAtMjk0LDcgKzI5Myw3IEBAIFJlZlB0cjxNZWRpYVNh
bXBsZT4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlTWVkaWFTYW1wbGUoQ01TYW1wbGVC
dWZmZXJSZWYKICAgICBpZiAoIXNhbXBsZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVyLmdl
dCgpLCByb3RhdGlvbiwgbWlycm9yZWQpOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0
ZShzYW1wbGVCdWZmZXIuZ2V0KCksIG1pcnJvcmVkLCByb3RhdGlvbik7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvRnJhbWVDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9GcmFtZUNWLmgKaW5kZXggMTVmMzE4NmRjNzY3ZTdiZDI0YjMzZDllZmIwMThlZDJi
OTM5MDA5YS4uOTNhM2U3MTU3ZTYxZjUwOTEwNTJiZjNmNWY0MDRjZjA5MjY4MWM4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmgK
QEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgUGl4ZWxCdWZmZXI7CiBjbGFzcyBWaWRlb0ZyYW1lQ1Yg
OiBwdWJsaWMgVmlkZW9GcmFtZSB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxWaWRlb0ZyYW1lQ1Y+IGNyZWF0ZShNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9v
bCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4m
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxWaWRlb0ZyYW1lQ1Y+IGNyZWF0ZShD
TVNhbXBsZUJ1ZmZlclJlZiwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uKTsKICAgICBz
dGF0aWMgUmVmUHRyPFZpZGVvRnJhbWVDVj4gY3JlYXRlRnJvbVBpeGVsQnVmZmVyKFBpeGVsQnVm
ZmVyJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0ZyYW1lQ1YoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tCmluZGV4
IGYyMGQzODVkODZlMmIxMTgwNzMxMTI5OTkxNWZmMTcwOGRjZGIwMWIuLmFiZDdlMmZjODk3YjA3
MWJiMGI1ZmYzOTc2ZDk5ZjBjMTllMTQ0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0KQEAgLTI4LDExICsyOCwyMiBAQAog
CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogI2luY2x1ZGUgIkNWVXRp
bGl0aWVzLmgiCisjaW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzSWRl
bnRpdHkuaCIKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK1JlZjxWaWRlb0ZyYW1lQ1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uIHJv
dGF0aW9uKQoreworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7
CisgICAgYXV0byB0aW1lU3RhbXAgPSBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wKHNhbXBsZUJ1ZmZlcik7CisgICAgaWYgKENNVElNRV9JU19JTlZBTElE
KHRpbWVTdGFtcCkpCisgICAgICAgIHRpbWVTdGFtcCA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRQ
cmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsKKworICAgIHJldHVybiBWaWRlb0Zy
YW1lQ1Y6OmNyZWF0ZShQQUw6OnRvTWVkaWFUaW1lKHRpbWVTdGFtcCksIGlzTWlycm9yZWQsIHJv
dGF0aW9uLCBwaXhlbEJ1ZmZlcik7Cit9CisKIFJlZjxWaWRlb0ZyYW1lQ1Y+IFZpZGVvRnJhbWVD
Vjo6Y3JlYXRlKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZp
ZGVvUm90YXRpb24gcm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmIHBpeGVs
QnVmZmVyKQogewogICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
CmluZGV4IDViODViZGU0ZDc1ZjhhZGExYTIwMzEwYWZiODAyNTlhNDUyZmFjODEuLmEyMzVkNDIz
ZjI5MTA0YzU5NDkyODU0ZjBmNzU3YWYwN2Y5MjRhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
CkBAIC0zMCw3ICszMCw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCisj
aW5jbHVkZSAiVmlkZW9GcmFtZUNWLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTcyLDMxICsxNzIsMjMgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VTdG9w
cGVkKCkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotUmVmUHRyPE1lZGlhU2FtcGxlPiBSZWFs
dGltZVZpZGVvU291cmNlOjphZGFwdFZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCi17
Ci0gICAgaWYgKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgIT0gUGxhdGZvcm1TYW1wbGU6
OkNNU2FtcGxlQnVmZmVyVHlwZSkgewotICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtb3JlIGVm
ZmljaWVudGx5IGRvd25zYW1wbGluZyBvZiByZW1vdGUgdmlkZW8gZnJhbWVzIGJ5IGRvd25zYW1w
bGluZyBpbiBHUFVQcm9jZXNzLgotICAgICAgICBhdXRvIG5ld1NhbXBsZSA9IE1lZGlhU2FtcGxl
QVZGT2JqQzo6Y3JlYXRlRnJvbVBpeGVsQnVmZmVyKHNhbXBsZS5waXhlbEJ1ZmZlcigpLCBzYW1w
bGUudmlkZW9Sb3RhdGlvbigpLCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpLCBzYW1wbGUucHJlc2Vu
dGF0aW9uVGltZSgpLCB7IH0pOwotICAgICAgICBpZiAoIW5ld1NhbXBsZSkKLSAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gYWRhcHRWaWRlb1NhbXBsZSgqbmV3U2Ft
cGxlKTsKLSAgICB9Ci0gICAgQVNTRVJUKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0g
UGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0gICAgaWYgKCFtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0g
c2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSkKLSAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShzYW1wbGUudmlkZW9QaXhlbEZvcm1h
dCgpLCBtX3Nob3VsZFVzZUlPU3VyZmFjZSk7CitSZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0aW1l
VmlkZW9Tb3VyY2U6OmFkYXB0VmlkZW9GcmFtZShNZWRpYVNhbXBsZSYgdmlkZW9GcmFtZSkKK3sK
KyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
bi0+cGl4ZWxGb3JtYXQoKSAhPSB2aWRlb0ZyYW1lLnZpZGVvUGl4ZWxGb3JtYXQoKSkKKyAgICAg
ICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0
ZSh2aWRlb0ZyYW1lLnZpZGVvUGl4ZWxGb3JtYXQoKSwgbV9zaG91bGRVc2VJT1N1cmZhY2UpOwog
CiAgICAgQVNTRVJUKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24pOwogICAgIGlmICghbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIG1lZGlh
U2FtcGxlID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBs
ZSwgc2l6ZSgpKTsKLSAgICBBU1NFUlQobWVkaWFTYW1wbGUpOworICAgIGF1dG8gbmV3VmlkZW9G
cmFtZSA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNvbnZlcnRWaWRlb0ZyYW1lKHZpZGVvRnJh
bWUsIHNpemUoKSk7CisgICAgQVNTRVJUKG5ld1ZpZGVvRnJhbWUpOwogCi0gICAgcmV0dXJuIG1l
ZGlhU2FtcGxlOworICAgIHJldHVybiBuZXdWaWRlb0ZyYW1lOwogfQogI2VuZGlmCiAKLXZvaWQg
UmVhbHRpbWVWaWRlb1NvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSwgVmlkZW9GcmFtZVRpbWVNZXRhZGF0YSBtZXRhZGF0YSkKK3ZvaWQgUmVhbHRpbWVWaWRl
b1NvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHZpZGVvRnJhbWUsIFZp
ZGVvRnJhbWVUaW1lTWV0YWRhdGEgbWV0YWRhdGEpCiB7CiAgICAgaWYgKG1fZnJhbWVEZWNpbWF0
aW9uID4gMSAmJiArK21fZnJhbWVEZWNpbWF0aW9uQ291bnRlciAlIG1fZnJhbWVEZWNpbWF0aW9u
KQogICAgICAgICByZXR1cm47CkBAIC0yMDgsMTUgKzIwMCwxNSBAQCB2b2lkIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIFZpZGVv
RnJhbWVUaQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYXV0byBzaXplID0gdGhpcy0+c2l6
ZSgpOwotICAgIGlmICghc2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBleHBhbmRlZEludFNpemUo
c2FtcGxlLnByZXNlbnRhdGlvblNpemUoKSkpIHsKLSAgICAgICAgaWYgKGF1dG8gbWVkaWFTYW1w
bGUgPSBhZGFwdFZpZGVvU2FtcGxlKHNhbXBsZSkpIHsKLSAgICAgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCptZWRpYVNhbXBsZSwgbWV0YWRhdGEpOwor
ICAgIGlmICghc2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBleHBhbmRlZEludFNpemUodmlkZW9G
cmFtZS5wcmVzZW50YXRpb25TaXplKCkpKSB7CisgICAgICAgIGlmIChhdXRvIG5ld1ZpZGVvRnJh
bWUgPSBhZGFwdFZpZGVvRnJhbWUodmlkZW9GcmFtZSkpIHsKKyAgICAgICAgICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpuZXdWaWRlb0ZyYW1lLCBtZXRhZGF0
YSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKIAotICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZSwgbWV0YWRh
dGEpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKHZpZGVv
RnJhbWUsIG1ldGFkYXRhKTsKIH0KIAogUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNsb25lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAxMzM2ODAyZTA4OWJk
M2JmMTczN2U3N2JlNjUzNTE0YTRiMjdiZTkwLi5hNzE5NDk3ODllNGUwNWE5MGE4OWZjMTQwM2Ji
ODA4OGNmZmJmOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYsIFZpZGVvRnJh
bWVUaW1lTWV0YWRhdGEpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUmVmUHRy
PE1lZGlhU2FtcGxlPiBhZGFwdFZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJik7CisgICAgUmVmUHRy
PE1lZGlhU2FtcGxlPiBhZGFwdFZpZGVvRnJhbWUoTWVkaWFTYW1wbGUmKTsKICNlbmRpZgogCiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5k
ZXggMzMwYmZlYjg0NzY2NTFiOWE0MDUwOGNjNmMzZTUwNzhkYWUyNzZlNS4uMzc4YzlhZjk3ZDc1
MjVjZGZjMjg1NWZlMTg0MGE5Njg2MWFkYzE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbQpAQCAtMzMsMTggKzMzLDE5IEBACiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCi0jaW1wb3J0ICJNZWRpYVNh
bXBsZUFWRk9iakMuaCIKICNpbXBvcnQgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbXBvcnQgIlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKICNpbXBvcnQgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncy5oIgogI2ltcG9ydCAiUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgogI2ltcG9ydCAiUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5oIgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxB
VkZvdW5kYXRpb24vQVZDYXB0dXJlRGV2aWNlLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZD
YXB0dXJlSW5wdXQuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVPdXRwdXQuaD4K
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVTZXNzaW9uLmg+CiAjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZFcnJvci5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDxw
YWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4KIAogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsu
aCIKQEAgLTU2MCwxMiArNTYxLDEyIEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1
cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhCiAgICAgaWYg
KCsrbV9mcmFtZXNDb3VudCA8PSBmcmFtZXNUb0Ryb3BXaGVuU3RhcnRpbmcpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGF1dG8gc2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2Ft
cGxlQnVmZmVyLCBtX3NhbXBsZVJvdGF0aW9uLCBbY2FwdHVyZUNvbm5lY3Rpb24gaXNWaWRlb01p
cnJvcmVkXSk7Ci0gICAgbV9idWZmZXIgPSAmc2FtcGxlLmdldCgpOwotICAgIHNldEludHJpbnNp
Y1NpemUoZXhwYW5kZWRJbnRTaXplKHNhbXBsZS0+cHJlc2VudGF0aW9uU2l6ZSgpKSk7CisgICAg
YXV0byB2aWRlb0ZyYW1lID0gVmlkZW9GcmFtZUNWOjpjcmVhdGUoc2FtcGxlQnVmZmVyLCBbY2Fw
dHVyZUNvbm5lY3Rpb24gaXNWaWRlb01pcnJvcmVkXSwgbV9zYW1wbGVSb3RhdGlvbik7CisgICAg
bV9idWZmZXIgPSAmdmlkZW9GcmFtZS5nZXQoKTsKKyAgICBzZXRJbnRyaW5zaWNTaXplKGV4cGFu
ZGVkSW50U2l6ZSh2aWRlb0ZyYW1lLT5wcmVzZW50YXRpb25TaXplKCkpKTsKICAgICBWaWRlb0Zy
YW1lVGltZU1ldGFkYXRhIG1ldGFkYXRhOwogICAgIG1ldGFkYXRhLmNhcHR1cmVUaW1lID0gTW9u
b3RvbmljVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKTsKLSAgICBkaXNwYXRjaE1lZGlh
U2FtcGxlVG9PYnNlcnZlcnMoV1RGTW92ZShzYW1wbGUpLCBtZXRhZGF0YSk7CisgICAgZGlzcGF0
Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKFdURk1vdmUodmlkZW9GcmFtZSksIG1ldGFkYXRhKTsK
IH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25Jc1J1bm5pbmdE
aWRDaGFuZ2UoYm9vbCBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbQppbmRleCBhNzQyMjdhYjQ2N2ZkMjlkMmFhMTg2YTU4NjY0NzY5MDQzNzQ4ZjJkLi4wMzUz
MjU4YWI2MWY0MmRhNDIzYzE2NTc1NDFjMDg3MDM1M2JkZGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0ICJJbWFn
ZUJ1ZmZlci5oIgogI2ltcG9ydCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIgogI2ltcG9ydCAi
TWVkaWFDb25zdHJhaW50cy5oIgotI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjaW1w
b3J0ICJNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2ltcG9ydCAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbXBvcnQgIlBsYXRmb3JtTGF5ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmgKaW5kZXggOGEwMjUyOTYyMTM2YTIyM2VkMzQy
Zjc4MDc3MjVhZjg0OGQxYjhiNS4uOTJjMmZlYzY4MmRkNmFlNzY0ZmJiMjkwNGNhYzhmZWZhNDk2
NzM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
LmgKQEAgLTI5LDEwICsyOSw5IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCi0jaW5jbHVkZSAi
TWVkaWFTYW1wbGUuaCIKICNpbmNsdWRlICJSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaCIK
KyNpbmNsdWRlICJWaWRlb0ZyYW1lLmgiCiAKLXVzaW5nIENNU2FtcGxlQnVmZmVyUmVmID0gc3Ry
dWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyKjsKIHVzaW5nIENWUGl4ZWxCdWZmZXJQb29sUmVmID0g
c3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBvb2wqOwogdXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0
cnVjdCBfX0NWQnVmZmVyKjsKIApAQCAtNTAsOCArNDksOCBAQCBwcml2YXRlOgogICAgIFJlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZp
ZGVvVHJhY2tJbnRlcmZhY2U+JiYsIFN0cmluZyYmKTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gcGl4ZWxCdWZmZXJGcm9tVmlkZW9GcmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJh
bWUmKTsKICAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdp
ZHRoLCBzaXplX3QgaGVpZ2h0LCB3ZWJydGM6OkJ1ZmZlclR5cGUpOwotICAgIFJlZlB0cjxNZWRp
YVNhbXBsZT4gdG9WaWRlb0ZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYsIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uKTsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGNyZWF0ZU1lZGlh
U2FtcGxlRnJvbUNWUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiwgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb24sIGludDY0X3QpOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB0b1ZpZGVvRnJh
bWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24p
OworICAgIFJlZjxWaWRlb0ZyYW1lPiBjcmVhdGVWaWRlb1NhbXBsZUZyb21DVlBpeGVsQnVmZmVy
KENWUGl4ZWxCdWZmZXJSZWYsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uLCBpbnQ2NF90KTsK
IAogICAgIC8vIHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlCiAgICAgdm9pZCBPbkZyYW1lKGNvbnN0
IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDUxODU0ZmIyYjljNTM5Nzk3ZDVjNzY3OTU2
YTgyNTNhOTU3NDkxNzIuLmVlMjgyM2MxZWE3Mzg1ZDlhMTg0MDE5NmM3ZGNiYjZiMzEwNDFiMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0K
QEAgLTMyLDcgKzMyLDcgQEAKIAogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkxv
Z2dpbmcuaCIKLSNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgorI2ltcG9ydCAiVmlkZW9G
cmFtZUNWLmgiCiAjaW1wb3J0ICJWaWRlb0ZyYW1lTGliV2ViUlRDLmgiCiAjaW1wb3J0IDx3dGYv
Y2YvVHlwZUNhc3RzQ0YuaD4KIApAQCAtOTEsMzMgKzkxLDEyIEBAIENWUGl4ZWxCdWZmZXJQb29s
UmVmIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpwaXhlbEJ1ZmZlclBvb2woc2l6
ZV90IHdpCiAgICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJQb29sLmdldCgpOwogfQogCi1SZWZQdHI8
TWVkaWFTYW1wbGU+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpjcmVhdGVNZWRp
YVNhbXBsZUZyb21DVlBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBpbnQ2NF90IHRpbWVTdGFtcCkKK1Jl
ZjxWaWRlb0ZyYW1lPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6Y3JlYXRlVmlk
ZW9TYW1wbGVGcm9tQ1ZQaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwgaW50NjRfdCB0aW1lU3RhbXApCiB7
Ci0gICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm87Ci0gICAgdGltaW5nSW5mby5wcmVz
ZW50YXRpb25UaW1lU3RhbXAgPSBQQUw6OkNNVGltZU1ha2UodGltZVN0YW1wLCAxMDAwMDAwKTsK
LSAgICB0aW1pbmdJbmZvLmRlY29kZVRpbWVTdGFtcCA9IFBBTDo6a0NNVGltZUludmFsaWQ7Ci0g
ICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IFBBTDo6a0NNVGltZUludmFsaWQ7Ci0KLSAgICBDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb247Ci0gICAgT1NTdGF0dXMg
b3N0YXR1cyA9IFBBTDo6Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRm9ySW1hZ2VCdWZm
ZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENWSW1hZ2VCdWZmZXJSZWYpcGl4ZWxCdWZmZXIsICZm
b3JtYXREZXNjcmlwdGlvbik7Ci0gICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIpIHsKLSAgICAgICAg
RVJST1JfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSLCAiRmFpbGVkIHRvIGluaXRp
YWxpemUgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uIHdpdGggZXJyb3IgIiwgc3RhdGljX2Nhc3Q8
aW50Pihvc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gUEFMOjpDTVNhbXBs
ZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChD
VkltYWdlQnVmZmVyUmVmKXBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0lu
Zm8sICZzYW1wbGVCdWZmZXIpOwotICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7Ci0g
ICAgaWYgKG9zdGF0dXMgIT0gbm9FcnIpIHsKLSAgICAgICAgRVJST1JfTE9HX0lGKGxvZ2dlclB0
cigpLCBMT0dJREVOVElGSUVSLCAiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlciB3
aXRoIGVycm9yICIsIHN0YXRpY19jYXN0PGludD4ob3N0YXR1cykpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0KLSAgICBhdXRvIHNhbXBsZSA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVy
KTsKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlLmdldCgpLCBy
b3RhdGlvbik7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6Y3JlYXRlKE1lZGlhVGltZSh0aW1l
U3RhbXAsIDEwMDAwMDApLCBmYWxzZSwgcm90YXRpb24sIHBpeGVsQnVmZmVyKTsKIH0KIAotUmVm
UHRyPE1lZGlhU2FtcGxlPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6dG9WaWRl
b0ZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUsIE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uIHJvdGF0aW9uKQorUmVmUHRyPFZpZGVvRnJhbWU+IFJlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZUNvY29hOjp0b1ZpZGVvRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBm
cmFtZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24pCiB7CiAgICAgaWYgKG11
dGVkKCkpIHsKICAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUgfHwgbV9ibGFja0ZyYW1lV2lkdGgg
IT0gZnJhbWUud2lkdGgoKSB8fCBtX2JsYWNrRnJhbWVIZWlnaHQgIT0gZnJhbWUuaGVpZ2h0KCkp
IHsKQEAgLTEyNSw3ICsxMDQsNyBAQCBSZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hOjp0b1ZpZGVvRnJhbWUoY29uc3Qgd2VicnRjOgogICAgICAgICAg
ICAgbV9ibGFja0ZyYW1lSGVpZ2h0ID0gZnJhbWUuaGVpZ2h0KCk7CiAgICAgICAgICAgICBtX2Js
YWNrRnJhbWUgPSBjcmVhdGVCbGFja1BpeGVsQnVmZmVyKG1fYmxhY2tGcmFtZVdpZHRoLCBtX2Js
YWNrRnJhbWVIZWlnaHQpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjcmVhdGVNZWRpYVNh
bXBsZUZyb21DVlBpeGVsQnVmZmVyKG1fYmxhY2tGcmFtZS5nZXQoKSwgcm90YXRpb24sIGZyYW1l
LnRpbWVzdGFtcF91cygpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVZpZGVvU2FtcGxlRnJvbUNW
UGl4ZWxCdWZmZXIobV9ibGFja0ZyYW1lLmdldCgpLCByb3RhdGlvbiwgZnJhbWUudGltZXN0YW1w
X3VzKCkpOwogICAgIH0KIAogICAgIGlmIChhdXRvKiBwcm92aWRlciA9IHZpZGVvRnJhbWVCdWZm
ZXJQcm92aWRlcihmcmFtZSkpIHsKQEAgLTEzNyw3ICsxMTYsNyBAQCBSZWZQdHI8TWVkaWFTYW1w
bGU+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjp0b1ZpZGVvRnJhbWUoY29uc3Qg
d2VicnRjOgogCiAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgQ1ZQaXhlbEJ1ZmZlclJlZiwg
dXNlIGl0IGRpcmVjdGx5LgogICAgIGlmIChhdXRvIHBpeGVsQnVmZmVyID0gd2VicnRjOjpwaXhl
bEJ1ZmZlckZyb21GcmFtZShmcmFtZSkpCi0gICAgICAgIHJldHVybiBjcmVhdGVNZWRpYVNhbXBs
ZUZyb21DVlBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCByb3RhdGlvbiwgZnJhbWUudGltZXN0YW1w
X3VzKCkpOworICAgICAgICByZXR1cm4gY3JlYXRlVmlkZW9TYW1wbGVGcm9tQ1ZQaXhlbEJ1ZmZl
cihwaXhlbEJ1ZmZlciwgcm90YXRpb24sIGZyYW1lLnRpbWVzdGFtcF91cygpKTsKIAogICAgIC8v
IEluIGNhc2Ugb2YgaW4gbWVtb3J5IGxpYndlYnJ0YyBzYW1wbGVzLCB3ZSBoYXZlIG5vbiBpbnRl
cmxlYXZlZCBZVVYgZGF0YSwgbGV0J3MgbGF6aWx5IGNyZWF0ZSBDVlBpeGVsQnVmZmVycyBpZiBu
ZWVkZWQuCiAgICAgcmV0dXJuIFZpZGVvRnJhbWVMaWJXZWJSVEM6OmNyZWF0ZShNZWRpYVRpbWUo
ZnJhbWUudGltZXN0YW1wX3VzKCksIDEwMDAwMDApLCBmYWxzZSwgcm90YXRpb24sIGZyYW1lLnZp
ZGVvX2ZyYW1lX2J1ZmZlcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHRoaXNd
KGF1dG8mIGJ1ZmZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggZDhhNDZkNzkwN2Q2NTU5ODIwYzg0
M2FhNTIwNGViZTYzY2E2MmU4Yy4uZDhhMjkyMjY2MTZiMjY0N2YxMWY4NDU2MDI5ZjNkZWRlZTIz
ZTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC0zOSw3ICszOSw3IEBACiAjaW1wb3J0ICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ1ZVdGlsaXRpZXMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTWVkaWFT
YW1wbGVBVkZPYmpDLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZpZGVvRnJhbWVDVi5oPgogI2ltcG9y
dCA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5oPgogI2ltcG9ydCA8d2VicnRjL3Nk
ay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CkBAIC05
NywxMyArOTcsMTEgQEAgYXV0byBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y3JlYXRlRGVjb2RlckNh
bGxiYWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIKICAgICBpZiAodXNlUmVtb3Rl
RnJhbWVzKQogICAgICAgICB2aWRlb0ZyYW1lT2JqZWN0SGVhcCA9IG1fdmlkZW9GcmFtZU9iamVj
dEhlYXAucHRyKCk7CiAgICAgcmV0dXJuIFtpZGVudGlmaWVyLCBjb25uZWN0aW9uID0gbV9jb25u
ZWN0aW9uLCByZXNvdXJjZU93bmVyID0gbV9yZXNvdXJjZU93bmVyLCB2aWRlb0ZyYW1lT2JqZWN0
SGVhcCA9IFdURk1vdmUodmlkZW9GcmFtZU9iamVjdEhlYXApXSAoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFtcCkgbXV0
YWJsZSB7Ci0gICAgICAgIGF1dG8gc2FtcGxlID0gV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIFdlYkNvcmU6Ok1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpOb25lLCBmYWxzZSwgTWVkaWFUaW1lKHRpbWVTdGFtcE5zLCAxKSwg
eyB9KTsKLSAgICAgICAgaWYgKCFzYW1wbGUpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGF1dG8gdmlkZW9GcmFtZSA9IFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6Y3JlYXRlKE1lZGlhVGlt
ZSh0aW1lU3RhbXBOcywgMSksIGZhbHNlLCBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSwgcGl4ZWxCdWZmZXIpOwogICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKLSAg
ICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7Cisg
ICAgICAgICAgICB2aWRlb0ZyYW1lLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVy
KTsKICAgICAgICAgaWYgKHZpZGVvRnJhbWVPYmplY3RIZWFwKSB7Ci0gICAgICAgICAgICBhdXRv
IHByb3BlcnRpZXMgPSB2aWRlb0ZyYW1lT2JqZWN0SGVhcC0+YWRkKHNhbXBsZS5yZWxlYXNlTm9u
TnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8gcHJvcGVydGllcyA9IHZpZGVvRnJhbWVPYmplY3RI
ZWFwLT5hZGQoV1RGTW92ZSh2aWRlb0ZyYW1lKSk7CiAgICAgICAgICAgICBjb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRlbnRp
ZmllciwgdGltZVN0YW1wLCB0aW1lU3RhbXBOcywgV1RGTW92ZShwcm9wZXJ0aWVzKSB9LCAwKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggYmQxYzJk
MTI1YmE5YTc3MWVjNjJhOTk1NTAyN2QyMmMzZjE2NjY5Ny4uNTJmNjE4YTM4NmMzMGVhZjZkYmUw
ODgwMTY0ZjRjOWYzMjY5OGIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCIKICNpbmNsdWRlICJTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNhbXBsZUFWRk9iakMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKaW5kZXggOTQwMjYzMjdkMDA0
NTIyYjVjOThiN2QxMDYyZTQxNTVlMDlmOWE4MS4uOGQwNGYyY2M1YTc4OWE3YTRlOTU4NzQwYzdi
NjhiNTM5M2U1YmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNhYTAwODRlYzFmYmMzZTA2OGM5YjQ5ZGE1ZTA3
NTMzZjYxYzE4M2EuLjJkNDUzZTRkYTc5YzJkODJkMWE5MWQwNDJmMzQ1MWViOGVkZGM1MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MSw5ICs0MSw5IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlUm90YXRpb25T
ZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVWaWRl
b1NvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CiAKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgaWYgKG1fc2hv
dWxkQXBwbHlSb3RhdGlvbiAmJiBzYW1wbGUudmlkZW9Sb3RhdGlvbigpICE9IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpOb25lKSB7CiAgICAgICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0g
cm90YXRlUGl4ZWxCdWZmZXIoc2FtcGxlKTsKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVNhbXBs
ZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZlcihXVEZNb3ZlKHBpeGVsQnVmZmVyKSwgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIHNhbXBsZS52aWRlb01pcnJvcmVkKCksIHNh
bXBsZS5wcmVzZW50YXRpb25UaW1lKCksIHNhbXBsZS5kZWNvZGVUaW1lKCkpOworICAgICAgICAg
ICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6Y3JlYXRlKHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCks
IHNhbXBsZS52aWRlb01pcnJvcmVkKCksIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25l
LCBXVEZNb3ZlKHBpeGVsQnVmZmVyKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICZzYW1w
bGU7CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>