<?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>229402</bug_id>
          
          <creation_ts>2021-08-23 03:24:05 -0700</creation_ts>
          <short_desc>WebGL calls into static GraphicsContextGLOpenGL functions needlessly</short_desc>
          <delta_ts>2021-08-26 05:47:16 -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>WebGL</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>229404</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1786374</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-08-23 03:24:05 -0700</bug_when>
    <thetext>WebGL calls into static GraphicsContextGLOpenGL functions needlessly

The calls are problematic:
* No other call sites than WebGL layer 
* The functionality is not needed for ANGLE, but present
* GraphicsContextGL is now an interface with multiple implementations, GraphicsContextGLOpenGL is just one implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786377</commentid>
    <comment_count>1</comment_count>
      <attachid>436178</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-08-23 03:29:15 -0700</bug_when>
    <thetext>Created attachment 436178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786390</commentid>
    <comment_count>2</comment_count>
      <attachid>436184</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-08-23 04:28:06 -0700</bug_when>
    <thetext>Created attachment 436184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786391</commentid>
    <comment_count>3</comment_count>
      <attachid>436185</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-08-23 04:31:57 -0700</bug_when>
    <thetext>Created attachment 436185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786638</commentid>
    <comment_count>4</comment_count>
      <attachid>436185</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-08-23 18:12:04 -0700</bug_when>
    <thetext>Comment on attachment 436185
Patch

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

Looks good in principle; I didn&apos;t look into the failures on the platforms not yet using ANGLE. Hopefully they won&apos;t be hard to figure out. r+

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:409
&gt; +#endif

Now might be a good time to add comments to the #endifs like:

#endif // !USE(ANGLE)

because it&apos;s hard to see what it matches up with once these blocks span multiple lines of code.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:639
&gt;  #endif

Please consider commenting the #endifs to make them easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787099</commentid>
    <comment_count>5</comment_count>
      <attachid>436373</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-08-25 00:19:10 -0700</bug_when>
    <thetext>Created attachment 436373
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787557</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-26 05:46:04 -0700</bug_when>
    <thetext>Committed r281621 (240977@main): &lt;https://commits.webkit.org/240977@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436373.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787558</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-26 05:47:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/82385595&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436178</attachid>
            <date>2021-08-23 03:29:15 -0700</date>
            <delta_ts>2021-08-23 04:28:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229402-20210823132913.patch</filename>
            <type>text/plain</type>
            <size>30740</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGUyYzQ0OGY2MWMzMGUw
ZWExY2I1MjgyOWNmNTdhNWNmN2E1MDkxMi4uMGYxY2U5OTg5Mjk3NDIxMWQ0NzZhY2ExMGYxZTIx
NGMwNDAzYWYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA4LTIzICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY2FsbHMg
aW50byBzdGF0aWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZnVuY3Rpb25zIG5lZWRsZXNzbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjYWxs
cyBhcmUgcHJvYmxlbWF0aWM6CisgICAgICAgIC0gTm8gb3RoZXIgY2FsbCBzaXRlcyB0aGFuIFdl
YkdMIGxheWVyCisgICAgICAgIC0gVGhlIGZ1bmN0aW9uYWxpdHkgaXMgbm90IG5lZWRlZCBmb3Ig
QU5HTEUsIGJ1dCBwcmVzZW50CisgICAgICAgIC0gR3JhcGhpY3NDb250ZXh0R0wgaXMgbm93IGFu
IGludGVyZmFjZSB3aXRoIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucywKKyAgICAgICAgICBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCBpcyBqdXN0IG9uZSBpbXBsZW1lbnRhdGlvbgorCisgICAgICAg
IE1vdmUgdGhlIGZ1bmN0aW9ucyBpbnRvIFdlYkdMLCBpbnNpZGUgI2lmICFVU0UoQU5HTEUpIGJs
b2Nrcy4KKyAgICAgICAgRnJvbSB0aGVyZSwgdGhleSdyZSBzaW1wbGVyIHRvIG1vdmUgaW50byAh
QU5HTEUgc3BlY2lmaWMgZmlsZXMsCisgICAgICAgIGlmIHBvc3NpYmxlLgorCisgICAgICAgIFRo
aXMgaXMgd29yayB0b3dhcmRzIG1ha2luZyBpdCBwb3NzaWJsZSB0byByZW1vdmUgQU5HTEUgc3Bl
Y2lmaWMgI2lmCisgICAgICAgIGJsb2NrcyBmcm9tIFdlYkdMIGltcGxlbWVudGF0aW9uLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldENsZWFyQml0c0J5QXR0
YWNobWVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOgor
ICAgICAgICAoV2ViQ29yZTo6aXNBdHRhY2htZW50Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6aW5pdGlhbGl6ZUF0dGFjaG1lbnRzKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6cG9zc2libGVG
b3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRleFN1YkltYWdlMkQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNUZXhJbnRlcm5hbEZvcm1hdENvbG9yQnVm
ZmVyQ29tYmluYXRpb25WYWxpZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuaDoKKwogMjAyMS0wOC0yMiAgQWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGQgc3VwcG9ydCBmb3IgdmVydGlj
YWwtYWxpZ246IHN1cGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuY3BwCmluZGV4IGE5NjBjZjVjMjM3ZWM4NDQyOThiMDliYjZlZGFhZGUyOWRlYmNl
OGQuLjUwYmFjZjU2NGZjYWY2NjZmODU3YmQ0OTE1NjI3OTQyY2ZjNTIwNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCkBAIC0yNzIsMzQg
KzI3MiwxNDEgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1f
dGV4dHVyZS5nZXQoKSk7CiAgICAgfQogCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwogI2lm
ICFVU0UoQU5HTEUpCi0gICAgYm9vbCBpc0F0dGFjaG1lbnRDb21wbGV0ZShXZWJHTEZyYW1lYnVm
ZmVyOjpXZWJHTEF0dGFjaG1lbnQqIGF0dGFjaGVkT2JqZWN0LCBHQ0dMZW51bSBhdHRhY2htZW50
LCBjb25zdCBjaGFyKiogcmVhc29uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGF0dGFjaGVkT2Jq
ZWN0ICYmIGF0dGFjaGVkT2JqZWN0LT5pc1ZhbGlkKCkpOwotICAgICAgICBBU1NFUlQocmVhc29u
KTsKLSAgICAgICAgR0NHTGVudW0gZm9ybWF0ID0gYXR0YWNoZWRPYmplY3QtPmdldEZvcm1hdCgp
OwotICAgICAgICB1bnNpZ25lZCBuZWVkID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldENs
ZWFyQml0c0J5QXR0YWNobWVudFR5cGUoYXR0YWNobWVudCk7Ci0gICAgICAgIHVuc2lnbmVkIGhh
dmUgPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQoZm9ybWF0
KTsKLQotICAgICAgICBpZiAoKG5lZWQgJiBoYXZlKSAhPSBuZWVkKSB7Ci0gICAgICAgICAgICAq
cmVhc29uID0gImF0dGFjaG1lbnQgdHlwZSBpcyBub3QgY29ycmVjdCBmb3IgYXR0YWNobWVudCI7
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFhdHRh
Y2hlZE9iamVjdC0+Z2V0V2lkdGgoKSB8fCAhYXR0YWNoZWRPYmplY3QtPmdldEhlaWdodCgpKSB7
Ci0gICAgICAgICAgICAqcmVhc29uID0gImF0dGFjaG1lbnQgaGFzIGEgMCBkaW1lbnNpb24iOwot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoYXR0YWNo
bWVudCA9PSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQVRUQUNITUVOVCB8fCBhdHRhY2htZW50
ID09IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0FUVEFDSE1FTlQpCi0gICAgICAgICAgICAm
JiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUwpIHsKLSAgICAgICAg
ICAqcmVhc29uID0gImF0dGFjaG1lbnQgREVQVEhfU1RFTkNJTCBub3QgYWxsb3dlZCBvbiBERVBU
SCBvciBTVEVOQ0lMIGF0dGFjaG1lbnQiOwotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKK3N0YXRpYyB1bnNpZ25lZCBnZXRDbGVhckJpdHNC
eUF0dGFjaG1lbnRUeXBlKEdDR0xlbnVtIGF0dGFjaG1lbnQpCit7CisgICAgc3dpdGNoIChhdHRh
Y2htZW50KSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQVRUQUNITUVOVDA6
CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKKyAgICBjYXNl
IEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9u
c0dMOjpDT0xPUl9BVFRBQ0hNRU5UM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9S
X0FUVEFDSE1FTlQ0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVO
VDVfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dM
OjpDT0xPUl9BVFRBQ0hNRU5UOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FU
VEFDSE1FTlQxMF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQx
MV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25z
R0w6OkNPTE9SX0FUVEFDSE1FTlQxNV9FWFQ6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRl
eHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBU
SF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0JV
RkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9BVFRBQ0hNRU5U
OgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Cisg
ICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBo
aWNzQ29udGV4dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQotI2VuZGlmCit9CiAKLX0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQor
c3RhdGljIHVuc2lnbmVkIGdldENsZWFyQml0c0J5Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKK3sK
KyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OkxVTUlOQU5DRV9BTFBIQToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1J
TkFOQ0U6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6QUxQSEE6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6Ujg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjhfU05PUk06
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4VUk6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIx
NlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxNkk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMySToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6Ukc4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZGOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlJHOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOEk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkcxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMzJVSToKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSRzMySToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4OgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlJHQjU2NToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4X1NOT1JNOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxMUZfRzExRl9CMTBGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQjlfRTU6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjMyRjoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0I4VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOEk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0IxNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UkdCQTg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1JHQjhfQUxQSEE4Ogor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQjVfQTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTBfQTI6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UkdCQTE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4VUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UkdCQThJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjEwX0Ey
VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTE2VUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCQTE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JB
MzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMlVJOgorICAgIGNhc2UgRXh0
ZW5zaW9uc0dMOjpTUkdCX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9F
WFQ6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQxNjoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQyNDoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpERVBUSF9DT01QT05FTlQzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6REVQVEhfQ09NUE9ORU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9JTkRF
WDg6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklU
OworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUw6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6REVQVEgyNF9TVEVOQ0lMODoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dEdMOjpERVBUSF9CVUZGRVJfQklUIHwgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVS
X0JJVDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CiAKK3N0YXRp
YyBib29sIGlzQXR0YWNobWVudENvbXBsZXRlKFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNo
bWVudCogYXR0YWNoZWRPYmplY3QsIEdDR0xlbnVtIGF0dGFjaG1lbnQsIGNvbnN0IGNoYXIqKiBy
ZWFzb24pCit7CisgICAgQVNTRVJUKGF0dGFjaGVkT2JqZWN0ICYmIGF0dGFjaGVkT2JqZWN0LT5p
c1ZhbGlkKCkpOworICAgIEFTU0VSVChyZWFzb24pOworICAgIEdDR0xlbnVtIGZvcm1hdCA9IGF0
dGFjaGVkT2JqZWN0LT5nZXRGb3JtYXQoKTsKKyAgICB1bnNpZ25lZCBuZWVkID0gZ2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShhdHRhY2htZW50KTsKKyAgICB1bnNpZ25lZCBoYXZlID0gZ2V0
Q2xlYXJCaXRzQnlGb3JtYXQoZm9ybWF0KTsKKworICAgIGlmICgobmVlZCAmIGhhdmUpICE9IG5l
ZWQpIHsKKyAgICAgICAgKnJlYXNvbiA9ICJhdHRhY2htZW50IHR5cGUgaXMgbm90IGNvcnJlY3Qg
Zm9yIGF0dGFjaG1lbnQiOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICgh
YXR0YWNoZWRPYmplY3QtPmdldFdpZHRoKCkgfHwgIWF0dGFjaGVkT2JqZWN0LT5nZXRIZWlnaHQo
KSkgeworICAgICAgICAqcmVhc29uID0gImF0dGFjaG1lbnQgaGFzIGEgMCBkaW1lbnNpb24iOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICgoYXR0YWNobWVudCA9PSBHcmFw
aGljc0NvbnRleHRHTDo6REVQVEhfQVRUQUNITUVOVCB8fCBhdHRhY2htZW50ID09IEdyYXBoaWNz
Q29udGV4dEdMOjpTVEVOQ0lMX0FUVEFDSE1FTlQpCisgICAgICAgICYmIGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTCkgeworICAgICAgICAqcmVhc29uID0gImF0dGFj
aG1lbnQgREVQVEhfU1RFTkNJTCBub3QgYWxsb3dlZCBvbiBERVBUSCBvciBTVEVOQ0lMIGF0dGFj
aG1lbnQiOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCisjZW5kaWYKIFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudDo6V2ViR0xBdHRh
Y2htZW50KCkgPSBkZWZhdWx0OwogCiBXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFjaG1lbnQ6
On5XZWJHTEF0dGFjaG1lbnQoKSA9IGRlZmF1bHQ7CkBAIC02MTEsNyArNzE4LDcgQEAgYm9vbCBX
ZWJHTEZyYW1lYnVmZmVyOjppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0R0wq
IGczZCwgY29uc3QgY2hhcioKICAgICAgICAgR0NHTGVudW0gYXR0YWNobWVudFR5cGUgPSBlbnRy
eS5rZXk7CiAgICAgICAgIFJlZlB0cjxXZWJHTEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnQgPSBlbnRy
eS52YWx1ZS5nZXQoKTsKICAgICAgICAgaWYgKCFhdHRhY2htZW50LT5pc0luaXRpYWxpemVkKCkp
Ci0gICAgICAgICAgICBtYXNrIHw9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpnZXRDbGVhckJp
dHNCeUF0dGFjaG1lbnRUeXBlKGF0dGFjaG1lbnRUeXBlKTsKKyAgICAgICAgICAgIG1hc2sgfD0g
Z2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShhdHRhY2htZW50VHlwZSk7CiAgICAgfQogICAg
IGlmICghbWFzaykKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC02ODIsNyArNzg5LDcgQEAgYm9v
bCBXZWJHTEZyYW1lYnVmZmVyOjppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0
R0wqIGczZCwgY29uc3QgY2hhcioKICAgICBmb3IgKEF0dGFjaG1lbnRNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9hdHRhY2htZW50cy5iZWdpbigpOyBpdCAhPSBtX2F0dGFjaG1lbnRzLmVuZCgpOyArK2l0
KSB7CiAgICAgICAgIEdDR0xlbnVtIGF0dGFjaG1lbnRUeXBlID0gaXQtPmtleTsKICAgICAgICAg
YXV0byBhdHRhY2htZW50ID0gaXQtPnZhbHVlOwotICAgICAgICBHQ0dMYml0ZmllbGQgYml0cyA9
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKGF0
dGFjaG1lbnRUeXBlKTsKKyAgICAgICAgR0NHTGJpdGZpZWxkIGJpdHMgPSBnZXRDbGVhckJpdHNC
eUF0dGFjaG1lbnRUeXBlKGF0dGFjaG1lbnRUeXBlKTsKICAgICAgICAgaWYgKGJpdHMgJiBtYXNr
KQogICAgICAgICAgICAgYXR0YWNobWVudC0+c2V0SW5pdGlhbGl6ZWQoKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCmluZGV4IGIxYTRlNzMwYWEwNGNiMmZjZTg5ZThiZTllMjA0OGNhYmE1OGJkNTUu
Ljc3Zjc1OWE5ZmY4YTU2YjhkOWVhOWMwZTc3ZTNjMTRjODEwYjUyZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwCkBAIC01MjYsNiArNTI2LDExNiBAQCBzdGF0aWMgYm9vbCBjbGlwMkQoR0NHTGludCB4LCBH
Q0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwKIAogICAgIHJldHVy
biAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBwZWRXaWR0aCAhPSB3
aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQorCitzdGF0aWMgdWludDhfdCBn
ZXRDaGFubmVsQml0c0J5Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZv
cm1hdCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkFMUEhBOgorICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0U6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
aW50OF90PihDaGFubmVsQml0czo6UkdCKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpM
VU1JTkFOQ0VfQUxQSEE6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFu
bmVsQml0czo6UkdCQSk7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjU2NToKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JH
Ql9FWFQ6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6
UkdCKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjVfQTE6
CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OlNSR0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQkEpOworICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDE2OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJ
TF9JTkRFWDg6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0
czo6U3RlbmNpbCk7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTDoK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aFN0
ZW5jaWwpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKworc3Rh
dGljIGJvb2wgcG9zc2libGVGb3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQoR0NHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtJiBmb3JtYXQsIEdDR0xlbnVtJiB0eXBlKQoreworI2Rl
ZmluZSBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKGludGVybmFsRm9ybWF0TWFjcm8sIGZvcm1h
dE1hY3JvLCB0eXBlTWFjcm8pIGNhc2UgaW50ZXJuYWxGb3JtYXRNYWNybzogXAorICAgICAgICBm
b3JtYXQgPSBmb3JtYXRNYWNybzsgXAorICAgICAgICB0eXBlID0gdHlwZU1hY3JvOyBcCisgICAg
ICAgIGJyZWFrOworCisgICAgc3dpdGNoIChpbnRlcm5hbEZvcm1hdCkgeworICAgICAgICBQT1NT
SUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQiwgUkdCLCBVTlNJR05FRF9CWVRFKTsKKyAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBLCBSR0JBLCBVTlNJR05FRF9CWVRFKTsKKyAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShMVU1JTkFOQ0VfQUxQSEEsIExVTUlOQU5D
RV9BTFBIQSwgVU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NB
U0UoTFVNSU5BTkNFLCBMVU1JTkFOQ0UsIFVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKEFMUEhBLCBBTFBIQSwgVU5TSUdORURfQllURSk7CisgICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjgsIFJFRCwgVU5TSUdORURfQllURSk7CisgICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjhfU05PUk0sIFJFRCwgQllURSk7CisgICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjE2RiwgUkVELCBIQUxGX0ZMT0FUKTsKKyAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSMzJGLCBSRUQsIEZMT0FUKTsKKyAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSOFVJLCBSRURfSU5URUdFUiwgVU5TSUdORURf
QllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjhJLCBSRURfSU5URUdF
UiwgQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjE2VUksIFJFRF9J
TlRFR0VSLCBVTlNJR05FRF9TSE9SVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NB
U0UoUjE2SSwgUkVEX0lOVEVHRVIsIFNIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZ
UEVfQ0FTRShSMzJVSSwgUkVEX0lOVEVHRVIsIFVOU0lHTkVEX0lOVCk7CisgICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjMySSwgUkVEX0lOVEVHRVIsIElOVCk7CisgICAgICAgIFBP
U1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4LCBSRywgVU5TSUdORURfQllURSk7CisgICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4X1NOT1JNLCBSRywgQllURSk7CisgICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkcxNkYsIFJHLCBIQUxGX0ZMT0FUKTsKKyAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzMyRiwgUkcsIEZMT0FUKTsKKyAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzhVSSwgUkdfSU5URUdFUiwgVU5TSUdORURfQllU
RSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4SSwgUkdfSU5URUdFUiwg
QllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkcxNlVJLCBSR19JTlRF
R0VSLCBVTlNJR05FRF9TSE9SVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
UkcxNkksIFJHX0lOVEVHRVIsIFNIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShSRzMyVUksIFJHX0lOVEVHRVIsIFVOU0lHTkVEX0lOVCk7CisgICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoUkczMkksIFJHX0lOVEVHRVIsIElOVCk7CisgICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOCwgUkdCLCBVTlNJR05FRF9CWVRFKTsKKyAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShTUkdCOCwgUkdCLCBVTlNJR05FRF9CWVRFKTsKKyAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0I1NjUsIFJHQiwgVU5TSUdORURfU0hP
UlRfNV82XzUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjhfU05PUk0s
IFJHQiwgQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjExRl9HMTFG
X0IxMEYsIFJHQiwgVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVik7CisgICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOV9FNSwgUkdCLCBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjE2RiwgUkdCLCBIQUxG
X0ZMT0FUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IzMkYsIFJHQiwg
RkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjhVSSwgUkdCX0lO
VEVHRVIsIFVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KFJHQjhJLCBSR0JfSU5URUdFUiwgQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoUkdCMTZVSSwgUkdCX0lOVEVHRVIsIFVOU0lHTkVEX1NIT1JUKTsKKyAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IxNkksIFJHQl9JTlRFR0VSLCBTSE9SVCk7CisgICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMzJVSSwgUkdCX0lOVEVHRVIsIFVOU0lH
TkVEX0lOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMzJJLCBSR0Jf
SU5URUdFUiwgSU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBOCwg
UkdCQSwgVU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
U1JHQjhfQUxQSEE4LCBSR0JBLCBVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShSR0JBOF9TTk9STSwgUkdCQSwgQllURSk7CisgICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoUkdCNV9BMSwgUkdCQSwgVU5TSUdORURfU0hPUlRfNV81XzVfMSk7
CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTQsIFJHQkEsIFVOU0lHTkVE
X1NIT1JUXzRfNF80XzQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjEw
X0EyLCBSR0JBLCBVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYpOworICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKFJHQkExNkYsIFJHQkEsIEhBTEZfRkxPQVQpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkEzMkYsIFJHQkEsIEZMT0FUKTsKKyAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBOFVJLCBSR0JBX0lOVEVHRVIsIFVOU0lHTkVE
X0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkE4SSwgUkdCQV9J
TlRFR0VSLCBCWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IxMF9B
MlVJLCBSR0JBX0lOVEVHRVIsIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVik7CisgICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTE2VUksIFJHQkFfSU5URUdFUiwgVU5TSUdO
RURfU0hPUlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkExNkksIFJH
QkFfSU5URUdFUiwgU0hPUlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJH
QkEzMkksIFJHQkFfSU5URUdFUiwgSU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShSR0JBMzJVSSwgUkdCQV9JTlRFR0VSLCBVTlNJR05FRF9JTlQpOworICAgICAgICBQT1NT
SUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX0NPTVBPTkVOVDE2LCBERVBUSF9DT01QT05FTlQs
IFVOU0lHTkVEX1NIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShERVBU
SF9DT01QT05FTlQsIERFUFRIX0NPTVBPTkVOVCwgVU5TSUdORURfU0hPUlQpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX0NPTVBPTkVOVDI0LCBERVBUSF9DT01QT05F
TlQsIFVOU0lHTkVEX0lOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoREVQ
VEhfQ09NUE9ORU5UMzJGLCBERVBUSF9DT01QT05FTlQsIEZMT0FUKTsKKyAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShERVBUSF9TVEVOQ0lMLCBERVBUSF9TVEVOQ0lMLCBVTlNJR05F
RF9JTlRfMjRfOCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoREVQVEgyNF9T
VEVOQ0lMOCwgREVQVEhfU1RFTkNJTCwgVU5TSUdORURfSU5UXzI0XzgpOworICAgICAgICBQT1NT
SUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIMzJGX1NURU5DSUw4LCBERVBUSF9TVEVOQ0lMLCBG
TE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRf
VFlQRV9DQVNFKEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQsIEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQs
IFVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEV4dGVu
c2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQsIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQsIFVO
U0lHTkVEX0JZVEUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisjdW5kZWYgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRQorCisgICAgcmV0dXJuIHRydWU7Cit9
CisKICNlbmRpZgogCiBjbGFzcyBJbnNwZWN0b3JTY29wZWRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0
IHsKQEAgLTE5MjMsNyArMjAzMyw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Y29weVRleFN1YkltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsCiAgICAgaWYg
KGNsaXAyRCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBnZXRCb3VuZFJlYWRGcmFtZWJ1ZmZlcldpZHRo
KCksIGdldEJvdW5kUmVhZEZyYW1lYnVmZmVySGVpZ2h0KCksICZjbGlwcGVkWCwgJmNsaXBwZWRZ
LCAmY2xpcHBlZFdpZHRoLCAmY2xpcHBlZEhlaWdodCkpIHsKICAgICAgICAgR0NHTGVudW0gZm9y
bWF0OwogICAgICAgICBHQ0dMZW51bSB0eXBlOwotICAgICAgICBpZiAoIUdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpwb3NzaWJsZUZvcm1hdEFuZFR5cGVGb3JJbnRlcm5hbEZvcm1hdCh0ZXgtPmdl
dEludGVybmFsRm9ybWF0KHRhcmdldCwgbGV2ZWwpLCBmb3JtYXQsIHR5cGUpKSB7CisgICAgICAg
IGlmICghcG9zc2libGVGb3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQodGV4LT5nZXRJbnRl
cm5hbEZvcm1hdCh0YXJnZXQsIGxldmVsKSwgZm9ybWF0LCB0eXBlKSkgewogICAgICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgImNvcHlU
ZXhTdWJJbWFnZTJEIiwgIlRleHR1cmUgaGFzIHVua25vd24gaW50ZXJuYWwgZm9ybWF0Iik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTY1NDYsOCArNjY1Niw4IEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgx
KCkKIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9ybWF0
Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDR0xlbnVtIHRleEludGVybmFsRm9ybWF0LCBH
Q0dMZW51bSBjb2xvckJ1ZmZlckZvcm1hdCkKIHsKLSAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0Nv
bnRleHRHTDo6Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAg
YXV0byBoYXZlID0gR3JhcGhpY3NDb250ZXh0R0w6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29s
b3JCdWZmZXJGb3JtYXQpOworICAgIGF1dG8gbmVlZCA9IGdldENoYW5uZWxCaXRzQnlGb3JtYXQo
dGV4SW50ZXJuYWxGb3JtYXQpOworICAgIGF1dG8gaGF2ZSA9IGdldENoYW5uZWxCaXRzQnlGb3Jt
YXQoY29sb3JCdWZmZXJGb3JtYXQpOwogICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEdMLmNwcAppbmRleCBjZTk3MTlhMjNkZDMyNDNjNmE4N2Q2NWI1ZTRmOTAyYzI3
MGEwNDg2Li4zNmUzNDMxZjU2ZjA4Y2JhMjhkNjAwZWZlYTEzNTEyZGM4Mjk0Yjk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0wuY3BwCkBAIC0zNjksMTQzICszNjksNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMOjplbmFi
bGVQcmVzZXJ2ZURyYXdpbmdCdWZmZXIoKQogICAgIG1fYXR0cnMucHJlc2VydmVEcmF3aW5nQnVm
ZmVyID0gdHJ1ZTsKIH0KIAotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0R0w6OmdldENsZWFyQml0
c0J5QXR0YWNobWVudFR5cGUoR0NHTGVudW0gYXR0YWNobWVudCkKLXsKLSAgICBzd2l0Y2ggKGF0
dGFjaG1lbnQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpDT0xPUl9BVFRBQ0hNRU5U
MDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zR0w6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09M
T1JfQVRUQUNITUVOVDRfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hN
RU5UNV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ2X0VYVDoK
LSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgotICAgIGNhc2Ug
RXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25z
R0w6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1Jf
QVRUQUNITUVOVDEwX0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVO
VDExX0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDEyX0VYVDoK
LSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKLSAgICBjYXNl
IEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnNHTDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dEdMOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIX0FUVEFDSE1FTlQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhf
QlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0FUVEFDSE1F
TlQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklU
OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoK
LSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9CVUZGRVJfQklUIHwgR3Jh
cGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBkZWZhdWx0OgotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9Ci19Ci0KLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dEdMOjpnZXRD
bGVhckJpdHNCeUZvcm1hdChHQ0dMZW51bSBmb3JtYXQpCi17Ci0gICAgc3dpdGNoIChmb3JtYXQp
IHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHRHTDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0VfQUxQ
SEE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6TFVNSU5BTkNFOgotICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OkFMUEhBOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4Ogot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4X1NOT1JNOgotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlIxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMyRjoKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSOFVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlI4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSMTZVSToKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSMTZJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIzMlVJOgot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6Ukc4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOF9TTk9STToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzE2RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdM
OjpSRzMyRjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzhVSToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpSRzhJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZV
SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzE2SToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSRzMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkczMkk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMOjpTUkdCODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I1NjU6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMOjpSMTFGX0cxMUZfQjEwRjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I5X0U1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjE2RjoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0IzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOFVJOgot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjhJOgotICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlJHQjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UkdCMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4OgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OlNSR0I4X0FMUEhBODoKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0JBOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I1X0Ex
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE0OgotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlJHQjEwX0EyOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkExNkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTMyRjoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0JBOFVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4SToK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxMF9BMlVJOgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQkExNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEx
Nkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTMySToKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0JBMzJVSToKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OlNSR0JfQUxQSEFfRVhUOgotICAgICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0R0w6OkNPTE9SX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHRHTDo6REVQVEhfQ09NUE9ORU5UMTY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
REVQVEhfQ09NUE9ORU5UMjQ6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09N
UE9ORU5UMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDoK
LSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9CVUZGRVJfQklUOwotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfSU5ERVg4OgotICAgICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpERVBUSF9TVEVOQ0lMOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIMjRfU1RFTkNJTDg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEgzMkZfU1RF
TkNJTDg6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQlVGRkVSX0JJ
VCB8IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotfQotCi11aW50OF90IEdyYXBoaWNzQ29udGV4dEdM
OjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKLXsKLSAgICBzd2l0Y2gg
KGZvcm1hdCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkFMUEhBOgotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0U6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1aW50OF90PihDaGFubmVsQml0czo6UkdCKTsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdM
OjpMVU1JTkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihD
aGFubmVsQml0czo6UkdCQSk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjU2NToKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6
U1JHQl9FWFQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0
czo6UkdCKTsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOgotICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQkE0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjVf
QTE6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OlNSR0JfQUxQSEFfRVhUOgotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQkEpOwotICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RF
TkNJTF9JTkRFWDg6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVs
Qml0czo6U3RlbmNpbCk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJ
TDoKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0
aFN0ZW5jaWwpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQog
Ym9vbCBHcmFwaGljc0NvbnRleHRHTDo6Y29tcHV0ZUZvcm1hdEFuZFR5cGVQYXJhbWV0ZXJzKEdD
R0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgdW5zaWduZWQqIGNvbXBvbmVudHNQZXJQaXhl
bCwgdW5zaWduZWQqIGJ5dGVzUGVyQ29tcG9uZW50KQogewogICAgIHN3aXRjaCAoZm9ybWF0KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0R0wuaAppbmRleCBlYjcyMjI2MDIyNjEzNTgxNGE3NzU2Y2I2MmU1MTVkMDJkZThlZWI0Li5h
ZWY5M2UxYzFlMDIwYWJmMDkzOGYxY2ZlYjU4M2JlYzg5Njg2YzE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTEz
MTgsMTEgKzEzMTgsNiBAQCBwdWJsaWM6CiAKICAgICBJbnRTaXplIGdldEludGVybmFsRnJhbWVi
dWZmZXJTaXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJy
ZW50SGVpZ2h0KTsgfQogCi0gICAgc3RhdGljIHVuc2lnbmVkIGdldENsZWFyQml0c0J5QXR0YWNo
bWVudFR5cGUoR0NHTGVudW0pOwotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUZv
cm1hdChHQ0dMZW51bSk7Ci0KLSAgICBzdGF0aWMgdWludDhfdCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDR0xlbnVtKTsKLQogICAgIHN0cnVjdCBQaXhlbFN0b3JlUGFyYW1zIGZpbmFsIHsKICAg
ICAgICAgR0NHTGludCBhbGlnbm1lbnQgeyA0IH07CiAgICAgICAgIEdDR0xpbnQgcm93TGVuZ3Ro
IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggZTA5NDJj
NDhiZGRjMTI3OTlhMzkxODYzNjAwZDk2OTFlYmFkY2Y5MC4uZTYwM2MyYmY1ZmZiYTdhZjJiMzQy
ZTgwZDc2ODRhMDk3MTQxMGZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wu
Y3BwCkBAIC0xMDcsODggKzEwNyw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnRl
eEltYWdlMkRSZXNvdXJjZVNhZmUoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxlCiAjZW5kaWYK
IAogCi0jaWYgIVVTRShBTkdMRSkKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnBvc3Np
YmxlRm9ybWF0QW5kVHlwZUZvckludGVybmFsRm9ybWF0KEdDR0xlbnVtIGludGVybmFsRm9ybWF0
LCBHQ0dMZW51bSYgZm9ybWF0LCBHQ0dMZW51bSYgdHlwZSkKLXsKLSNkZWZpbmUgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShpbnRlcm5hbEZvcm1hdE1hY3JvLCBmb3JtYXRNYWNybywgdHlwZU1h
Y3JvKSBjYXNlIGludGVybmFsRm9ybWF0TWFjcm86IFwKLSAgICAgICAgZm9ybWF0ID0gZm9ybWF0
TWFjcm87IFwKLSAgICAgICAgdHlwZSA9IHR5cGVNYWNybzsgXAotICAgICAgICBicmVhazsKLQot
ICAgIHN3aXRjaCAoaW50ZXJuYWxGb3JtYXQpIHsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZ
UEVfQ0FTRShSR0IsIFJHQiwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoUkdCQSwgUkdCQSwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoTFVNSU5BTkNFX0FMUEhBLCBMVU1JTkFOQ0VfQUxQSEEsIFVOU0lH
TkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKExVTUlOQU5DRSwg
TFVNSU5BTkNFLCBVTlNJR05FRF9CWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShBTFBIQSwgQUxQSEEsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JN
QVRfVFlQRV9DQVNFKFI4LCBSRUQsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9G
T1JNQVRfVFlQRV9DQVNFKFI4X1NOT1JNLCBSRUQsIEJZVEUpOwotICAgICAgICBQT1NTSUJMRV9G
T1JNQVRfVFlQRV9DQVNFKFIxNkYsIFJFRCwgSEFMRl9GTE9BVCk7Ci0gICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoUjMyRiwgUkVELCBGTE9BVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoUjhVSSwgUkVEX0lOVEVHRVIsIFVOU0lHTkVEX0JZVEUpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFI4SSwgUkVEX0lOVEVHRVIsIEJZVEUpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFIxNlVJLCBSRURfSU5URUdFUiwgVU5TSUdO
RURfU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFIxNkksIFJFRF9J
TlRFR0VSLCBTSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjMyVUks
IFJFRF9JTlRFR0VSLCBVTlNJR05FRF9JTlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKFIzMkksIFJFRF9JTlRFR0VSLCBJTlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRf
VFlQRV9DQVNFKFJHOCwgUkcsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JN
QVRfVFlQRV9DQVNFKFJHOF9TTk9STSwgUkcsIEJZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JN
QVRfVFlQRV9DQVNFKFJHMTZGLCBSRywgSEFMRl9GTE9BVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoUkczMkYsIFJHLCBGTE9BVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoUkc4VUksIFJHX0lOVEVHRVIsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHOEksIFJHX0lOVEVHRVIsIEJZVEUpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHMTZVSSwgUkdfSU5URUdFUiwgVU5TSUdORURf
U0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHMTZJLCBSR19JTlRF
R0VSLCBTSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkczMlVJLCBS
R19JTlRFR0VSLCBVTlNJR05FRF9JTlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKFJHMzJJLCBSR19JTlRFR0VSLCBJTlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKFJHQjgsIFJHQiwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoU1JHQjgsIFJHQiwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoUkdCNTY1LCBSR0IsIFVOU0lHTkVEX1NIT1JUXzVfNl81KTsKLSAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0I4X1NOT1JNLCBSR0IsIEJZVEUpOwot
ICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFIxMUZfRzExRl9CMTBGLCBSR0IsIFVO
U0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKFJHQjlfRTUsIFJHQiwgVU5TSUdORURfSU5UXzVfOV85XzlfUkVWKTsKLSAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IxNkYsIFJHQiwgSEFMRl9GTE9BVCk7Ci0gICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMzJGLCBSR0IsIEZMT0FUKTsKLSAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0I4VUksIFJHQl9JTlRFR0VSLCBVTlNJR05F
RF9CWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0I4SSwgUkdCX0lO
VEVHRVIsIEJZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjE2VUks
IFJHQl9JTlRFR0VSLCBVTlNJR05FRF9TSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UoUkdCMTZJLCBSR0JfSU5URUdFUiwgU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9G
T1JNQVRfVFlQRV9DQVNFKFJHQjMyVUksIFJHQl9JTlRFR0VSLCBVTlNJR05FRF9JTlQpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjMySSwgUkdCX0lOVEVHRVIsIElOVCk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTgsIFJHQkEsIFVOU0lHTkVE
X0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFNSR0I4X0FMUEhBOCwg
UkdCQSwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
UkdCQThfU05PUk0sIFJHQkEsIEJZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKFJHQjVfQTEsIFJHQkEsIFVOU0lHTkVEX1NIT1JUXzVfNV81XzEpOwotICAgICAgICBQT1NT
SUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkE0LCBSR0JBLCBVTlNJR05FRF9TSE9SVF80XzRfNF80
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IxMF9BMiwgUkdCQSwgVU5T
SUdORURfSU5UXzJfMTBfMTBfMTBfUkVWKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShSR0JBMTZGLCBSR0JBLCBIQUxGX0ZMT0FUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShSR0JBMzJGLCBSR0JBLCBGTE9BVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoUkdCQThVSSwgUkdCQV9JTlRFR0VSLCBVTlNJR05FRF9CWVRFKTsKLSAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBOEksIFJHQkFfSU5URUdFUiwgQllURSk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMTBfQTJVSSwgUkdCQV9JTlRF
R0VSLCBVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYpOwotICAgICAgICBQT1NTSUJMRV9GT1JN
QVRfVFlQRV9DQVNFKFJHQkExNlVJLCBSR0JBX0lOVEVHRVIsIFVOU0lHTkVEX1NIT1JUKTsKLSAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBMTZJLCBSR0JBX0lOVEVHRVIsIFNI
T1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBMzJJLCBSR0JBX0lO
VEVHRVIsIElOVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTMyVUks
IFJHQkFfSU5URUdFUiwgVU5TSUdORURfSU5UKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZ
UEVfQ0FTRShERVBUSF9DT01QT05FTlQxNiwgREVQVEhfQ09NUE9ORU5ULCBVTlNJR05FRF9TSE9S
VCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoREVQVEhfQ09NUE9ORU5ULCBE
RVBUSF9DT01QT05FTlQsIFVOU0lHTkVEX1NIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShERVBUSF9DT01QT05FTlQyNCwgREVQVEhfQ09NUE9ORU5ULCBVTlNJR05FRF9J
TlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX0NPTVBPTkVOVDMy
RiwgREVQVEhfQ09NUE9ORU5ULCBGTE9BVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoREVQVEhfU1RFTkNJTCwgREVQVEhfU1RFTkNJTCwgVU5TSUdORURfSU5UXzI0XzgpOwot
ICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIMjRfU1RFTkNJTDgsIERFUFRI
X1NURU5DSUwsIFVOU0lHTkVEX0lOVF8yNF84KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZ
UEVfQ0FTRShERVBUSDMyRl9TVEVOQ0lMOCwgREVQVEhfU1RFTkNJTCwgRkxPQVRfMzJfVU5TSUdO
RURfSU5UXzI0XzhfUkVWKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShFeHRl
bnNpb25zR0w6OlNSR0JfRVhULCBFeHRlbnNpb25zR0w6OlNSR0JfRVhULCBVTlNJR05FRF9CWVRF
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShFeHRlbnNpb25zR0w6OlNSR0Jf
QUxQSEFfRVhULCBFeHRlbnNpb25zR0w6OlNSR0JfQUxQSEFfRVhULCBVTlNJR05FRF9CWVRFKTsK
LSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotI3VuZGVmIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmIC8vICFV
U0UoQU5HTEUpCi0KLQogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OnNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5oCmluZGV4IGFiMmU3MjUwMDhiYWJmZjUzODQ2ZjQzODk2MjY2ODc3ZjRl
ODcwZmQuLmEyOTRlMzU2MDRlNzdmZGViZDg4NDFjNTU4ZDk0M2UzNDU4YTFmYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC01MjQsMTAgKzUyNCw2IEBAIHB1YmxpYzoK
ICAgICBHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkgZmluYWw7CiAjZW5kaWYKIAotI2lmICFV
U0UoQU5HTEUpCi0gICAgc3RhdGljIGJvb2wgcG9zc2libGVGb3JtYXRBbmRUeXBlRm9ySW50ZXJu
YWxGb3JtYXQoR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtJiBmb3JtYXQsIEdDR0xl
bnVtJiB0eXBlKTsKLSNlbmRpZiAvLyAhVVNFKEFOR0xFKQotCiAgICAgc3RhdGljIHZvaWQgcGFp
bnRUb0NhbnZhcyhjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmLCBQaXhlbEJ1ZmZl
ciYmLCBjb25zdCBJbnRTaXplJiBjYW52YXNTaXplLCBHcmFwaGljc0NvbnRleHQmKTsKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436184</attachid>
            <date>2021-08-23 04:28:06 -0700</date>
            <delta_ts>2021-08-23 04:33:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229402-20210823142804.patch</filename>
            <type>text/plain</type>
            <size>34408</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRmMjkzM2U5YWZlYWIy
MWMwNTQ5MDkyNzg3Yjg4NTBkYzU5OGRlNC4uMjU0ZjgzNmJhYzk4NTE3ZjRiNjgxNmYzMjAwZTM2
NjQ4MDI1ZjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA4LTIzICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY2FsbHMg
aW50byBzdGF0aWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZnVuY3Rpb25zIG5lZWRsZXNzbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjYWxs
cyBhcmUgcHJvYmxlbWF0aWM6CisgICAgICAgIC0gTm8gb3RoZXIgY2FsbCBzaXRlcyB0aGFuIFdl
YkdMIGxheWVyCisgICAgICAgIC0gVGhlIGZ1bmN0aW9uYWxpdHkgaXMgbm90IG5lZWRlZCBmb3Ig
QU5HTEUsIGJ1dCBwcmVzZW50CisgICAgICAgIC0gR3JhcGhpY3NDb250ZXh0R0wgaXMgbm93IGFu
IGludGVyZmFjZSB3aXRoIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucywKKyAgICAgICAgICBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCBpcyBqdXN0IG9uZSBpbXBsZW1lbnRhdGlvbgorCisgICAgICAg
IE1vdmUgdGhlIGZ1bmN0aW9ucyBpbnRvIFdlYkdMLCBpbnNpZGUgI2lmICFVU0UoQU5HTEUpIGJs
b2Nrcy4KKyAgICAgICAgRnJvbSB0aGVyZSwgdGhleSdyZSBzaW1wbGVyIHRvIG1vdmUgaW50byAh
QU5HTEUgc3BlY2lmaWMgZmlsZXMsCisgICAgICAgIGlmIHBvc3NpYmxlLgorCisgICAgICAgIFRo
aXMgaXMgd29yayB0b3dhcmRzIG1ha2luZyBpdCBwb3NzaWJsZSB0byByZW1vdmUgQU5HTEUgc3Bl
Y2lmaWMgI2lmCisgICAgICAgIGJsb2NrcyBmcm9tIFdlYkdMIGltcGxlbWVudGF0aW9uLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldENsZWFyQml0c0J5QXR0
YWNobWVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOgor
ICAgICAgICAoV2ViQ29yZTo6aXNBdHRhY2htZW50Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6aW5pdGlhbGl6ZUF0dGFjaG1lbnRzKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6cG9zc2libGVG
b3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRleFN1YkltYWdlMkQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNUZXhJbnRlcm5hbEZvcm1hdENvbG9yQnVm
ZmVyQ29tYmluYXRpb25WYWxpZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuaDoKKwogMjAyMS0wOC0yMyAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIERlcHRoIHRlc3QgYWZmZWN0cyBXZWJHTCBy
ZW5kZXJpbmcgd2hlbiBjb250ZXh0IGhhcyBkZXB0aCA9PSBmYWxzZSwgc3RlbmNpbCA9PSB0cnVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCmlu
ZGV4IGI3YWQwYWU0NGYzMmI1ZmI1MTEwNzU4NWIxYzRjOGNkZGIwNDNiZTYuLjMxMTI5NDE1NzNl
ZmRkNDQ4NDIzNWI3OWYyNzZmZDQzOWI4ZDhkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCkBAIC0yNzIsMzQgKzI3MiwxNDEgQEAgbmFt
ZXNwYWNlIHsKICAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fdGV4dHVyZS5nZXQoKSk7
CiAgICAgfQogCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwogI2lmICFVU0UoQU5HTEUpCi0g
ICAgYm9vbCBpc0F0dGFjaG1lbnRDb21wbGV0ZShXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFj
aG1lbnQqIGF0dGFjaGVkT2JqZWN0LCBHQ0dMZW51bSBhdHRhY2htZW50LCBjb25zdCBjaGFyKiog
cmVhc29uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGF0dGFjaGVkT2JqZWN0ICYmIGF0dGFjaGVk
T2JqZWN0LT5pc1ZhbGlkKCkpOwotICAgICAgICBBU1NFUlQocmVhc29uKTsKLSAgICAgICAgR0NH
TGVudW0gZm9ybWF0ID0gYXR0YWNoZWRPYmplY3QtPmdldEZvcm1hdCgpOwotICAgICAgICB1bnNp
Z25lZCBuZWVkID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldENsZWFyQml0c0J5QXR0YWNo
bWVudFR5cGUoYXR0YWNobWVudCk7Ci0gICAgICAgIHVuc2lnbmVkIGhhdmUgPSBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQoZm9ybWF0KTsKLQotICAgICAgICBp
ZiAoKG5lZWQgJiBoYXZlKSAhPSBuZWVkKSB7Ci0gICAgICAgICAgICAqcmVhc29uID0gImF0dGFj
aG1lbnQgdHlwZSBpcyBub3QgY29ycmVjdCBmb3IgYXR0YWNobWVudCI7Ci0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFhdHRhY2hlZE9iamVjdC0+Z2V0
V2lkdGgoKSB8fCAhYXR0YWNoZWRPYmplY3QtPmdldEhlaWdodCgpKSB7Ci0gICAgICAgICAgICAq
cmVhc29uID0gImF0dGFjaG1lbnQgaGFzIGEgMCBkaW1lbnNpb24iOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoYXR0YWNobWVudCA9PSBHcmFwaGlj
c0NvbnRleHRHTDo6REVQVEhfQVRUQUNITUVOVCB8fCBhdHRhY2htZW50ID09IEdyYXBoaWNzQ29u
dGV4dEdMOjpTVEVOQ0lMX0FUVEFDSE1FTlQpCi0gICAgICAgICAgICAmJiBmb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUwpIHsKLSAgICAgICAgICAqcmVhc29uID0gImF0
dGFjaG1lbnQgREVQVEhfU1RFTkNJTCBub3QgYWxsb3dlZCBvbiBERVBUSCBvciBTVEVOQ0lMIGF0
dGFjaG1lbnQiOwotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKK3N0YXRpYyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBl
KEdDR0xlbnVtIGF0dGFjaG1lbnQpCit7CisgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQVRUQUNITUVOVDA6CisgICAgY2FzZSBFeHRl
bnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6
Q09MT1JfQVRUQUNITUVOVDJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRB
Q0hNRU5UM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ0X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDVfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09M
T1JfQVRUQUNITUVOVDhfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hN
RU5UOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMF9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNP
TE9SX0FUVEFDSE1FTlQxNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFD
SE1FTlQxNV9FWFQ6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVG
RkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9BVFRBQ0hNRU5UOgor
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0JVRkZFUl9CSVQ7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1
cm4gR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6CisgICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHRHTDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dEdMOjpT
VEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQotI2VuZGlmCit9CiAKLX0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorc3RhdGljIHVuc2lnbmVk
IGdldENsZWFyQml0c0J5Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZv
cm1hdCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5D
RV9BTFBIQToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0U6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
Ujg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjhfU05PUk06CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSMzJGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxNlVJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0R0w6OlIxNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMy
VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMySToKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSRzg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Ukc4X1NOT1JNOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlJHMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOFVJOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
UkcxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZJOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHMzJVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzMy
SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlNSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjU2NToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlIxMUZfRzExRl9CMTBGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QjlfRTU6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4
VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOEk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UkdCMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxNkk6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJVSToKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0IzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTg6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQkE4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QjVfQTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQ6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCMTBfQTI6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
QTE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQkE4VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
QThJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjEwX0EyVUk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6UkdCQTE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
UkdCQTE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMlVJOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpTUkdC
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQ6CisgICAgICAgIHJl
dHVybiBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMOjpERVBUSF9DT01QT05FTlQyNDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBU
SF9DT01QT05FTlQzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9O
RU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0JVRkZFUl9CSVQ7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9JTkRFWDg6CisgICAgICAgIHJl
dHVybiBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUw6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6REVQVEgyNF9TVEVOQ0lMODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSDMy
Rl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9CVUZG
RVJfQklUIHwgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CiAKK3N0YXRpYyBib29sIGlzQXR0YWNo
bWVudENvbXBsZXRlKFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCogYXR0YWNoZWRP
YmplY3QsIEdDR0xlbnVtIGF0dGFjaG1lbnQsIGNvbnN0IGNoYXIqKiByZWFzb24pCit7CisgICAg
QVNTRVJUKGF0dGFjaGVkT2JqZWN0ICYmIGF0dGFjaGVkT2JqZWN0LT5pc1ZhbGlkKCkpOworICAg
IEFTU0VSVChyZWFzb24pOworICAgIEdDR0xlbnVtIGZvcm1hdCA9IGF0dGFjaGVkT2JqZWN0LT5n
ZXRGb3JtYXQoKTsKKyAgICB1bnNpZ25lZCBuZWVkID0gZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50
VHlwZShhdHRhY2htZW50KTsKKyAgICB1bnNpZ25lZCBoYXZlID0gZ2V0Q2xlYXJCaXRzQnlGb3Jt
YXQoZm9ybWF0KTsKKworICAgIGlmICgobmVlZCAmIGhhdmUpICE9IG5lZWQpIHsKKyAgICAgICAg
KnJlYXNvbiA9ICJhdHRhY2htZW50IHR5cGUgaXMgbm90IGNvcnJlY3QgZm9yIGF0dGFjaG1lbnQi
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghYXR0YWNoZWRPYmplY3Qt
PmdldFdpZHRoKCkgfHwgIWF0dGFjaGVkT2JqZWN0LT5nZXRIZWlnaHQoKSkgeworICAgICAgICAq
cmVhc29uID0gImF0dGFjaG1lbnQgaGFzIGEgMCBkaW1lbnNpb24iOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIGlmICgoYXR0YWNobWVudCA9PSBHcmFwaGljc0NvbnRleHRHTDo6
REVQVEhfQVRUQUNITUVOVCB8fCBhdHRhY2htZW50ID09IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVO
Q0lMX0FUVEFDSE1FTlQpCisgICAgICAgICYmIGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHRHTDo6
REVQVEhfU1RFTkNJTCkgeworICAgICAgICAqcmVhc29uID0gImF0dGFjaG1lbnQgREVQVEhfU1RF
TkNJTCBub3QgYWxsb3dlZCBvbiBERVBUSCBvciBTVEVOQ0lMIGF0dGFjaG1lbnQiOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCisjZW5kaWYKIFdl
YkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudDo6V2ViR0xBdHRhY2htZW50KCkgPSBkZWZh
dWx0OwogCiBXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFjaG1lbnQ6On5XZWJHTEF0dGFjaG1l
bnQoKSA9IGRlZmF1bHQ7CkBAIC02MjAsNyArNzI3LDcgQEAgYm9vbCBXZWJHTEZyYW1lYnVmZmVy
Ojppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0R0wqIGczZCwgY29uc3QgY2hh
cioKICAgICAgICAgR0NHTGVudW0gYXR0YWNobWVudFR5cGUgPSBlbnRyeS5rZXk7CiAgICAgICAg
IFJlZlB0cjxXZWJHTEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnQgPSBlbnRyeS52YWx1ZS5nZXQoKTsK
ICAgICAgICAgaWYgKCFhdHRhY2htZW50LT5pc0luaXRpYWxpemVkKCkpCi0gICAgICAgICAgICBt
YXNrIHw9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRU
eXBlKGF0dGFjaG1lbnRUeXBlKTsKKyAgICAgICAgICAgIG1hc2sgfD0gZ2V0Q2xlYXJCaXRzQnlB
dHRhY2htZW50VHlwZShhdHRhY2htZW50VHlwZSk7CiAgICAgfQogICAgIGlmICghbWFzaykKICAg
ICAgICAgcmV0dXJuIHRydWU7CkBAIC02OTEsNyArNzk4LDcgQEAgYm9vbCBXZWJHTEZyYW1lYnVm
ZmVyOjppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0R0wqIGczZCwgY29uc3Qg
Y2hhcioKICAgICBmb3IgKEF0dGFjaG1lbnRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9hdHRhY2htZW50
cy5iZWdpbigpOyBpdCAhPSBtX2F0dGFjaG1lbnRzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIEdD
R0xlbnVtIGF0dGFjaG1lbnRUeXBlID0gaXQtPmtleTsKICAgICAgICAgYXV0byBhdHRhY2htZW50
ID0gaXQtPnZhbHVlOwotICAgICAgICBHQ0dMYml0ZmllbGQgYml0cyA9IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKGF0dGFjaG1lbnRUeXBlKTsK
KyAgICAgICAgR0NHTGJpdGZpZWxkIGJpdHMgPSBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBl
KGF0dGFjaG1lbnRUeXBlKTsKICAgICAgICAgaWYgKGJpdHMgJiBtYXNrKQogICAgICAgICAgICAg
YXR0YWNobWVudC0+c2V0SW5pdGlhbGl6ZWQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4
IGUwNzUzYWI3NzM3YTY5Y2M3NzA5OGQ1ZTE2NmIxYjk1MjEwOTAxMTQuLjU5NWMwMjllNWJmMWQy
YmMxOWJkOWE5ZGI4ZWQ2N2RiM2YxNDY3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC01MjYsOCAr
NTI2LDExOCBAQCBzdGF0aWMgYm9vbCBjbGlwMkQoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xz
aXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwKIAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9
IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBwZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBl
ZEhlaWdodCAhPSBoZWlnaHQpOwogfQorCitzdGF0aWMgdWludDhfdCBnZXRDaGFubmVsQml0c0J5
Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdM
OjpMVU1JTkFOQ0U6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVs
Qml0czo6UkdCKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6UkdCQSk7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlJHQjU2NToKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQ6CisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6UkdCKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjVfQTE6CisgICAgY2FzZSBFeHRl
bnNpb25zR0w6OlNSR0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ2hhbm5lbEJpdHM6OlJHQkEpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIX0NPTVBPTkVOVDE2OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBP
TkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpE
ZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9JTkRFWDg6CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6U3RlbmNpbCk7Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTDoKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aFN0ZW5jaWwpOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KICNlbmRpZgogCitzdGF0aWMgYm9v
bCBwb3NzaWJsZUZvcm1hdEFuZFR5cGVGb3JJbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBpbnRlcm5h
bEZvcm1hdCwgR0NHTGVudW0mIGZvcm1hdCwgR0NHTGVudW0mIHR5cGUpCit7CisjZGVmaW5lIFBP
U1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoaW50ZXJuYWxGb3JtYXRNYWNybywgZm9ybWF0TWFjcm8s
IHR5cGVNYWNybykgY2FzZSBpbnRlcm5hbEZvcm1hdE1hY3JvOiBcCisgICAgICAgIGZvcm1hdCA9
IGZvcm1hdE1hY3JvOyBcCisgICAgICAgIHR5cGUgPSB0eXBlTWFjcm87IFwKKyAgICAgICAgYnJl
YWs7CisKKyAgICBzd2l0Y2ggKGludGVybmFsRm9ybWF0KSB7CisgICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBLCBHcmFwaGljc0NvbnRl
eHRHTDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0VfQUxQ
SEEsIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0VfQUxQSEEsIEdyYXBoaWNzQ29udGV4dEdM
OjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFw
aGljc0NvbnRleHRHTDo6TFVNSU5BTkNFLCBHcmFwaGljc0NvbnRleHRHTDo6TFVNSU5BTkNFLCBH
cmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OkFMUEhBLCBHcmFwaGljc0NvbnRleHRHTDo6
QUxQSEEsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjgsIEdyYXBoaWNzQ29udGV4
dEdMOjpSRUQsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjhfU05PUk0sIEdyYXBo
aWNzQ29udGV4dEdMOjpSRUQsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjE2RiwgR3JhcGhpY3ND
b250ZXh0R0w6OlJFRCwgR3JhcGhpY3NDb250ZXh0R0w6OkhBTEZfRkxPQVQpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSMzJGLCBHcmFwaGlj
c0NvbnRleHRHTDo6UkVELCBHcmFwaGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NT
SUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSOFVJLCBHcmFwaGljc0Nv
bnRleHRHTDo6UkVEX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsK
KyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjhJ
LCBHcmFwaGljc0NvbnRleHRHTDo6UkVEX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRF
KTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6
UjE2VUksIEdyYXBoaWNzQ29udGV4dEdMOjpSRURfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6
OlVOU0lHTkVEX1NIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFw
aGljc0NvbnRleHRHTDo6UjE2SSwgR3JhcGhpY3NDb250ZXh0R0w6OlJFRF9JTlRFR0VSLCBHcmFw
aGljc0NvbnRleHRHTDo6U0hPUlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KEdyYXBoaWNzQ29udGV4dEdMOjpSMzJVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJFRF9JTlRFR0VS
LCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfSU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjMySSwgR3JhcGhpY3NDb250ZXh0R0w6
OlJFRF9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6SU5UKTsKKyAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6Ukc4LCBHcmFwaGljc0NvbnRleHRH
TDo6UkcsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6Ukc4X1NOT1JNLCBHcmFwaGlj
c0NvbnRleHRHTDo6UkcsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkcxNkYsIEdyYXBoaWNzQ29u
dGV4dEdMOjpSRywgR3JhcGhpY3NDb250ZXh0R0w6OkhBTEZfRkxPQVQpOworICAgICAgICBQT1NT
SUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSRzMyRiwgR3JhcGhpY3ND
b250ZXh0R0w6OlJHLCBHcmFwaGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSRzhVSSwgR3JhcGhpY3NDb250
ZXh0R0w6OlJHX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6Ukc4SSwg
R3JhcGhpY3NDb250ZXh0R0w6OlJHX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsK
KyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6Ukcx
NlVJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OlVO
U0lHTkVEX1NIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGlj
c0NvbnRleHRHTDo6UkcxNkksIEdyYXBoaWNzQ29udGV4dEdMOjpSR19JTlRFR0VSLCBHcmFwaGlj
c0NvbnRleHRHTDo6U0hPUlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdy
YXBoaWNzQ29udGV4dEdMOjpSRzMyVUksIEdyYXBoaWNzQ29udGV4dEdMOjpSR19JTlRFR0VSLCBH
cmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfSU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkczMkksIEdyYXBoaWNzQ29udGV4dEdMOjpS
R19JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6SU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCOCwgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpTUkdCOCwgR3JhcGhpY3NDb250
ZXh0R0w6OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0I1NjUsIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9TSE9SVF81XzZf
NSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6
OlJHQjhfU05PUk0sIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpC
WVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRH
TDo6UjExRl9HMTFGX0IxMEYsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4
dEdMOjpVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWKTsKKyAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCOV9FNSwgR3JhcGhpY3NDb250ZXh0
R0w6OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0lOVF81XzlfOV85X1JFVik7Cisg
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjE2
RiwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6OkhBTEZfRkxPQVQp
OworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpS
R0IzMkYsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpGTE9BVCk7
CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJH
QjhVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQl9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6
VU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQjhJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCX0lOVEVHRVIsIEdyYXBo
aWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShH
cmFwaGljc0NvbnRleHRHTDo6UkdCMTZVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQl9JTlRFR0VS
LCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlQpOworICAgICAgICBQT1NTSUJMRV9G
T1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxNkksIEdyYXBoaWNzQ29udGV4
dEdMOjpSR0JfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OlNIT1JUKTsKKyAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJVSSwgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQl9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfSU5U
KTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6
UkdCMzJJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdM
OjpJTlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4
dEdMOjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEsIEdyYXBoaWNzQ29udGV4dEdMOjpV
TlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGlj
c0NvbnRleHRHTDo6U1JHQjhfQUxQSEE4LCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQSwgR3JhcGhp
Y3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOF9TTk9STSwgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQkEsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCNV9BMSwgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQkEsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9TSE9SVF81XzVfNV8xKTsKKyAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQsIEdy
YXBoaWNzQ29udGV4dEdMOjpSR0JBLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlRf
NF80XzRfNCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250
ZXh0R0w6OlJHQjEwX0EyLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0
R0w6OlVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVik7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQkExNkYsIEdyYXBoaWNzQ29udGV4dEdM
OjpSR0JBLCBHcmFwaGljc0NvbnRleHRHTDo6SEFMRl9GTE9BVCk7CisgICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMkYsIEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0JBLCBHcmFwaGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOFVJLCBHcmFwaGljc0Nv
bnRleHRHTDo6UkdCQV9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7
CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJH
QkE4SSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkFfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6
OkJZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4
dEdMOjpSR0IxMF9BMlVJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQV9JTlRFR0VSLCBHcmFwaGlj
c0NvbnRleHRHTDo6VU5TSUdORURfSU5UXzJfMTBfMTBfMTBfUkVWKTsKKyAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCQTE2VUksIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0JBX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9TSE9S
VCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6
OlJHQkExNkksIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4
dEdMOjpTSE9SVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3ND
b250ZXh0R0w6OlJHQkEzMkksIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBX0lOVEVHRVIsIEdyYXBo
aWNzQ29udGV4dEdMOjpJTlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdy
YXBoaWNzQ29udGV4dEdMOjpSR0JBMzJVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkFfSU5URUdF
UiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0lOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDE2LCBHcmFw
aGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5ULCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdO
RURfU0hPUlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29u
dGV4dEdMOjpERVBUSF9DT01QT05FTlQsIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05F
TlQsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9TSE9SVCk7CisgICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDI0LCBH
cmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5ULCBHcmFwaGljc0NvbnRleHRHTDo6VU5T
SUdORURfSU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0Nv
bnRleHRHTDo6REVQVEhfQ09NUE9ORU5UMzJGLCBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09N
UE9ORU5ULCBHcmFwaGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JN
QVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMLCBHcmFwaGljc0Nv
bnRleHRHTDo6REVQVEhfU1RFTkNJTCwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0lOVF8y
NF84KTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRH
TDo6REVQVEgyNF9TVEVOQ0lMOCwgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUwsIEdy
YXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9JTlRfMjRfOCk7CisgICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIMzJGX1NURU5DSUw4LCBHcmFw
aGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTCwgR3JhcGhpY3NDb250ZXh0R0w6OkZMT0FUXzMy
X1VOU0lHTkVEX0lOVF8yNF84X1JFVik7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NB
U0UoRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVCwgRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVCwgR3JhcGhp
Y3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQsIEV4dGVuc2lvbnNHTDo6U1JHQl9B
TFBIQV9FWFQsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICBkZWZhdWx0
OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI3VuZGVmIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UKKworICAgIHJldHVybiB0cnVlOworfQorCisKIGNsYXNzIEluc3BlY3RvclNjb3Bl
ZFNoYWRlclByb2dyYW1IaWdobGlnaHQgewogcHVibGljOgogICAgIEluc3BlY3RvclNjb3BlZFNo
YWRlclByb2dyYW1IaWdobGlnaHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtKQpAQCAtMTkyNCw3ICsyMDM0LDcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdD
R0xpbnQgbGV2ZWwKICAgICBpZiAoY2xpcDJEKHgsIHksIHdpZHRoLCBoZWlnaHQsIGdldEJvdW5k
UmVhZEZyYW1lYnVmZmVyV2lkdGgoKSwgZ2V0Qm91bmRSZWFkRnJhbWVidWZmZXJIZWlnaHQoKSwg
JmNsaXBwZWRYLCAmY2xpcHBlZFksICZjbGlwcGVkV2lkdGgsICZjbGlwcGVkSGVpZ2h0KSkgewog
ICAgICAgICBHQ0dMZW51bSBmb3JtYXQ7CiAgICAgICAgIEdDR0xlbnVtIHR5cGU7Ci0gICAgICAg
IGlmICghR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnBvc3NpYmxlRm9ybWF0QW5kVHlwZUZvcklu
dGVybmFsRm9ybWF0KHRleC0+Z2V0SW50ZXJuYWxGb3JtYXQodGFyZ2V0LCBsZXZlbCksIGZvcm1h
dCwgdHlwZSkpIHsKKyAgICAgICAgaWYgKCFwb3NzaWJsZUZvcm1hdEFuZFR5cGVGb3JJbnRlcm5h
bEZvcm1hdCh0ZXgtPmdldEludGVybmFsRm9ybWF0KHRhcmdldCwgbGV2ZWwpLCBmb3JtYXQsIHR5
cGUpKSB7CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6
SU5WQUxJRF9FTlVNLCAiY29weVRleFN1YkltYWdlMkQiLCAiVGV4dHVyZSBoYXMgdW5rbm93biBp
bnRlcm5hbCBmb3JtYXQiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjU1
NCw4ICs2NjY0LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVGYWxs
YmFja0JsYWNrVGV4dHVyZXMxeDEoKQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNvbWJpbmF0aW9uVmFsaWQoR0NHTGVudW0g
dGV4SW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGNvbG9yQnVmZmVyRm9ybWF0KQogewotICAgIGF1
dG8gbmVlZCA9IEdyYXBoaWNzQ29udGV4dEdMOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KHRleElu
dGVybmFsRm9ybWF0KTsKLSAgICBhdXRvIGhhdmUgPSBHcmFwaGljc0NvbnRleHRHTDo6Z2V0Q2hh
bm5lbEJpdHNCeUZvcm1hdChjb2xvckJ1ZmZlckZvcm1hdCk7CisgICAgYXV0byBuZWVkID0gZ2V0
Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0g
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdChjb2xvckJ1ZmZlckZvcm1hdCk7CiAgICAgcmV0dXJuIChu
ZWVkICYgaGF2ZSkgPT0gbmVlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IGNlOTcxOWEyM2RkMzI0
M2M2YTg3ZDY1YjVlNGY5MDJjMjcwYTA0ODYuLjM2ZTM0MzFmNTZmMDhjYmEyOGQ2MDBlZmVhMTM1
MTJkYzgyOTRiOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTM2OSwxNDMgKzM2OSw2IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0R0w6OmVuYWJsZVByZXNlcnZlRHJhd2luZ0J1ZmZlcigpCiAgICAgbV9hdHRy
cy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSB0cnVlOwogfQogCi11bnNpZ25lZCBHcmFwaGljc0Nv
bnRleHRHTDo6Z2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQ0dMZW51bSBhdHRhY2htZW50
KQotewotICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OkNPTE9SX0FUVEFDSE1FTlQwOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRB
Q0hNRU5UMV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQyX0VY
VDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDNfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09M
T1JfQVRUQUNITUVOVDZfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hN
RU5UN19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ4X0VYVDoK
LSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDlfRVhUOgotICAgIGNhc2Ug
RXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9u
c0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xP
Ul9BVFRBQ0hNRU5UMTJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hN
RU5UMTNfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTRfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUOgotICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkNPTE9SX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6REVQVEhfQVRUQUNITUVOVDoKLSAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dEdMOjpERVBUSF9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlNURU5DSUxfQVRUQUNITUVOVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdM
OjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIX0JVRkZFUl9CSVQgfCBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklUOwot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3Jh
cGhpY3NDb250ZXh0R0w6OmdldENsZWFyQml0c0J5Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKLXsK
LSAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjoK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOgotICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OkxVTUlOQU5DRV9BTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1J
TkFOQ0U6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6QUxQSEE6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjhfU05PUk06
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjE2RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4VUk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6UjhJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIx
NlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxNkk6Ci0gICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UjMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMySToKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6Ukc4X1NOT1JNOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlJHOFVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOEk6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkcxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZJ
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMzJVSToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSRzMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4OgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNSR0I4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlJHQjU2NToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4X1NOT1JNOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxMUZfRzExRl9CMTBGOgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQjlfRTU6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZG
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjMyRjoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0I4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0IxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJVSToKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1JHQjhfQUxQSEE4Ogot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4X1NOT1JNOgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQjVfQTE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQ6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTBfQTI6Ci0gICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UkdCQTE2RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJG
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4VUk6Ci0gICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UkdCQThJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjEwX0Ey
VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTE2VUk6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCQTE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JB
MzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMlVJOgotICAgIGNhc2UgRXh0
ZW5zaW9uc0dMOjpTUkdCX0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9F
WFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQxNjoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQyNDoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpERVBUSF9DT01QT05FTlQzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6REVQVEhfQ09NUE9ORU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9JTkRF
WDg6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklU
OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUw6Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6REVQVEgyNF9TVEVOQ0lMODoKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpERVBUSDMyRl9TVEVOQ0lMODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dEdMOjpERVBUSF9CVUZGRVJfQklUIHwgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVS
X0JJVDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci19Ci0KLXVpbnQ4
X3QgR3JhcGhpY3NDb250ZXh0R0w6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0NHTGVudW0gZm9y
bWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0
czo6QWxwaGEpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5DRToKLSAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0IpOwotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5DRV9BTFBIQToKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCNTY1OgotICAg
IGNhc2UgRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0IpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQ6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCNV9BMToKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBI
QV9FWFQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6
UkdCQSk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5UMTY6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5UOgotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OkRlcHRoKTsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpTdGVuY2lsKTsKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpERVBUSF9TVEVOQ0lMOgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgfQotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dEdMOjpjb21wdXRlRm9ybWF0
QW5kVHlwZVBhcmFtZXRlcnMoR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCB1bnNpZ25l
ZCogY29tcG9uZW50c1BlclBpeGVsLCB1bnNpZ25lZCogYnl0ZXNQZXJDb21wb25lbnQpCiB7CiAg
ICAgc3dpdGNoIChmb3JtYXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IGViNzIyMjYwMjI2MTM1ODE0YTc3NTZj
YjYyZTUxNWQwMmRlOGVlYjQuLmFlZjkzZTFjMWUwMjBhYmYwOTM4ZjFjZmViNTgzYmVjODk2ODZj
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuaApAQCAtMTMxOCwxMSArMTMxOCw2IEBAIHB1YmxpYzoKIAogICAgIEludFNp
emUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKG1f
Y3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQpOyB9CiAKLSAgICBzdGF0aWMgdW5zaWduZWQg
Z2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQ0dMZW51bSk7Ci0gICAgc3RhdGljIHVuc2ln
bmVkIGdldENsZWFyQml0c0J5Rm9ybWF0KEdDR0xlbnVtKTsKLQotICAgIHN0YXRpYyB1aW50OF90
IGdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0NHTGVudW0pOwotCiAgICAgc3RydWN0IFBpeGVsU3Rv
cmVQYXJhbXMgZmluYWwgewogICAgICAgICBHQ0dMaW50IGFsaWdubWVudCB7IDQgfTsKICAgICAg
ICAgR0NHTGludCByb3dMZW5ndGggeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmNwcAppbmRleCBlMDk0MmM0OGJkZGMxMjc5OWEzOTE4NjM2MDBkOTY5MWViYWRjZjkwLi5l
NjAzYzJiZjVmZmJhN2FmMmIzNDJlODBkNzY4NGEwOTcxNDEwZmViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTEwNyw4OCArMTA3LDYgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6dGV4SW1hZ2UyRFJlc291cmNlU2FmZShHQ0dMZW51bSB0YXJnZXQs
IEdDR0xpbnQgbGUKICNlbmRpZgogCiAKLSNpZiAhVVNFKEFOR0xFKQotYm9vbCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6cG9zc2libGVGb3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQoR0NH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtJiBmb3JtYXQsIEdDR0xlbnVtJiB0eXBlKQot
ewotI2RlZmluZSBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKGludGVybmFsRm9ybWF0TWFjcm8s
IGZvcm1hdE1hY3JvLCB0eXBlTWFjcm8pIGNhc2UgaW50ZXJuYWxGb3JtYXRNYWNybzogXAotICAg
ICAgICBmb3JtYXQgPSBmb3JtYXRNYWNybzsgXAotICAgICAgICB0eXBlID0gdHlwZU1hY3JvOyBc
Ci0gICAgICAgIGJyZWFrOwotCi0gICAgc3dpdGNoIChpbnRlcm5hbEZvcm1hdCkgewotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQiwgUkdCLCBVTlNJR05FRF9CWVRFKTsKLSAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBLCBSR0JBLCBVTlNJR05FRF9CWVRF
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShMVU1JTkFOQ0VfQUxQSEEsIExV
TUlOQU5DRV9BTFBIQSwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UoTFVNSU5BTkNFLCBMVU1JTkFOQ0UsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEFMUEhBLCBBTFBIQSwgVU5TSUdORURfQllURSk7Ci0g
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjgsIFJFRCwgVU5TSUdORURfQllURSk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjhfU05PUk0sIFJFRCwgQllURSk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjE2RiwgUkVELCBIQUxGX0ZMT0FU
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSMzJGLCBSRUQsIEZMT0FUKTsK
LSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSOFVJLCBSRURfSU5URUdFUiwgVU5T
SUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjhJLCBSRURf
SU5URUdFUiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjE2VUks
IFJFRF9JTlRFR0VSLCBVTlNJR05FRF9TSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UoUjE2SSwgUkVEX0lOVEVHRVIsIFNIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShSMzJVSSwgUkVEX0lOVEVHRVIsIFVOU0lHTkVEX0lOVCk7Ci0gICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjMySSwgUkVEX0lOVEVHRVIsIElOVCk7Ci0gICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4LCBSRywgVU5TSUdORURfQllURSk7Ci0g
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4X1NOT1JNLCBSRywgQllURSk7Ci0g
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkcxNkYsIFJHLCBIQUxGX0ZMT0FUKTsK
LSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzMyRiwgUkcsIEZMT0FUKTsKLSAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzhVSSwgUkdfSU5URUdFUiwgVU5TSUdO
RURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4SSwgUkdfSU5U
RUdFUiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkcxNlVJLCBS
R19JTlRFR0VSLCBVTlNJR05FRF9TSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoUkcxNkksIFJHX0lOVEVHRVIsIFNIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShSRzMyVUksIFJHX0lOVEVHRVIsIFVOU0lHTkVEX0lOVCk7Ci0gICAgICAgIFBP
U1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkczMkksIFJHX0lOVEVHRVIsIElOVCk7Ci0gICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOCwgUkdCLCBVTlNJR05FRF9CWVRFKTsKLSAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShTUkdCOCwgUkdCLCBVTlNJR05FRF9CWVRF
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0I1NjUsIFJHQiwgVU5TSUdO
RURfU0hPUlRfNV82XzUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjhf
U05PUk0sIFJHQiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjEx
Rl9HMTFGX0IxMEYsIFJHQiwgVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVik7Ci0gICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOV9FNSwgUkdCLCBVTlNJR05FRF9JTlRfNV85
XzlfOV9SRVYpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjE2RiwgUkdC
LCBIQUxGX0ZMT0FUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IzMkYs
IFJHQiwgRkxPQVQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjhVSSwg
UkdCX0lOVEVHRVIsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKFJHQjhJLCBSR0JfSU5URUdFUiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoUkdCMTZVSSwgUkdCX0lOVEVHRVIsIFVOU0lHTkVEX1NIT1JUKTsKLSAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IxNkksIFJHQl9JTlRFR0VSLCBTSE9SVCk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMzJVSSwgUkdCX0lOVEVHRVIs
IFVOU0lHTkVEX0lOVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMzJJ
LCBSR0JfSU5URUdFUiwgSU5UKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShS
R0JBOCwgUkdCQSwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoU1JHQjhfQUxQSEE4LCBSR0JBLCBVTlNJR05FRF9CWVRFKTsKLSAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBOF9TTk9STSwgUkdCQSwgQllURSk7Ci0gICAgICAgIFBP
U1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCNV9BMSwgUkdCQSwgVU5TSUdORURfU0hPUlRfNV81
XzVfMSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTQsIFJHQkEsIFVO
U0lHTkVEX1NIT1JUXzRfNF80XzQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KFJHQjEwX0EyLCBSR0JBLCBVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYpOwotICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkExNkYsIFJHQkEsIEhBTEZfRkxPQVQpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkEzMkYsIFJHQkEsIEZMT0FUKTsKLSAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBOFVJLCBSR0JBX0lOVEVHRVIsIFVO
U0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkE4SSwg
UkdCQV9JTlRFR0VSLCBCWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShS
R0IxMF9BMlVJLCBSR0JBX0lOVEVHRVIsIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVik7Ci0g
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTE2VUksIFJHQkFfSU5URUdFUiwg
VU5TSUdORURfU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkEx
NkksIFJHQkFfSU5URUdFUiwgU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKFJHQkEzMkksIFJHQkFfSU5URUdFUiwgSU5UKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShSR0JBMzJVSSwgUkdCQV9JTlRFR0VSLCBVTlNJR05FRF9JTlQpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX0NPTVBPTkVOVDE2LCBERVBUSF9DT01Q
T05FTlQsIFVOU0lHTkVEX1NIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShERVBUSF9DT01QT05FTlQsIERFUFRIX0NPTVBPTkVOVCwgVU5TSUdORURfU0hPUlQpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX0NPTVBPTkVOVDI0LCBERVBUSF9D
T01QT05FTlQsIFVOU0lHTkVEX0lOVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NB
U0UoREVQVEhfQ09NUE9ORU5UMzJGLCBERVBUSF9DT01QT05FTlQsIEZMT0FUKTsKLSAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShERVBUSF9TVEVOQ0lMLCBERVBUSF9TVEVOQ0lMLCBV
TlNJR05FRF9JTlRfMjRfOCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoREVQ
VEgyNF9TVEVOQ0lMOCwgREVQVEhfU1RFTkNJTCwgVU5TSUdORURfSU5UXzI0XzgpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIMzJGX1NURU5DSUw4LCBERVBUSF9TVEVO
Q0lMLCBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYpOwotICAgICAgICBQT1NTSUJMRV9G
T1JNQVRfVFlQRV9DQVNFKEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQsIEV4dGVuc2lvbnNHTDo6U1JH
Ql9FWFQsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQsIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9F
WFQsIFVOU0lHTkVEX0JZVEUpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0jdW5kZWYgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRQotCi0gICAgcmV0dXJuIHRy
dWU7Ci19Ci0jZW5kaWYgLy8gIVVTRShBTkdMRSkKLQotCiAjaWYgIVBMQVRGT1JNKENPQ09BKQog
dm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkoYm9vbCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggYWIyZTcyNTAwOGJhYmZm
NTM4NDZmNDM4OTYyNjY4NzdmNGU4NzBmZC4uYTI5NGUzNTYwNGU3N2ZkZWJkODg0MWM1NThkOTQz
ZTM0NThhMWZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTUyNCwx
MCArNTI0LDYgQEAgcHVibGljOgogICAgIEdyYXBoaWNzQ29udGV4dEdMQ1YqIGFzQ1YoKSBmaW5h
bDsKICNlbmRpZgogCi0jaWYgIVVTRShBTkdMRSkKLSAgICBzdGF0aWMgYm9vbCBwb3NzaWJsZUZv
cm1hdEFuZFR5cGVGb3JJbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NH
TGVudW0mIGZvcm1hdCwgR0NHTGVudW0mIHR5cGUpOwotI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0K
ICAgICBzdGF0aWMgdm9pZCBwYWludFRvQ2FudmFzKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyYsIFBpeGVsQnVmZmVyJiYsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBo
aWNzQ29udGV4dCYpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCg==
</data>
<flag name="commit-queue"
          id="459152"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436185</attachid>
            <date>2021-08-23 04:31:57 -0700</date>
            <delta_ts>2021-08-25 00:19:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229402-20210823143155.patch</filename>
            <type>text/plain</type>
            <size>34297</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRmMjkzM2U5YWZlYWIy
MWMwNTQ5MDkyNzg3Yjg4NTBkYzU5OGRlNC4uMjU0ZjgzNmJhYzk4NTE3ZjRiNjgxNmYzMjAwZTM2
NjQ4MDI1ZjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA4LTIzICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY2FsbHMg
aW50byBzdGF0aWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZnVuY3Rpb25zIG5lZWRsZXNzbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjYWxs
cyBhcmUgcHJvYmxlbWF0aWM6CisgICAgICAgIC0gTm8gb3RoZXIgY2FsbCBzaXRlcyB0aGFuIFdl
YkdMIGxheWVyCisgICAgICAgIC0gVGhlIGZ1bmN0aW9uYWxpdHkgaXMgbm90IG5lZWRlZCBmb3Ig
QU5HTEUsIGJ1dCBwcmVzZW50CisgICAgICAgIC0gR3JhcGhpY3NDb250ZXh0R0wgaXMgbm93IGFu
IGludGVyZmFjZSB3aXRoIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucywKKyAgICAgICAgICBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCBpcyBqdXN0IG9uZSBpbXBsZW1lbnRhdGlvbgorCisgICAgICAg
IE1vdmUgdGhlIGZ1bmN0aW9ucyBpbnRvIFdlYkdMLCBpbnNpZGUgI2lmICFVU0UoQU5HTEUpIGJs
b2Nrcy4KKyAgICAgICAgRnJvbSB0aGVyZSwgdGhleSdyZSBzaW1wbGVyIHRvIG1vdmUgaW50byAh
QU5HTEUgc3BlY2lmaWMgZmlsZXMsCisgICAgICAgIGlmIHBvc3NpYmxlLgorCisgICAgICAgIFRo
aXMgaXMgd29yayB0b3dhcmRzIG1ha2luZyBpdCBwb3NzaWJsZSB0byByZW1vdmUgQU5HTEUgc3Bl
Y2lmaWMgI2lmCisgICAgICAgIGJsb2NrcyBmcm9tIFdlYkdMIGltcGxlbWVudGF0aW9uLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3IuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldENsZWFyQml0c0J5QXR0
YWNobWVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOgor
ICAgICAgICAoV2ViQ29yZTo6aXNBdHRhY2htZW50Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6aW5pdGlhbGl6ZUF0dGFjaG1lbnRzKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6cG9zc2libGVG
b3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Y29weVRleFN1YkltYWdlMkQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNUZXhJbnRlcm5hbEZvcm1hdENvbG9yQnVm
ZmVyQ29tYmluYXRpb25WYWxpZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dEdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuaDoKKwogMjAyMS0wOC0yMyAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIERlcHRoIHRlc3QgYWZmZWN0cyBXZWJHTCBy
ZW5kZXJpbmcgd2hlbiBjb250ZXh0IGhhcyBkZXB0aCA9PSBmYWxzZSwgc3RlbmNpbCA9PSB0cnVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCmlu
ZGV4IGI3YWQwYWU0NGYzMmI1ZmI1MTEwNzU4NWIxYzRjOGNkZGIwNDNiZTYuLjMxMTI5NDE1NzNl
ZmRkNDQ4NDIzNWI3OWYyNzZmZDQzOWI4ZDhkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCkBAIC0yNzIsMzQgKzI3MiwxNDEgQEAgbmFt
ZXNwYWNlIHsKICAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fdGV4dHVyZS5nZXQoKSk7
CiAgICAgfQogCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwogI2lmICFVU0UoQU5HTEUpCi0g
ICAgYm9vbCBpc0F0dGFjaG1lbnRDb21wbGV0ZShXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFj
aG1lbnQqIGF0dGFjaGVkT2JqZWN0LCBHQ0dMZW51bSBhdHRhY2htZW50LCBjb25zdCBjaGFyKiog
cmVhc29uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGF0dGFjaGVkT2JqZWN0ICYmIGF0dGFjaGVk
T2JqZWN0LT5pc1ZhbGlkKCkpOwotICAgICAgICBBU1NFUlQocmVhc29uKTsKLSAgICAgICAgR0NH
TGVudW0gZm9ybWF0ID0gYXR0YWNoZWRPYmplY3QtPmdldEZvcm1hdCgpOwotICAgICAgICB1bnNp
Z25lZCBuZWVkID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldENsZWFyQml0c0J5QXR0YWNo
bWVudFR5cGUoYXR0YWNobWVudCk7Ci0gICAgICAgIHVuc2lnbmVkIGhhdmUgPSBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQoZm9ybWF0KTsKLQotICAgICAgICBp
ZiAoKG5lZWQgJiBoYXZlKSAhPSBuZWVkKSB7Ci0gICAgICAgICAgICAqcmVhc29uID0gImF0dGFj
aG1lbnQgdHlwZSBpcyBub3QgY29ycmVjdCBmb3IgYXR0YWNobWVudCI7Ci0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFhdHRhY2hlZE9iamVjdC0+Z2V0
V2lkdGgoKSB8fCAhYXR0YWNoZWRPYmplY3QtPmdldEhlaWdodCgpKSB7Ci0gICAgICAgICAgICAq
cmVhc29uID0gImF0dGFjaG1lbnQgaGFzIGEgMCBkaW1lbnNpb24iOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoYXR0YWNobWVudCA9PSBHcmFwaGlj
c0NvbnRleHRHTDo6REVQVEhfQVRUQUNITUVOVCB8fCBhdHRhY2htZW50ID09IEdyYXBoaWNzQ29u
dGV4dEdMOjpTVEVOQ0lMX0FUVEFDSE1FTlQpCi0gICAgICAgICAgICAmJiBmb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUwpIHsKLSAgICAgICAgICAqcmVhc29uID0gImF0
dGFjaG1lbnQgREVQVEhfU1RFTkNJTCBub3QgYWxsb3dlZCBvbiBERVBUSCBvciBTVEVOQ0lMIGF0
dGFjaG1lbnQiOwotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKK3N0YXRpYyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBl
KEdDR0xlbnVtIGF0dGFjaG1lbnQpCit7CisgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQVRUQUNITUVOVDA6CisgICAgY2FzZSBFeHRl
bnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6
Q09MT1JfQVRUQUNITUVOVDJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRB
Q0hNRU5UM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ0X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDVfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09M
T1JfQVRUQUNITUVOVDhfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hN
RU5UOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMF9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNP
TE9SX0FUVEFDSE1FTlQxNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFD
SE1FTlQxNV9FWFQ6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVG
RkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9BVFRBQ0hNRU5UOgor
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0JVRkZFUl9CSVQ7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1
cm4gR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6CisgICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHRHTDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dEdMOjpT
VEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQotI2VuZGlmCit9CiAKLX0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorc3RhdGljIHVuc2lnbmVk
IGdldENsZWFyQml0c0J5Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZv
cm1hdCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5D
RV9BTFBIQToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0U6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
Ujg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjhfU05PUk06CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSMzJGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxNlVJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0R0w6OlIxNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMy
VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMySToKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSRzg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Ukc4X1NOT1JNOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlJHMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOFVJOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
UkcxNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZJOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHMzJVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzMy
SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlNSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjU2NToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlIxMUZfRzExRl9CMTBGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QjlfRTU6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4
VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOEk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UkdCMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxNkk6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJVSToKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0IzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTg6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQkE4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QjVfQTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQ6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCMTBfQTI6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
QTE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQkE4VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
QThJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjEwX0EyVUk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6UkdCQTE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
UkdCQTE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMlVJOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpTUkdC
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQ6CisgICAgICAgIHJl
dHVybiBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMOjpERVBUSF9DT01QT05FTlQyNDoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBU
SF9DT01QT05FTlQzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9O
RU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0JVRkZFUl9CSVQ7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9JTkRFWDg6CisgICAgICAgIHJl
dHVybiBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUw6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6REVQVEgyNF9TVEVOQ0lMODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSDMy
Rl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9CVUZG
RVJfQklUIHwgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CiAKK3N0YXRpYyBib29sIGlzQXR0YWNo
bWVudENvbXBsZXRlKFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCogYXR0YWNoZWRP
YmplY3QsIEdDR0xlbnVtIGF0dGFjaG1lbnQsIGNvbnN0IGNoYXIqKiByZWFzb24pCit7CisgICAg
QVNTRVJUKGF0dGFjaGVkT2JqZWN0ICYmIGF0dGFjaGVkT2JqZWN0LT5pc1ZhbGlkKCkpOworICAg
IEFTU0VSVChyZWFzb24pOworICAgIEdDR0xlbnVtIGZvcm1hdCA9IGF0dGFjaGVkT2JqZWN0LT5n
ZXRGb3JtYXQoKTsKKyAgICB1bnNpZ25lZCBuZWVkID0gZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50
VHlwZShhdHRhY2htZW50KTsKKyAgICB1bnNpZ25lZCBoYXZlID0gZ2V0Q2xlYXJCaXRzQnlGb3Jt
YXQoZm9ybWF0KTsKKworICAgIGlmICgobmVlZCAmIGhhdmUpICE9IG5lZWQpIHsKKyAgICAgICAg
KnJlYXNvbiA9ICJhdHRhY2htZW50IHR5cGUgaXMgbm90IGNvcnJlY3QgZm9yIGF0dGFjaG1lbnQi
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghYXR0YWNoZWRPYmplY3Qt
PmdldFdpZHRoKCkgfHwgIWF0dGFjaGVkT2JqZWN0LT5nZXRIZWlnaHQoKSkgeworICAgICAgICAq
cmVhc29uID0gImF0dGFjaG1lbnQgaGFzIGEgMCBkaW1lbnNpb24iOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIGlmICgoYXR0YWNobWVudCA9PSBHcmFwaGljc0NvbnRleHRHTDo6
REVQVEhfQVRUQUNITUVOVCB8fCBhdHRhY2htZW50ID09IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVO
Q0lMX0FUVEFDSE1FTlQpCisgICAgICAgICYmIGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHRHTDo6
REVQVEhfU1RFTkNJTCkgeworICAgICAgICAqcmVhc29uID0gImF0dGFjaG1lbnQgREVQVEhfU1RF
TkNJTCBub3QgYWxsb3dlZCBvbiBERVBUSCBvciBTVEVOQ0lMIGF0dGFjaG1lbnQiOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCisjZW5kaWYKIFdl
YkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudDo6V2ViR0xBdHRhY2htZW50KCkgPSBkZWZh
dWx0OwogCiBXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFjaG1lbnQ6On5XZWJHTEF0dGFjaG1l
bnQoKSA9IGRlZmF1bHQ7CkBAIC02MjAsNyArNzI3LDcgQEAgYm9vbCBXZWJHTEZyYW1lYnVmZmVy
Ojppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0R0wqIGczZCwgY29uc3QgY2hh
cioKICAgICAgICAgR0NHTGVudW0gYXR0YWNobWVudFR5cGUgPSBlbnRyeS5rZXk7CiAgICAgICAg
IFJlZlB0cjxXZWJHTEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnQgPSBlbnRyeS52YWx1ZS5nZXQoKTsK
ICAgICAgICAgaWYgKCFhdHRhY2htZW50LT5pc0luaXRpYWxpemVkKCkpCi0gICAgICAgICAgICBt
YXNrIHw9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRU
eXBlKGF0dGFjaG1lbnRUeXBlKTsKKyAgICAgICAgICAgIG1hc2sgfD0gZ2V0Q2xlYXJCaXRzQnlB
dHRhY2htZW50VHlwZShhdHRhY2htZW50VHlwZSk7CiAgICAgfQogICAgIGlmICghbWFzaykKICAg
ICAgICAgcmV0dXJuIHRydWU7CkBAIC02OTEsNyArNzk4LDcgQEAgYm9vbCBXZWJHTEZyYW1lYnVm
ZmVyOjppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0R0wqIGczZCwgY29uc3Qg
Y2hhcioKICAgICBmb3IgKEF0dGFjaG1lbnRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9hdHRhY2htZW50
cy5iZWdpbigpOyBpdCAhPSBtX2F0dGFjaG1lbnRzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIEdD
R0xlbnVtIGF0dGFjaG1lbnRUeXBlID0gaXQtPmtleTsKICAgICAgICAgYXV0byBhdHRhY2htZW50
ID0gaXQtPnZhbHVlOwotICAgICAgICBHQ0dMYml0ZmllbGQgYml0cyA9IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKGF0dGFjaG1lbnRUeXBlKTsK
KyAgICAgICAgR0NHTGJpdGZpZWxkIGJpdHMgPSBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBl
KGF0dGFjaG1lbnRUeXBlKTsKICAgICAgICAgaWYgKGJpdHMgJiBtYXNrKQogICAgICAgICAgICAg
YXR0YWNobWVudC0+c2V0SW5pdGlhbGl6ZWQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4
IGUwNzUzYWI3NzM3YTY5Y2M3NzA5OGQ1ZTE2NmIxYjk1MjEwOTAxMTQuLjU5ZDMyNjZhM2ZhOTVk
OGIxMGZlNDBlMmVhNWU0Nzk1ZTM4NzI1MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC01MjYsNiAr
NTI2LDExNiBAQCBzdGF0aWMgYm9vbCBjbGlwMkQoR0NHTGludCB4LCBHQ0dMaW50IHksIEdDR0xz
aXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwKIAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9
IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBwZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBl
ZEhlaWdodCAhPSBoZWlnaHQpOwogfQorCitzdGF0aWMgdWludDhfdCBnZXRDaGFubmVsQml0c0J5
Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdM
OjpMVU1JTkFOQ0U6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVs
Qml0czo6UkdCKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6UkdCQSk7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlJHQjU2NToKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQ6CisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6UkdCKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjVfQTE6CisgICAgY2FzZSBFeHRl
bnNpb25zR0w6OlNSR0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ2hhbm5lbEJpdHM6OlJHQkEpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIX0NPTVBPTkVOVDE2OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBP
TkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpE
ZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9JTkRFWDg6CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6U3RlbmNpbCk7Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTDoKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aFN0ZW5jaWwpOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKworc3RhdGljIGJvb2wgcG9zc2li
bGVGb3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQoR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdDR0xlbnVtJiBmb3JtYXQsIEdDR0xlbnVtJiB0eXBlKQoreworI2RlZmluZSBQT1NTSUJMRV9G
T1JNQVRfVFlQRV9DQVNFKGludGVybmFsRm9ybWF0TWFjcm8sIGZvcm1hdE1hY3JvLCB0eXBlTWFj
cm8pIGNhc2UgaW50ZXJuYWxGb3JtYXRNYWNybzogXAorICAgICAgICBmb3JtYXQgPSBmb3JtYXRN
YWNybzsgXAorICAgICAgICB0eXBlID0gdHlwZU1hY3JvOyBcCisgICAgICAgIGJyZWFrOworCisg
ICAgc3dpdGNoIChpbnRlcm5hbEZvcm1hdCkgeworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IsIEdy
YXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QkEsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6TFVNSU5BTkNFX0FMUEhBLCBHcmFw
aGljc0NvbnRleHRHTDo6TFVNSU5BTkNFX0FMUEhBLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdO
RURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250
ZXh0R0w6OkxVTUlOQU5DRSwgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5DRSwgR3JhcGhpY3ND
b250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKEdyYXBoaWNzQ29udGV4dEdMOjpBTFBIQSwgR3JhcGhpY3NDb250ZXh0R0w6OkFMUEhBLCBH
cmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlI4LCBHcmFwaGljc0NvbnRleHRHTDo6UkVE
LCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlI4X1NOT1JNLCBHcmFwaGljc0NvbnRl
eHRHTDo6UkVELCBHcmFwaGljc0NvbnRleHRHTDo6QllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlIxNkYsIEdyYXBoaWNzQ29udGV4dEdM
OjpSRUQsIEdyYXBoaWNzQ29udGV4dEdMOjpIQUxGX0ZMT0FUKTsKKyAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjMyRiwgR3JhcGhpY3NDb250ZXh0
R0w6OlJFRCwgR3JhcGhpY3NDb250ZXh0R0w6OkZMT0FUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjhVSSwgR3JhcGhpY3NDb250ZXh0R0w6
OlJFRF9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlI4SSwgR3JhcGhp
Y3NDb250ZXh0R0w6OlJFRF9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6QllURSk7CisgICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlIxNlVJLCBH
cmFwaGljc0NvbnRleHRHTDo6UkVEX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05F
RF9TSE9SVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250
ZXh0R0w6OlIxNkksIEdyYXBoaWNzQ29udGV4dEdMOjpSRURfSU5URUdFUiwgR3JhcGhpY3NDb250
ZXh0R0w6OlNIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGlj
c0NvbnRleHRHTDo6UjMyVUksIEdyYXBoaWNzQ29udGV4dEdMOjpSRURfSU5URUdFUiwgR3JhcGhp
Y3NDb250ZXh0R0w6OlVOU0lHTkVEX0lOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlIzMkksIEdyYXBoaWNzQ29udGV4dEdMOjpSRURfSU5U
RUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OklOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHOCwgR3JhcGhpY3NDb250ZXh0R0w6OlJHLCBH
cmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHOF9TTk9STSwgR3JhcGhpY3NDb250ZXh0
R0w6OlJHLCBHcmFwaGljc0NvbnRleHRHTDo6QllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZGLCBHcmFwaGljc0NvbnRleHRHTDo6
UkcsIEdyYXBoaWNzQ29udGV4dEdMOjpIQUxGX0ZMT0FUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkczMkYsIEdyYXBoaWNzQ29udGV4dEdM
OjpSRywgR3JhcGhpY3NDb250ZXh0R0w6OkZMT0FUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6Ukc4VUksIEdyYXBoaWNzQ29udGV4dEdMOjpS
R19JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgICAgIFBP
U1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHOEksIEdyYXBoaWNz
Q29udGV4dEdMOjpSR19JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6QllURSk7CisgICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZVSSwgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9T
SE9SVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0
R0w6OlJHMTZJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0
R0w6OlNIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0Nv
bnRleHRHTDo6UkczMlVJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdfSU5URUdFUiwgR3JhcGhpY3ND
b250ZXh0R0w6OlVOU0lHTkVEX0lOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NB
U0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHMzJJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdfSU5URUdF
UiwgR3JhcGhpY3NDb250ZXh0R0w6OklOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjgsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IsIEdy
YXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6U1JHQjgsIEdyYXBoaWNzQ29udGV4dEdMOjpS
R0IsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCNTY1LCBHcmFwaGljc0NvbnRl
eHRHTDo6UkdCLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlRfNV82XzUpOworICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4X1NO
T1JNLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCLCBHcmFwaGljc0NvbnRleHRHTDo6QllURSk7Cisg
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlIxMUZf
RzExRl9CMTBGLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCLCBHcmFwaGljc0NvbnRleHRHTDo6VU5T
SUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVik7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjlfRTUsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0Is
IEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9JTlRfNV85XzlfOV9SRVYpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpIQUxGX0ZMT0FUKTsKKyAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJGLCBH
cmFwaGljc0NvbnRleHRHTDo6UkdCLCBHcmFwaGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4VUksIEdy
YXBoaWNzQ29udGV4dEdMOjpSR0JfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVE
X0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4
dEdMOjpSR0I4SSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQl9JTlRFR0VSLCBHcmFwaGljc0NvbnRl
eHRHTDo6QllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3ND
b250ZXh0R0w6OlJHQjE2VUksIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JfSU5URUdFUiwgR3JhcGhp
Y3NDb250ZXh0R0w6OlVOU0lHTkVEX1NIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZ
UEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdC
X0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpTSE9SVCk7CisgICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjMyVUksIEdyYXBoaWNzQ29udGV4
dEdMOjpSR0JfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0lOVCk7CisgICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjMySSwg
R3JhcGhpY3NDb250ZXh0R0w6OlJHQl9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6SU5UKTsK
KyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdC
QTgsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURf
QllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0
R0w6OlNSR0I4X0FMUEhBOCwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEsIEdyYXBoaWNzQ29udGV4
dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShH
cmFwaGljc0NvbnRleHRHTDo6UkdCQThfU05PUk0sIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBLCBH
cmFwaGljc0NvbnRleHRHTDo6QllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NB
U0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjVfQTEsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBLCBH
cmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlRfNV81XzVfMSk7CisgICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE0LCBHcmFwaGljc0Nv
bnRleHRHTDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX1NIT1JUXzRfNF80XzQp
OworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpS
R0IxMF9BMiwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJ
R05FRF9JTlRfMl8xMF8xMF8xMF9SRVYpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQSwg
R3JhcGhpY3NDb250ZXh0R0w6OkhBTEZfRkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRf
VFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJGLCBHcmFwaGljc0NvbnRleHRHTDo6
UkdCQSwgR3JhcGhpY3NDb250ZXh0R0w6OkZMT0FUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCQThVSSwgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQkFfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOEksIEdy
YXBoaWNzQ29udGV4dEdMOjpSR0JBX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsK
KyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdC
MTBfQTJVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkFfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0
R0w6OlVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVik7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQkExNlVJLCBHcmFwaGljc0NvbnRleHRH
TDo6UkdCQV9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlQpOworICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMTZJ
LCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQV9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6U0hP
UlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdM
OjpSR0JBMzJJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQV9JTlRFR0VSLCBHcmFwaGljc0NvbnRl
eHRHTDo6SU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0Nv
bnRleHRHTDo6UkdCQTMyVUksIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBX0lOVEVHRVIsIEdyYXBo
aWNzQ29udGV4dEdMOjpVTlNJR05FRF9JTlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQxNiwgR3JhcGhpY3NDb250
ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVCwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX1NIT1JU
KTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6
REVQVEhfQ09NUE9ORU5ULCBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5ULCBHcmFw
aGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRf
VFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQyNCwgR3JhcGhpY3ND
b250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVCwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0lO
VCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIX0NPTVBPTkVOVDMyRiwgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVCwg
R3JhcGhpY3NDb250ZXh0R0w6OkZMT0FUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTCwgR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIX1NURU5DSUwsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9JTlRfMjRfOCk7Cisg
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRI
MjRfU1RFTkNJTDgsIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMLCBHcmFwaGljc0Nv
bnRleHRHTDo6VU5TSUdORURfSU5UXzI0XzgpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSDMyRl9TVEVOQ0lMOCwgR3JhcGhpY3NDb250
ZXh0R0w6OkRFUFRIX1NURU5DSUwsIEdyYXBoaWNzQ29udGV4dEdMOjpGTE9BVF8zMl9VTlNJR05F
RF9JTlRfMjRfOF9SRVYpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEV4dGVu
c2lvbnNHTDo6U1JHQl9FWFQsIEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQsIEdyYXBoaWNzQ29udGV4
dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShF
eHRlbnNpb25zR0w6OlNSR0JfQUxQSEFfRVhULCBFeHRlbnNpb25zR0w6OlNSR0JfQUxQSEFfRVhU
LCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyN1bmRlZiBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2VuZGlmCiAKIGNsYXNzIEluc3BlY3RvclNjb3Bl
ZFNoYWRlclByb2dyYW1IaWdobGlnaHQgewpAQCAtMTkyNCw3ICsyMDM0LDcgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb3B5VGV4U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQs
IEdDR0xpbnQgbGV2ZWwKICAgICBpZiAoY2xpcDJEKHgsIHksIHdpZHRoLCBoZWlnaHQsIGdldEJv
dW5kUmVhZEZyYW1lYnVmZmVyV2lkdGgoKSwgZ2V0Qm91bmRSZWFkRnJhbWVidWZmZXJIZWlnaHQo
KSwgJmNsaXBwZWRYLCAmY2xpcHBlZFksICZjbGlwcGVkV2lkdGgsICZjbGlwcGVkSGVpZ2h0KSkg
ewogICAgICAgICBHQ0dMZW51bSBmb3JtYXQ7CiAgICAgICAgIEdDR0xlbnVtIHR5cGU7Ci0gICAg
ICAgIGlmICghR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnBvc3NpYmxlRm9ybWF0QW5kVHlwZUZv
ckludGVybmFsRm9ybWF0KHRleC0+Z2V0SW50ZXJuYWxGb3JtYXQodGFyZ2V0LCBsZXZlbCksIGZv
cm1hdCwgdHlwZSkpIHsKKyAgICAgICAgaWYgKCFwb3NzaWJsZUZvcm1hdEFuZFR5cGVGb3JJbnRl
cm5hbEZvcm1hdCh0ZXgtPmdldEludGVybmFsRm9ybWF0KHRhcmdldCwgbGV2ZWwpLCBmb3JtYXQs
IHR5cGUpKSB7CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRH
TDo6SU5WQUxJRF9FTlVNLCAiY29weVRleFN1YkltYWdlMkQiLCAiVGV4dHVyZSBoYXMgdW5rbm93
biBpbnRlcm5hbCBmb3JtYXQiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
NjU1NCw4ICs2NjY0LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVG
YWxsYmFja0JsYWNrVGV4dHVyZXMxeDEoKQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNvbWJpbmF0aW9uVmFsaWQoR0NHTGVu
dW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGNvbG9yQnVmZmVyRm9ybWF0KQogewotICAg
IGF1dG8gbmVlZCA9IEdyYXBoaWNzQ29udGV4dEdMOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KHRl
eEludGVybmFsRm9ybWF0KTsKLSAgICBhdXRvIGhhdmUgPSBHcmFwaGljc0NvbnRleHRHTDo6Z2V0
Q2hhbm5lbEJpdHNCeUZvcm1hdChjb2xvckJ1ZmZlckZvcm1hdCk7CisgICAgYXV0byBuZWVkID0g
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZl
ID0gZ2V0Q2hhbm5lbEJpdHNCeUZvcm1hdChjb2xvckJ1ZmZlckZvcm1hdCk7CiAgICAgcmV0dXJu
IChuZWVkICYgaGF2ZSkgPT0gbmVlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IGNlOTcxOWEyM2Rk
MzI0M2M2YTg3ZDY1YjVlNGY5MDJjMjcwYTA0ODYuLjM2ZTM0MzFmNTZmMDhjYmEyOGQ2MDBlZmVh
MTM1MTJkYzgyOTRiOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTM2OSwxNDMgKzM2OSw2IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0R0w6OmVuYWJsZVByZXNlcnZlRHJhd2luZ0J1ZmZlcigpCiAgICAgbV9h
dHRycy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSB0cnVlOwogfQogCi11bnNpZ25lZCBHcmFwaGlj
c0NvbnRleHRHTDo6Z2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQ0dMZW51bSBhdHRhY2ht
ZW50KQotewotICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OkNPTE9SX0FUVEFDSE1FTlQwOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9B
VFRBQ0hNRU5UMV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQy
X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDNfRVhUOgotICAg
IGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UNF9FWFQ6Ci0gICAgY2FzZSBFeHRl
bnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6
Q09MT1JfQVRUQUNITUVOVDZfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRB
Q0hNRU5UN19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ4X0VY
VDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDlfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUOgotICAgIGNhc2UgRXh0ZW5z
aW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpD
T0xPUl9BVFRBQ0hNRU5UMTJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRB
Q0hNRU5UMTNfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTRf
RVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkNPTE9SX0JVRkZFUl9CSVQ7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQVRUQUNITUVOVDoKLSAgICAgICAgcmV0dXJuIEdy
YXBoaWNzQ29udGV4dEdMOjpERVBUSF9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlNURU5DSUxfQVRUQUNITUVOVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklU
OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQg
R3JhcGhpY3NDb250ZXh0R0w6OmdldENsZWFyQml0c0J5Rm9ybWF0KEdDR0xlbnVtIGZvcm1hdCkK
LXsKLSAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOgotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OkxVTUlOQU5DRV9BTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpM
VU1JTkFOQ0U6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6QUxQSEE6Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjhfU05P
Uk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjE2RjoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjhJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlIxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxNkk6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UjMyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMySToK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6Ukc4X1NOT1JNOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMTZGOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlJHOFVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOEk6Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6UkcxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
MTZJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHMzJVSToKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSRzMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4Ogot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNSR0I4OgotICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlJHQjU2NToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4X1NOT1JNOgot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIxMUZfRzExRl9CMTBGOgotICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQjlfRTU6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
MTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjMyRjoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0I4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOEk6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZVSToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0IxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJVSToK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHRHTDo6UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1JHQjhfQUxQSEE4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4X1NOT1JNOgotICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQjVfQTE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
QTQ6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTBfQTI6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCQTE2RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JB
MzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4VUk6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCQThJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjEw
X0EyVUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTE2VUk6Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6UkdCQTE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpS
R0JBMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMlVJOgotICAgIGNhc2Ug
RXh0ZW5zaW9uc0dMOjpTUkdCX0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBI
QV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJ
VDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQxNjoKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQyNDoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6REVQVEhfQ09NUE9ORU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9J
TkRFWDg6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJf
QklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUw6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEgyNF9TVEVOQ0lMODoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpERVBUSDMyRl9TVEVOQ0lMODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dEdMOjpERVBUSF9CVUZGRVJfQklUIHwgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVG
RkVSX0JJVDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci19Ci0KLXVp
bnQ4X3QgR3JhcGhpY3NDb250ZXh0R0w6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0NHTGVudW0g
Zm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVs
Qml0czo6QWxwaGEpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5DRToKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0IpOwotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5DRV9BTFBIQToKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0IpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQ6Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6UkdCNV9BMToKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JHQl9B
TFBIQV9FWFQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0
czo6UkdCQSk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5UMTY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5UOgotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OkRlcHRoKTsKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpTdGVuY2lsKTsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpERVBUSF9TVEVOQ0lMOgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgfQotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dEdMOjpjb21wdXRlRm9y
bWF0QW5kVHlwZVBhcmFtZXRlcnMoR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCB1bnNp
Z25lZCogY29tcG9uZW50c1BlclBpeGVsLCB1bnNpZ25lZCogYnl0ZXNQZXJDb21wb25lbnQpCiB7
CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IGViNzIyMjYwMjI2MTM1ODE0YTc3
NTZjYjYyZTUxNWQwMmRlOGVlYjQuLmFlZjkzZTFjMWUwMjBhYmYwOTM4ZjFjZmViNTgzYmVjODk2
ODZjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0R0wuaApAQCAtMTMxOCwxMSArMTMxOCw2IEBAIHB1YmxpYzoKIAogICAgIElu
dFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXpl
KG1fY3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQpOyB9CiAKLSAgICBzdGF0aWMgdW5zaWdu
ZWQgZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQ0dMZW51bSk7Ci0gICAgc3RhdGljIHVu
c2lnbmVkIGdldENsZWFyQml0c0J5Rm9ybWF0KEdDR0xlbnVtKTsKLQotICAgIHN0YXRpYyB1aW50
OF90IGdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0NHTGVudW0pOwotCiAgICAgc3RydWN0IFBpeGVs
U3RvcmVQYXJhbXMgZmluYWwgewogICAgICAgICBHQ0dMaW50IGFsaWdubWVudCB7IDQgfTsKICAg
ICAgICAgR0NHTGludCByb3dMZW5ndGggeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmNwcAppbmRleCBlMDk0MmM0OGJkZGMxMjc5OWEzOTE4NjM2MDBkOTY5MWViYWRjZjkw
Li5lNjAzYzJiZjVmZmJhN2FmMmIzNDJlODBkNzY4NGEwOTcxNDEwZmViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTEwNyw4OCArMTA3LDYgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6dGV4SW1hZ2UyRFJlc291cmNlU2FmZShHQ0dMZW51bSB0YXJn
ZXQsIEdDR0xpbnQgbGUKICNlbmRpZgogCiAKLSNpZiAhVVNFKEFOR0xFKQotYm9vbCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6cG9zc2libGVGb3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxGb3JtYXQo
R0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtJiBmb3JtYXQsIEdDR0xlbnVtJiB0eXBl
KQotewotI2RlZmluZSBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKGludGVybmFsRm9ybWF0TWFj
cm8sIGZvcm1hdE1hY3JvLCB0eXBlTWFjcm8pIGNhc2UgaW50ZXJuYWxGb3JtYXRNYWNybzogXAot
ICAgICAgICBmb3JtYXQgPSBmb3JtYXRNYWNybzsgXAotICAgICAgICB0eXBlID0gdHlwZU1hY3Jv
OyBcCi0gICAgICAgIGJyZWFrOwotCi0gICAgc3dpdGNoIChpbnRlcm5hbEZvcm1hdCkgewotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQiwgUkdCLCBVTlNJR05FRF9CWVRFKTsK
LSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBLCBSR0JBLCBVTlNJR05FRF9C
WVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShMVU1JTkFOQ0VfQUxQSEEs
IExVTUlOQU5DRV9BTFBIQSwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoTFVNSU5BTkNFLCBMVU1JTkFOQ0UsIFVOU0lHTkVEX0JZVEUpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEFMUEhBLCBBTFBIQSwgVU5TSUdORURfQllURSk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjgsIFJFRCwgVU5TSUdORURfQllU
RSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjhfU05PUk0sIFJFRCwgQllU
RSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjE2RiwgUkVELCBIQUxGX0ZM
T0FUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSMzJGLCBSRUQsIEZMT0FU
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSOFVJLCBSRURfSU5URUdFUiwg
VU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjhJLCBS
RURfSU5URUdFUiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjE2
VUksIFJFRF9JTlRFR0VSLCBVTlNJR05FRF9TSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1B
VF9UWVBFX0NBU0UoUjE2SSwgUkVEX0lOVEVHRVIsIFNIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShSMzJVSSwgUkVEX0lOVEVHRVIsIFVOU0lHTkVEX0lOVCk7Ci0gICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUjMySSwgUkVEX0lOVEVHRVIsIElOVCk7Ci0g
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4LCBSRywgVU5TSUdORURfQllURSk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4X1NOT1JNLCBSRywgQllURSk7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkcxNkYsIFJHLCBIQUxGX0ZMT0FU
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzMyRiwgUkcsIEZMT0FUKTsK
LSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzhVSSwgUkdfSU5URUdFUiwgVU5T
SUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkc4SSwgUkdf
SU5URUdFUiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkcxNlVJ
LCBSR19JTlRFR0VSLCBVTlNJR05FRF9TSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UoUkcxNkksIFJHX0lOVEVHRVIsIFNIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShSRzMyVUksIFJHX0lOVEVHRVIsIFVOU0lHTkVEX0lOVCk7Ci0gICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkczMkksIFJHX0lOVEVHRVIsIElOVCk7Ci0gICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOCwgUkdCLCBVTlNJR05FRF9CWVRFKTsK
LSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShTUkdCOCwgUkdCLCBVTlNJR05FRF9C
WVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0I1NjUsIFJHQiwgVU5T
SUdORURfU0hPUlRfNV82XzUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJH
QjhfU05PUk0sIFJHQiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
UjExRl9HMTFGX0IxMEYsIFJHQiwgVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVik7Ci0gICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOV9FNSwgUkdCLCBVTlNJR05FRF9JTlRf
NV85XzlfOV9SRVYpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjE2Riwg
UkdCLCBIQUxGX0ZMT0FUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0Iz
MkYsIFJHQiwgRkxPQVQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjhV
SSwgUkdCX0lOVEVHRVIsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRf
VFlQRV9DQVNFKFJHQjhJLCBSR0JfSU5URUdFUiwgQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoUkdCMTZVSSwgUkdCX0lOVEVHRVIsIFVOU0lHTkVEX1NIT1JUKTsKLSAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IxNkksIFJHQl9JTlRFR0VSLCBTSE9S
VCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMzJVSSwgUkdCX0lOVEVH
RVIsIFVOU0lHTkVEX0lOVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdC
MzJJLCBSR0JfSU5URUdFUiwgSU5UKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShSR0JBOCwgUkdCQSwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UoU1JHQjhfQUxQSEE4LCBSR0JBLCBVTlNJR05FRF9CWVRFKTsKLSAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBOF9TTk9STSwgUkdCQSwgQllURSk7Ci0gICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCNV9BMSwgUkdCQSwgVU5TSUdORURfU0hPUlRf
NV81XzVfMSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTQsIFJHQkEs
IFVOU0lHTkVEX1NIT1JUXzRfNF80XzQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKFJHQjEwX0EyLCBSR0JBLCBVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkExNkYsIFJHQkEsIEhBTEZfRkxPQVQpOwot
ICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkEzMkYsIFJHQkEsIEZMT0FUKTsK
LSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBOFVJLCBSR0JBX0lOVEVHRVIs
IFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkE4
SSwgUkdCQV9JTlRFR0VSLCBCWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShSR0IxMF9BMlVJLCBSR0JBX0lOVEVHRVIsIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVik7
Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTE2VUksIFJHQkFfSU5URUdF
UiwgVU5TSUdORURfU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJH
QkExNkksIFJHQkFfSU5URUdFUiwgU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKFJHQkEzMkksIFJHQkFfSU5URUdFUiwgSU5UKTsKLSAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShSR0JBMzJVSSwgUkdCQV9JTlRFR0VSLCBVTlNJR05FRF9JTlQpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX0NPTVBPTkVOVDE2LCBERVBUSF9D
T01QT05FTlQsIFVOU0lHTkVEX1NIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShERVBUSF9DT01QT05FTlQsIERFUFRIX0NPTVBPTkVOVCwgVU5TSUdORURfU0hPUlQpOwot
ICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX0NPTVBPTkVOVDI0LCBERVBU
SF9DT01QT05FTlQsIFVOU0lHTkVEX0lOVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoREVQVEhfQ09NUE9ORU5UMzJGLCBERVBUSF9DT01QT05FTlQsIEZMT0FUKTsKLSAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShERVBUSF9TVEVOQ0lMLCBERVBUSF9TVEVOQ0lM
LCBVTlNJR05FRF9JTlRfMjRfOCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
REVQVEgyNF9TVEVOQ0lMOCwgREVQVEhfU1RFTkNJTCwgVU5TSUdORURfSU5UXzI0XzgpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIMzJGX1NURU5DSUw4LCBERVBUSF9T
VEVOQ0lMLCBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYpOwotICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKEV4dGVuc2lvbnNHTDo6U1JHQl9FWFQsIEV4dGVuc2lvbnNHTDo6
U1JHQl9FWFQsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQsIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBI
QV9FWFQsIFVOU0lHTkVEX0JZVEUpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0jdW5kZWYgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRQotCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0jZW5kaWYgLy8gIVVTRShBTkdMRSkKLQotCiAjaWYgIVBMQVRGT1JNKENPQ09B
KQogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2V0Q29udGV4dFZpc2liaWxpdHkoYm9v
bCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggYWIyZTcyNTAwOGJh
YmZmNTM4NDZmNDM4OTYyNjY4NzdmNGU4NzBmZC4uYTI5NGUzNTYwNGU3N2ZkZWJkODg0MWM1NThk
OTQzZTM0NThhMWZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTUy
NCwxMCArNTI0LDYgQEAgcHVibGljOgogICAgIEdyYXBoaWNzQ29udGV4dEdMQ1YqIGFzQ1YoKSBm
aW5hbDsKICNlbmRpZgogCi0jaWYgIVVTRShBTkdMRSkKLSAgICBzdGF0aWMgYm9vbCBwb3NzaWJs
ZUZvcm1hdEFuZFR5cGVGb3JJbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0NHTGVudW0mIGZvcm1hdCwgR0NHTGVudW0mIHR5cGUpOwotI2VuZGlmIC8vICFVU0UoQU5HTEUp
Ci0KICAgICBzdGF0aWMgdm9pZCBwYWludFRvQ2FudmFzKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyYsIFBpeGVsQnVmZmVyJiYsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdy
YXBoaWNzQ29udGV4dCYpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436373</attachid>
            <date>2021-08-25 00:19:10 -0700</date>
            <delta_ts>2021-08-26 05:46:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229402-20210825101908.patch</filename>
            <type>text/plain</type>
            <size>34572</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgyMjQ5MzM0YTAzNDI0
YWQ2YTFkNTkxMDllN2VlYThlYjkxMjNhNi4uOWE2N2U5NDRkMzIxNmZiM2EzNjJiYjE3ZmMzZmEw
ZjE0ZDYyMTc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA4LTI1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY2FsbHMg
aW50byBzdGF0aWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZnVuY3Rpb25zIG5lZWRsZXNzbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAgICBUaGUgY2Fs
bHMgYXJlIHByb2JsZW1hdGljOgorICAgICAgICAtIE5vIG90aGVyIGNhbGwgc2l0ZXMgdGhhbiBX
ZWJHTCBsYXllcgorICAgICAgICAtIFRoZSBmdW5jdGlvbmFsaXR5IGlzIG5vdCBuZWVkZWQgZm9y
IEFOR0xFLCBidXQgcHJlc2VudAorICAgICAgICAtIEdyYXBoaWNzQ29udGV4dEdMIGlzIG5vdyBh
biBpbnRlcmZhY2Ugd2l0aCBtdWx0aXBsZSBpbXBsZW1lbnRhdGlvbnMsCisgICAgICAgICAgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wgaXMganVzdCBvbmUgaW1wbGVtZW50YXRpb24KKworICAgICAg
ICBNb3ZlIHRoZSBmdW5jdGlvbnMgaW50byBXZWJHTCwgaW5zaWRlICNpZiAhVVNFKEFOR0xFKSBi
bG9ja3MuCisgICAgICAgIEZyb20gdGhlcmUsIHRoZXkncmUgc2ltcGxlciB0byBtb3ZlIGludG8g
IUFOR0xFIHNwZWNpZmljIGZpbGVzLAorICAgICAgICBpZiBwb3NzaWJsZS4KKworICAgICAgICBU
aGlzIGlzIHdvcmsgdG93YXJkcyBtYWtpbmcgaXQgcG9zc2libGUgdG8gcmVtb3ZlIEFOR0xFIHNw
ZWNpZmljICNpZgorICAgICAgICBibG9ja3MgZnJvbSBXZWJHTCBpbXBsZW1lbnRhdGlvbi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xGcmFtZWJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRDbGVhckJpdHNCeUF0
dGFjaG1lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmdldENsZWFyQml0c0J5Rm9ybWF0KToK
KyAgICAgICAgKFdlYkNvcmU6OmlzQXR0YWNobWVudENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMRnJhbWVidWZmZXI6OmluaXRpYWxpemVBdHRhY2htZW50cyk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3NpYmxl
Rm9ybWF0QW5kVHlwZUZvckludGVybmFsRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1
ZmZlckNvbWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmg6CisKIDIwMjEtMDgtMjMgIEtpbW1vIEtpbm51bmVuICA8
a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBEZXB0aCB0ZXN0IGFmZmVjdHMgV2ViR0wg
cmVuZGVyaW5nIHdoZW4gY29udGV4dCBoYXMgZGVwdGggPT0gZmFsc2UsIHN0ZW5jaWwgPT0gdHJ1
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcApp
bmRleCBiN2FkMGFlNDRmMzJiNWZiNTExMDc1ODViMWM0YzhjZGRiMDQzYmU2Li4zMTEyOTQxNTcz
ZWZkZDQ0ODQyMzViNzlmMjc2ZmQ0MzliOGQ4ZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcApAQCAtMjcyLDM0ICsyNzIsMTQxIEBAIG5h
bWVzcGFjZSB7CiAgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3RleHR1cmUuZ2V0KCkp
OwogICAgIH0KIAorfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKICNpZiAhVVNFKEFOR0xFKQot
ICAgIGJvb2wgaXNBdHRhY2htZW50Q29tcGxldGUoV2ViR0xGcmFtZWJ1ZmZlcjo6V2ViR0xBdHRh
Y2htZW50KiBhdHRhY2hlZE9iamVjdCwgR0NHTGVudW0gYXR0YWNobWVudCwgY29uc3QgY2hhcioq
IHJlYXNvbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChhdHRhY2hlZE9iamVjdCAmJiBhdHRhY2hl
ZE9iamVjdC0+aXNWYWxpZCgpKTsKLSAgICAgICAgQVNTRVJUKHJlYXNvbik7Ci0gICAgICAgIEdD
R0xlbnVtIGZvcm1hdCA9IGF0dGFjaGVkT2JqZWN0LT5nZXRGb3JtYXQoKTsKLSAgICAgICAgdW5z
aWduZWQgbmVlZCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKGF0dGFjaG1lbnQpOwotICAgICAgICB1bnNpZ25lZCBoYXZlID0gR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmdldENsZWFyQml0c0J5Rm9ybWF0KGZvcm1hdCk7Ci0KLSAgICAgICAg
aWYgKChuZWVkICYgaGF2ZSkgIT0gbmVlZCkgewotICAgICAgICAgICAgKnJlYXNvbiA9ICJhdHRh
Y2htZW50IHR5cGUgaXMgbm90IGNvcnJlY3QgZm9yIGF0dGFjaG1lbnQiOwotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICghYXR0YWNoZWRPYmplY3QtPmdl
dFdpZHRoKCkgfHwgIWF0dGFjaGVkT2JqZWN0LT5nZXRIZWlnaHQoKSkgewotICAgICAgICAgICAg
KnJlYXNvbiA9ICJhdHRhY2htZW50IGhhcyBhIDAgZGltZW5zaW9uIjsKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKGF0dGFjaG1lbnQgPT0gR3JhcGhp
Y3NDb250ZXh0R0w6OkRFUFRIX0FUVEFDSE1FTlQgfHwgYXR0YWNobWVudCA9PSBHcmFwaGljc0Nv
bnRleHRHTDo6U1RFTkNJTF9BVFRBQ0hNRU5UKQotICAgICAgICAgICAgJiYgZm9ybWF0ID09IEdy
YXBoaWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMKSB7Ci0gICAgICAgICAgKnJlYXNvbiA9ICJh
dHRhY2htZW50IERFUFRIX1NURU5DSUwgbm90IGFsbG93ZWQgb24gREVQVEggb3IgU1RFTkNJTCBh
dHRhY2htZW50IjsKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHRydWU7CitzdGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlw
ZShHQ0dMZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAoYXR0YWNobWVudCkgeworICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkNPTE9SX0FUVEFDSE1FTlQwOgorICAgIGNhc2UgRXh0
ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6
OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRU
QUNITUVOVDNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UNF9F
WFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDZfRVhUOgorICAgIGNhc2UgRXh0ZW5z
aW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OkNP
TE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNI
TUVOVDlfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTBfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUOgorICAgIGNhc2UgRXh0ZW5z
aW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpD
T0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRB
Q0hNRU5UMTVfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkNPTE9SX0JV
RkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQVRUQUNITUVOVDoK
KyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9CVUZGRVJfQklUOworICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFwaGljc0NvbnRleHRHTDo6
U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOwogICAg
IH0KLSNlbmRpZgorfQogCi19IC8vIGFub255bW91cyBuYW1lc3BhY2UKK3N0YXRpYyB1bnNpZ25l
ZCBnZXRDbGVhckJpdHNCeUZvcm1hdChHQ0dMZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChm
b3JtYXQpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkdCQToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFO
Q0VfQUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6TFVNSU5BTkNFOgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OkFMUEhBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlI4X1NOT1JNOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlIxNkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0R0w6OlI4SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSMTZVSToKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpSMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIz
MlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlIzMkk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6Ukc4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHOF9TTk9STToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSRzMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzhVSToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlJHMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzE2SToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpSRzMyVUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Ukcz
Mkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpTUkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I1NjU6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOF9TTk9STToKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpSMTFGX0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpS
R0I5X0U1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjE2RjoKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
OFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjhJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4Ogor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNSR0I4X0FMUEhBODoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0JBOF9TTk9STToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpS
R0I1X0ExOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE0OgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QkExNkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTMyRjoKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJH
QkE4SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxMF9BMlVJOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0R0w6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQkExNkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTMySToKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMzJVSToKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6U1JH
Ql9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zR0w6OlNSR0JfQUxQSEFfRVhUOgorICAgICAgICBy
ZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkNPTE9SX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6REVQVEhfQ09NUE9ORU5UMjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQ
VEhfQ09NUE9ORU5UMzJGOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBP
TkVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9CVUZGRVJfQklU
OworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICBy
ZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OlNURU5DSUxfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OkRFUFRIMjRfU1RFTkNJTDg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEgz
MkZfU1RFTkNJTDg6CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQlVG
RkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQogCitzdGF0aWMgYm9vbCBpc0F0dGFj
aG1lbnRDb21wbGV0ZShXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFjaG1lbnQqIGF0dGFjaGVk
T2JqZWN0LCBHQ0dMZW51bSBhdHRhY2htZW50LCBjb25zdCBjaGFyKiogcmVhc29uKQoreworICAg
IEFTU0VSVChhdHRhY2hlZE9iamVjdCAmJiBhdHRhY2hlZE9iamVjdC0+aXNWYWxpZCgpKTsKKyAg
ICBBU1NFUlQocmVhc29uKTsKKyAgICBHQ0dMZW51bSBmb3JtYXQgPSBhdHRhY2hlZE9iamVjdC0+
Z2V0Rm9ybWF0KCk7CisgICAgdW5zaWduZWQgbmVlZCA9IGdldENsZWFyQml0c0J5QXR0YWNobWVu
dFR5cGUoYXR0YWNobWVudCk7CisgICAgdW5zaWduZWQgaGF2ZSA9IGdldENsZWFyQml0c0J5Rm9y
bWF0KGZvcm1hdCk7CisKKyAgICBpZiAoKG5lZWQgJiBoYXZlKSAhPSBuZWVkKSB7CisgICAgICAg
ICpyZWFzb24gPSAiYXR0YWNobWVudCB0eXBlIGlzIG5vdCBjb3JyZWN0IGZvciBhdHRhY2htZW50
IjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoIWF0dGFjaGVkT2JqZWN0
LT5nZXRXaWR0aCgpIHx8ICFhdHRhY2hlZE9iamVjdC0+Z2V0SGVpZ2h0KCkpIHsKKyAgICAgICAg
KnJlYXNvbiA9ICJhdHRhY2htZW50IGhhcyBhIDAgZGltZW5zaW9uIjsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICBpZiAoKGF0dGFjaG1lbnQgPT0gR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIX0FUVEFDSE1FTlQgfHwgYXR0YWNobWVudCA9PSBHcmFwaGljc0NvbnRleHRHTDo6U1RF
TkNJTF9BVFRBQ0hNRU5UKQorICAgICAgICAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIX1NURU5DSUwpIHsKKyAgICAgICAgKnJlYXNvbiA9ICJhdHRhY2htZW50IERFUFRIX1NU
RU5DSUwgbm90IGFsbG93ZWQgb24gREVQVEggb3IgU1RFTkNJTCBhdHRhY2htZW50IjsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworI2VuZGlmCiBX
ZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFjaG1lbnQ6OldlYkdMQXR0YWNobWVudCgpID0gZGVm
YXVsdDsKIAogV2ViR0xGcmFtZWJ1ZmZlcjo6V2ViR0xBdHRhY2htZW50Ojp+V2ViR0xBdHRhY2ht
ZW50KCkgPSBkZWZhdWx0OwpAQCAtNjIwLDcgKzcyNyw3IEBAIGJvb2wgV2ViR0xGcmFtZWJ1ZmZl
cjo6aW5pdGlhbGl6ZUF0dGFjaG1lbnRzKEdyYXBoaWNzQ29udGV4dEdMKiBnM2QsIGNvbnN0IGNo
YXIqCiAgICAgICAgIEdDR0xlbnVtIGF0dGFjaG1lbnRUeXBlID0gZW50cnkua2V5OwogICAgICAg
ICBSZWZQdHI8V2ViR0xBdHRhY2htZW50PiBhdHRhY2htZW50ID0gZW50cnkudmFsdWUuZ2V0KCk7
CiAgICAgICAgIGlmICghYXR0YWNobWVudC0+aXNJbml0aWFsaXplZCgpKQotICAgICAgICAgICAg
bWFzayB8PSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50
VHlwZShhdHRhY2htZW50VHlwZSk7CisgICAgICAgICAgICBtYXNrIHw9IGdldENsZWFyQml0c0J5
QXR0YWNobWVudFR5cGUoYXR0YWNobWVudFR5cGUpOwogICAgIH0KICAgICBpZiAoIW1hc2spCiAg
ICAgICAgIHJldHVybiB0cnVlOwpAQCAtNjkxLDcgKzc5OCw3IEBAIGJvb2wgV2ViR0xGcmFtZWJ1
ZmZlcjo6aW5pdGlhbGl6ZUF0dGFjaG1lbnRzKEdyYXBoaWNzQ29udGV4dEdMKiBnM2QsIGNvbnN0
IGNoYXIqCiAgICAgZm9yIChBdHRhY2htZW50TWFwOjppdGVyYXRvciBpdCA9IG1fYXR0YWNobWVu
dHMuYmVnaW4oKTsgaXQgIT0gbV9hdHRhY2htZW50cy5lbmQoKTsgKytpdCkgewogICAgICAgICBH
Q0dMZW51bSBhdHRhY2htZW50VHlwZSA9IGl0LT5rZXk7CiAgICAgICAgIGF1dG8gYXR0YWNobWVu
dCA9IGl0LT52YWx1ZTsKLSAgICAgICAgR0NHTGJpdGZpZWxkIGJpdHMgPSBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Z2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShhdHRhY2htZW50VHlwZSk7
CisgICAgICAgIEdDR0xiaXRmaWVsZCBiaXRzID0gZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlw
ZShhdHRhY2htZW50VHlwZSk7CiAgICAgICAgIGlmIChiaXRzICYgbWFzaykKICAgICAgICAgICAg
IGF0dGFjaG1lbnQtPnNldEluaXRpYWxpemVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRl
eCBlMDc1M2FiNzczN2E2OWNjNzcwOThkNWUxNjZiMWI5NTIxMDkwMTE0Li45OGY1MGIyZmZmOWE1
N2RmMWNkYjQ0NjlkM2FiYTNmODNmNjQzNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNTI2LDYg
KzUyNiwxMjcgQEAgc3RhdGljIGJvb2wgY2xpcDJEKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dM
c2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsCiAKICAgICByZXR1cm4gKCpjbGlwcGVkWCAh
PSB4IHx8ICpjbGlwcGVkWSAhPSB5IHx8ICpjbGlwcGVkV2lkdGggIT0gd2lkdGggfHwgKmNsaXBw
ZWRIZWlnaHQgIT0gaGVpZ2h0KTsKIH0KKworc3RhdGljIHVpbnQ4X3QgZ2V0Q2hhbm5lbEJpdHNC
eUZvcm1hdChHQ0dMZW51bSBmb3JtYXQpCit7CisgICAgZW51bSBjbGFzcyBDaGFubmVsQml0cyA6
IHVpbnQ4X3QgeworICAgICAgICBSZWQgPSAxLAorICAgICAgICBHcmVlbiA9IDIsCisgICAgICAg
IEJsdWUgPSA0LAorICAgICAgICBBbHBoYSA9IDgsCisgICAgICAgIERlcHRoID0gMTYsCisgICAg
ICAgIFN0ZW5jaWwgPSAzMiwKKyAgICAgICAgUkdCID0gUmVkIHwgR3JlZW4gfCBCbHVlLAorICAg
ICAgICBSR0JBID0gUkdCIHwgQWxwaGEsCisgICAgICAgIERlcHRoU3RlbmNpbCA9IERlcHRoIHwg
U3RlbmNpbCwKKyAgICB9OworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6QUxQSEE6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihD
aGFubmVsQml0czo6QWxwaGEpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5D
RToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0Ip
OworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5DRV9BTFBIQToKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpSR0I6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
NTY1OgorICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVDoKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0IpOworICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlJHQkE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQ6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCNV9BMToKKyAgICBjYXNlIEV4dGVuc2lvbnNHTDo6
U1JHQl9BTFBIQV9FWFQ6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFu
bmVsQml0czo6UkdCQSk7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9O
RU5UMTY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5UOgorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OkRlcHRoKTsKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpTdGVuY2lsKTsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBwb3NzaWJsZUZvcm1hdEFu
ZFR5cGVGb3JJbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0m
IGZvcm1hdCwgR0NHTGVudW0mIHR5cGUpCit7CisjZGVmaW5lIFBPU1NJQkxFX0ZPUk1BVF9UWVBF
X0NBU0UoaW50ZXJuYWxGb3JtYXRNYWNybywgZm9ybWF0TWFjcm8sIHR5cGVNYWNybykgY2FzZSBp
bnRlcm5hbEZvcm1hdE1hY3JvOiBcCisgICAgICAgIGZvcm1hdCA9IGZvcm1hdE1hY3JvOyBcCisg
ICAgICAgIHR5cGUgPSB0eXBlTWFjcm87IFwKKyAgICAgICAgYnJlYWs7CisKKyAgICBzd2l0Y2gg
KGludGVybmFsRm9ybWF0KSB7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3Jh
cGhpY3NDb250ZXh0R0w6OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQiwgR3JhcGhpY3NDb250
ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQSwgR3JhcGhp
Y3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpMVU1JTkFOQ0VfQUxQSEEsIEdyYXBoaWNzQ29udGV4
dEdMOjpMVU1JTkFOQ0VfQUxQSEEsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsK
KyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6TFVN
SU5BTkNFLCBHcmFwaGljc0NvbnRleHRHTDo6TFVNSU5BTkNFLCBHcmFwaGljc0NvbnRleHRHTDo6
VU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhp
Y3NDb250ZXh0R0w6OkFMUEhBLCBHcmFwaGljc0NvbnRleHRHTDo6QUxQSEEsIEdyYXBoaWNzQ29u
dGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShHcmFwaGljc0NvbnRleHRHTDo6UjgsIEdyYXBoaWNzQ29udGV4dEdMOjpSRUQsIEdyYXBoaWNz
Q29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjhfU05PUk0sIEdyYXBoaWNzQ29udGV4dEdMOjpSRUQs
IEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjE2RiwgR3JhcGhpY3NDb250ZXh0R0w6OlJFRCwgR3Jh
cGhpY3NDb250ZXh0R0w6OkhBTEZfRkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSMzJGLCBHcmFwaGljc0NvbnRleHRHTDo6UkVELCBH
cmFwaGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSOFVJLCBHcmFwaGljc0NvbnRleHRHTDo6UkVEX0lOVEVH
RVIsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjhJLCBHcmFwaGljc0NvbnRleHRH
TDo6UkVEX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjE2VUksIEdyYXBoaWNzQ29u
dGV4dEdMOjpSRURfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX1NIT1JUKTsK
KyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjE2
SSwgR3JhcGhpY3NDb250ZXh0R0w6OlJFRF9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6U0hP
UlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdM
OjpSMzJVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJFRF9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRH
TDo6VU5TSUdORURfSU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFw
aGljc0NvbnRleHRHTDo6UjMySSwgR3JhcGhpY3NDb250ZXh0R0w6OlJFRF9JTlRFR0VSLCBHcmFw
aGljc0NvbnRleHRHTDo6SU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShH
cmFwaGljc0NvbnRleHRHTDo6Ukc4LCBHcmFwaGljc0NvbnRleHRHTDo6UkcsIEdyYXBoaWNzQ29u
dGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShHcmFwaGljc0NvbnRleHRHTDo6Ukc4X1NOT1JNLCBHcmFwaGljc0NvbnRleHRHTDo6UkcsIEdy
YXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShHcmFwaGljc0NvbnRleHRHTDo6UkcxNkYsIEdyYXBoaWNzQ29udGV4dEdMOjpSRywgR3JhcGhp
Y3NDb250ZXh0R0w6OkhBTEZfRkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSRzMyRiwgR3JhcGhpY3NDb250ZXh0R0w6OlJHLCBHcmFw
aGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KEdyYXBoaWNzQ29udGV4dEdMOjpSRzhVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHX0lOVEVHRVIs
IEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9S
TUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6Ukc4SSwgR3JhcGhpY3NDb250ZXh0R0w6
OlJHX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkcxNlVJLCBHcmFwaGljc0NvbnRl
eHRHTDo6UkdfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX1NIT1JUKTsKKyAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkcxNkks
IEdyYXBoaWNzQ29udGV4dEdMOjpSR19JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6U0hPUlQp
OworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpS
RzMyVUksIEdyYXBoaWNzQ29udGV4dEdMOjpSR19JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6
VU5TSUdORURfSU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGlj
c0NvbnRleHRHTDo6UkczMkksIEdyYXBoaWNzQ29udGV4dEdMOjpSR19JTlRFR0VSLCBHcmFwaGlj
c0NvbnRleHRHTDo6SU5UKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFw
aGljc0NvbnRleHRHTDo6UkdCOCwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQiwgR3JhcGhpY3NDb250
ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KEdyYXBoaWNzQ29udGV4dEdMOjpTUkdCOCwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQiwgR3JhcGhp
Y3NDb250ZXh0R0w6OlVOU0lHTkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0Is
IEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9TSE9SVF81XzZfNSk7CisgICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjhfU05PUk0sIEdyYXBo
aWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UjExRl9HMTFGX0IxMEYs
IEdyYXBoaWNzQ29udGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9JTlRf
MTBGXzExRl8xMUZfUkVWKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFw
aGljc0NvbnRleHRHTDo6UkdCOV9FNSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQiwgR3JhcGhpY3ND
b250ZXh0R0w6OlVOU0lHTkVEX0lOVF81XzlfOV85X1JFVik7CisgICAgICAgIFBPU1NJQkxFX0ZP
Uk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0
R0w6OlJHQiwgR3JhcGhpY3NDb250ZXh0R0w6OkhBTEZfRkxPQVQpOworICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0IzMkYsIEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0IsIEdyYXBoaWNzQ29udGV4dEdMOjpGTE9BVCk7CisgICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjhVSSwgR3JhcGhpY3NDb250
ZXh0R0w6OlJHQl9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7Cisg
ICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjhJ
LCBHcmFwaGljc0NvbnRleHRHTDo6UkdCX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpCWVRF
KTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6
UkdCMTZVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQl9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRH
TDo6VU5TSUdORURfU0hPUlQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdy
YXBoaWNzQ29udGV4dEdMOjpSR0IxNkksIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JfSU5URUdFUiwg
R3JhcGhpY3NDb250ZXh0R0w6OlNIT1JUKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQl9J
TlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfSU5UKTsKKyAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJJLCBHcmFwaGljc0Nv
bnRleHRHTDo6UkdCX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpJTlQpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQkEsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAg
ICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6U1JHQjhf
QUxQSEE4LCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lH
TkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0JBOF9TTk9STSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEsIEdyYXBoaWNzQ29u
dGV4dEdMOjpCWVRFKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGlj
c0NvbnRleHRHTDo6UkdCNV9BMSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEsIEdyYXBoaWNzQ29u
dGV4dEdMOjpVTlNJR05FRF9TSE9SVF81XzVfNV8xKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFU
X1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6UkdCQTQsIEdyYXBoaWNzQ29udGV4dEdMOjpS
R0JBLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlRfNF80XzRfNCk7CisgICAgICAg
IFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQjEwX0EyLCBH
cmFwaGljc0NvbnRleHRHTDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0lOVF8y
XzEwXzEwXzEwX1JFVik7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhp
Y3NDb250ZXh0R0w6OlJHQkExNkYsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBLCBHcmFwaGljc0Nv
bnRleHRHTDo6SEFMRl9GTE9BVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
R3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMkYsIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBLCBHcmFw
aGljc0NvbnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNF
KEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBOFVJLCBHcmFwaGljc0NvbnRleHRHTDo6UkdCQV9JTlRF
R0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfQllURSk7CisgICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE4SSwgR3JhcGhpY3NDb250
ZXh0R0w6OlJHQkFfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0R0w6OkJZVEUpOworICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxMF9BMlVJLCBH
cmFwaGljc0NvbnRleHRHTDo6UkdCQV9JTlRFR0VSLCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdO
RURfSU5UXzJfMTBfMTBfMTBfUkVWKTsKKyAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShHcmFwaGljc0NvbnRleHRHTDo6UkdCQTE2VUksIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBX0lO
VEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpVTlNJR05FRF9TSE9SVCk7CisgICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQkExNkksIEdyYXBoaWNz
Q29udGV4dEdMOjpSR0JBX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpTSE9SVCk7CisgICAg
ICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMkks
IEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBX0lOVEVHRVIsIEdyYXBoaWNzQ29udGV4dEdMOjpJTlQp
OworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpS
R0JBMzJVSSwgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkFfSU5URUdFUiwgR3JhcGhpY3NDb250ZXh0
R0w6OlVOU0lHTkVEX0lOVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3Jh
cGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDE2LCBHcmFwaGljc0NvbnRleHRHTDo6REVQ
VEhfQ09NUE9ORU5ULCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfU0hPUlQpOworICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01Q
T05FTlQsIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQsIEdyYXBoaWNzQ29udGV4
dEdMOjpVTlNJR05FRF9TSE9SVCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
R3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDI0LCBHcmFwaGljc0NvbnRleHRHTDo6
REVQVEhfQ09NUE9ORU5ULCBHcmFwaGljc0NvbnRleHRHTDo6VU5TSUdORURfSU5UKTsKKyAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09N
UE9ORU5UMzJGLCBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQ09NUE9ORU5ULCBHcmFwaGljc0Nv
bnRleHRHTDo6RkxPQVQpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEdyYXBo
aWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lMLCBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfU1RF
TkNJTCwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkVEX0lOVF8yNF84KTsKKyAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShHcmFwaGljc0NvbnRleHRHTDo6REVQVEgyNF9TVEVOQ0lM
OCwgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX1NURU5DSUwsIEdyYXBoaWNzQ29udGV4dEdMOjpV
TlNJR05FRF9JTlRfMjRfOCk7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoR3Jh
cGhpY3NDb250ZXh0R0w6OkRFUFRIMzJGX1NURU5DSUw4LCBHcmFwaGljc0NvbnRleHRHTDo6REVQ
VEhfU1RFTkNJTCwgR3JhcGhpY3NDb250ZXh0R0w6OkZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84
X1JFVik7CisgICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoRXh0ZW5zaW9uc0dMOjpT
UkdCX0VYVCwgRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVCwgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lH
TkVEX0JZVEUpOworICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKEV4dGVuc2lvbnNH
TDo6U1JHQl9BTFBIQV9FWFQsIEV4dGVuc2lvbnNHTDo6U1JHQl9BTFBIQV9FWFQsIEdyYXBoaWNz
Q29udGV4dEdMOjpVTlNJR05FRF9CWVRFKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorI3VuZGVmIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UKKworICAgIHJl
dHVybiB0cnVlOworfQorCiAjZW5kaWYKIAogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJv
Z3JhbUhpZ2hsaWdodCB7CkBAIC0xOTI0LDcgKzIwNDUsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNvcHlUZXhTdWJJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBs
ZXZlbAogICAgIGlmIChjbGlwMkQoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2V0Qm91bmRSZWFkRnJh
bWVidWZmZXJXaWR0aCgpLCBnZXRCb3VuZFJlYWRGcmFtZWJ1ZmZlckhlaWdodCgpLCAmY2xpcHBl
ZFgsICZjbGlwcGVkWSwgJmNsaXBwZWRXaWR0aCwgJmNsaXBwZWRIZWlnaHQpKSB7CiAgICAgICAg
IEdDR0xlbnVtIGZvcm1hdDsKICAgICAgICAgR0NHTGVudW0gdHlwZTsKLSAgICAgICAgaWYgKCFH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cG9zc2libGVGb3JtYXRBbmRUeXBlRm9ySW50ZXJuYWxG
b3JtYXQodGV4LT5nZXRJbnRlcm5hbEZvcm1hdCh0YXJnZXQsIGxldmVsKSwgZm9ybWF0LCB0eXBl
KSkgeworICAgICAgICBpZiAoIXBvc3NpYmxlRm9ybWF0QW5kVHlwZUZvckludGVybmFsRm9ybWF0
KHRleC0+Z2V0SW50ZXJuYWxGb3JtYXQodGFyZ2V0LCBsZXZlbCksIGZvcm1hdCwgdHlwZSkpIHsK
ICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElE
X0VOVU0sICJjb3B5VGV4U3ViSW1hZ2UyRCIsICJUZXh0dXJlIGhhcyB1bmtub3duIGludGVybmFs
IGZvcm1hdCIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC02NTU0LDggKzY2
NzUsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZUZhbGxiYWNrQmxh
Y2tUZXh0dXJlczF4MSgpCiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNUZXhJ
bnRlcm5hbEZvcm1hdENvbG9yQnVmZmVyQ29tYmluYXRpb25WYWxpZChHQ0dMZW51bSB0ZXhJbnRl
cm5hbEZvcm1hdCwgR0NHTGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCiB7Ci0gICAgYXV0byBuZWVk
ID0gR3JhcGhpY3NDb250ZXh0R0w6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQodGV4SW50ZXJuYWxG
b3JtYXQpOwotICAgIGF1dG8gaGF2ZSA9IEdyYXBoaWNzQ29udGV4dEdMOjpnZXRDaGFubmVsQml0
c0J5Rm9ybWF0KGNvbG9yQnVmZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBnZXRDaGFubmVs
Qml0c0J5Rm9ybWF0KHRleEludGVybmFsRm9ybWF0KTsKKyAgICBhdXRvIGhhdmUgPSBnZXRDaGFu
bmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVmZmVyRm9ybWF0KTsKICAgICByZXR1cm4gKG5lZWQgJiBo
YXZlKSA9PSBuZWVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggY2U5NzE5YTIzZGQzMjQzYzZhODdk
NjViNWU0ZjkwMmMyNzBhMDQ4Ni4uMzZlMzQzMWY1NmYwOGNiYTI4ZDYwMGVmZWExMzUxMmRjODI5
NGI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMzY5LDE0MyArMzY5LDYgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHRHTDo6ZW5hYmxlUHJlc2VydmVEcmF3aW5nQnVmZmVyKCkKICAgICBtX2F0dHJzLnByZXNl
cnZlRHJhd2luZ0J1ZmZlciA9IHRydWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dEdM
OjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDR0xlbnVtIGF0dGFjaG1lbnQpCi17Ci0g
ICAgc3dpdGNoIChhdHRhY2htZW50KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Q09M
T1JfQVRUQUNITUVOVDA6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQx
X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAg
IGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRl
bnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6
Q09MT1JfQVRUQUNITUVOVDVfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRB
Q0hNRU5UNl9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQ3X0VY
VDoKLSAgICBjYXNlIEV4dGVuc2lvbnNHTDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uc0dMOjpDT0xPUl9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNP
TE9SX0FUVEFDSE1FTlQxMV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFD
SE1FTlQxMl9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxM19F
WFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zR0w6OkNPTE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVy
biBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpERVBUSF9BVFRBQ0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250
ZXh0R0w6OkRFUFRIX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6U1RF
TkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OlNURU5D
SUxfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9TVEVOQ0lM
X0FUVEFDSE1FTlQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQlVG
RkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0Nv
bnRleHRHTDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0NHTGVudW0gZm9ybWF0KQotewotICAgIHN3
aXRjaCAoZm9ybWF0KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6
TFVNSU5BTkNFX0FMUEhBOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OkxVTUlOQU5DRToK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSOF9TTk9STToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjhVSToKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpSOEk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjE2VUk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMOjpSMzJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0R0w6OlJHODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSRzhf
U05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6UkczMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Ukc4VUk6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSRzE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkcxNkk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlJHMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjg6Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6U1JHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdC
NTY1OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHRHTDo6UjExRl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UkdCOV9FNToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxNkY6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlJHQjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I4SToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlJHQjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IzMlVJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0R0w6OlJHQjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpS
R0JBODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6UkdCNV9BMToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBNDoKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMOjpSR0JBMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMkY6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dEdMOjpSR0JBOEk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCMTBfQTJVSToKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0JBMTZJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlJHQkEzMkk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25z
R0w6OlNSR0JfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpTUkdCX0FMUEhBX0VYVDoKLSAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0R0w6OkRFUFRIX0NPTVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OkRFUFRIX0NPTVBPTkVOVDMyRjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBU
SF9DT01QT05FTlQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfQlVG
RkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0lOREVYODoKLSAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHRHTDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpERVBUSDI0X1NURU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIMzJGX1NURU5DSUw4OgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0w6OkRF
UFRIX0JVRkZFUl9CSVQgfCBHcmFwaGljc0NvbnRleHRHTDo6U1RFTkNJTF9CVUZGRVJfQklUOwot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQotdWludDhfdCBHcmFw
aGljc0NvbnRleHRHTDo6Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdChHQ0dMZW51bSBmb3JtYXQpCi17
Ci0gICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpBTFBI
QToKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpBbHBo
YSk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6TFVNSU5BTkNFOgotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQkEpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
R0w6OlJHQjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0I1NjU6Ci0gICAgY2FzZSBF
eHRlbnNpb25zR0w6OlNSR0JfRVhUOgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OlJHQik7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6UkdCQToK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpSR0I1X0ExOgotICAgIGNhc2UgRXh0ZW5zaW9uc0dMOjpTUkdCX0FMUEhBX0VYVDoK
LSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQxNjoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50OF90PihDaGFubmVsQml0czo6RGVwdGgpOwotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlNURU5DSUxfSU5ERVg4OgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90PihDaGFu
bmVsQml0czo6RGVwdGhTdGVuY2lsKTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsK
LSAgICB9Ci19Ci0KIGJvb2wgR3JhcGhpY3NDb250ZXh0R0w6OmNvbXB1dGVGb3JtYXRBbmRUeXBl
UGFyYW1ldGVycyhHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIHVuc2lnbmVkKiBjb21w
b25lbnRzUGVyUGl4ZWwsIHVuc2lnbmVkKiBieXRlc1BlckNvbXBvbmVudCkKIHsKICAgICBzd2l0
Y2ggKGZvcm1hdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggZWI3MjIyNjAyMjYxMzU4MTRhNzc1NmNiNjJlNTE1
ZDAyZGU4ZWViNC4uYWVmOTNlMWMxZTAyMGFiZjA5MzhmMWNmZWI1ODNiZWM4OTY4NmMxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRHTC5oCkBAIC0xMzE4LDExICsxMzE4LDYgQEAgcHVibGljOgogCiAgICAgSW50U2l6ZSBnZXRJ
bnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUobV9jdXJyZW50
V2lkdGgsIG1fY3VycmVudEhlaWdodCk7IH0KIAotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDbGVh
ckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDR0xlbnVtKTsKLSAgICBzdGF0aWMgdW5zaWduZWQgZ2V0
Q2xlYXJCaXRzQnlGb3JtYXQoR0NHTGVudW0pOwotCi0gICAgc3RhdGljIHVpbnQ4X3QgZ2V0Q2hh
bm5lbEJpdHNCeUZvcm1hdChHQ0dMZW51bSk7Ci0KICAgICBzdHJ1Y3QgUGl4ZWxTdG9yZVBhcmFt
cyBmaW5hbCB7CiAgICAgICAgIEdDR0xpbnQgYWxpZ25tZW50IHsgNCB9OwogICAgICAgICBHQ0dM
aW50IHJvd0xlbmd0aCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3Bw
CmluZGV4IGUwOTQyYzQ4YmRkYzEyNzk5YTM5MTg2MzYwMGQ5NjkxZWJhZGNmOTAuLmU2MDNjMmJm
NWZmYmE3YWYyYjM0MmU4MGQ3Njg0YTA5NzE0MTBmZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmNwcApAQCAtMTA3LDg4ICsxMDcsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjp0ZXhJbWFnZTJEUmVzb3VyY2VTYWZlKEdDR0xlbnVtIHRhcmdldCwgR0NHTGlu
dCBsZQogI2VuZGlmCiAKIAotI2lmICFVU0UoQU5HTEUpCi1ib29sIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpwb3NzaWJsZUZvcm1hdEFuZFR5cGVGb3JJbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBp
bnRlcm5hbEZvcm1hdCwgR0NHTGVudW0mIGZvcm1hdCwgR0NHTGVudW0mIHR5cGUpCi17Ci0jZGVm
aW5lIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoaW50ZXJuYWxGb3JtYXRNYWNybywgZm9ybWF0
TWFjcm8sIHR5cGVNYWNybykgY2FzZSBpbnRlcm5hbEZvcm1hdE1hY3JvOiBcCi0gICAgICAgIGZv
cm1hdCA9IGZvcm1hdE1hY3JvOyBcCi0gICAgICAgIHR5cGUgPSB0eXBlTWFjcm87IFwKLSAgICAg
ICAgYnJlYWs7Ci0KLSAgICBzd2l0Y2ggKGludGVybmFsRm9ybWF0KSB7Ci0gICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCLCBSR0IsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkEsIFJHQkEsIFVOU0lHTkVEX0JZVEUpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKExVTUlOQU5DRV9BTFBIQSwgTFVNSU5BTkNF
X0FMUEhBLCBVTlNJR05FRF9CWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShMVU1JTkFOQ0UsIExVTUlOQU5DRSwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoQUxQSEEsIEFMUEhBLCBVTlNJR05FRF9CWVRFKTsKLSAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSOCwgUkVELCBVTlNJR05FRF9CWVRFKTsKLSAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSOF9TTk9STSwgUkVELCBCWVRFKTsKLSAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSMTZGLCBSRUQsIEhBTEZfRkxPQVQpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFIzMkYsIFJFRCwgRkxPQVQpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFI4VUksIFJFRF9JTlRFR0VSLCBVTlNJR05FRF9C
WVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSOEksIFJFRF9JTlRFR0VS
LCBCWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSMTZVSSwgUkVEX0lO
VEVHRVIsIFVOU0lHTkVEX1NIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FT
RShSMTZJLCBSRURfSU5URUdFUiwgU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQ
RV9DQVNFKFIzMlVJLCBSRURfSU5URUdFUiwgVU5TSUdORURfSU5UKTsKLSAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShSMzJJLCBSRURfSU5URUdFUiwgSU5UKTsKLSAgICAgICAgUE9T
U0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzgsIFJHLCBVTlNJR05FRF9CWVRFKTsKLSAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzhfU05PUk0sIFJHLCBCWVRFKTsKLSAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzE2RiwgUkcsIEhBTEZfRkxPQVQpOwotICAgICAg
ICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHMzJGLCBSRywgRkxPQVQpOwotICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHOFVJLCBSR19JTlRFR0VSLCBVTlNJR05FRF9CWVRF
KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzhJLCBSR19JTlRFR0VSLCBC
WVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSRzE2VUksIFJHX0lOVEVH
RVIsIFVOU0lHTkVEX1NIT1JUKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShS
RzE2SSwgUkdfSU5URUdFUiwgU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKFJHMzJVSSwgUkdfSU5URUdFUiwgVU5TSUdORURfSU5UKTsKLSAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShSRzMySSwgUkdfSU5URUdFUiwgSU5UKTsKLSAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShSR0I4LCBSR0IsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFNSR0I4LCBSR0IsIFVOU0lHTkVEX0JZVEUpOwotICAg
ICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjU2NSwgUkdCLCBVTlNJR05FRF9TSE9S
VF81XzZfNSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOF9TTk9STSwg
UkdCLCBCWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSMTFGX0cxMUZf
QjEwRiwgUkdCLCBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWKTsKLSAgICAgICAgUE9TU0lC
TEVfRk9STUFUX1RZUEVfQ0FTRShSR0I5X0U1LCBSR0IsIFVOU0lHTkVEX0lOVF81XzlfOV85X1JF
Vik7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMTZGLCBSR0IsIEhBTEZf
RkxPQVQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjMyRiwgUkdCLCBG
TE9BVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCOFVJLCBSR0JfSU5U
RUdFUiwgVU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0Uo
UkdCOEksIFJHQl9JTlRFR0VSLCBCWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVf
Q0FTRShSR0IxNlVJLCBSR0JfSU5URUdFUiwgVU5TSUdORURfU0hPUlQpOwotICAgICAgICBQT1NT
SUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjE2SSwgUkdCX0lOVEVHRVIsIFNIT1JUKTsKLSAgICAg
ICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IzMlVJLCBSR0JfSU5URUdFUiwgVU5TSUdO
RURfSU5UKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0IzMkksIFJHQl9J
TlRFR0VSLCBJTlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkE4LCBS
R0JBLCBVTlNJR05FRF9CWVRFKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShT
UkdCOF9BTFBIQTgsIFJHQkEsIFVOU0lHTkVEX0JZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JN
QVRfVFlQRV9DQVNFKFJHQkE4X1NOT1JNLCBSR0JBLCBCWVRFKTsKLSAgICAgICAgUE9TU0lCTEVf
Rk9STUFUX1RZUEVfQ0FTRShSR0I1X0ExLCBSR0JBLCBVTlNJR05FRF9TSE9SVF81XzVfNV8xKTsK
LSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBNCwgUkdCQSwgVU5TSUdORURf
U0hPUlRfNF80XzRfNCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCMTBf
QTIsIFJHQkEsIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVik7Ci0gICAgICAgIFBPU1NJQkxF
X0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTE2RiwgUkdCQSwgSEFMRl9GTE9BVCk7Ci0gICAgICAgIFBP
U1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTMyRiwgUkdCQSwgRkxPQVQpOwotICAgICAgICBQ
T1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQkE4VUksIFJHQkFfSU5URUdFUiwgVU5TSUdORURf
QllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQThJLCBSR0JBX0lO
VEVHRVIsIEJZVEUpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKFJHQjEwX0Ey
VUksIFJHQkFfSU5URUdFUiwgVU5TSUdORURfSU5UXzJfMTBfMTBfMTBfUkVWKTsKLSAgICAgICAg
UE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShSR0JBMTZVSSwgUkdCQV9JTlRFR0VSLCBVTlNJR05F
RF9TSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdCQTE2SSwgUkdC
QV9JTlRFR0VSLCBTSE9SVCk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoUkdC
QTMySSwgUkdCQV9JTlRFR0VSLCBJTlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9D
QVNFKFJHQkEzMlVJLCBSR0JBX0lOVEVHRVIsIFVOU0lHTkVEX0lOVCk7Ci0gICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoREVQVEhfQ09NUE9ORU5UMTYsIERFUFRIX0NPTVBPTkVOVCwg
VU5TSUdORURfU0hPUlQpOwotICAgICAgICBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFKERFUFRI
X0NPTVBPTkVOVCwgREVQVEhfQ09NUE9ORU5ULCBVTlNJR05FRF9TSE9SVCk7Ci0gICAgICAgIFBP
U1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoREVQVEhfQ09NUE9ORU5UMjQsIERFUFRIX0NPTVBPTkVO
VCwgVU5TSUdORURfSU5UKTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShERVBU
SF9DT01QT05FTlQzMkYsIERFUFRIX0NPTVBPTkVOVCwgRkxPQVQpOwotICAgICAgICBQT1NTSUJM
RV9GT1JNQVRfVFlQRV9DQVNFKERFUFRIX1NURU5DSUwsIERFUFRIX1NURU5DSUwsIFVOU0lHTkVE
X0lOVF8yNF84KTsKLSAgICAgICAgUE9TU0lCTEVfRk9STUFUX1RZUEVfQ0FTRShERVBUSDI0X1NU
RU5DSUw4LCBERVBUSF9TVEVOQ0lMLCBVTlNJR05FRF9JTlRfMjRfOCk7Ci0gICAgICAgIFBPU1NJ
QkxFX0ZPUk1BVF9UWVBFX0NBU0UoREVQVEgzMkZfU1RFTkNJTDgsIERFUFRIX1NURU5DSUwsIEZM
T0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVik7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9U
WVBFX0NBU0UoRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVCwgRXh0ZW5zaW9uc0dMOjpTUkdCX0VYVCwg
VU5TSUdORURfQllURSk7Ci0gICAgICAgIFBPU1NJQkxFX0ZPUk1BVF9UWVBFX0NBU0UoRXh0ZW5z
aW9uc0dMOjpTUkdCX0FMUEhBX0VYVCwgRXh0ZW5zaW9uc0dMOjpTUkdCX0FMUEhBX0VYVCwgVU5T
SUdORURfQllURSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LSN1bmRlZiBQT1NTSUJMRV9GT1JNQVRfVFlQRV9DQVNFCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LSNlbmRpZiAvLyAhVVNFKEFOR0xFKQotCi0KICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCBhYjJlNzI1MDA4YmFiZmY1Mzg0NmY0
Mzg5NjI2Njg3N2Y0ZTg3MGZkLi5hMjk0ZTM1NjA0ZTc3ZmRlYmQ4ODQxYzU1OGQ5NDNlMzQ1OGEx
ZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtNTI0LDEwICs1MjQs
NiBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDViogYXNDVigpIGZpbmFsOwogI2Vu
ZGlmCiAKLSNpZiAhVVNFKEFOR0xFKQotICAgIHN0YXRpYyBib29sIHBvc3NpYmxlRm9ybWF0QW5k
VHlwZUZvckludGVybmFsRm9ybWF0KEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSYg
Zm9ybWF0LCBHQ0dMZW51bSYgdHlwZSk7Ci0jZW5kaWYgLy8gIVVTRShBTkdMRSkKLQogICAgIHN0
YXRpYyB2b2lkIHBhaW50VG9DYW52YXMoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
JiwgUGl4ZWxCdWZmZXImJiwgY29uc3QgSW50U2l6ZSYgY2FudmFzU2l6ZSwgR3JhcGhpY3NDb250
ZXh0Jik7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>