<?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>237499</bug_id>
          
          <creation_ts>2022-03-04 22:38:26 -0800</creation_ts>
          <short_desc>Delete WebKit::WebGPU::ObjectDescriptorBase</short_desc>
          <delta_ts>2023-09-15 12:55:44 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>webkit-bugs.rumbling202</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1848508</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-04 22:38:26 -0800</bug_when>
    <thetext>This is the first step to deleting all the WebGPU structs in WebKit/Shared/WebGPU</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848509</commentid>
    <comment_count>1</comment_count>
      <attachid>453903</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-04 22:38:50 -0800</bug_when>
    <thetext>Created attachment 453903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850677</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-11 22:39:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/90195899&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453903</attachid>
            <date>2022-03-04 22:38:50 -0800</date>
            <delta_ts>2022-03-04 22:38:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>73596</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDE0NzUyYWJjNjA1NzJlNjlmMDc4OTcyYzg1M2I4NGFhZDkwYzhhOTYKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgTWFyIDQg
MjI6MDY6MjYgMjAyMiAtMDgwMAoKICAgIEdldHRpbmcgcmlkIG9mIE9iamVjdERlc2NyaXB0b3JC
YXNlCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJp
bmRHcm91cERlc2NyaXB0b3IuY3BwCmluZGV4IGMyZWFjMjI2MzFmYS4uNzM3NDA0NzI2ZjRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVz
Y3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRH
cm91cERlc2NyaXB0b3IuY3BwCkBAIC0zNiw5ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CiAKIHN0ZDo6b3B0aW9uYWw8QmluZEdyb3VwRGVzY3JpcHRvcj4gQ29udmVydFRvQmFj
a2luZ0NvbnRleHQ6OmNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUEFMOjpXZWJHUFU6OkJpbmRHcm91
cERlc2NyaXB0b3ImIGJpbmRHcm91cERlc2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0gY29u
dmVydFRvQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3Jp
cHRvckJhc2UmPihiaW5kR3JvdXBEZXNjcmlwdG9yKSk7Ci0gICAgaWYgKCFiYXNlKQotICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8mIGJhc2UgPSBzdGF0aWNfY2Fz
dDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPihiaW5kR3JvdXBEZXNj
cmlwdG9yKTsKIAogICAgIGF1dG8gaWRlbnRpZmllciA9IGNvbnZlcnRUb0JhY2tpbmcoYmluZEdy
b3VwRGVzY3JpcHRvci5sYXlvdXQpOwogICAgIGlmICghaWRlbnRpZmllcikKQEAgLTUzLDE0ICs1
MSwxMiBAQCBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cERlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNvbgogICAgICAgICBlbnRyaWVzLnVuY2hlY2tl
ZEFwcGVuZChXVEZNb3ZlKCpjb252ZXJ0ZWRFbnRyeSkpOwogICAgIH0KIAotICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqYmFzZSksIGlkZW50aWZpZXIsIFdURk1vdmUoZW50cmllcykgfSB9OworICAg
IHJldHVybiB7IHsgYmFzZSwgaWRlbnRpZmllciwgV1RGTW92ZShlbnRyaWVzKSB9IH07CiB9CiAK
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkJpbmRHcm91cERlc2NyaXB0b3I+IENvbnZlcnRG
cm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBCaW5kR3JvdXBEZXNj
cmlwdG9yJiBiaW5kR3JvdXBEZXNjcmlwdG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRG
cm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGJpbmRH
cm91cERlc2NyaXB0b3IpKTsKLSAgICBpZiAoIWJhc2UpCi0gICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgY29uc3QgYXV0byYgYmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2Vi
R1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KGJpbmRHcm91cERlc2NyaXB0b3IpOwogCiAgICAg
YXV0byogYmluZEdyb3VwTGF5b3V0ID0gY29udmVydEJpbmRHcm91cExheW91dEZyb21CYWNraW5n
KGJpbmRHcm91cERlc2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0KTsKICAgICBpZiAoIWJpbmRHcm91
cExheW91dCkKQEAgLTc1LDcgKzcxLDcgQEAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6Qmlu
ZEdyb3VwRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmUKICAgICAg
ICAgZW50cmllcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqZW50cnkpKTsKICAgICB9CiAKLSAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCAqYmluZEdyb3VwTGF5b3V0LCBXVEZNb3ZlKGVu
dHJpZXMpIH0gfTsKKyAgICByZXR1cm4geyB7IGJhc2UsICpiaW5kR3JvdXBMYXlvdXQsIFdURk1v
dmUoZW50cmllcykgfSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5o
CmluZGV4IDZhMzRkMTlkMmQzNy4uZTgwNDgwYmM3MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwRGVzY3JpcHRvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBEZXNjcmlwdG9yLmgKQEAgLTMw
LDI1ICszMCwyNiBAQAogI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cEVudHJ5LmgiCiAjaW5jbHVk
ZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlw
dG9yQmFzZS5oPgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAotc3RydWN0IEJpbmRHcm91cERlc2NyaXB0
b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ugeworc3RydWN0IEJpbmRHcm91cERlc2Ny
aXB0b3IgOiBwdWJsaWMgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBX
ZWJHUFVJZGVudGlmaWVyIGJpbmRHcm91cExheW91dDsKICAgICBWZWN0b3I8QmluZEdyb3VwRW50
cnk+IGVudHJpZXM7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2Um
PigqdGhpcyk7CiAgICAgICAgIGVuY29kZXIgPDwgYmluZEdyb3VwTGF5b3V0OwogICAgICAgICBl
bmNvZGVyIDw8IGVudHJpZXM7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8QmluZEdyb3VwRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JC
YXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAg
ICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBpZiAoIW9iamVjdERl
c2NyaXB0b3JCYXNlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBM
YXlvdXREZXNjcmlwdG9yLmNwcAppbmRleCA4MWNkOWE4YzRlNTYuLjk2NzkyZDVmODk5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVC
aW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmNwcApAQCAtMzYsOSArMzYsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgewogCiBzdGQ6Om9wdGlvbmFsPEJpbmRHcm91cExheW91dERlc2NyaXB0
b3I+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFBBTDo6
V2ViR1BVOjpCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yJiBiaW5kR3JvdXBMYXlvdXREZXNjcmlw
dG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRUb0JhY2tpbmcoc3RhdGljX2Nhc3Q8Y29u
c3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oYmluZEdyb3VwTGF5b3V0RGVz
Y3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9i
amVjdERlc2NyaXB0b3JCYXNlJj4oYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcik7CiAKICAgICBW
ZWN0b3I8QmluZEdyb3VwTGF5b3V0RW50cnk+IGVudHJpZXM7CiAgICAgZW50cmllcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGJpbmRHcm91cExheW91dERlc2NyaXB0b3IuZW50cmllcy5zaXplKCkp
OwpAQCAtNDksMTQgKzQ3LDEyIEBAIHN0ZDo6b3B0aW9uYWw8QmluZEdyb3VwTGF5b3V0RGVzY3Jp
cHRvcj4gQ29udmVydFRvQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRUb0JhY2tpCiAgICAgICAgIGVu
dHJpZXMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoKmNvbnZlcnRlZEVudHJ5KSk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZShlbnRyaWVzKSB9IH07Cisg
ICAgcmV0dXJuIHsgeyBiYXNlLCBXVEZNb3ZlKGVudHJpZXMpIH0gfTsKIH0KIAogc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gQ29udmVydEZyb21C
YWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IEJpbmRHcm91cExheW91dERl
c2NyaXB0b3ImIGJpbmRHcm91cExheW91dERlc2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0g
Y29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNl
Jj4oYmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8
Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oYmluZEdyb3VwTGF5b3V0
RGVzY3JpcHRvcik7CiAKICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkJpbmRHcm91cExheW91dEVu
dHJ5PiBlbnRyaWVzOwogICAgIGVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShiaW5kR3Jv
dXBMYXlvdXREZXNjcmlwdG9yLmVudHJpZXMuc2l6ZSgpKTsKQEAgLTY3LDcgKzYzLDcgQEAgc3Rk
OjpvcHRpb25hbDxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gQ29udmVy
dEZyb21CYWNraW5nQ29udGV4dDoKICAgICAgICAgZW50cmllcy51bmNoZWNrZWRBcHBlbmQoV1RG
TW92ZSgqZW50cnkpKTsKICAgICB9CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBX
VEZNb3ZlKGVudHJpZXMpIH0gfTsKKyAgICByZXR1cm4geyB7IGJhc2UsIFdURk1vdmUoZW50cmll
cykgfSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRv
ci5oCmluZGV4IDQ3YTJlMDJjM2M2NS4uOTRmMmFjZTNhMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCaW5kR3JvdXBMYXlvdXREZXNj
cmlwdG9yLmgKQEAgLTI5LDIzICsyOSwyNCBAQAogCiAjaW5jbHVkZSAiV2ViR1BVQmluZEdyb3Vw
TGF5b3V0RW50cnkuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgor
I2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2Uu
aD4KICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKLXN0cnVjdCBCaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9y
IDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKK3N0cnVjdCBCaW5kR3JvdXBMYXlvdXRE
ZXNjcmlwdG9yIDogcHVibGljIFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAg
ICAgVmVjdG9yPEJpbmRHcm91cExheW91dEVudHJ5PiBlbnRyaWVzOwogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7
Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJh
c2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpX
ZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOwogICAgICAgICBlbmNvZGVyIDw8
IGVudHJpZXM7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNl
PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBk
ZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBpZiAoIW9iamVjdERlc2Ny
aXB0b3JCYXNlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcApp
bmRleCAwMGY2YzdkNzZhZTcuLmU1NDA2ZWJhNTM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmNwcApAQCAtMzYsMjAg
KzM2LDE2IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyRGVzY3JpcHRvcj4gQ29udmVydFRvQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRUb0JhY2tpbmco
Y29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3ImIGJ1ZmZlckRlc2NyaXB0b3IpCiB7
Ci0gICAgYXV0byBiYXNlID0gY29udmVydFRvQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBQQUw6
OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPihidWZmZXJEZXNjcmlwdG9yKSk7Ci0gICAg
aWYgKCFiYXNlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8m
IGJhc2UgPSBzdGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJh
c2UmPihidWZmZXJEZXNjcmlwdG9yKTsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSks
IGJ1ZmZlckRlc2NyaXB0b3Iuc2l6ZSwgYnVmZmVyRGVzY3JpcHRvci51c2FnZSwgYnVmZmVyRGVz
Y3JpcHRvci5tYXBwZWRBdENyZWF0aW9uIH0gfTsKKyAgICByZXR1cm4geyB7IGJhc2UsIGJ1ZmZl
ckRlc2NyaXB0b3Iuc2l6ZSwgYnVmZmVyRGVzY3JpcHRvci51c2FnZSwgYnVmZmVyRGVzY3JpcHRv
ci5tYXBwZWRBdENyZWF0aW9uIH0gfTsKIH0KIAogc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
QnVmZmVyRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21C
YWNraW5nKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGJ1ZmZlckRlc2NyaXB0b3IpCiB7Ci0gICAg
YXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERl
c2NyaXB0b3JCYXNlJj4oYnVmZmVyRGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oYnVmZmVyRGVzY3Jp
cHRvcik7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBidWZmZXJEZXNjcmlwdG9y
LnNpemUsIGJ1ZmZlckRlc2NyaXB0b3IudXNhZ2UsIGJ1ZmZlckRlc2NyaXB0b3IubWFwcGVkQXRD
cmVhdGlvbiB9IH07CisgICAgcmV0dXJuIHsgeyBiYXNlLCBidWZmZXJEZXNjcmlwdG9yLnNpemUs
IGJ1ZmZlckRlc2NyaXB0b3IudXNhZ2UsIGJ1ZmZlckRlc2NyaXB0b3IubWFwcGVkQXRDcmVhdGlv
biB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggYTExZDZmZmJm
NTQyLi5jNzQyM2QwNzA4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVCdWZmZXJEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVUJ1ZmZlckRlc2NyaXB0b3IuaApAQCAtMjgsMjAgKzI4LDIxIEBACiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2Uu
aCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JC
YXNlLmg+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCdWZmZXJVc2FnZS5oPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVSW50ZWdyYWxUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCi1zdHJ1
Y3QgQnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CitzdHJ1
Y3QgQnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2UgewogICAgIFBBTDo6V2ViR1BVOjpTaXplNjQgc2l6ZSB7IDAgfTsKICAgICBQQUw6Oldl
YkdQVTo6QnVmZmVyVXNhZ2VGbGFncyB1c2FnZTsKICAgICBib29sIG1hcHBlZEF0Q3JlYXRpb24g
eyBmYWxzZSB9OwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4o
KnRoaXMpOwogICAgICAgICBlbmNvZGVyIDw8IHNpemU7CiAgICAgICAgIGVuY29kZXIgPDwgdXNh
Z2U7CiAgICAgICAgIGVuY29kZXIgPDwgbWFwcGVkQXRDcmVhdGlvbjsKQEAgLTQ5LDcgKzUwLDcg
QEAgc3RydWN0IEJ1ZmZlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ug
ewogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICBz
dGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+
IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0
b3JCYXNlOwogICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuY3BwCmluZGV4IGFiODlm
NWE2NmQwYi4uN2E2OTgzOGE0OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5jcHAKQEAgLTM2
LDIwICszNiwxNiBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdGQ6Om9wdGlvbmFs
PENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yPiBDb252ZXJ0VG9CYWNraW5nQ29udGV4dDo6Y29udmVy
dFRvQmFja2luZyhjb25zdCBQQUw6OldlYkdQVTo6Q29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImIGNv
bW1hbmRCdWZmZXJEZXNjcmlwdG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRUb0JhY2tp
bmcoc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4o
Y29tbWFuZEJ1ZmZlckRlc2NyaXB0b3IpKTsKLSAgICBpZiAoIWJhc2UpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgYmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KGNvbW1hbmRCdWZmZXJEZXNjcmlw
dG9yKTsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSkgfSB9OworICAgIHJldHVybiB7
IHsgYmFzZSB9IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tp
bmcoY29uc3QgQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImIGNvbW1hbmRCdWZmZXJEZXNjcmlwdG9y
KQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25z
dCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KGNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yKSk7Ci0gICAg
aWYgKCFiYXNlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8m
IGJhc2UgPSBzdGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJh
c2UmPihjb21tYW5kQnVmZmVyRGVzY3JpcHRvcik7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUo
KmJhc2UpIH0gfTsKKyAgICByZXR1cm4geyB7IGJhc2UgfSB9OwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yLmgKaW5kZXggZGYxNzNjNDhmZTNkLi5mMWExOTll
YTg1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kQnVmZmVyRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0yOCwxOSArMjgsMjAgQEAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaD4KICNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIAotc3RydWN0IENvbW1hbmRCdWZmZXJEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKK3N0cnVjdCBDb21tYW5kQnVmZmVyRGVzY3JpcHRvciA6IHB1YmxpYyBQQUw6
OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMp
OworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmpl
Y3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21tYW5kQnVmZmVyRGVzY3JpcHRvcj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVj
dERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JC
YXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBp
ZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21tYW5k
RW5jb2RlckRlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5jcHAKaW5kZXggMjIxODc2OTM5ODBmLi5hZjcwMDNm
OTQwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21t
YW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3IuY3BwCkBAIC0zNiwyMCArMzYsMTYgQEAg
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RkOjpvcHRpb25hbDxDb21tYW5kRW5jb2Rl
ckRlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNv
bnN0IFBBTDo6V2ViR1BVOjpDb21tYW5kRW5jb2RlckRlc2NyaXB0b3ImIGNvbW1hbmRFbmNvZGVy
RGVzY3JpcHRvcikKIHsKLSAgICBhdXRvIGJhc2UgPSBjb252ZXJ0VG9CYWNraW5nKHN0YXRpY19j
YXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KGNvbW1hbmRFbmNv
ZGVyRGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJH
UFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oY29tbWFuZEVuY29kZXJEZXNjcmlwdG9yKTsKIAot
ICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSkgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSB9
IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3Jp
cHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0
IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciYgY29tbWFuZEVuY29kZXJEZXNjcmlwdG9yKQogewot
ICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmpl
Y3REZXNjcmlwdG9yQmFzZSY+KGNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcikpOwotICAgIGlmICgh
YmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4o
Y29tbWFuZEVuY29kZXJEZXNjcmlwdG9yKTsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFz
ZSkgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbW1h
bmRFbmNvZGVyRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oCmluZGV4IDE4ZTRhMGYxMDMzOC4uMTc4N2QyM2Jl
NjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29tbWFu
ZEVuY29kZXJEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVUNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvci5oCkBAIC0yOCwxOSArMjgsMjAgQEAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaD4KICNpbmNsdWRlIDxvcHRpb25hbD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIAotc3RydWN0IENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNj
cmlwdG9yQmFzZSB7CitzdHJ1Y3QgQ29tbWFuZEVuY29kZXJEZXNjcmlwdG9yIDogcHVibGljIFBB
TDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAg
IGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhp
cyk7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9i
amVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPE9i
amVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0
b3JCYXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAg
ICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21w
dXRlUGFzc0Rlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VUNvbXB1dGVQYXNzRGVzY3JpcHRvci5jcHAKaW5kZXggNDI2ZjdkMTcwYzAyLi42MmVlZTY1YjY4
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb21wdXRl
UGFzc0Rlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuY3BwCkBAIC0zNiwyOCArMzYsMjQgQEAgbmFtZXNwYWNl
IFdlYktpdDo6V2ViR1BVIHsKIAogc3RkOjpvcHRpb25hbDxDb21wdXRlUGFzc0Rlc2NyaXB0b3I+
IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFBBTDo6V2Vi
R1BVOjpDb21wdXRlUGFzc0Rlc2NyaXB0b3ImIGNvbXB1dGVQYXNzRGVzY3JpcHRvcikKIHsKLSAg
ICBhdXRvIGJhc2UgPSBjb252ZXJ0VG9CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2Vi
R1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KGNvbXB1dGVQYXNzRGVzY3JpcHRvcikpOwotICAg
IGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRv
JiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JC
YXNlJj4oY29tcHV0ZVBhc3NEZXNjcmlwdG9yKTsKIAogICAgIGF1dG8gdGltZXN0YW1wV3JpdGVz
ID0gY29udmVydFRvQmFja2luZyhjb21wdXRlUGFzc0Rlc2NyaXB0b3IudGltZXN0YW1wV3JpdGVz
KTsKICAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIFdURk1vdmUoKnRpbWVzdGFtcFdy
aXRlcykgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSwgV1RGTW92ZSgqdGltZXN0YW1wV3JpdGVz
KSB9IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbXB1dGVQYXNzRGVzY3Jp
cHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0
IENvbXB1dGVQYXNzRGVzY3JpcHRvciYgY29tcHV0ZVBhc3NEZXNjcmlwdG9yKQogewotICAgIGF1
dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNj
cmlwdG9yQmFzZSY+KGNvbXB1dGVQYXNzRGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oY29tcHV0ZVBh
c3NEZXNjcmlwdG9yKTsKIAogICAgIGF1dG8gdGltZXN0YW1wV3JpdGVzID0gY29udmVydEZyb21C
YWNraW5nKGNvbXB1dGVQYXNzRGVzY3JpcHRvci50aW1lc3RhbXBXcml0ZXMpOwogICAgIGlmICgh
dGltZXN0YW1wV3JpdGVzKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpiYXNlKSwgV1RGTW92ZSgqdGltZXN0YW1wV3JpdGVzKSB9IH07Cisg
ICAgcmV0dXJuIHsgeyBiYXNlLCBXVEZNb3ZlKCp0aW1lc3RhbXBXcml0ZXMpIH0gfTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKaW5kZXggNTY4OWJlM2NiMTIx
Li4wM2YzODE1ODk0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVDb21wdXRlUGFzc0Rlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVQ29tcHV0ZVBhc3NEZXNjcmlwdG9yLmgKQEAgLTI5LDIyICsyOSwyMyBAQAog
CiAjaW5jbHVkZSAiV2ViR1BVQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMuaCIKICNpbmNsdWRl
ICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaD4KICNpbmNsdWRlIDxvcHRpb25hbD4K
IAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAotc3RydWN0IENvbXB1dGVQYXNzRGVzY3Jp
cHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CitzdHJ1Y3QgQ29tcHV0ZVBhc3NE
ZXNjcmlwdG9yIDogcHVibGljIFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAg
ICAgQ29tcHV0ZVBhc3NUaW1lc3RhbXBXcml0ZXMgdGltZXN0YW1wV3JpdGVzOwogCiAgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3Jp
cHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3Qg
UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOwogICAgICAgICBlbmNv
ZGVyIDw8IHRpbWVzdGFtcFdyaXRlczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb21wdXRlUGFzc0Rlc2NyaXB0b3I+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNj
cmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsK
ICAgICAgICAgZGVjb2RlciA+PiBvYmplY3REZXNjcmlwdG9yQmFzZTsKICAgICAgICAgaWYgKCFv
YmplY3REZXNjcmlwdG9yQmFzZSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVQ29udmVydEZyb21C
YWNraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZl
cnRGcm9tQmFja2luZ0NvbnRleHQuaAppbmRleCAxZTkzOGUyODgyMzEuLmQzNzIyYjkyNzFhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRGcm9t
QmFja2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
Q29udmVydEZyb21CYWNraW5nQ29udGV4dC5oCkBAIC04Niw3ICs4Niw2IEBAIHN0cnVjdCBJbWFn
ZUNvcHlUZXh0dXJlOwogc3RydWN0IEltYWdlQ29weVRleHR1cmVUYWdnZWQ7CiBzdHJ1Y3QgSW1h
Z2VEYXRhTGF5b3V0Owogc3RydWN0IE11bHRpc2FtcGxlU3RhdGU7Ci1zdHJ1Y3QgT2JqZWN0RGVz
Y3JpcHRvckJhc2U7CiBjbGFzcyBPdXRPZk1lbW9yeUVycm9yOwogc3RydWN0IFBpcGVsaW5lRGVz
Y3JpcHRvckJhc2U7CiBjbGFzcyBQaXBlbGluZUxheW91dDsKQEAgLTE2MCw3ICsxNTksNiBAQCBz
dHJ1Y3QgSW1hZ2VDb3B5VGV4dHVyZTsKIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkOwog
c3RydWN0IEltYWdlRGF0YUxheW91dDsKIHN0cnVjdCBNdWx0aXNhbXBsZVN0YXRlOwotc3RydWN0
IE9iamVjdERlc2NyaXB0b3JCYXNlOwogc3RydWN0IE91dE9mTWVtb3J5RXJyb3I7CiBzdHJ1Y3Qg
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZTsKIHN0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7
CkBAIC0yMzAsNyArMjI4LDYgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJH
UFU6OkltYWdlQ29weVRleHR1cmVUYWdnZWQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBJbWFn
ZUNvcHlUZXh0dXJlVGFnZ2VkJik7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6SW1h
Z2VEYXRhTGF5b3V0PiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgSW1hZ2VEYXRhTGF5b3V0Jik7
CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6TXVsdGlzYW1wbGVTdGF0ZT4gY29udmVy
dEZyb21CYWNraW5nKGNvbnN0IE11bHRpc2FtcGxlU3RhdGUmKTsKLSAgICBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gY29udmVydEZyb21CYWNraW5nKGNv
bnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJik7CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6T3JpZ2luMkQ+IGNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBPcmlnaW4yRCYpOwogICAgIHN0
ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9yaWdpbjJERGljdD4gY29udmVydEZyb21CYWNraW5n
KGNvbnN0IE9yaWdpbjJERGljdCYpOwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9y
aWdpbjNEPiBjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT3JpZ2luM0QmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUNvbnZlcnRUb0JhY2tpbmdD
b250ZXh0LmgKaW5kZXggYzE3NTMwNmM2ZTM0Li45Mjg5MDg3YWU5ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0VG9CYWNraW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVDb252ZXJ0VG9CYWNraW5n
Q29udGV4dC5oCkBAIC04NSw3ICs4NSw2IEBAIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlOwogc3Ry
dWN0IEltYWdlQ29weVRleHR1cmVUYWdnZWQ7CiBzdHJ1Y3QgSW1hZ2VEYXRhTGF5b3V0Owogc3Ry
dWN0IE11bHRpc2FtcGxlU3RhdGU7Ci1zdHJ1Y3QgT2JqZWN0RGVzY3JpcHRvckJhc2U7CiBjbGFz
cyBPdXRPZk1lbW9yeUVycm9yOwogc3RydWN0IFBpcGVsaW5lRGVzY3JpcHRvckJhc2U7CiBjbGFz
cyBQaXBlbGluZUxheW91dDsKQEAgLTE1OSw3ICsxNTgsNiBAQCBzdHJ1Y3QgSW1hZ2VDb3B5VGV4
dHVyZTsKIHN0cnVjdCBJbWFnZUNvcHlUZXh0dXJlVGFnZ2VkOwogc3RydWN0IEltYWdlRGF0YUxh
eW91dDsKIHN0cnVjdCBNdWx0aXNhbXBsZVN0YXRlOwotc3RydWN0IE9iamVjdERlc2NyaXB0b3JC
YXNlOwogc3RydWN0IE91dE9mTWVtb3J5RXJyb3I7CiBzdHJ1Y3QgUGlwZWxpbmVEZXNjcmlwdG9y
QmFzZTsKIHN0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3I7CkBAIC0yMjksNyArMjI3LDYg
QEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZD4gY29u
dmVydFRvQmFja2luZyhjb25zdCBQQUw6OldlYkdQVTo6SW1hZ2VDb3B5VGV4dHVyZVRhZ2dlZCYp
OwogICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VEYXRhTGF5b3V0PiBjb252ZXJ0VG9CYWNraW5nKGNv
bnN0IFBBTDo6V2ViR1BVOjpJbWFnZURhdGFMYXlvdXQmKTsKICAgICBzdGQ6Om9wdGlvbmFsPE11
bHRpc2FtcGxlU3RhdGU+IGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUEFMOjpXZWJHUFU6Ok11bHRp
c2FtcGxlU3RhdGUmKTsKLSAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBj
b252ZXJ0VG9CYWNraW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSYp
OwogICAgIHN0ZDo6b3B0aW9uYWw8T3JpZ2luMkQ+IGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUEFM
OjpXZWJHUFU6Ok9yaWdpbjJEJik7CiAgICAgc3RkOjpvcHRpb25hbDxPcmlnaW4yRERpY3Q+IGNv
bnZlcnRUb0JhY2tpbmcoY29uc3QgUEFMOjpXZWJHUFU6Ok9yaWdpbjJERGljdCYpOwogICAgIHN0
ZDo6b3B0aW9uYWw8T3JpZ2luM0Q+IGNvbnZlcnRUb0JhY2tpbmcoY29uc3QgUEFMOjpXZWJHUFU6
Ok9yaWdpbjNEJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVRGV2aWNlRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2Vi
R1BVRGV2aWNlRGVzY3JpcHRvci5jcHAKaW5kZXggNzA4ZTc5ZjcyNzVkLi4wY2Q3YWUwNzBjMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVEZXZpY2VEZXNj
cmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5jcHAKQEAgLTM2LDIwICszNiwxNiBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJH
UFUgewogCiBzdGQ6Om9wdGlvbmFsPERldmljZURlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tpbmdD
b250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlw
dG9yJiBkZXZpY2VEZXNjcmlwdG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRUb0JhY2tp
bmcoc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4o
ZGV2aWNlRGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpX
ZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oZGV2aWNlRGVzY3JpcHRvcik7CiAKLSAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBkZXZpY2VEZXNjcmlwdG9yLnJlcXVpcmVkRmVhdHVy
ZXMsIGRldmljZURlc2NyaXB0b3IucmVxdWlyZWRMaW1pdHMgfSB9OworICAgIHJldHVybiB7IHsg
YmFzZSwgZGV2aWNlRGVzY3JpcHRvci5yZXF1aXJlZEZlYXR1cmVzLCBkZXZpY2VEZXNjcmlwdG9y
LnJlcXVpcmVkTGltaXRzIH0gfTsKIH0KIAogc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RGV2
aWNlRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRldmljZURlc2NyaXB0b3IpCiB7Ci0gICAgYXV0
byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2Ny
aXB0b3JCYXNlJj4oZGV2aWNlRGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8
Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oZGV2aWNlRGVzY3JpcHRv
cik7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBkZXZpY2VEZXNjcmlwdG9yLnJl
cXVpcmVkRmVhdHVyZXMsIGRldmljZURlc2NyaXB0b3IucmVxdWlyZWRMaW1pdHMgfSB9OworICAg
IHJldHVybiB7IHsgYmFzZSwgZGV2aWNlRGVzY3JpcHRvci5yZXF1aXJlZEZlYXR1cmVzLCBkZXZp
Y2VEZXNjcmlwdG9yLnJlcXVpcmVkTGltaXRzIH0gfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNl
RGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURl
c2NyaXB0b3IuaAppbmRleCBiYWU0MGVjNzdmZGUuLmM3NzU4ZTMwYzBmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVURldmljZURlc2NyaXB0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg+CiAjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNs
dWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUZlYXR1
cmVOYW1lLmg+CkBAIC0zNywyMCArMzgsMjAgQEAKIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIAotc3RydWN0IERldmljZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJh
c2Ugeworc3RydWN0IERldmljZURlc2NyaXB0b3IgOiBwdWJsaWMgUEFMOjpXZWJHUFU6Ok9iamVj
dERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8UEFMOjpXZWJHUFU6OkZlYXR1cmVOYW1lPiBy
ZXF1aXJlZEZlYXR1cmVzOwogICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCB1aW50NjRf
dD4+IHJlcXVpcmVkTGltaXRzOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAg
IGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0
b3JCYXNlJj4oKnRoaXMpOwogICAgICAgICBlbmNvZGVyIDw8IHJlcXVpcmVkRmVhdHVyZXM7CiAg
ICAgICAgIGVuY29kZXIgPDwgcmVxdWlyZWRMaW1pdHM7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RGV2aWNlRGVzY3JpcHRvcj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPE9iamVj
dERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JC
YXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBp
ZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5h
bFRleHR1cmVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNwcAppbmRleCA0NzZjYmViNzhhMzQuLjI1NzA5
MWU0ZDljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVUV4
dGVybmFsVGV4dHVyZURlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmNwcApAQCAtMzYsMjAgKzM2LDE2
IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0ZDo6b3B0aW9uYWw8RXh0ZXJuYWxU
ZXh0dXJlRGVzY3JpcHRvcj4gQ29udmVydFRvQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRUb0JhY2tp
bmcoY29uc3QgUEFMOjpXZWJHUFU6OkV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3ImIGV4dGVybmFs
VGV4dHVyZURlc2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0gY29udmVydFRvQmFja2luZyhz
dGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPihleHRl
cm5hbFRleHR1cmVEZXNjcmlwdG9yKSk7Ci0gICAgaWYgKCFiYXNlKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8mIGJhc2UgPSBzdGF0aWNfY2FzdDxjb25zdCBQ
QUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPihleHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yKTsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3IuY29sb3JTcGFjZSB9IH07CisgICAgcmV0dXJuIHsgeyBiYXNlLCBleHRlcm5hbFRl
eHR1cmVEZXNjcmlwdG9yLmNvbG9yU3BhY2UgfSB9OwogfQogCiBzdGQ6Om9wdGlvbmFsPFBBTDo6
V2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250
ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciYg
ZXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvcikKIHsKLSAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJv
bUJhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihleHRlcm5h
bFRleHR1cmVEZXNjcmlwdG9yKSk7Ci0gICAgaWYgKCFiYXNlKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8mIGJhc2UgPSBzdGF0aWNfY2FzdDxjb25zdCBQQUw6
OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPihleHRlcm5hbFRleHR1cmVEZXNjcmlwdG9y
KTsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGV4dGVybmFsVGV4dHVyZURlc2Ny
aXB0b3IuY29sb3JTcGFjZSB9IH07CisgICAgcmV0dXJuIHsgeyBiYXNlLCBleHRlcm5hbFRleHR1
cmVEZXNjcmlwdG9yLmNvbG9yU3BhY2UgfSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVFeHRlcm5hbFRl
eHR1cmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0
ZXJuYWxUZXh0dXJlRGVzY3JpcHRvci5oCmluZGV4IGU1NzUzYzRlNTU0Mi4uMTJlM2JjNWYyZDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVRXh0ZXJuYWxU
ZXh0dXJlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVFeHRlcm5hbFRleHR1cmVEZXNjcmlwdG9yLmgKQEAgLTI4LDIzICsyOCwyNCBAQAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNl
LmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9y
QmFzZS5oPgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVUHJlZGVmaW5lZENvbG9yU3BhY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdDo6V2Vi
R1BVIHsKIAotc3RydWN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0
RGVzY3JpcHRvckJhc2Ugeworc3RydWN0IEV4dGVybmFsVGV4dHVyZURlc2NyaXB0b3IgOiBwdWJs
aWMgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBQQUw6OldlYkdQVTo6
UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZSB7IFBBTDo6V2ViR1BVOjpQcmVkZWZpbmVk
Q29sb3JTcGFjZTo6U1JHQiB9OwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAg
IGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0
b3JCYXNlJj4oKnRoaXMpOwogICAgICAgICBlbmNvZGVyIDw8IGNvbG9yU3BhY2U7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXh0ZXJu
YWxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAg
ICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERl
c2NyaXB0b3JCYXNlOwogICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwCmluZGV4IGYwMTk5
ZjA4OWMzMS4uYThhMTlkNTQzZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5jcHAKQEAgLTM0LDE2ICsz
NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKLXN0ZDo6b3B0aW9uYWw8T2Jq
ZWN0RGVzY3JpcHRvckJhc2U+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNr
aW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSYgb2JqZWN0RGVzY3Jp
cHRvckJhc2UpCi17Ci0gICAgcmV0dXJuIHsgeyBvYmplY3REZXNjcmlwdG9yQmFzZS5sYWJlbCB9
IH07Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNl
PiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgT2Jq
ZWN0RGVzY3JpcHRvckJhc2UmIG9iamVjdERlc2NyaXB0b3JCYXNlKQotewotICAgIHJldHVybiB7
IHsgb2JqZWN0RGVzY3JpcHRvckJhc2UubGFiZWwgfSB9OwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmgKaW5k
ZXggNjExM2M1MmFlNmY5Li5hZDNiOTE3MjFiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFzZS5oCkBAIC0yNywy
MCArMjcsMjcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkFyZ3Vt
ZW50Q29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgor
I2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+
CisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1uYW1lc3BhY2UgV2ViS2l0
OjpXZWJHUFUgeworbmFtZXNwYWNlIElQQyB7CiAKLXN0cnVjdCBPYmplY3REZXNjcmlwdG9yQmFz
ZSB7Ci0gICAgU3RyaW5nIGxhYmVsOwotCi0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlPiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUEFMOjpXZWJHUFU6Ok9i
amVjdERlc2NyaXB0b3JCYXNlJiB0KQorICAgIHsKKyAgICAgICAgZW5jb2RlSW50ZXJuYWwoZW5j
b2RlciwgdCk7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGVuY29kZShJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25FbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2UmIHQpCiAgICAgewotICAgICAgICBlbmNvZGVyIDw8IGxhYmVsOworICAgICAgICBlbmNv
ZGVJbnRlcm5hbChlbmNvZGVyLCB0KTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9i
amVjdERlc2NyaXB0b3JCYXNlPiBkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGxhYmVsOwogICAgICAgICBkZWNvZGVyID4+
IGxhYmVsOwpAQCAtNDksOCArNTYsMTQgQEAgc3RydWN0IE9iamVjdERlc2NyaXB0b3JCYXNlIHsK
IAogICAgICAgICByZXR1cm4geyB7IFdURk1vdmUoKmxhYmVsKSB9IH07CiAgICAgfQorCitwcml2
YXRlOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVJ
bnRlcm5hbChFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3Jp
cHRvckJhc2UmIHQpCisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHQubGFiZWw7CisgICAgfQog
fTsKIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUKK30KIAogI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcAppbmRleCBlZWFjODMzY2VlZTUu
LjY4YzM2YTllYmRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVBpcGVsaW5lRGVzY3JpcHRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmNwcApAQCAtMzYsOSArMzYsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdGQ6Om9wdGlvbmFsPFBpcGVsaW5lRGVz
Y3JpcHRvckJhc2U+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNv
bnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZURlc2NyaXB0b3JCYXNlJiBwaXBlbGluZURlc2NyaXB0
b3JCYXNlKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRUb0JhY2tpbmcoc3RhdGljX2Nhc3Q8
Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4ocGlwZWxpbmVEZXNjcmlw
dG9yQmFzZSkpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9i
amVjdERlc2NyaXB0b3JCYXNlJj4ocGlwZWxpbmVEZXNjcmlwdG9yQmFzZSk7CiAKICAgICBXZWJH
UFVJZGVudGlmaWVyIGxheW91dDsKICAgICBpZiAocGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5sYXlv
dXQpIHsKQEAgLTQ3LDE0ICs0NSwxMiBAQCBzdGQ6Om9wdGlvbmFsPFBpcGVsaW5lRGVzY3JpcHRv
ckJhc2U+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKAogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4geyB7IFdURk1v
dmUoKmJhc2UpLCBsYXlvdXQgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSwgbGF5b3V0IH0gfTsK
IH0KIAogc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UGlwZWxpbmVEZXNjcmlwdG9yQmFzZT4g
Q29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFBpcGVs
aW5lRGVzY3JpcHRvckJhc2UmIHBpcGVsaW5lRGVzY3JpcHRvckJhc2UpCiB7Ci0gICAgYXV0byBi
YXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0
b3JCYXNlJj4ocGlwZWxpbmVEZXNjcmlwdG9yQmFzZSkpOwotICAgIGlmICghYmFzZSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4ocGlwZWxpbmVEZXNj
cmlwdG9yQmFzZSk7CiAKICAgICBQQUw6OldlYkdQVTo6UGlwZWxpbmVMYXlvdXQqIGxheW91dCA9
IG51bGxwdHI7CiAgICAgaWYgKHBpcGVsaW5lRGVzY3JpcHRvckJhc2UubGF5b3V0KSB7CkBAIC02
Myw3ICs1OSw3IEBAIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlBpcGVsaW5lRGVzY3JpcHRv
ckJhc2U+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvCiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIH0KIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIGxh
eW91dCB9IH07CisgICAgcmV0dXJuIHsgeyBiYXNlLCBsYXlvdXQgfSB9OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCmluZGV4IDRkMDcxZjFjZDYzZS4uMDc0
NGI3MjFkZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVQaXBlbGluZURlc2NyaXB0b3JCYXNlLmgKQEAgLTI5LDIyICsyOSwyMyBAQAogCiAj
aW5jbHVkZSAiV2ViR1BVSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYkdQVU9iamVjdERlc2Ny
aXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVPYmplY3RE
ZXNjcmlwdG9yQmFzZS5oPgogI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgV2ViS2l0
OjpXZWJHUFUgewogCi1zdHJ1Y3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSA6IHB1YmxpYyBPYmpl
Y3REZXNjcmlwdG9yQmFzZSB7CitzdHJ1Y3QgUGlwZWxpbmVEZXNjcmlwdG9yQmFzZSA6IHB1Ymxp
YyBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIFdlYkdQVUlkZW50aWZp
ZXIgbGF5b3V0OwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4o
KnRoaXMpOwogICAgICAgICBlbmNvZGVyIDw8IGxheW91dDsKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQaXBlbGluZURlc2NyaXB0b3JC
YXNlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CiAgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CiAg
ICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmNwcAppbmRleCA4MjkyZTMwODQyNjYu
LjQxNDkzZmI3NjRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5jcHAKQEAgLTM2LDkgKzM2
LDcgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RkOjpvcHRpb25hbDxQaXBlbGlu
ZUxheW91dERlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNr
aW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpQaXBlbGluZUxheW91dERlc2NyaXB0b3ImIHBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvcikKIHsKLSAgICBhdXRvIGJhc2UgPSBjb252ZXJ0VG9CYWNraW5nKHN0
YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KHBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFM
OjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4ocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9y
KTsKIAogICAgIFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiBiaW5kR3JvdXBMYXlvdXRzOwogICAg
IGJpbmRHcm91cExheW91dHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwaXBlbGluZUxheW91dERl
c2NyaXB0b3IuYmluZEdyb3VwTGF5b3V0cy5zaXplKCkpOwpAQCAtNDksMTQgKzQ3LDEyIEBAIHN0
ZDo6b3B0aW9uYWw8UGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yPiBDb252ZXJ0VG9CYWNraW5nQ29u
dGV4dDo6Y29udmVydFRvQmFja2luCiAgICAgICAgIGJpbmRHcm91cExheW91dHMudW5jaGVja2Vk
QXBwZW5kKGVudHJ5KTsKICAgICB9CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBX
VEZNb3ZlKGJpbmRHcm91cExheW91dHMpIH0gfTsKKyAgICByZXR1cm4geyB7IGJhc2UsIFdURk1v
dmUoYmluZEdyb3VwTGF5b3V0cykgfSB9OwogfQogCiBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BV
OjpQaXBlbGluZUxheW91dERlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNv
bnZlcnRGcm9tQmFja2luZyhjb25zdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3ImIHBpcGVsaW5l
TGF5b3V0RGVzY3JpcHRvcikKIHsKLSAgICBhdXRvIGJhc2UgPSBjb252ZXJ0RnJvbUJhY2tpbmco
c3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPihwaXBlbGluZUxheW91dERl
c2NyaXB0b3IpKTsKLSAgICBpZiAoIWJhc2UpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgY29uc3QgYXV0byYgYmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpP
YmplY3REZXNjcmlwdG9yQmFzZSY+KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcik7CiAKICAgICBW
ZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxQQUw6OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0
Pj4gYmluZEdyb3VwTGF5b3V0czsKICAgICBiaW5kR3JvdXBMYXlvdXRzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkocGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yLmJpbmRHcm91cExheW91dHMuc2l6ZSgp
KTsKQEAgLTY3LDcgKzYzLDcgQEAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UGlwZWxpbmVM
YXlvdXREZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0OjoKICAgICAgICAgYmlu
ZEdyb3VwTGF5b3V0cy51bmNoZWNrZWRBcHBlbmQoKmVudHJ5KTsKICAgICB9CiAKLSAgICByZXR1
cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKGJpbmRHcm91cExheW91dHMpIH0gfTsKKyAg
ICByZXR1cm4geyB7IGJhc2UsIFdURk1vdmUoYmluZEdyb3VwTGF5b3V0cykgfSB9OwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaAppbmRleCA1ZTQzMDI4
MWFmMmIuLmIyNTM2NTY0YTE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
R1BVL1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVQaXBlbGluZUxheW91dERlc2NyaXB0b3IuaApAQCAtMjksMjMg
KzI5LDI0IEBACiAKICNpbmNsdWRlICJXZWJHUFVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2Vi
R1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCi1zdHJ1
Y3QgUGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNl
IHsKK3N0cnVjdCBQaXBlbGluZUxheW91dERlc2NyaXB0b3IgOiBwdWJsaWMgUEFMOjpXZWJHUFU6
Ok9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8V2ViR1BVSWRlbnRpZmllcj4gYmlu
ZEdyb3VwTGF5b3V0czsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFz
ZSY+KCp0aGlzKTsKICAgICAgICAgZW5jb2RlciA8PCBiaW5kR3JvdXBMYXlvdXRzOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBpcGVs
aW5lTGF5b3V0RGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAg
ICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERl
c2NyaXB0b3JCYXNlOwogICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5jcHAKaW5kZXggZWMxMTBiNzAw
ODg4Li5mYTlkNDY2ZGNiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVRdWVyeVNldERlc2NyaXB0b3IuY3BwCkBAIC0zNiwyMCArMzYsMTYgQEAg
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RkOjpvcHRpb25hbDxRdWVyeVNldERlc2Ny
aXB0b3I+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFBB
TDo6V2ViR1BVOjpRdWVyeVNldERlc2NyaXB0b3ImIHF1ZXJ5U2V0RGVzY3JpcHRvcikKIHsKLSAg
ICBhdXRvIGJhc2UgPSBjb252ZXJ0VG9CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2Vi
R1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KHF1ZXJ5U2V0RGVzY3JpcHRvcikpOwotICAgIGlm
ICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBi
YXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNl
Jj4ocXVlcnlTZXREZXNjcmlwdG9yKTsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSks
IHF1ZXJ5U2V0RGVzY3JpcHRvci50eXBlLCBxdWVyeVNldERlc2NyaXB0b3IuY291bnQgfSB9Owor
ICAgIHJldHVybiB7IHsgYmFzZSwgcXVlcnlTZXREZXNjcmlwdG9yLnR5cGUsIHF1ZXJ5U2V0RGVz
Y3JpcHRvci5jb3VudCB9IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlF1ZXJ5
U2V0RGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6Y29udmVydEZyb21CYWNr
aW5nKGNvbnN0IFF1ZXJ5U2V0RGVzY3JpcHRvciYgcXVlcnlTZXREZXNjcmlwdG9yKQogewotICAg
IGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KHF1ZXJ5U2V0RGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4ocXVlcnlTZXRE
ZXNjcmlwdG9yKTsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIHF1ZXJ5U2V0RGVz
Y3JpcHRvci50eXBlLCBxdWVyeVNldERlc2NyaXB0b3IuY291bnQgfSB9OworICAgIHJldHVybiB7
IHsgYmFzZSwgcXVlcnlTZXREZXNjcmlwdG9yLnR5cGUsIHF1ZXJ5U2V0RGVzY3JpcHRvci5jb3Vu
dCB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCmluZGV4IDBjMGY5
Yjg2NThkNS4uZjM2MzRiZjlkNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUXVlcnlTZXREZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR1BVL1dlYkdQVVF1ZXJ5U2V0RGVzY3JpcHRvci5oCkBAIC0yOCw2ICsyOCw3IEBACiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdERlc2Ny
aXB0b3JCYXNlLmg+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNz
L1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVRdWVyeVR5cGUuaD4KQEAgLTM1LDIwICszNiwyMCBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgewogCi1zdHJ1Y3QgUXVlcnlTZXREZXNjcmlwdG9yIDogcHVibGljIE9i
amVjdERlc2NyaXB0b3JCYXNlIHsKK3N0cnVjdCBRdWVyeVNldERlc2NyaXB0b3IgOiBwdWJsaWMg
UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAgICBQQUw6OldlYkdQVTo6UXVl
cnlUeXBlIHR5cGUgeyBQQUw6OldlYkdQVTo6UXVlcnlUeXBlOjpPY2NsdXNpb24gfTsKICAgICBQ
QUw6OldlYkdQVTo6U2l6ZTMyIGNvdW50IHsgMCB9OwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAg
IGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhp
cyk7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9i
amVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOwogICAgICAgICBlbmNvZGVyIDw8IHR5cGU7CiAg
ICAgICAgIGVuY29kZXIgPDwgY291bnQ7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UXVlcnlTZXREZXNjcmlwdG9yPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CiAg
ICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CiAgICAgICAgIGlmICghb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1bmRsZURl
c2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRlckJ1
bmRsZURlc2NyaXB0b3IuY3BwCmluZGV4IGM5YTE3OWIyNTEzZi4uYTA2YTdiOGVhZjc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVz
Y3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJlbmRl
ckJ1bmRsZURlc2NyaXB0b3IuY3BwCkBAIC0zNiwyMCArMzYsMTYgQEAgbmFtZXNwYWNlIFdlYktp
dDo6V2ViR1BVIHsKIAogc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVEZXNjcmlwdG9yPiBDb252
ZXJ0VG9CYWNraW5nQ29udGV4dDo6Y29udmVydFRvQmFja2luZyhjb25zdCBQQUw6OldlYkdQVTo6
UmVuZGVyQnVuZGxlRGVzY3JpcHRvciYgcmVuZGVyQnVuZGxlRGVzY3JpcHRvcikKIHsKLSAgICBh
dXRvIGJhc2UgPSBjb252ZXJ0VG9CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BV
OjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KHJlbmRlckJ1bmRsZURlc2NyaXB0b3IpKTsKLSAgICBp
ZiAoIWJhc2UpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYg
YmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFz
ZSY+KHJlbmRlckJ1bmRsZURlc2NyaXB0b3IpOwogCi0gICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpi
YXNlKSB9IH07CisgICAgcmV0dXJuIHsgeyBiYXNlIH0gfTsKIH0KIAogc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6UmVuZGVyQnVuZGxlRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlckJ1bmRsZURlc2NyaXB0b3ImIHJl
bmRlckJ1bmRsZURlc2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNr
aW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4ocmVuZGVyQnVuZGxl
RGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6
Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4ocmVuZGVyQnVuZGxlRGVzY3JpcHRvcik7CiAKLSAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpIH0gfTsKKyAgICByZXR1cm4geyB7IGJhc2UgfSB9Owog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oCmluZGV4IDczYTJm
MDgxMjBjNy4uMTI5YWJhYThjZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVEZXNjcmlwdG9yLmgKQEAgLTI4LDE5ICsy
OCwyMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIldlYkdQVU9iamVj
dERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVP
YmplY3REZXNjcmlwdG9yQmFzZS5oPgogI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJHUFUgewogCi1zdHJ1Y3QgUmVuZGVyQnVuZGxlRGVzY3JpcHRvciA6IHB1Ymxp
YyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CitzdHJ1Y3QgUmVuZGVyQnVuZGxlRGVzY3JpcHRvciA6
IHB1YmxpYyBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAg
ewotICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JC
YXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6
V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJCdW5kbGVEZXNj
cmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0
RGVzY3JpcHRvckJhc2U7CiAgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7
CiAgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQ
VS9XZWJHUFVSZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKaW5kZXggOTJhNjhhMmRjYWNiLi45ZGU2
MDk0M2VkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVS
ZW5kZXJQYXNzRGVzY3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcApAQCAtMzYsOSArMzYsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXNjcmlwdG9y
PiBDb252ZXJ0VG9CYWNraW5nQ29udGV4dDo6Y29udmVydFRvQmFja2luZyhjb25zdCBQQUw6Oldl
YkdQVTo6UmVuZGVyUGFzc0Rlc2NyaXB0b3ImIHJlbmRlclBhc3NEZXNjcmlwdG9yKQogewotICAg
IGF1dG8gYmFzZSA9IGNvbnZlcnRUb0JhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJH
UFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4ocmVuZGVyUGFzc0Rlc2NyaXB0b3IpKTsKLSAgICBp
ZiAoIWJhc2UpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYg
YmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFz
ZSY+KHJlbmRlclBhc3NEZXNjcmlwdG9yKTsKIAogICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFJl
bmRlclBhc3NDb2xvckF0dGFjaG1lbnQ+PiBjb2xvckF0dGFjaG1lbnRzOwogICAgIGNvbG9yQXR0
YWNobWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZW5kZXJQYXNzRGVzY3JpcHRvci5jb2xv
ckF0dGFjaG1lbnRzLnNpemUoKSk7CkBAIC03MCwxNCArNjgsMTIgQEAgc3RkOjpvcHRpb25hbDxS
ZW5kZXJQYXNzRGVzY3JpcHRvcj4gQ29udmVydFRvQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRUb0Jh
Y2tpbmcoY28KICAgICBpZiAoIXRpbWVzdGFtcFdyaXRlcykKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIFdURk1vdmUoY29sb3JB
dHRhY2htZW50cyksIFdURk1vdmUoZGVwdGhTdGVuY2lsQXR0YWNobWVudCksIG9jY2x1c2lvblF1
ZXJ5U2V0LCBXVEZNb3ZlKCp0aW1lc3RhbXBXcml0ZXMpIH0gfTsKKyAgICByZXR1cm4geyB7IGJh
c2UsIFdURk1vdmUoY29sb3JBdHRhY2htZW50cyksIFdURk1vdmUoZGVwdGhTdGVuY2lsQXR0YWNo
bWVudCksIG9jY2x1c2lvblF1ZXJ5U2V0LCBXVEZNb3ZlKCp0aW1lc3RhbXBXcml0ZXMpIH0gfTsK
IH0KIAogc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0Rlc2NyaXB0b3I+IENv
bnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBSZW5kZXJQ
YXNzRGVzY3JpcHRvciYgcmVuZGVyUGFzc0Rlc2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0g
Y29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNl
Jj4ocmVuZGVyUGFzc0Rlc2NyaXB0b3IpKTsKLSAgICBpZiAoIWJhc2UpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgYmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KHJlbmRlclBhc3NEZXNjcmlwdG9y
KTsKIAogICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpSZW5kZXJQYXNzQ29s
b3JBdHRhY2htZW50Pj4gY29sb3JBdHRhY2htZW50czsKICAgICBjb2xvckF0dGFjaG1lbnRzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkocmVuZGVyUGFzc0Rlc2NyaXB0b3IuY29sb3JBdHRhY2htZW50
cy5zaXplKCkpOwpAQCAtMTEwLDcgKzEwNiw3IEBAIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlJlbmRlclBhc3NEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0Ojpjb252CiAg
ICAgaWYgKCF0aW1lc3RhbXBXcml0ZXMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAK
LSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKGNvbG9yQXR0YWNobWVudHMp
LCBXVEZNb3ZlKGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpLCBvY2NsdXNpb25RdWVyeVNldCwgV1RG
TW92ZSgqdGltZXN0YW1wV3JpdGVzKSB9IH07CisgICAgcmV0dXJuIHsgeyBiYXNlLCBXVEZNb3Zl
KGNvbG9yQXR0YWNobWVudHMpLCBXVEZNb3ZlKGRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpLCBvY2Ns
dXNpb25RdWVyeVNldCwgV1RGTW92ZSgqdGltZXN0YW1wV3JpdGVzKSB9IH07CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BV
L1dlYkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGFzc0Rlc2NyaXB0b3IuaAppbmRleCBhY2Y2ODdmM2Y0NDQuLjc3MDNl
N2I2MDRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dl
YkdQVVJlbmRlclBhc3NEZXNjcmlwdG9yLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUg
IldlYkdQVUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNjcmlwdG9yQmFz
ZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0RGVzY3JpcHRv
ckJhc2UuaD4KICNpbmNsdWRlICJXZWJHUFVSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50LmgiCiAj
aW5jbHVkZSAiV2ViR1BVUmVuZGVyUGFzc0RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaCIKICNpbmNs
dWRlICJXZWJHUFVSZW5kZXJQYXNzVGltZXN0YW1wV3JpdGVzLmgiCkBAIC0zNyw3ICszOCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKLXN0cnVjdCBSZW5kZXJQYXNzRGVzY3Jp
cHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CitzdHJ1Y3QgUmVuZGVyUGFzc0Rl
c2NyaXB0b3IgOiBwdWJsaWMgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlIHsKICAg
ICBWZWN0b3I8c3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzQ29sb3JBdHRhY2htZW50Pj4gY29sb3JB
dHRhY2htZW50czsKICAgICBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NEZXB0aFN0ZW5jaWxBdHRh
Y2htZW50PiBkZXB0aFN0ZW5jaWxBdHRhY2htZW50OwogICAgIFdlYkdQVUlkZW50aWZpZXIgb2Nj
bHVzaW9uUXVlcnlTZXQ7CkBAIC00NSw3ICs0Niw3IEBAIHN0cnVjdCBSZW5kZXJQYXNzRGVzY3Jp
cHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAKICAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAg
ICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+
KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQ
VTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CiAgICAgICAgIGVuY29kZXIgPDwgY29s
b3JBdHRhY2htZW50czsKICAgICAgICAgZW5jb2RlciA8PCBkZXB0aFN0ZW5jaWxBdHRhY2htZW50
OwogICAgICAgICBlbmNvZGVyIDw8IG9jY2x1c2lvblF1ZXJ5U2V0OwpAQCAtNTQsNyArNTUsNyBA
QCBzdHJ1Y3QgUmVuZGVyUGFzc0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJh
c2UgewogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
UmVuZGVyUGFzc0Rlc2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRv
ckJhc2U7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0
b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFzZTsKICAgICAgICAgZGVjb2RlciA+PiBvYmplY3RE
ZXNjcmlwdG9yQmFzZTsKICAgICAgICAgaWYgKCFvYmplY3REZXNjcmlwdG9yQmFzZSkKICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5jcHAKaW5kZXggYzBlOGI3MmUyZmQx
Li5mYzY1OTM4ZDdmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9X
ZWJHUFVSZW5kZXJQYXNzTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJH
UFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5jcHAKQEAgLTM2LDIwICszNiwxNiBAQCBuYW1lc3Bh
Y2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdGQ6Om9wdGlvbmFsPFJlbmRlclBhc3NMYXlvdXQ+IENv
bnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFBBTDo6V2ViR1BV
OjpSZW5kZXJQYXNzTGF5b3V0JiByZW5kZXJQYXNzTGF5b3V0KQogewotICAgIGF1dG8gYmFzZSA9
IGNvbnZlcnRUb0JhY2tpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERl
c2NyaXB0b3JCYXNlJj4ocmVuZGVyUGFzc0xheW91dCkpOwotICAgIGlmICghYmFzZSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4ocmVuZGVyUGFzc0xh
eW91dCk7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCByZW5kZXJQYXNzTGF5b3V0
LmNvbG9yRm9ybWF0cywgcmVuZGVyUGFzc0xheW91dC5kZXB0aFN0ZW5jaWxGb3JtYXQsIHJlbmRl
clBhc3NMYXlvdXQuc2FtcGxlQ291bnQgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSwgcmVuZGVy
UGFzc0xheW91dC5jb2xvckZvcm1hdHMsIHJlbmRlclBhc3NMYXlvdXQuZGVwdGhTdGVuY2lsRm9y
bWF0LCByZW5kZXJQYXNzTGF5b3V0LnNhbXBsZUNvdW50IH0gfTsKIH0KIAogc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6UmVuZGVyUGFzc0xheW91dD4gQ29udmVydEZyb21CYWNraW5nQ29udGV4
dDo6Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFJlbmRlclBhc3NMYXlvdXQmIHJlbmRlclBhc3NM
YXlvdXQpCiB7Ci0gICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19jYXN0
PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4ocmVuZGVyUGFzc0xheW91dCkpOwotICAgIGlm
ICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBi
YXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNl
Jj4ocmVuZGVyUGFzc0xheW91dCk7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBy
ZW5kZXJQYXNzTGF5b3V0LmNvbG9yRm9ybWF0cywgcmVuZGVyUGFzc0xheW91dC5kZXB0aFN0ZW5j
aWxGb3JtYXQsIHJlbmRlclBhc3NMYXlvdXQuc2FtcGxlQ291bnQgfSB9OworICAgIHJldHVybiB7
IHsgYmFzZSwgcmVuZGVyUGFzc0xheW91dC5jb2xvckZvcm1hdHMsIHJlbmRlclBhc3NMYXlvdXQu
ZGVwdGhTdGVuY2lsRm9ybWF0LCByZW5kZXJQYXNzTGF5b3V0LnNhbXBsZUNvdW50IH0gfTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVUmVuZGVyUGFzc0xheW91dC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVJlbmRlclBhc3NMYXlvdXQuaAppbmRleCBjNmRlMmU1MGRmOGUuLmQxMDc5
YjBiNjFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVJl
bmRlclBhc3NMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BV
UmVuZGVyUGFzc0xheW91dC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogCiAjaW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRl
IDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg+CiAjaW5j
bHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRl
Z3JhbFR5cGVzLmg+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJl
Rm9ybWF0Lmg+CkBAIC0zNSwxNCArMzYsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BV
IHsKIAotc3RydWN0IFJlbmRlclBhc3NMYXlvdXQgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJh
c2Ugeworc3RydWN0IFJlbmRlclBhc3NMYXlvdXQgOiBwdWJsaWMgUEFMOjpXZWJHUFU6Ok9iamVj
dERlc2NyaXB0b3JCYXNlIHsKICAgICBWZWN0b3I8c3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6
VGV4dHVyZUZvcm1hdD4+IGNvbG9yRm9ybWF0czsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2Vi
R1BVOjpUZXh0dXJlRm9ybWF0PiBkZXB0aFN0ZW5jaWxGb3JtYXQ7CiAgICAgUEFMOjpXZWJHUFU6
OlNpemUzMiBzYW1wbGVDb3VudCB7IDEgfTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOwor
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3RE
ZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKICAgICAgICAgZW5jb2RlciA8PCBjb2xvckZvcm1hdHM7
CiAgICAgICAgIGVuY29kZXIgPDwgZGVwdGhTdGVuY2lsRm9ybWF0OwogICAgICAgICBlbmNvZGVy
IDw8IHNhbXBsZUNvdW50OwpAQCAtNTAsNyArNTEsNyBAQCBzdHJ1Y3QgUmVuZGVyUGFzc0xheW91
dCA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZW5kZXJQYXNzTGF5b3V0PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8T2JqZWN0RGVzY3Jp
cHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBzdGQ6Om9wdGlvbmFsPFBB
TDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CiAg
ICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CiAgICAgICAgIGlmICghb2Jq
ZWN0RGVzY3JpcHRvckJhc2UpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlw
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3Jp
cHRvci5jcHAKaW5kZXggZjI3MWZiZTZlZjhhLi5jYzZjMjNmZTBlMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNhbXBsZXJEZXNjcmlwdG9yLmNw
cApAQCAtMzYsMjAgKzM2LDE2IEBAIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKIHN0ZDo6
b3B0aW9uYWw8U2FtcGxlckRlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252
ZXJ0VG9CYWNraW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpTYW1wbGVyRGVzY3JpcHRvciYgc2FtcGxl
ckRlc2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0gY29udmVydFRvQmFja2luZyhzdGF0aWNf
Y2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPihzYW1wbGVyRGVz
Y3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9i
amVjdERlc2NyaXB0b3JCYXNlJj4oc2FtcGxlckRlc2NyaXB0b3IpOwogCi0gICAgcmV0dXJuIHsg
eyBXVEZNb3ZlKCpiYXNlKSwgc2FtcGxlckRlc2NyaXB0b3IuYWRkcmVzc01vZGVVLCBzYW1wbGVy
RGVzY3JpcHRvci5hZGRyZXNzTW9kZVYsIHNhbXBsZXJEZXNjcmlwdG9yLmFkZHJlc3NNb2RlVywg
c2FtcGxlckRlc2NyaXB0b3IubWFnRmlsdGVyLCBzYW1wbGVyRGVzY3JpcHRvci5taW5GaWx0ZXIs
IHNhbXBsZXJEZXNjcmlwdG9yLm1pcG1hcEZpbHRlciwgc2FtcGxlckRlc2NyaXB0b3IubG9kTWlu
Q2xhbXAsIHNhbXBsZXJEZXNjcmlwdG9yLmxvZE1heENsYW1wLCBzYW1wbGVyRGVzY3JpcHRvci5j
b21wYXJlLCBzYW1wbGVyRGVzY3JpcHRvci5tYXhBbmlzb3Ryb3B5IH0gfTsKKyAgICByZXR1cm4g
eyB7IGJhc2UsIHNhbXBsZXJEZXNjcmlwdG9yLmFkZHJlc3NNb2RlVSwgc2FtcGxlckRlc2NyaXB0
b3IuYWRkcmVzc01vZGVWLCBzYW1wbGVyRGVzY3JpcHRvci5hZGRyZXNzTW9kZVcsIHNhbXBsZXJE
ZXNjcmlwdG9yLm1hZ0ZpbHRlciwgc2FtcGxlckRlc2NyaXB0b3IubWluRmlsdGVyLCBzYW1wbGVy
RGVzY3JpcHRvci5taXBtYXBGaWx0ZXIsIHNhbXBsZXJEZXNjcmlwdG9yLmxvZE1pbkNsYW1wLCBz
YW1wbGVyRGVzY3JpcHRvci5sb2RNYXhDbGFtcCwgc2FtcGxlckRlc2NyaXB0b3IuY29tcGFyZSwg
c2FtcGxlckRlc2NyaXB0b3IubWF4QW5pc290cm9weSB9IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8
UEFMOjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yPiBDb252ZXJ0RnJvbUJhY2tpbmdDb250ZXh0
Ojpjb252ZXJ0RnJvbUJhY2tpbmcoY29uc3QgU2FtcGxlckRlc2NyaXB0b3ImIHNhbXBsZXJEZXNj
cmlwdG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNfY2Fz
dDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHNhbXBsZXJEZXNjcmlwdG9yKSk7Ci0gICAg
aWYgKCFiYXNlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8m
IGJhc2UgPSBzdGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJh
c2UmPihzYW1wbGVyRGVzY3JpcHRvcik7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2Up
LCBzYW1wbGVyRGVzY3JpcHRvci5hZGRyZXNzTW9kZVUsIHNhbXBsZXJEZXNjcmlwdG9yLmFkZHJl
c3NNb2RlViwgc2FtcGxlckRlc2NyaXB0b3IuYWRkcmVzc01vZGVXLCBzYW1wbGVyRGVzY3JpcHRv
ci5tYWdGaWx0ZXIsIHNhbXBsZXJEZXNjcmlwdG9yLm1pbkZpbHRlciwgc2FtcGxlckRlc2NyaXB0
b3IubWlwbWFwRmlsdGVyLCBzYW1wbGVyRGVzY3JpcHRvci5sb2RNaW5DbGFtcCwgc2FtcGxlckRl
c2NyaXB0b3IubG9kTWF4Q2xhbXAsIHNhbXBsZXJEZXNjcmlwdG9yLmNvbXBhcmUsIHNhbXBsZXJE
ZXNjcmlwdG9yLm1heEFuaXNvdHJvcHkgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSwgc2FtcGxl
ckRlc2NyaXB0b3IuYWRkcmVzc01vZGVVLCBzYW1wbGVyRGVzY3JpcHRvci5hZGRyZXNzTW9kZVYs
IHNhbXBsZXJEZXNjcmlwdG9yLmFkZHJlc3NNb2RlVywgc2FtcGxlckRlc2NyaXB0b3IubWFnRmls
dGVyLCBzYW1wbGVyRGVzY3JpcHRvci5taW5GaWx0ZXIsIHNhbXBsZXJEZXNjcmlwdG9yLm1pcG1h
cEZpbHRlciwgc2FtcGxlckRlc2NyaXB0b3IubG9kTWluQ2xhbXAsIHNhbXBsZXJEZXNjcmlwdG9y
LmxvZE1heENsYW1wLCBzYW1wbGVyRGVzY3JpcHRvci5jb21wYXJlLCBzYW1wbGVyRGVzY3JpcHRv
ci5tYXhBbmlzb3Ryb3B5IH0gfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTYW1wbGVyRGVzY3JpcHRvci5o
CmluZGV4IDRiYjA1Mjc5MWNlNy4uZDRiNzJiOTU5MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IuaApAQCAtMjgsNiAr
MjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIldlYkdQVU9iamVj
dERlc2NyaXB0b3JCYXNlLmgiCisjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVP
YmplY3REZXNjcmlwdG9yQmFzZS5oPgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8b3B0
aW9uYWw+CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGRyZXNzTW9kZS5o
PgpAQCAtMzYsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCi1zdHJ1
Y3QgU2FtcGxlckRlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ugeworc3Ry
dWN0IFNhbXBsZXJEZXNjcmlwdG9yIDogcHVibGljIFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlw
dG9yQmFzZSB7CiAgICAgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlVSB7IFBB
TDo6V2ViR1BVOjpBZGRyZXNzTW9kZTo6Q2xhbXBUb0VkZ2UgfTsKICAgICBQQUw6OldlYkdQVTo6
QWRkcmVzc01vZGUgYWRkcmVzc01vZGVWIHsgUEFMOjpXZWJHUFU6OkFkZHJlc3NNb2RlOjpDbGFt
cFRvRWRnZSB9OwogICAgIFBBTDo6V2ViR1BVOjpBZGRyZXNzTW9kZSBhZGRyZXNzTW9kZVcgeyBQ
QUw6OldlYkdQVTo6QWRkcmVzc01vZGU6OkNsYW1wVG9FZGdlIH07CkBAIC01MCw3ICs1MSw3IEBA
IHN0cnVjdCBTYW1wbGVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBP
YmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CiAg
ICAgICAgIGVuY29kZXIgPDwgYWRkcmVzc01vZGVVOwogICAgICAgICBlbmNvZGVyIDw8IGFkZHJl
c3NNb2RlVjsKICAgICAgICAgZW5jb2RlciA8PCBhZGRyZXNzTW9kZVc7CkBAIC02NSw3ICs2Niw3
IEBAIHN0cnVjdCBTYW1wbGVyRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFz
ZSB7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxT
YW1wbGVyRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9yQmFz
ZTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJh
c2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERlc2Ny
aXB0b3JCYXNlOwogICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcAppbmRleCBmOWRm
NTg3YTdiMGUuLjIyNzk0OTRjNjgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcApAQCAtMzYs
OSArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0OjpXZWJHUFUgewogCiBzdGQ6Om9wdGlvbmFsPFNo
YWRlck1vZHVsZURlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9C
YWNraW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJiBzaGFkZXJN
b2R1bGVEZXNjcmlwdG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRUb0JhY2tpbmcoc3Rh
dGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oc2hhZGVy
TW9kdWxlRGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpX
ZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4oc2hhZGVyTW9kdWxlRGVzY3JpcHRvcik7CiAK
ICAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU2hhZGVyTW9kdWxlQ29tcGlsYXRpb25I
aW50Pj4gaGludHM7CiAgICAgaGludHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaGFkZXJNb2R1
bGVEZXNjcmlwdG9yLmhpbnRzLnNpemUoKSk7CkBAIC00OSwxNCArNDcsMTIgQEAgc3RkOjpvcHRp
b25hbDxTaGFkZXJNb2R1bGVEZXNjcmlwdG9yPiBDb252ZXJ0VG9CYWNraW5nQ29udGV4dDo6Y29u
dmVydFRvQmFja2luZygKICAgICAgICAgaGludHMudW5jaGVja2VkQXBwZW5kKG1ha2VLZXlWYWx1
ZVBhaXIoaGludC5rZXksIFdURk1vdmUoKnZhbHVlKSkpOwogICAgIH0KIAotICAgIHJldHVybiB7
IHsgV1RGTW92ZSgqYmFzZSksIHNoYWRlck1vZHVsZURlc2NyaXB0b3IuY29kZSwgV1RGTW92ZSho
aW50cykgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSwgc2hhZGVyTW9kdWxlRGVzY3JpcHRvci5j
b2RlLCBXVEZNb3ZlKGhpbnRzKSB9IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6
OlNoYWRlck1vZHVsZURlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRleHQ6OmNvbnZl
cnRGcm9tQmFja2luZyhjb25zdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJiBzaGFkZXJNb2R1bGVE
ZXNjcmlwdG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0aWNf
Y2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHNoYWRlck1vZHVsZURlc2NyaXB0b3Ip
KTsKLSAgICBpZiAoIWJhc2UpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29u
c3QgYXV0byYgYmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNj
cmlwdG9yQmFzZSY+KHNoYWRlck1vZHVsZURlc2NyaXB0b3IpOwogCiAgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVDb21waWxhdGlvbkhpbnQ+
PiBoaW50czsKICAgICBoaW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNoYWRlck1vZHVsZURl
c2NyaXB0b3IuaGludHMuc2l6ZSgpKTsKQEAgLTY3LDcgKzYzLDcgQEAgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlRGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29u
dGV4dDo6Y28KICAgICAgICAgaGludHMudW5jaGVja2VkQXBwZW5kKG1ha2VLZXlWYWx1ZVBhaXIo
aGludC5rZXksIFdURk1vdmUoKnZhbHVlKSkpOwogICAgIH0KIAotICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqYmFzZSksIHNoYWRlck1vZHVsZURlc2NyaXB0b3IuY29kZSwgV1RGTW92ZShoaW50cykg
fSB9OworICAgIHJldHVybiB7IHsgYmFzZSwgc2hhZGVyTW9kdWxlRGVzY3JpcHRvci5jb2RlLCBX
VEZNb3ZlKGhpbnRzKSB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2NyaXB0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yLmgKaW5kZXggNTI5NGZmYjcxYTZkLi5hYmJiMWI3MTQzYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZURlc2Ny
aXB0b3IuaApAQCAtMjgsMjcgKzI4LDI4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAj
aW5jbHVkZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg+CiAjaW5jbHVkZSAiV2Vi
R1BVU2hhZGVyTW9kdWxlQ29tcGlsYXRpb25IaW50LmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQ
VSB7CiAKLXN0cnVjdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKK3N0cnVjdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yIDogcHVibGljIFBBTDo6
V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSB7CiAgICAgU3RyaW5nIGNvZGU7CiAgICAgLy8g
RklYTUU6IEhvb2sgdXAgdGhlIHNvdXJjZU1hcC4KICAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU2hhZGVyTW9kdWxlQ29tcGlsYXRpb25IaW50Pj4gaGludHM7CiAKICAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9y
QmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBQQUw6
OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CiAgICAgICAgIGVuY29kZXIg
PDwgY29kZTsKICAgICAgICAgZW5jb2RlciA8PCBoaW50czsKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFkZXJNb2R1bGVEZXNjcmlw
dG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gb2JqZWN0RGVz
Y3JpcHRvckJhc2U7CiAgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJhc2U7CiAg
ICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQ
VVRleHR1cmVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJH
UFVUZXh0dXJlRGVzY3JpcHRvci5jcHAKaW5kZXggYjJkYzRjMjk3MGQ0Li4xZjQxNzA3NmMwYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVz
Y3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1
cmVEZXNjcmlwdG9yLmNwcApAQCAtMzYsMjggKzM2LDI0IEBAIG5hbWVzcGFjZSBXZWJLaXQ6Oldl
YkdQVSB7CiAKIHN0ZDo6b3B0aW9uYWw8VGV4dHVyZURlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tp
bmdDb250ZXh0Ojpjb252ZXJ0VG9CYWNraW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlRGVz
Y3JpcHRvciYgdGV4dHVyZURlc2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0gY29udmVydFRv
QmFja2luZyhzdGF0aWNfY2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJh
c2UmPih0ZXh0dXJlRGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
UEFMOjpXZWJHUFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4odGV4dHVyZURlc2NyaXB0b3IpOwog
CiAgICAgYXV0byBzaXplID0gY29udmVydFRvQmFja2luZyh0ZXh0dXJlRGVzY3JpcHRvci5zaXpl
KTsKICAgICBpZiAoIXNpemUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBXVEZNb3ZlKCpzaXplKSwgdGV4dHVyZURlc2NyaXB0
b3IubWlwTGV2ZWxDb3VudCwgdGV4dHVyZURlc2NyaXB0b3Iuc2FtcGxlQ291bnQsIHRleHR1cmVE
ZXNjcmlwdG9yLmRpbWVuc2lvbiwgdGV4dHVyZURlc2NyaXB0b3IuZm9ybWF0LCB0ZXh0dXJlRGVz
Y3JpcHRvci51c2FnZSwgdGV4dHVyZURlc2NyaXB0b3Iudmlld0Zvcm1hdHMgfSB9OworICAgIHJl
dHVybiB7IHsgYmFzZSwgV1RGTW92ZSgqc2l6ZSksIHRleHR1cmVEZXNjcmlwdG9yLm1pcExldmVs
Q291bnQsIHRleHR1cmVEZXNjcmlwdG9yLnNhbXBsZUNvdW50LCB0ZXh0dXJlRGVzY3JpcHRvci5k
aW1lbnNpb24sIHRleHR1cmVEZXNjcmlwdG9yLmZvcm1hdCwgdGV4dHVyZURlc2NyaXB0b3IudXNh
Z2UsIHRleHR1cmVEZXNjcmlwdG9yLnZpZXdGb3JtYXRzIH0gfTsKIH0KIAogc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6VGV4dHVyZURlc2NyaXB0b3I+IENvbnZlcnRGcm9tQmFja2luZ0NvbnRl
eHQ6OmNvbnZlcnRGcm9tQmFja2luZyhjb25zdCBUZXh0dXJlRGVzY3JpcHRvciYgdGV4dHVyZURl
c2NyaXB0b3IpCiB7Ci0gICAgYXV0byBiYXNlID0gY29udmVydEZyb21CYWNraW5nKHN0YXRpY19j
YXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4odGV4dHVyZURlc2NyaXB0b3IpKTsKLSAg
ICBpZiAoIWJhc2UpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0
byYgYmFzZSA9IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9y
QmFzZSY+KHRleHR1cmVEZXNjcmlwdG9yKTsKIAogICAgIGF1dG8gc2l6ZSA9IGNvbnZlcnRGcm9t
QmFja2luZyh0ZXh0dXJlRGVzY3JpcHRvci5zaXplKTsKICAgICBpZiAoIXNpemUpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmJhc2UpLCBX
VEZNb3ZlKCpzaXplKSwgdGV4dHVyZURlc2NyaXB0b3IubWlwTGV2ZWxDb3VudCwgdGV4dHVyZURl
c2NyaXB0b3Iuc2FtcGxlQ291bnQsIHRleHR1cmVEZXNjcmlwdG9yLmRpbWVuc2lvbiwgdGV4dHVy
ZURlc2NyaXB0b3IuZm9ybWF0LCB0ZXh0dXJlRGVzY3JpcHRvci51c2FnZSwgdGV4dHVyZURlc2Ny
aXB0b3Iudmlld0Zvcm1hdHMgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSwgV1RGTW92ZSgqc2l6
ZSksIHRleHR1cmVEZXNjcmlwdG9yLm1pcExldmVsQ291bnQsIHRleHR1cmVEZXNjcmlwdG9yLnNh
bXBsZUNvdW50LCB0ZXh0dXJlRGVzY3JpcHRvci5kaW1lbnNpb24sIHRleHR1cmVEZXNjcmlwdG9y
LmZvcm1hdCwgdGV4dHVyZURlc2NyaXB0b3IudXNhZ2UsIHRleHR1cmVEZXNjcmlwdG9yLnZpZXdG
b3JtYXRzIH0gfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlRGVzY3JpcHRvci5oCmluZGV4IDlk
ZTdkNjRkODVlZi4uZGM4MDAzMjRkODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZURlc2NyaXB0b3IuaApAQCAtMjksNiArMjksNyBAQAog
CiAjaW5jbHVkZSAiV2ViR1BVRXh0ZW50M0QuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3REZXNj
cmlwdG9yQmFzZS5oIgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVT2JqZWN0
RGVzY3JpcHRvckJhc2UuaD4KICNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUludGVncmFsVHlwZXMuaD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVVRleHR1cmVEaW1lbnNpb24uaD4KQEAgLTM3LDcgKzM4LDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAotc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yIDog
cHVibGljIE9iamVjdERlc2NyaXB0b3JCYXNlIHsKK3N0cnVjdCBUZXh0dXJlRGVzY3JpcHRvciA6
IHB1YmxpYyBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UgewogICAgIEV4dGVudDNE
IHNpemU7CiAgICAgUEFMOjpXZWJHUFU6OkludGVnZXJDb29yZGluYXRlIG1pcExldmVsQ291bnQg
eyAxIH07CiAgICAgUEFMOjpXZWJHUFU6OlNpemUzMiBzYW1wbGVDb3VudCB7IDEgfTsKQEAgLTQ4
LDcgKzQ5LDcgQEAgc3RydWN0IFRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIE9iamVjdERlc2Ny
aXB0b3JCYXNlIHsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PGNvbnN0IE9iamVjdERlc2NyaXB0b3JCYXNlJj4oKnRoaXMpOworICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+
KCp0aGlzKTsKICAgICAgICAgZW5jb2RlciA8PCBzaXplOwogICAgICAgICBlbmNvZGVyIDw8IG1p
cExldmVsQ291bnQ7CiAgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlQ291bnQ7CkBAIC02MCw3ICs2
MSw3IEBAIHN0cnVjdCBUZXh0dXJlRGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9y
QmFzZSB7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxUZXh0dXJlRGVzY3JpcHRvcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAg
ICAgICBzdGQ6Om9wdGlvbmFsPE9iamVjdERlc2NyaXB0b3JCYXNlPiBvYmplY3REZXNjcmlwdG9y
QmFzZTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRv
ckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOwogICAgICAgICBkZWNvZGVyID4+IG9iamVjdERl
c2NyaXB0b3JCYXNlOwogICAgICAgICBpZiAoIW9iamVjdERlc2NyaXB0b3JCYXNlKQogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRvci5jcHAKaW5kZXggNzZh
YzZhNTgxYTdmLi4wY2RjMmZmZjRiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkdQVS9XZWJHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IuY3BwCkBAIC0zNiwy
MCArMzYsMTYgQEAgbmFtZXNwYWNlIFdlYktpdDo6V2ViR1BVIHsKIAogc3RkOjpvcHRpb25hbDxU
ZXh0dXJlVmlld0Rlc2NyaXB0b3I+IENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Ojpjb252ZXJ0VG9C
YWNraW5nKGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0Rlc2NyaXB0b3ImIHRleHR1cmVW
aWV3RGVzY3JpcHRvcikKIHsKLSAgICBhdXRvIGJhc2UgPSBjb252ZXJ0VG9CYWNraW5nKHN0YXRp
Y19jYXN0PGNvbnN0IFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZSY+KHRleHR1cmVW
aWV3RGVzY3JpcHRvcikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICBjb25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJH
UFU6Ok9iamVjdERlc2NyaXB0b3JCYXNlJj4odGV4dHVyZVZpZXdEZXNjcmlwdG9yKTsKIAotICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqYmFzZSksIHRleHR1cmVWaWV3RGVzY3JpcHRvci5mb3JtYXQs
IHRleHR1cmVWaWV3RGVzY3JpcHRvci5kaW1lbnNpb24sIHRleHR1cmVWaWV3RGVzY3JpcHRvci5h
c3BlY3QsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5iYXNlTWlwTGV2ZWwsIHRleHR1cmVWaWV3RGVz
Y3JpcHRvci5taXBMZXZlbENvdW50LCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3IuYmFzZUFycmF5TGF5
ZXIsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5hcnJheUxheWVyQ291bnQgfSB9OworICAgIHJldHVy
biB7IHsgYmFzZSwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmZvcm1hdCwgdGV4dHVyZVZpZXdEZXNj
cmlwdG9yLmRpbWVuc2lvbiwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmFzcGVjdCwgdGV4dHVyZVZp
ZXdEZXNjcmlwdG9yLmJhc2VNaXBMZXZlbCwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLm1pcExldmVs
Q291bnQsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5iYXNlQXJyYXlMYXllciwgdGV4dHVyZVZpZXdE
ZXNjcmlwdG9yLmFycmF5TGF5ZXJDb3VudCB9IH07CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UEFMOjpX
ZWJHUFU6OlRleHR1cmVWaWV3RGVzY3JpcHRvcj4gQ29udmVydEZyb21CYWNraW5nQ29udGV4dDo6
Y29udmVydEZyb21CYWNraW5nKGNvbnN0IFRleHR1cmVWaWV3RGVzY3JpcHRvciYgdGV4dHVyZVZp
ZXdEZXNjcmlwdG9yKQogewotICAgIGF1dG8gYmFzZSA9IGNvbnZlcnRGcm9tQmFja2luZyhzdGF0
aWNfY2FzdDxjb25zdCBPYmplY3REZXNjcmlwdG9yQmFzZSY+KHRleHR1cmVWaWV3RGVzY3JpcHRv
cikpOwotICAgIGlmICghYmFzZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBj
b25zdCBhdXRvJiBiYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgUEFMOjpXZWJHUFU6Ok9iamVjdERl
c2NyaXB0b3JCYXNlJj4odGV4dHVyZVZpZXdEZXNjcmlwdG9yKTsKIAotICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqYmFzZSksIHRleHR1cmVWaWV3RGVzY3JpcHRvci5mb3JtYXQsIHRleHR1cmVWaWV3
RGVzY3JpcHRvci5kaW1lbnNpb24sIHRleHR1cmVWaWV3RGVzY3JpcHRvci5hc3BlY3QsIHRleHR1
cmVWaWV3RGVzY3JpcHRvci5iYXNlTWlwTGV2ZWwsIHRleHR1cmVWaWV3RGVzY3JpcHRvci5taXBM
ZXZlbENvdW50LCB0ZXh0dXJlVmlld0Rlc2NyaXB0b3IuYmFzZUFycmF5TGF5ZXIsIHRleHR1cmVW
aWV3RGVzY3JpcHRvci5hcnJheUxheWVyQ291bnQgfSB9OworICAgIHJldHVybiB7IHsgYmFzZSwg
dGV4dHVyZVZpZXdEZXNjcmlwdG9yLmZvcm1hdCwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmRpbWVu
c2lvbiwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmFzcGVjdCwgdGV4dHVyZVZpZXdEZXNjcmlwdG9y
LmJhc2VNaXBMZXZlbCwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLm1pcExldmVsQ291bnQsIHRleHR1
cmVWaWV3RGVzY3JpcHRvci5iYXNlQXJyYXlMYXllciwgdGV4dHVyZVZpZXdEZXNjcmlwdG9yLmFy
cmF5TGF5ZXJDb3VudCB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRv
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3Jp
cHRvci5oCmluZGV4IGY1N2FkZDgyNWM4NS4uNzExNTRkNGJlZWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJHUFUvV2ViR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR1BVL1dlYkdQVVRleHR1cmVWaWV3RGVzY3JpcHRv
ci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVk
ZSAiV2ViR1BVT2JqZWN0RGVzY3JpcHRvckJhc2UuaCIKKyNpbmNsdWRlIDxwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVU9iamVjdERlc2NyaXB0b3JCYXNlLmg+CiAjaW5jbHVkZSA8b3B0aW9uYWw+
CiAjaW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVJbnRlZ3JhbFR5cGVzLmg+CiAj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVUZXh0dXJlQXNwZWN0Lmg+CkBAIC0z
Niw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVSB7CiAKLXN0cnVjdCBUZXh0
dXJlVmlld0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2Ugeworc3RydWN0
IFRleHR1cmVWaWV3RGVzY3JpcHRvciA6IHB1YmxpYyBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3Jp
cHRvckJhc2UgewogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlRleHR1cmVGb3JtYXQ+
IGZvcm1hdDsKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpUZXh0dXJlVmlld0RpbWVu
c2lvbj4gZGltZW5zaW9uOwogICAgIFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0IGFzcGVjdCB7
IFBBTDo6V2ViR1BVOjpUZXh0dXJlQXNwZWN0OjpBbGwgfTsKQEAgLTQ3LDcgKzQ4LDcgQEAgc3Ry
dWN0IFRleHR1cmVWaWV3RGVzY3JpcHRvciA6IHB1YmxpYyBPYmplY3REZXNjcmlwdG9yQmFzZSB7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBP
YmplY3REZXNjcmlwdG9yQmFzZSY+KCp0aGlzKTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDxjb25zdCBQQUw6OldlYkdQVTo6T2JqZWN0RGVzY3JpcHRvckJhc2UmPigqdGhpcyk7CiAg
ICAgICAgIGVuY29kZXIgPDwgZm9ybWF0OwogICAgICAgICBlbmNvZGVyIDw8IGRpbWVuc2lvbjsK
ICAgICAgICAgZW5jb2RlciA8PCBhc3BlY3Q7CkBAIC01OSw3ICs2MCw3IEBAIHN0cnVjdCBUZXh0
dXJlVmlld0Rlc2NyaXB0b3IgOiBwdWJsaWMgT2JqZWN0RGVzY3JpcHRvckJhc2UgewogCiAgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGV4dHVyZVZpZXdE
ZXNjcmlwdG9yPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIHN0ZDo6
b3B0aW9uYWw8T2JqZWN0RGVzY3JpcHRvckJhc2U+IG9iamVjdERlc2NyaXB0b3JCYXNlOworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpPYmplY3REZXNjcmlwdG9yQmFzZT4gb2Jq
ZWN0RGVzY3JpcHRvckJhc2U7CiAgICAgICAgIGRlY29kZXIgPj4gb2JqZWN0RGVzY3JpcHRvckJh
c2U7CiAgICAgICAgIGlmICghb2JqZWN0RGVzY3JpcHRvckJhc2UpCiAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNzJkMzEyM2MzZTI5Li42MGVhYWM5NWNlMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY3Nyw3ICsz
Njc3LDcgQEAKIAkJMkQ3REVDRTEyMTI2OUU0QzAwQjlGNzNDIC8qIFVuaWZpZWRTb3VyY2U0Ny5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlNDcuY3BwOyBwYXRoID0gIkRlcml2
ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTQ3LmNwcCI7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTJEN0RFQ0VDMjEyNjlFNEMwMEI5
RjczQyAvKiBVbmlmaWVkU291cmNlMjYtbW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSAiVW5p
ZmllZFNvdXJjZTI2LW1tLm1tIjsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UyNi1tbS5tbSI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTJEN0RFQ0YyMjEyNjlFNEMwMEI5RjczQyAvKiBVbmlmaWVkU291cmNl
NDYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTQ2LmNwcDsgcGF0aCA9ICJE
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2U0Ni5jcHAi
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQkyRDdERUNGMzIxMjY5RTRD
MDBCOUY3M0MgLyogVW5pZmllZFNvdXJjZTUyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZp
ZWRTb3VyY2U1Mi5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlNTIuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJMkQ3REVDRjMyMTI2OUU0QzAwQjlGNzNDIC8qIFVuaWZpZWRTb3VyY2U1Mi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlNTIuY3BwOyBwYXRoID0gIkRlcml2ZWRT
b3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTUyLmNwcCI7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcuc2ltcGxlQ29sb3Jpbmc7IH07CiAJCTJEN0RFQ0ZGMjEyNjlFNEMw
MEI5RjczQyAvKiBVbmlmaWVkU291cmNlMTktbW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSAi
VW5pZmllZFNvdXJjZTE5LW1tLm1tIjsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxOS1tbS5tbSI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTJEN0RFRDA1MjEyNjlFNEMwMEI5RjczQyAvKiBVbmlmaWVkU291
cmNlMjQtbW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSAiVW5pZmllZFNvdXJjZTI0LW1tLm1t
IjsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UyNC1tbS5tbSI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTJE
N0RFRDA2MjEyNjlFNEMwMEI5RjczQyAvKiBVbmlmaWVkU291cmNlNDQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gVW5pZmllZFNvdXJjZTQ0LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJL
aXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2U0NC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDkzOCwxNiArNDkzOCwxNiBAQAogCQk1QzJFQkRGOTI1
NjQzNTIwMDBENTVCMDUgLyogV0tEb3dubG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0Rvd25sb2FkQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDMzU5QzBDMjE1NDczMjEwMDlFNzk0OCAvKiBXS0RlcHJlY2F0ZWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDM0FFQThFMUZFMUYxREYwMDIzMThEMyAvKiBXZWJzaXRlUG9saWNp
ZXNEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVQ
b2xpY2llc0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMUQ5QjI3
Q0VENDIwMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTIxLmNwcDsgcGF0aCA9ICJVbmlmaWVk
U291cmNlMTIxLmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExRDlDMjdD
RUQ0MjAwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTIzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjMuY3BwOyBwYXRoID0gIlVuaWZpZWRT
b3VyY2UxMjMuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEOUQyN0NF
RDQyMDAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMzAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEzMC5jcHA7IHBhdGggPSAiVW5pZmllZFNv
dXJjZTEzMC5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMUQ5RTI3Q0VE
NDIxMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI1LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291
cmNlMTI1LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExRDlGMjdDRUQ0
MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTIyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjIuY3BwOyBwYXRoID0gIlVuaWZpZWRTb3Vy
Y2UxMjIuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEQTAyN0NFRDQy
MTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyOC5jcHA7IHBhdGggPSAiVW5pZmllZFNvdXJj
ZTEyOC5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMURBMTI3Q0VENDIx
MDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI2LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNl
MTI2LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExREEyMjdDRUQ0MjEw
MDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjcuY3BwOyBwYXRoID0gIlVuaWZpZWRTb3VyY2Ux
MjcuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEQTMyN0NFRDQyMjAw
NjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyOS5jcHA7IHBhdGggPSAiVW5pZmllZFNvdXJjZTEy
OS5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMURBNDI3Q0VENDIyMDA2
ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI0LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlMTI0
LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExRDlCMjdDRUQ0MjAwMDY4
MjQxQSAvKiBVbmlmaWVkU291cmNlMTIxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMjEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1QzQxMUQ5QzI3Q0VENDIwMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTIzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFEOUQyN0NFRDQyMDAwNjgyNDFBIC8q
IFVuaWZpZWRTb3VyY2UxMzAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVW5pZmllZFNvdXJjZTEzMC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVD
NDExRDlFMjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI1LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMjUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMUQ5RjI3Q0VENDIxMDA2ODI0MUEgLyogVW5pZmll
ZFNvdXJjZTEyMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlm
aWVkU291cmNlMTIyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFEQTAy
N0NFRDQyMTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjguY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTEyOC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTVDNDExREExMjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNl
MTI2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRTb3Vy
Y2UxMjYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMURBMjI3Q0VENDIx
MDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTI3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUM0MTFEQTMyN0NFRDQyMjAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTEyOS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExREE0MjdDRUQ0MjIwMDY4MjQx
QSAvKiBVbmlmaWVkU291cmNlMTI0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVuaWZpZWRTb3VyY2UxMjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1QzQ2MDlFMjIyNDMwRTRDMDA5OTQzQzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFMzIyNDMwRTREMDA5OTQz
QzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFNDIyNDMwRTREMDA5OTQzQzIgLyogX1dLQ29udGVu
dFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>