<?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>233331</bug_id>
          
          <creation_ts>2021-11-18 13:08:53 -0800</creation_ts>
          <short_desc>Add an API test for batch image analysis (-[WKWebView _startImageAnalysis:])</short_desc>
          <delta_ts>2021-11-21 15:42:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>bdakin</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816584</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-18 13:08:53 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816597</commentid>
    <comment_count>1</comment_count>
      <attachid>444724</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-18 13:26:51 -0800</bug_when>
    <thetext>Created attachment 444724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816620</commentid>
    <comment_count>2</comment_count>
      <attachid>444733</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-18 14:05:35 -0800</bug_when>
    <thetext>Created attachment 444733
Style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817213</commentid>
    <comment_count>3</comment_count>
      <attachid>444733</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-21 15:36:04 -0800</bug_when>
    <thetext>Comment on attachment 444733
Style fixes

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817215</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-21 15:41:36 -0800</bug_when>
    <thetext>Committed r286106 (244493@main): &lt;https://commits.webkit.org/244493@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444733.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817216</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-21 15:42:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/85651192&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444724</attachid>
            <date>2021-11-18 13:26:51 -0800</date>
            <delta_ts>2021-11-18 14:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233331-20211118132650.patch</filename>
            <type>text/plain</type>
            <size>23211</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzY5Yjk3N2MxOTEzNzFiYTdjMzA2NzAyNTM4NjVjY2Zj
Njc5ODQyOC4uNzRmMzcyZjhmZGZhNjhjNWEzZDE2YThiZmVjMjQ1ODU3YjAxOTRhZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIxLTExLTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCBmb3IgYmF0Y2ggaW1hZ2UgYW5hbHlzaXMgKC1bV0tX
ZWJWaWV3IF9zdGFydEltYWdlQW5hbHlzaXM6XSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBBUEkgdGVzZXQgdG8gZXhlcmNpc2UgdGhl
IGAtX3N0YXJ0SW1hZ2VBbmFseXNpczpgIFNQSSBpbnRyb2R1Y2VkIGluIHIyODU5NDksIGFsb25n
IHdpdGggaGVscGVyCisgICAgICAgIGZ1bmN0aW9ucyB0byBzaW11bGF0ZSBgVktJbWFnZUFuYWx5
c2lzYCByZXN1bHRzIGZyb20gVmlzaW9uS2l0Q29yZS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lz
VGVzdHMubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgd2FpdEZvckltYWdlQW5hbHlzaXNS
ZXF1ZXN0czpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNyZWF0ZVdlYlZpZXdXaXRoVGV4
dFJlY29nbml0aW9uRW5oYW5jZW1lbnRzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnN3aXp6
bGVkUHJvY2Vzc1JlcXVlc3RXaXRoUmVzdWx0cyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpz
d2l6emxlZFByb2Nlc3NSZXF1ZXN0V2l0aEVycm9yKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c3dpenpsZWRQcm9jZXNzUmVxdWVzdCk6
IERlbGV0ZWQuCisKKyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRoYXQgdXNlcyBgLV9zdGFydElt
YWdlQW5hbHlzaXM6YCB0byBwZXJmb3JtIGJhdGNoIGltYWdlIGFuYWx5c2lzIG92ZXIgNSBpbWFn
ZSBlbGVtZW50cyBvbiB0aGUKKyAgICAgICAgcGFnZSwgYW5kIHZlcmlmeSB0aGF0IHRoZSB0ZXh0
IHJlc3VsdHMgYXJlIGluamVjdGVkIGJhY2sgaW50byB0aGUgcGFnZS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbXVsdGlwbGUtaW1hZ2VzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RpbmdVdGls
aXRpZXMuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9JbWFnZUFuYWx5
c2lzVGVzdGluZ1V0aWxpdGllcy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RWS1F1YWQgaW5p
dFdpdGhUb3BMZWZ0OnRvcFJpZ2h0OmJvdHRvbUxlZnQ6Ym90dG9tUmlnaHQ6XSk6CisgICAgICAg
ICgtW1Rlc3RWS1dLVGV4dEluZm8gaW5pdFdpdGhTdHJpbmc6cXVhZDpdKToKKyAgICAgICAgKC1b
VGVzdFZLV0tUZXh0SW5mbyBzdHJpbmddKToKKyAgICAgICAgKC1bVGVzdFZLV0tUZXh0SW5mbyBx
dWFkXSk6CisgICAgICAgICgtW1Rlc3RWS1dLTGluZUluZm8gaW5pdFdpdGhTdHJpbmc6cXVhZDpj
aGlsZHJlbjpdKToKKyAgICAgICAgKC1bVGVzdFZLV0tMaW5lSW5mbyBjaGlsZHJlbl0pOgorICAg
ICAgICAoLVtUZXN0VktJbWFnZUFuYWx5c2lzIGluaXRXaXRoTGluZXM6XSk6CisgICAgICAgICgt
W1Rlc3RWS0ltYWdlQW5hbHlzaXMgYWxsTGluZXNdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmNyZWF0ZVF1YWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlVGV4dEluZm8pOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlTGluZUluZm8pOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6Y3JlYXRlSW1hZ2VBbmFseXNpcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpj
cmVhdGVJbWFnZUFuYWx5c2lzV2l0aFNpbXBsZUZpeGVkUmVzdWx0cyk6CisKKyAgICAgICAgQWRk
IGhlbHBlciBmdW5jdGlvbnMgdG8gY3JlYXRlIGFuZCByZXR1cm4gbW9jayBvYmplY3RzIHRoYXQg
cmVwcmVzZW50IFZLSW1hZ2VBbmFseXNpcywgVktXS0xpbmVJbmZvLAorICAgICAgICBWS1dLVGV4
dEluZm8gYW5kIFZLUXVhZC4KKwogMjAyMS0xMC0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bYTExeV0gQWRkIGltcGxlbWVudGF0
aW9uIG9mIHZhbHVlIGludGVyZmFjZSB3aGVuIGJ1aWxkaW5nIHdpdGggQVRTUEkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCA2NzUyY2MwY2FlYzYzZDcyMjFhMzJmNTYwYTIz
MjNkZWUxMWYyOWZlLi4wZmE3M2FlNjNkMTVhMTE2ZjE4YjQ5ODFlNGU3MDg4ZjBlNDE4NGIyIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNiw2ICsyNiw3IEBAIEVkaXRp
bmdUZXN0SGFybmVzcy5tbQogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbQogCiBjb2Nv
YS9EYWVtb25UZXN0VXRpbGl0aWVzLm1tCitjb2NvYS9JbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxp
dGllcy5tbQogY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMubW0KIGNvY29hL1BsYXRmb3Jt
VXRpbGl0aWVzQ29jb2EubW0KIGNvY29hL1Rlc3RDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA5NjVjN2U3Y2FlYTA4OGU2NWRjYTg2N2M5NDA1YWQ4NDk4MzdkNDY1Li4wMzZiZDU1
NTkyOGUyNGU4ODU3NjViY2ZhZDUzZGQzODQyZTQxZGZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTAxNiw2ICsxMDE2LDcgQEAKIAkJRjQyQkQ3RDkyNDVDQzUwODAwMUUyMDdBIC8qIGF0
dHJpYnV0ZWRTdHJpbmdOZXdsaW5lQXRFbmRPZkRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyQkQ3RDgyNDVDQzRFNjAw
MUUyMDdBIC8qIGF0dHJpYnV0ZWRTdHJpbmdOZXdsaW5lQXRFbmRPZkRvY3VtZW50Lmh0bWwgKi87
IH07CiAJCUY0MkQ2MzQ0MjJBMTcyOUYwMEQyRkIzQSAvKiBBdXRvY29ycmVjdGlvblRlc3RzSU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyRDYz
NDMyMkExNzI5RjAwRDJGQjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi87IH07CiAJ
CUY0MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxv
YWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMt
b25sb2FkLmh0bWwgKi87IH07CisJCUY0MkYwODEyMjc0NDk4OTIwMDdFMEQ5MCAvKiBtdWx0aXBs
ZS1pbWFnZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDJGMDgxMTI3NDQ5N0M4MDA3RTBEOTAgLyogbXVsdGlwbGUtaW1hZ2VzLmh0
bWwgKi87IH07CiAJCUY0MzRDQTFBMjJFNjVCQ0EwMDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNl
bGVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MzRDQTE5MjJFNjVCQ0EwMDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbSAq
LzsgfTsKIAkJRjQzNTJGOUYyNkQ0MDNERTAwRTYwNUU0IC8qIGVkaXRhYmxlLXJlc3BvbnNpdmUt
Ym9keS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0MzUyRjlFMjZENDAzNzAwMEU2MDVFNCAvKiBlZGl0YWJsZS1yZXNwb25zaXZlLWJv
ZHkuaHRtbCAqLzsgfTsKIAkJRjQzRTNCQkYyMERBREExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmll
d1Rlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQzRTNCQkUyMERBREExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tICovOyB9OwpA
QCAtMTE4Myw2ICsxMTg0LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNl
czsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJRjQyRjA4MTIy
NzQ0OTg5MjAwN0UwRDkwIC8qIG11bHRpcGxlLWltYWdlcy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNo
YXJhY3RlcnMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIx
MDAwNEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0y
OTM3LDYgKzI5MzksOSBAQAogCQlGNDJCRDdEODI0NUNDNEU2MDAxRTIwN0EgLyogYXR0cmlidXRl
ZFN0cmluZ05ld2xpbmVBdEVuZE9mRG9jdW1lbnQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGF0dHJpYnV0ZWRT
dHJpbmdOZXdsaW5lQXRFbmRPZkRvY3VtZW50Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0MkQ2MzQzMjJBMTcyOUYwMEQyRkIzQSAvKiBBdXRvY29ycmVjdGlvblRlc3RzSU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b2NvcnJlY3Rpb25UZXN0c0lPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxh
cmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBu
YW1lID0gImxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgcGF0aCA9ICJUZXN0
cy9XZWJLaXRDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJRjQyRjA4MTEyNzQ0OTdDODAwN0UwRDkwIC8qIG11
bHRpcGxlLWltYWdlcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm11bHRpcGxlLWltYWdlcy5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRjA4MTYyNzQ0OUZGRDAwN0UwRDkwIC8qIElt
YWdlQW5hbHlzaXNUZXN0aW5nVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gSW1hZ2VBbmFseXNpc1Rlc3RpbmdVdGlsaXRpZXMubW07IHBhdGggPSBj
b2NvYS9JbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjQyRjA4MTcyNzQ0OUZGRDAwN0UwRDkwIC8qIEltYWdlQW5hbHlzaXNUZXN0
aW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEltYWdlQW5h
bHlzaXNUZXN0aW5nVXRpbGl0aWVzLmg7IHBhdGggPSBjb2NvYS9JbWFnZUFuYWx5c2lzVGVzdGlu
Z1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDM0Q0ExOTIyRTY1
QkNBMDA1RERCMjYgLyogU2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQzNTJGOUUyNkQ0MDM3MDAwRTYwNUU0IC8qIGVkaXRhYmxlLXJlc3BvbnNpdmUt
Ym9keS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImVkaXRhYmxlLXJlc3BvbnNp
dmUtYm9keS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzRTNCQkUyMERB
REExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tTY3JvbGxWaWV3VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MTk5LDYgKzMyMDQsOCBAQAogCQkwRjEzOUU3MTFBNDIzQTFEMDBGNTkwRjUgLyogY29jb2EgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY0MkYwODE3Mjc0
NDlGRkQwMDdFMEQ5MCAvKiBJbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxpdGllcy5oICovLAorCQkJ
CUY0MkYwODE2Mjc0NDlGRkQwMDdFMEQ5MCAvKiBJbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxpdGll
cy5tbSAqLywKIAkJCQlBMTNFQkI0NDFCODczMzJCMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJ
biAqLywKIAkJCQlGNDRBNTMwRjIxQjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxl
ci5oICovLAogCQkJCUY0NEE1MzBFMjFCODk3NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6
bGVyLm1tICovLApAQCAtNDE5MCw2ICs0MTk3LDcgQEAKIAkJCQk1MTcxNEVCMzFDRjhDNzYxMDA0
NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTIuaHRtbCAqLywKIAkJCQk1MTIwQzgz
QjFFNjc0RTM1MDAyNUIyNTAgLyogV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLmh0bWwgKi8s
CiAJCQkJMkUxMzFDMTcxRDgzQTk3RTAwMUJBMzZDIC8qIHdpZGUtYXV0b3BsYXlpbmctdmlkZW8t
d2l0aC1hdWRpby5odG1sICovLAorCQkJCUY0MkYwODExMjc0NDk3QzgwMDdFMEQ5MCAvKiBtdWx0
aXBsZS1pbWFnZXMuaHRtbCAqLywKIAkJCSk7CiAJCQluYW1lID0gUmVzb3VyY2VzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lzVGVzdHMubW0KaW5kZXggODIyMGE1MDcz
NDc5MjFkMGZmNDAyNmNlMzQyMjFhNTg3Y2IzNGMxYS4uYjhmOWJmOWQ0M2UzMWY3NzJkNWRlYzU5
OWZjNWMzYTI4NzQ5NGViZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lzVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lzVGVzdHMubW0KQEAgLTI3LDYgKzI3LDcg
QEAKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAorI2ltcG9ydCAiSW1hZ2VBbmFseXNp
c1Rlc3RpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCIK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3Lmgi
CkBAIC0zNiw4ICszNyw1MCBAQAogI2ltcG9ydCA8cGFsL2NvY29hL1Zpc2lvbktpdENvcmVTb2Z0
TGluay5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9WaXNpb25LaXRDb3JlU1BJLmg+CiAKK3N0
YXRpYyB1bnNpZ25lZCBnRGlkUHJvY2Vzc1JlcXVlc3RDb3VudCA9IDA7CisKK0BpbnRlcmZhY2Ug
VGVzdFdLV2ViVmlldyAoSW1hZ2VBbmFseXNpc1Rlc3RzKQorLSAodm9pZCl3YWl0Rm9ySW1hZ2VB
bmFseXNpc1JlcXVlc3RzOih1bnNpZ25lZCludW1iZXJPZlJlcXVlc3RzOworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAoSW1hZ2VBbmFseXNpc1Rlc3RzKQorCistICh2b2lk
KXdhaXRGb3JJbWFnZUFuYWx5c2lzUmVxdWVzdHM6KHVuc2lnbmVkKW51bWJlck9mUmVxdWVzdHMK
K3sKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjp3YWl0Rm9yQ29uZGl0aW9uV2l0aExvZ2dpbmco
WyZdIHsKKyAgICAgICAgcmV0dXJuIGdEaWRQcm9jZXNzUmVxdWVzdENvdW50ID09IG51bWJlck9m
UmVxdWVzdHM7CisgICAgfSwgMywgQCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgJXUgaW1hZ2UgYW5h
bHlzaXMgdG8gY29tcGxldGUuIiwgbnVtYmVyT2ZSZXF1ZXN0cyk7CisKKyAgICBbc2VsZiB3YWl0
Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0VRKGdEaWRQcm9jZXNzUmVx
dWVzdENvdW50LCBudW1iZXJPZlJlcXVlc3RzKTsKK30KKworQGVuZAorCiBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKKworCisKK3N0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gY3Jl
YXRlV2ViVmlld1dpdGhUZXh0UmVjb2duaXRpb25FbmhhbmNlbWVudHMoKQoreworICAgIFJldGFp
blB0ciBjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBmb3IgKF9XS0ludGVybmFs
RGVidWdGZWF0dXJlICpmZWF0dXJlIGluIFdLUHJlZmVyZW5jZXMuX2ludGVybmFsRGVidWdGZWF0
dXJlcykgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIlRleHRS
ZWNvZ25pdGlvbkVuaGFuY2VtZW50c0VuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1
cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
Cit9CisKK3N0YXRpYyB2b2lkIHN3aXp6bGVkUHJvY2Vzc1JlcXVlc3RXaXRoUmVzdWx0cyhpZCwg
U0VMLCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0ICosIHZvaWQgKF4pKGRvdWJsZSBwcm9ncmVzcyks
IHZvaWQgKF5jb21wbGV0aW9uKShWS0ltYWdlQW5hbHlzaXMgKiwgTlNFcnJvciAqKSkKK3sKKyAg
ICBnRGlkUHJvY2Vzc1JlcXVlc3RDb3VudCsrOworICAgIGF1dG8gYW5hbHlzaXMgPSBjcmVhdGVJ
bWFnZUFuYWx5c2lzV2l0aFNpbXBsZUZpeGVkUmVzdWx0cygpOworICAgIGNvbXBsZXRpb24oYW5h
bHlzaXMuZ2V0KCksIG5pbCk7Cit9CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiBzdGF0
aWMgQ0dQb2ludCBzd2l6emxlZExvY2F0aW9uSW5WaWV3KGlkLCBTRUwsIFVJVmlldyAqKQpAQCAt
NDUsMTcgKzg4LDE2IEBAIHN0YXRpYyBDR1BvaW50IHN3aXp6bGVkTG9jYXRpb25JblZpZXcoaWQs
IFNFTCwgVUlWaWV3ICopCiAgICAgcmV0dXJuIENHUG9pbnRNYWtlKDEwMCwgMTAwKTsKIH0KIAot
c3RhdGljIGJvb2wgZ0RpZFByb2Nlc3NSZXF1ZXN0ID0gZmFsc2U7Ci1zdGF0aWMgdm9pZCBzd2l6
emxlZFByb2Nlc3NSZXF1ZXN0KGlkLCBTRUwsIFZLSW1hZ2VBbmFseXplclJlcXVlc3QgKiwgdm9p
ZCAoXikoZG91YmxlIHByb2dyZXNzKSwgdm9pZCAoXmNvbXBsZXRpb24pKFZLSW1hZ2VBbmFseXNp
cyAqYW5hbHlzaXMsIE5TRXJyb3IgKmVycm9yKSkKK3N0YXRpYyB2b2lkIHN3aXp6bGVkUHJvY2Vz
c1JlcXVlc3RXaXRoRXJyb3IoaWQsIFNFTCwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCAqLCB2b2lk
ICheKShkb3VibGUgcHJvZ3Jlc3MpLCB2b2lkICheY29tcGxldGlvbikoVktJbWFnZUFuYWx5c2lz
ICphbmFseXNpcywgTlNFcnJvciAqZXJyb3IpKQogewotICAgIGdEaWRQcm9jZXNzUmVxdWVzdCA9
IHRydWU7CisgICAgZ0RpZFByb2Nlc3NSZXF1ZXN0Q291bnQrKzsKICAgICBjb21wbGV0aW9uKG5p
bCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2RlOjEgdXNl
ckluZm86bmlsXSk7CiB9CiAKIFRFU1QoSW1hZ2VBbmFseXNpc1Rlc3RzLCBEb05vdEFuYWx5emVJ
bWFnZXNJbkVkaXRhYmxlQ29udGVudCkKIHsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIGdl
c3R1cmVMb2NhdGlvblN3aXp6bGVyIHsgVUlHZXN0dXJlUmVjb2duaXplci5jbGFzcywgQHNlbGVj
dG9yKGxvY2F0aW9uSW5WaWV3OiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihzd2l6emxlZExvY2F0
aW9uSW5WaWV3KSB9OwotICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgaW1hZ2VBbmFseXNpc1Jl
cXVlc3RTd2l6emxlciB7IFBBTDo6Z2V0VktJbWFnZUFuYWx5emVyQ2xhc3MoKSwgQHNlbGVjdG9y
KHByb2Nlc3NSZXF1ZXN0OnByb2dyZXNzSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcjopLCByZWlu
dGVycHJldF9jYXN0PElNUD4oc3dpenpsZWRQcm9jZXNzUmVxdWVzdCkgfTsKKyAgICBJbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyIGltYWdlQW5hbHlzaXNSZXF1ZXN0U3dpenpsZXIgeyBQQUw6OmdldFZL
SW1hZ2VBbmFseXplckNsYXNzKCksIEBzZWxlY3Rvcihwcm9jZXNzUmVxdWVzdDpwcm9ncmVzc0hh
bmRsZXI6Y29tcGxldGlvbkhhbmRsZXI6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KHN3aXp6bGVk
UHJvY2Vzc1JlcXVlc3RXaXRoRXJyb3IpIH07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQw
MCwgNDAwKV0pOwogICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJsZTpZRVNdOwpAQCAtNjMsMjQgKzEw
NSw0MiBAQCBURVNUKEltYWdlQW5hbHlzaXNUZXN0cywgRG9Ob3RBbmFseXplSW1hZ2VzSW5FZGl0
YWJsZUNvbnRlbnQpCiAKICAgICBbd2ViVmlldyBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyXS5zdGF0ZSA9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUJlZ2FuOwogICAgIFt3ZWJWaWV3
IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKLSAgICBFWFBFQ1RfRkFMU0UoZ0RpZFBy
b2Nlc3NSZXF1ZXN0KTsKKyAgICBFWFBFQ1RfRVEoZ0RpZFByb2Nlc3NSZXF1ZXN0Q291bnQsIDBV
KTsKIH0KIAogVEVTVChJbWFnZUFuYWx5c2lzVGVzdHMsIEhhbmRsZUltYWdlQW5hbHl6ZXJFcnJv
cikKIHsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIGdlc3R1cmVMb2NhdGlvblN3aXp6bGVy
IHsgVUlHZXN0dXJlUmVjb2duaXplci5jbGFzcywgQHNlbGVjdG9yKGxvY2F0aW9uSW5WaWV3Oiks
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihzd2l6emxlZExvY2F0aW9uSW5WaWV3KSB9OwotICAgIElu
c3RhbmNlTWV0aG9kU3dpenpsZXIgaW1hZ2VBbmFseXNpc1JlcXVlc3RTd2l6emxlciB7IFBBTDo6
Z2V0VktJbWFnZUFuYWx5emVyQ2xhc3MoKSwgQHNlbGVjdG9yKHByb2Nlc3NSZXF1ZXN0OnByb2dy
ZXNzSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcjopLCByZWludGVycHJldF9jYXN0PElNUD4oc3dp
enpsZWRQcm9jZXNzUmVxdWVzdCkgfTsKKyAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIGltYWdl
QW5hbHlzaXNSZXF1ZXN0U3dpenpsZXIgeyBQQUw6OmdldFZLSW1hZ2VBbmFseXplckNsYXNzKCks
IEBzZWxlY3Rvcihwcm9jZXNzUmVxdWVzdDpwcm9ncmVzc0hhbmRsZXI6Y29tcGxldGlvbkhhbmRs
ZXI6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KHN3aXp6bGVkUHJvY2Vzc1JlcXVlc3RXaXRoRXJy
b3IpIH07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwogICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImltYWdlIl07CiAKICAgICBbd2Vi
VmlldyBfaW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyXS5zdGF0ZSA9IFVJR2VzdHVyZVJl
Y29nbml6ZXJTdGF0ZUJlZ2FuOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9u
VXBkYXRlXTsKLSAgICBFWFBFQ1RfVFJVRShnRGlkUHJvY2Vzc1JlcXVlc3QpOworICAgIEVYUEVD
VF9FUShnRGlkUHJvY2Vzc1JlcXVlc3RDb3VudCwgMVUpOwogfQogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIAorVEVTVChJbWFnZUFuYWx5c2lzVGVzdHMsIFN0YXJ0SW1hZ2VBbmFs
eXNpc1dpdGhvdXRJZGVudGlmaWVyKQoreworICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgaW1h
Z2VBbmFseXNpc1JlcXVlc3RTd2l6emxlciB7IFBBTDo6Z2V0VktJbWFnZUFuYWx5emVyQ2xhc3Mo
KSwgQHNlbGVjdG9yKHByb2Nlc3NSZXF1ZXN0OnByb2dyZXNzSGFuZGxlcjpjb21wbGV0aW9uSGFu
ZGxlcjopLCByZWludGVycHJldF9jYXN0PElNUD4oc3dpenpsZWRQcm9jZXNzUmVxdWVzdFdpdGhS
ZXN1bHRzKSB9OworCisgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlld1dpdGhUZXh0UmVj
b2duaXRpb25FbmhhbmNlbWVudHMoKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJtdWx0aXBsZS1pbWFnZXMiXTsKKyAgICBbd2ViVmlldyBfc3RhcnRJbWFn
ZUFuYWx5c2lzOm5pbF07CisgICAgW3dlYlZpZXcgd2FpdEZvckltYWdlQW5hbHlzaXNSZXF1ZXN0
czo1XTsKKworICAgIE5TQXJyYXk8TlNTdHJpbmcgKj4gKm92ZXJsYXlzQXNUZXh0ID0gW3dlYlZp
ZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImltYWdlT3ZlcmxheXNBc1RleHQoKSJd
OworICAgIEVYUEVDVF9FUShvdmVybGF5c0FzVGV4dC5jb3VudCwgNVUpOworICAgIEVYUEVDVF9X
S19TVFJFUShvdmVybGF5c0FzVGV4dFswXSwgQCJGb28gYmFyIik7CisgICAgRVhQRUNUX1dLX1NU
UkVRKG92ZXJsYXlzQXNUZXh0WzFdLCBAIkZvbyBiYXIiKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
b3ZlcmxheXNBc1RleHRbMl0sIEAiRm9vIGJhciIpOworICAgIEVYUEVDVF9XS19TVFJFUShvdmVy
bGF5c0FzVGV4dFszXSwgQCJGb28gYmFyIik7CisgICAgRVhQRUNUX1dLX1NUUkVRKG92ZXJsYXlz
QXNUZXh0WzRdLCBAIkZvbyBiYXIiKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9tdWx0aXBsZS1pbWFnZXMuaHRtbCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbXVsdGlwbGUtaW1hZ2VzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGVkNDc5ZDgzYjAyZDg2NmUwZjdkMWMwNmJmODE3OTNjMWZkYzUzMgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbXVs
dGlwbGUtaW1hZ2VzLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J2lu
aXRpYWwtc2NhbGU9MSc+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBp
bWFnZU92ZXJsYXlzQXNUZXh0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25z
dCByZXN1bHQgPSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGltYWdlIG9mIEFycmF5
LmZyb20oZG9jdW1lbnQuaW1hZ2VzKSkgeworICAgICAgICAgICAgICAgICAgICBjb25zdCByb290
ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpOworICAgICAgICAgICAgICAgICAgICBpZiAo
IXJvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAg
ICAgICAgICBjb25zdCBvdmVybGF5ID0gcm9vdC5nZXRFbGVtZW50QnlJZCgiaW1hZ2Utb3Zlcmxh
eSIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW92ZXJsYXkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChvdmVy
bGF5LnRleHRDb250ZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFk
PgorICAgIDxib2R5IHN0eWxlPSdtYXJnaW46IDBweDsnPgorICAgICAgICA8aW1nIHNyYz0ibGFy
Z2UtcmVkLXNxdWFyZS5wbmciPgorICAgICAgICA8aW1nIHNyYz0ic3Vuc2V0LWluLWN1cGVydGlu
by0yMDBweC5wbmciPgorICAgICAgICA8aW1nIHNyYz0idGVzdC5qcGciPgorICAgICAgICA8aW1n
IHNyYz0iNDAweDQwMC1ncmVlbi5wbmciPgorICAgICAgICA8aW1nIHNyYz0ic3Vuc2V0LWluLWN1
cGVydGluby0xMDBweC50aWZmIj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0ltYWdlQW5hbHlzaXNUZXN0aW5nVXRpbGl0aWVzLmgg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0ltYWdlQW5hbHlzaXNUZXN0aW5nVXRpbGl0aWVz
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTQ1ZmMxNmYzZWM4OTJiOTBkYTUzOGUzZWFmMDgyYjhjYWViZjdlNQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSW1hZ2VBbmFseXNp
c1Rlc3RpbmdVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIEhBVkUoVktfSU1BR0Vf
QU5BTFlTSVMpCisKK0BjbGFzcyBWS0ltYWdlQW5hbHlzaXM7CitAY2xhc3MgVktRdWFkOworQGNs
YXNzIFZLV0tUZXh0SW5mbzsKK0BjbGFzcyBWS1dLTGluZUluZm87CisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKworUmV0YWluUHRyPFZLSW1hZ2VBbmFseXNpcz4gY3JlYXRlSW1hZ2VBbmFs
eXNpc1dpdGhTaW1wbGVGaXhlZFJlc3VsdHMoKTsKKworUmV0YWluUHRyPFZLUXVhZD4gY3JlYXRl
UXVhZChDR1BvaW50IHRvcExlZnQsIENHUG9pbnQgdG9wUmlnaHQsIENHUG9pbnQgYm90dG9tTGVm
dCwgQ0dQb2ludCBib3R0b21SaWdodCk7CitSZXRhaW5QdHI8VktXS1RleHRJbmZvPiBjcmVhdGVU
ZXh0SW5mbyhOU1N0cmluZyAqdGV4dCwgVktRdWFkICopOworUmV0YWluUHRyPFZLV0tMaW5lSW5m
bz4gY3JlYXRlTGluZUluZm8oTlNTdHJpbmcgKnRleHQsIFZLUXVhZCAqLCBOU0FycmF5PFZLV0tU
ZXh0SW5mbyAqPiAqKTsKK1JldGFpblB0cjxWS0ltYWdlQW5hbHlzaXM+IGNyZWF0ZUltYWdlQW5h
bHlzaXMoTlNBcnJheTxWS1dLTGluZUluZm8gKj4gKik7CisKK30gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKKworI2VuZGlmIC8vIEhBVkUoVktfSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0ltYWdlQW5hbHlzaXNUZXN0aW5nVXRpbGl0aWVz
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxp
dGllcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jODU1YjdjZjdiOWQzYzIwMmIyNjNhNTg0YjIyNDdjMWFjYjk5
YjIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbWFnZUFu
YWx5c2lzVGVzdGluZ1V0aWxpdGllcy5tbQpAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiSW1hZ2VBbmFseXNpc1Rlc3RpbmdVdGlsaXRp
ZXMuaCIKKworI2lmIEhBVkUoVktfSU1BR0VfQU5BTFlTSVMpCisKKyNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvVmlzaW9uS2l0Q29yZVNQSS5oPgorCitAaW50ZXJmYWNlIFRlc3RWS1F1YWQgOiBOU09i
amVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVG9wTGVmdDooQ0dQb2ludCl0b3BMZWZ0IHRv
cFJpZ2h0OihDR1BvaW50KXRvcFJpZ2h0IGJvdHRvbUxlZnQ6KENHUG9pbnQpYm90dG9tTGVmdCBi
b3R0b21SaWdodDooQ0dQb2ludClib3R0b21SaWdodDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQ0dQb2ludCB0b3BMZWZ0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBDR1BvaW50IHRvcFJpZ2h0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1Bv
aW50IGJvdHRvbUxlZnQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUG9pbnQg
Ym90dG9tUmlnaHQ7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0VktRdWFkCisKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFRvcExlZnQ6KENHUG9pbnQpdG9wTGVmdCB0b3BSaWdodDooQ0dQ
b2ludCl0b3BSaWdodCBib3R0b21MZWZ0OihDR1BvaW50KWJvdHRvbUxlZnQgYm90dG9tUmlnaHQ6
KENHUG9pbnQpYm90dG9tUmlnaHQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF90b3BMZWZ0ID0gdG9wTGVmdDsKKyAgICBfdG9w
UmlnaHQgPSB0b3BSaWdodDsKKyAgICBfYm90dG9tTGVmdCA9IGJvdHRvbUxlZnQ7CisgICAgX2Jv
dHRvbVJpZ2h0ID0gYm90dG9tUmlnaHQ7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKK0BlbmQKKwor
QGludGVyZmFjZSBUZXN0VktXS1RleHRJbmZvIDogTlNPYmplY3QKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgcXVhZDooVktRdWFkICopcXVhZDsKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RWS1dLVGV4dEluZm8geworICAgIFJldGFpblB0cjxO
U1N0cmluZz4gX3N0cmluZzsKKyAgICBSZXRhaW5QdHI8VktRdWFkPiBfcXVhZDsKK30KKworLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBxdWFkOihWS1F1
YWQgKilxdWFkCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBfc3RyaW5nID0gc3RyaW5nOworICAgIF9xdWFkID0gcXVhZDsKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAoTlNTdHJpbmcgKilzdHJpbmcKK3sKKyAgICByZXR1cm4g
X3N0cmluZy5nZXQoKTsKK30KKworLSAoVktRdWFkICopcXVhZAoreworICAgIHJldHVybiBfcXVh
ZC5nZXQoKTsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIFRlc3RWS1dLTGluZUluZm8gOiBUZXN0
VktXS1RleHRJbmZvCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdHJpbmc6KE5TU3RyaW5nICop
c3RyaW5nIHF1YWQ6KFZLUXVhZCAqKXF1YWQgY2hpbGRyZW46KE5TQXJyYXk8VktXS1RleHRJbmZv
ICo+ICopY2hpbGRyZW47CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0VktXS0xpbmVJbmZv
IHsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2NoaWxkcmVuOworfQorCistIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHF1YWQ6KFZLUXVhZCAqKXF1YWQg
Y2hpbGRyZW46KE5TQXJyYXk8VktXS1RleHRJbmZvICo+ICopY2hpbGRyZW4KK3sKKyAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRXaXRoU3RyaW5nOnN0cmluZyBxdWFkOnF1YWRdKSkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKworICAgIF9jaGlsZHJlbiA9IGNoaWxkcmVuOworICAgIHJldHVybiBz
ZWxmOworfQorCistIChOU0FycmF5PFZLV0tUZXh0SW5mbyAqPiAqKWNoaWxkcmVuCit7CisgICAg
cmV0dXJuIF9jaGlsZHJlbi5nZXQoKTsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIFRlc3RWS0lt
YWdlQW5hbHlzaXMgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTGluZXM6KE5T
QXJyYXk8VktXS0xpbmVJbmZvICo+ICopbGluZXM7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBU
ZXN0VktJbWFnZUFuYWx5c2lzIHsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2xpbmVzOworfQor
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhMaW5lczooTlNBcnJheTxWS1dLTGluZUluZm8gKj4g
KilsaW5lcworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1
cm4gbmlsOworCisgICAgX2xpbmVzID0gbGluZXM7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KE5TQXJyYXk8VktXS0xpbmVJbmZvICo+ICopYWxsTGluZXMKK3sKKyAgICByZXR1cm4gX2xpbmVz
LmdldCgpOworfQorCitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworUmV0YWlu
UHRyPFZLUXVhZD4gY3JlYXRlUXVhZChDR1BvaW50IHRvcExlZnQsIENHUG9pbnQgdG9wUmlnaHQs
IENHUG9pbnQgYm90dG9tTGVmdCwgQ0dQb2ludCBib3R0b21SaWdodCkKK3sKKyAgICByZXR1cm4g
YWRvcHROUyhzdGF0aWNfY2FzdDxWS1F1YWQgKj4oW1tUZXN0VktRdWFkIGFsbG9jXSBpbml0V2l0
aFRvcExlZnQ6dG9wTGVmdCB0b3BSaWdodDp0b3BSaWdodCBib3R0b21MZWZ0OmJvdHRvbUxlZnQg
Ym90dG9tUmlnaHQ6Ym90dG9tUmlnaHRdKSk7Cit9CisKK1JldGFpblB0cjxWS1dLVGV4dEluZm8+
IGNyZWF0ZVRleHRJbmZvKE5TU3RyaW5nICpzdHJpbmcsIFZLUXVhZCAqcXVhZCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHROUyhzdGF0aWNfY2FzdDxWS1dLVGV4dEluZm8gKj4oW1tUZXN0VktXS1RleHRJ
bmZvIGFsbG9jXSBpbml0V2l0aFN0cmluZzpzdHJpbmcgcXVhZDpxdWFkXSkpOworfQorCitSZXRh
aW5QdHI8VktXS0xpbmVJbmZvPiBjcmVhdGVMaW5lSW5mbyhOU1N0cmluZyAqc3RyaW5nLCBWS1F1
YWQgKnF1YWQsIE5TQXJyYXk8VktXS1RleHRJbmZvICo+ICpjaGlsZHJlbikKK3sKKyAgICByZXR1
cm4gYWRvcHROUyhzdGF0aWNfY2FzdDxWS1dLTGluZUluZm8gKj4oW1tUZXN0VktXS0xpbmVJbmZv
IGFsbG9jXSBpbml0V2l0aFN0cmluZzpzdHJpbmcgcXVhZDpxdWFkIGNoaWxkcmVuOmNoaWxkcmVu
XSkpOworfQorCitSZXRhaW5QdHI8VktJbWFnZUFuYWx5c2lzPiBjcmVhdGVJbWFnZUFuYWx5c2lz
KE5TQXJyYXk8VktXS0xpbmVJbmZvICo+ICpsaW5lcykKK3sKKyAgICByZXR1cm4gYWRvcHROUyhz
dGF0aWNfY2FzdDxWS0ltYWdlQW5hbHlzaXMgKj4oW1tUZXN0VktJbWFnZUFuYWx5c2lzIGFsbG9j
XSBpbml0V2l0aExpbmVzOmxpbmVzXSkpOworfQorCitSZXRhaW5QdHI8VktJbWFnZUFuYWx5c2lz
PiBjcmVhdGVJbWFnZUFuYWx5c2lzV2l0aFNpbXBsZUZpeGVkUmVzdWx0cygpCit7CisgICAgYXV0
byBxdWFkID0gY3JlYXRlUXVhZChDR1BvaW50TWFrZSgwLCAwKSwgQ0dQb2ludE1ha2UoMSwgMCks
IENHUG9pbnRNYWtlKDEsIDAuNSksIENHUG9pbnRNYWtlKDAsIDAuNSkpOworICAgIGF1dG8gdGV4
dCA9IGNyZWF0ZVRleHRJbmZvKEAiRm9vIGJhciIsIHF1YWQuZ2V0KCkpOworICAgIGF1dG8gbGlu
ZSA9IGNyZWF0ZUxpbmVJbmZvKEAiRm9vIGJhciIsIHF1YWQuZ2V0KCksIEBbIHRleHQuZ2V0KCkg
XSk7CisgICAgcmV0dXJuIGNyZWF0ZUltYWdlQW5hbHlzaXMoQFsgbGluZS5nZXQoKSBdKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gSEFWRShWS19JTUFH
RV9BTkFMWVNJUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444733</attachid>
            <date>2021-11-18 14:05:35 -0800</date>
            <delta_ts>2021-11-21 15:41:38 -0800</delta_ts>
            <desc>Style fixes</desc>
            <filename>bug-233331-20211118140534.patch</filename>
            <type>text/plain</type>
            <size>23394</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzY5Yjk3N2MxOTEzNzFiYTdjMzA2NzAyNTM4NjVjY2Zj
Njc5ODQyOC4uNzRmMzcyZjhmZGZhNjhjNWEzZDE2YThiZmVjMjQ1ODU3YjAxOTRhZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIxLTExLTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCBmb3IgYmF0Y2ggaW1hZ2UgYW5hbHlzaXMgKC1bV0tX
ZWJWaWV3IF9zdGFydEltYWdlQW5hbHlzaXM6XSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBBUEkgdGVzZXQgdG8gZXhlcmNpc2UgdGhl
IGAtX3N0YXJ0SW1hZ2VBbmFseXNpczpgIFNQSSBpbnRyb2R1Y2VkIGluIHIyODU5NDksIGFsb25n
IHdpdGggaGVscGVyCisgICAgICAgIGZ1bmN0aW9ucyB0byBzaW11bGF0ZSBgVktJbWFnZUFuYWx5
c2lzYCByZXN1bHRzIGZyb20gVmlzaW9uS2l0Q29yZS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lz
VGVzdHMubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgd2FpdEZvckltYWdlQW5hbHlzaXNS
ZXF1ZXN0czpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNyZWF0ZVdlYlZpZXdXaXRoVGV4
dFJlY29nbml0aW9uRW5oYW5jZW1lbnRzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnN3aXp6
bGVkUHJvY2Vzc1JlcXVlc3RXaXRoUmVzdWx0cyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpz
d2l6emxlZFByb2Nlc3NSZXF1ZXN0V2l0aEVycm9yKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c3dpenpsZWRQcm9jZXNzUmVxdWVzdCk6
IERlbGV0ZWQuCisKKyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRoYXQgdXNlcyBgLV9zdGFydElt
YWdlQW5hbHlzaXM6YCB0byBwZXJmb3JtIGJhdGNoIGltYWdlIGFuYWx5c2lzIG92ZXIgNSBpbWFn
ZSBlbGVtZW50cyBvbiB0aGUKKyAgICAgICAgcGFnZSwgYW5kIHZlcmlmeSB0aGF0IHRoZSB0ZXh0
IHJlc3VsdHMgYXJlIGluamVjdGVkIGJhY2sgaW50byB0aGUgcGFnZS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbXVsdGlwbGUtaW1hZ2VzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RpbmdVdGls
aXRpZXMuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9JbWFnZUFuYWx5
c2lzVGVzdGluZ1V0aWxpdGllcy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RWS1F1YWQgaW5p
dFdpdGhUb3BMZWZ0OnRvcFJpZ2h0OmJvdHRvbUxlZnQ6Ym90dG9tUmlnaHQ6XSk6CisgICAgICAg
ICgtW1Rlc3RWS1dLVGV4dEluZm8gaW5pdFdpdGhTdHJpbmc6cXVhZDpdKToKKyAgICAgICAgKC1b
VGVzdFZLV0tUZXh0SW5mbyBzdHJpbmddKToKKyAgICAgICAgKC1bVGVzdFZLV0tUZXh0SW5mbyBx
dWFkXSk6CisgICAgICAgICgtW1Rlc3RWS1dLTGluZUluZm8gaW5pdFdpdGhTdHJpbmc6cXVhZDpj
aGlsZHJlbjpdKToKKyAgICAgICAgKC1bVGVzdFZLV0tMaW5lSW5mbyBjaGlsZHJlbl0pOgorICAg
ICAgICAoLVtUZXN0VktJbWFnZUFuYWx5c2lzIGluaXRXaXRoTGluZXM6XSk6CisgICAgICAgICgt
W1Rlc3RWS0ltYWdlQW5hbHlzaXMgYWxsTGluZXNdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmNyZWF0ZVF1YWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlVGV4dEluZm8pOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlTGluZUluZm8pOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6Y3JlYXRlSW1hZ2VBbmFseXNpcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpj
cmVhdGVJbWFnZUFuYWx5c2lzV2l0aFNpbXBsZUZpeGVkUmVzdWx0cyk6CisKKyAgICAgICAgQWRk
IGhlbHBlciBmdW5jdGlvbnMgdG8gY3JlYXRlIGFuZCByZXR1cm4gbW9jayBvYmplY3RzIHRoYXQg
cmVwcmVzZW50IFZLSW1hZ2VBbmFseXNpcywgVktXS0xpbmVJbmZvLAorICAgICAgICBWS1dLVGV4
dEluZm8gYW5kIFZLUXVhZC4KKwogMjAyMS0xMC0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bYTExeV0gQWRkIGltcGxlbWVudGF0
aW9uIG9mIHZhbHVlIGludGVyZmFjZSB3aGVuIGJ1aWxkaW5nIHdpdGggQVRTUEkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCA2NzUyY2MwY2FlYzYzZDcyMjFhMzJmNTYwYTIz
MjNkZWUxMWYyOWZlLi4wZmE3M2FlNjNkMTVhMTE2ZjE4YjQ5ODFlNGU3MDg4ZjBlNDE4NGIyIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNiw2ICsyNiw3IEBAIEVkaXRp
bmdUZXN0SGFybmVzcy5tbQogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbQogCiBjb2Nv
YS9EYWVtb25UZXN0VXRpbGl0aWVzLm1tCitjb2NvYS9JbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxp
dGllcy5tbQogY29jb2EvTlNJdGVtUHJvdmlkZXJBZGRpdGlvbnMubW0KIGNvY29hL1BsYXRmb3Jt
VXRpbGl0aWVzQ29jb2EubW0KIGNvY29hL1Rlc3RDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA5NjVjN2U3Y2FlYTA4OGU2NWRjYTg2N2M5NDA1YWQ4NDk4MzdkNDY1Li5hM2VjZjMw
YmY3ZDA0NzNmYjZkY2ZhMDQ1OTVmNTI4M2RlNjY0NWUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTAxNiw2ICsxMDE2LDcgQEAKIAkJRjQyQkQ3RDkyNDVDQzUwODAwMUUyMDdBIC8qIGF0
dHJpYnV0ZWRTdHJpbmdOZXdsaW5lQXRFbmRPZkRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyQkQ3RDgyNDVDQzRFNjAw
MUUyMDdBIC8qIGF0dHJpYnV0ZWRTdHJpbmdOZXdsaW5lQXRFbmRPZkRvY3VtZW50Lmh0bWwgKi87
IH07CiAJCUY0MkQ2MzQ0MjJBMTcyOUYwMEQyRkIzQSAvKiBBdXRvY29ycmVjdGlvblRlc3RzSU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyRDYz
NDMyMkExNzI5RjAwRDJGQjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi87IH07CiAJ
CUY0MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxv
YWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMt
b25sb2FkLmh0bWwgKi87IH07CisJCUY0MkYwODEyMjc0NDk4OTIwMDdFMEQ5MCAvKiBtdWx0aXBs
ZS1pbWFnZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDJGMDgxMTI3NDQ5N0M4MDA3RTBEOTAgLyogbXVsdGlwbGUtaW1hZ2VzLmh0
bWwgKi87IH07CiAJCUY0MzRDQTFBMjJFNjVCQ0EwMDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNl
bGVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MzRDQTE5MjJFNjVCQ0EwMDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbSAq
LzsgfTsKIAkJRjQzNTJGOUYyNkQ0MDNERTAwRTYwNUU0IC8qIGVkaXRhYmxlLXJlc3BvbnNpdmUt
Ym9keS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0MzUyRjlFMjZENDAzNzAwMEU2MDVFNCAvKiBlZGl0YWJsZS1yZXNwb25zaXZlLWJv
ZHkuaHRtbCAqLzsgfTsKIAkJRjQzRTNCQkYyMERBREExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmll
d1Rlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQzRTNCQkUyMERBREExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tICovOyB9OwpA
QCAtMTQ2NCw2ICsxNDY1LDcgQEAKIAkJCQk5QjU5RjEyQTIwMzQwODZGMDA5RTYzRDUgLyogbXNv
LWxpc3QtY29tcGF0LW1vZGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QkNENDEx
QTIwNkRCQ0EzMDAxRDcxQkUgLyogbXNvLWxpc3Qtb24taDQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk5QkYzNTZDRDIwMkQ0NTg1MDBGNzExNjAgLyogbXNvLWxpc3QuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDJGMDgxMjI3NDQ5ODkyMDA3RTBEOTAgLyogbXVsdGlw
bGUtaW1hZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc5N0ZFMzMxRUIxNUFC
MTAwQjJGNEEwIC8qIG5hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMkU0ODM4NDcyMTY5REYzMDAwMkY0NTMxIC8qIG5lc3RlZC1s
aXN0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM5OUI2NzVGMUUzOTczNkYwMEZD
NkM4MCAvKiBuby1hdXRvcGxheS13aXRoLWNvbnRyb2xzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCkBAIC0yOTM3LDYgKzI5MzksOSBAQAogCQlGNDJCRDdEODI0NUNDNEU2MDAxRTIwN0EgLyog
YXR0cmlidXRlZFN0cmluZ05ld2xpbmVBdEVuZE9mRG9jdW1lbnQuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGF0
dHJpYnV0ZWRTdHJpbmdOZXdsaW5lQXRFbmRPZkRvY3VtZW50Lmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0MkQ2MzQzMjJBMTcyOUYwMEQyRkIzQSAvKiBBdXRvY29ycmVjdGlv
blRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b2NvcnJlY3Rpb25UZXN0c0lP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQyREE1MTUxRDhDRUZEQjAwMzM2
RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBuYW1lID0gImxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgcGF0
aCA9ICJUZXN0cy9XZWJLaXRDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRt
bCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJRjQyRjA4MTEyNzQ0OTdDODAwN0Uw
RDkwIC8qIG11bHRpcGxlLWltYWdlcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm11bHRpcGxlLWltYWdlcy5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRjA4MTYyNzQ0OUZGRDAwN0Uw
RDkwIC8qIEltYWdlQW5hbHlzaXNUZXN0aW5nVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gSW1hZ2VBbmFseXNpc1Rlc3RpbmdVdGlsaXRpZXMubW07
IHBhdGggPSBjb2NvYS9JbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRjA4MTcyNzQ0OUZGRDAwN0UwRDkwIC8qIEltYWdlQW5h
bHlzaXNUZXN0aW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEltYWdlQW5hbHlzaXNUZXN0aW5nVXRpbGl0aWVzLmg7IHBhdGggPSBjb2NvYS9JbWFnZUFuYWx5
c2lzVGVzdGluZ1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDM0
Q0ExOTIyRTY1QkNBMDA1RERCMjYgLyogU2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQzNTJGOUUyNkQ0MDM3MDAwRTYwNUU0IC8qIGVkaXRhYmxlLXJl
c3BvbnNpdmUtYm9keS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImVkaXRhYmxl
LXJlc3BvbnNpdmUtYm9keS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQz
RTNCQkUyMERBREExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tTY3JvbGxWaWV3VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zMjEwLDYgKzMyMTUsOCBAQAogCQkJCUY0NEQwNjQ5MUYzOTYyRTMwMDFBMEUyOSAv
KiBFZGl0aW5nVGVzdEhhcm5lc3MubW0gKi8sCiAJCQkJNUM3QzI0RkIyMzdDOTcyMzAwNTk5Qzkx
IC8qIEhUVFBTZXJ2ZXIuaCAqLywKIAkJCQk1QzdDMjRGQTIzN0M5NzIzMDA1OTlDOTEgLyogSFRU
UFNlcnZlci5tbSAqLywKKwkJCQlGNDJGMDgxNzI3NDQ5RkZEMDA3RTBEOTAgLyogSW1hZ2VBbmFs
eXNpc1Rlc3RpbmdVdGlsaXRpZXMuaCAqLywKKwkJCQlGNDJGMDgxNjI3NDQ5RkZEMDA3RTBEOTAg
LyogSW1hZ2VBbmFseXNpc1Rlc3RpbmdVdGlsaXRpZXMubW0gKi8sCiAJCQkJRjQ0QTUzMEQyMUI4
OTc2OTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLywKIAkJCQlGNDRBNTMx
MDIxQjg5NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLywKIAkJCQkw
RjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSAqLywK
QEAgLTQxMDIsNiArNDEwOSw3IEBACiAJCQkJOUI1OUYxMjkyMDM0MDg1NDAwOUU2M0Q1IC8qIG1z
by1saXN0LWNvbXBhdC1tb2RlLmh0bWwgKi8sCiAJCQkJOUJDRDQxMTkyMDZENUVENzAwMUQ3MUJF
IC8qIG1zby1saXN0LW9uLWg0Lmh0bWwgKi8sCiAJCQkJOUJGMzU2Q0MyMDJENDRGMjAwRjcxMTYw
IC8qIG1zby1saXN0Lmh0bWwgKi8sCisJCQkJRjQyRjA4MTEyNzQ0OTdDODAwN0UwRDkwIC8qIG11
bHRpcGxlLWltYWdlcy5odG1sICovLAogCQkJCTJFNDgzODQ2MjE2OURENDIwMDJGNDUzMSAvKiBu
ZXN0ZWQtbGlzdHMuaHRtbCAqLywKIAkJCQk0NjZDMzg0MjIxMDYzN0NFMDA2QTg4REUgLyogbm90
aWZ5LXJlc291cmNlTG9hZE9ic2VydmVyLmh0bWwgKi8sCiAJCQkJQ0RCNURGRkUyMTM2MEVEODAw
RDNFMTg5IC8qIG5vdy1wbGF5aW5nLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5hbHlzaXNUZXN0cy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RzLm1tCmluZGV4
IDgyMjBhNTA3MzQ3OTIxZDBmZjQwMjZjZTM0MjIxYTU4N2NiMzRjMWEuLmY3OWQ5ZTU1ZmIxMmQz
MmU4ZDBjMDFiOTMyMzcxYTk3MzI5NjQ2YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RzLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RzLm1tCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKKyNpbXBvcnQgIklt
YWdlQW5hbHlzaXNUZXN0aW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdFdL
V2ViVmlldy5oIgpAQCAtMzYsOCArMzcsNDcgQEAKICNpbXBvcnQgPHBhbC9jb2NvYS9WaXNpb25L
aXRDb3JlU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvVmlzaW9uS2l0Q29yZVNQ
SS5oPgogCitzdGF0aWMgdW5zaWduZWQgZ0RpZFByb2Nlc3NSZXF1ZXN0Q291bnQgPSAwOworCitA
aW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgKEltYWdlQW5hbHlzaXNUZXN0cykKKy0gKHZvaWQpd2Fp
dEZvckltYWdlQW5hbHlzaXNSZXF1ZXN0czoodW5zaWduZWQpbnVtYmVyT2ZSZXF1ZXN0czsKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgKEltYWdlQW5hbHlzaXNUZXN0cykK
KworLSAodm9pZCl3YWl0Rm9ySW1hZ2VBbmFseXNpc1JlcXVlc3RzOih1bnNpZ25lZCludW1iZXJP
ZlJlcXVlc3RzCit7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6d2FpdEZvckNvbmRpdGlvbldp
dGhMb2dnaW5nKFsmXSB7CisgICAgICAgIHJldHVybiBnRGlkUHJvY2Vzc1JlcXVlc3RDb3VudCA9
PSBudW1iZXJPZlJlcXVlc3RzOworICAgIH0sIDMsIEAiVGltZWQgb3V0IHdhaXRpbmcgZm9yICV1
IGltYWdlIGFuYWx5c2lzIHRvIGNvbXBsZXRlLiIsIG51bWJlck9mUmVxdWVzdHMpOworCisgICAg
W3NlbGYgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9FUShnRGlk
UHJvY2Vzc1JlcXVlc3RDb3VudCwgbnVtYmVyT2ZSZXF1ZXN0cyk7Cit9CisKK0BlbmQKKwogbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCitzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+
IGNyZWF0ZVdlYlZpZXdXaXRoVGV4dFJlY29nbml0aW9uRW5oYW5jZW1lbnRzKCkKK3sKKyAgICBS
ZXRhaW5QdHIgY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgZm9yIChfV0tJbnRl
cm5hbERlYnVnRmVhdHVyZSAqZmVhdHVyZSBpbiBXS1ByZWZlcmVuY2VzLl9pbnRlcm5hbERlYnVn
RmVhdHVyZXMpIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJU
ZXh0UmVjb2duaXRpb25FbmhhbmNlbWVudHNFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckludGVybmFsRGVidWdG
ZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworfQorCitzdGF0aWMgdm9pZCBzd2l6emxlZFByb2Nlc3NSZXF1ZXN0V2l0aFJlc3VsdHMo
aWQsIFNFTCwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCAqLCB2b2lkICheKShkb3VibGUgcHJvZ3Jl
c3MpLCB2b2lkICheY29tcGxldGlvbikoVktJbWFnZUFuYWx5c2lzICosIE5TRXJyb3IgKikpCit7
CisgICAgZ0RpZFByb2Nlc3NSZXF1ZXN0Q291bnQrKzsKKyAgICBhdXRvIGFuYWx5c2lzID0gY3Jl
YXRlSW1hZ2VBbmFseXNpc1dpdGhTaW1wbGVGaXhlZFJlc3VsdHMoKTsKKyAgICBjb21wbGV0aW9u
KGFuYWx5c2lzLmdldCgpLCBuaWwpOworfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAog
c3RhdGljIENHUG9pbnQgc3dpenpsZWRMb2NhdGlvbkluVmlldyhpZCwgU0VMLCBVSVZpZXcgKikK
QEAgLTQ1LDE3ICs4NSwxNiBAQCBzdGF0aWMgQ0dQb2ludCBzd2l6emxlZExvY2F0aW9uSW5WaWV3
KGlkLCBTRUwsIFVJVmlldyAqKQogICAgIHJldHVybiBDR1BvaW50TWFrZSgxMDAsIDEwMCk7CiB9
CiAKLXN0YXRpYyBib29sIGdEaWRQcm9jZXNzUmVxdWVzdCA9IGZhbHNlOwotc3RhdGljIHZvaWQg
c3dpenpsZWRQcm9jZXNzUmVxdWVzdChpZCwgU0VMLCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0ICos
IHZvaWQgKF4pKGRvdWJsZSBwcm9ncmVzcyksIHZvaWQgKF5jb21wbGV0aW9uKShWS0ltYWdlQW5h
bHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICplcnJvcikpCitzdGF0aWMgdm9pZCBzd2l6emxlZFBy
b2Nlc3NSZXF1ZXN0V2l0aEVycm9yKGlkLCBTRUwsIFZLSW1hZ2VBbmFseXplclJlcXVlc3QgKiwg
dm9pZCAoXikoZG91YmxlIHByb2dyZXNzKSwgdm9pZCAoXmNvbXBsZXRpb24pKFZLSW1hZ2VBbmFs
eXNpcyAqYW5hbHlzaXMsIE5TRXJyb3IgKmVycm9yKSkKIHsKLSAgICBnRGlkUHJvY2Vzc1JlcXVl
c3QgPSB0cnVlOworICAgIGdEaWRQcm9jZXNzUmVxdWVzdENvdW50Kys7CiAgICAgY29tcGxldGlv
bihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0NvY29hRXJyb3JEb21haW4gY29kZTox
IHVzZXJJbmZvOm5pbF0pOwogfQogCiBURVNUKEltYWdlQW5hbHlzaXNUZXN0cywgRG9Ob3RBbmFs
eXplSW1hZ2VzSW5FZGl0YWJsZUNvbnRlbnQpCiB7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxl
ciBnZXN0dXJlTG9jYXRpb25Td2l6emxlciB7IFVJR2VzdHVyZVJlY29nbml6ZXIuY2xhc3MsIEBz
ZWxlY3Rvcihsb2NhdGlvbkluVmlldzopLCByZWludGVycHJldF9jYXN0PElNUD4oc3dpenpsZWRM
b2NhdGlvbkluVmlldykgfTsKLSAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIGltYWdlQW5hbHlz
aXNSZXF1ZXN0U3dpenpsZXIgeyBQQUw6OmdldFZLSW1hZ2VBbmFseXplckNsYXNzKCksIEBzZWxl
Y3Rvcihwcm9jZXNzUmVxdWVzdDpwcm9ncmVzc0hhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXI6KSwg
cmVpbnRlcnByZXRfY2FzdDxJTVA+KHN3aXp6bGVkUHJvY2Vzc1JlcXVlc3QpIH07CisgICAgSW5z
dGFuY2VNZXRob2RTd2l6emxlciBpbWFnZUFuYWx5c2lzUmVxdWVzdFN3aXp6bGVyIHsgUEFMOjpn
ZXRWS0ltYWdlQW5hbHl6ZXJDbGFzcygpLCBAc2VsZWN0b3IocHJvY2Vzc1JlcXVlc3Q6cHJvZ3Jl
c3NIYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihzd2l6
emxlZFByb2Nlc3NSZXF1ZXN0V2l0aEVycm9yKSB9OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCA0MDAsIDQwMCldKTsKICAgICBbd2ViVmlldyBfc2V0RWRpdGFibGU6WUVTXTsKQEAgLTYzLDI0
ICsxMDIsMzkgQEAgVEVTVChJbWFnZUFuYWx5c2lzVGVzdHMsIERvTm90QW5hbHl6ZUltYWdlc0lu
RWRpdGFibGVDb250ZW50KQogCiAgICAgW3dlYlZpZXcgX2ltYWdlQW5hbHlzaXNHZXN0dXJlUmVj
b2duaXplcl0uc3RhdGUgPSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVCZWdhbjsKICAgICBbd2Vi
VmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07Ci0gICAgRVhQRUNUX0ZBTFNFKGdE
aWRQcm9jZXNzUmVxdWVzdCk7CisgICAgRVhQRUNUX0VRKGdEaWRQcm9jZXNzUmVxdWVzdENvdW50
LCAwVSk7CiB9CiAKIFRFU1QoSW1hZ2VBbmFseXNpc1Rlc3RzLCBIYW5kbGVJbWFnZUFuYWx5emVy
RXJyb3IpCiB7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBnZXN0dXJlTG9jYXRpb25Td2l6
emxlciB7IFVJR2VzdHVyZVJlY29nbml6ZXIuY2xhc3MsIEBzZWxlY3Rvcihsb2NhdGlvbkluVmll
dzopLCByZWludGVycHJldF9jYXN0PElNUD4oc3dpenpsZWRMb2NhdGlvbkluVmlldykgfTsKLSAg
ICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIGltYWdlQW5hbHlzaXNSZXF1ZXN0U3dpenpsZXIgeyBQ
QUw6OmdldFZLSW1hZ2VBbmFseXplckNsYXNzKCksIEBzZWxlY3Rvcihwcm9jZXNzUmVxdWVzdDpw
cm9ncmVzc0hhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXI6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+
KHN3aXp6bGVkUHJvY2Vzc1JlcXVlc3QpIH07CisgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBp
bWFnZUFuYWx5c2lzUmVxdWVzdFN3aXp6bGVyIHsgUEFMOjpnZXRWS0ltYWdlQW5hbHl6ZXJDbGFz
cygpLCBAc2VsZWN0b3IocHJvY2Vzc1JlcXVlc3Q6cHJvZ3Jlc3NIYW5kbGVyOmNvbXBsZXRpb25I
YW5kbGVyOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihzd2l6emxlZFByb2Nlc3NSZXF1ZXN0V2l0
aEVycm9yKSB9OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsKICAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJpbWFnZSJdOwogCiAgICAg
W3dlYlZpZXcgX2ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplcl0uc3RhdGUgPSBVSUdlc3R1
cmVSZWNvZ25pemVyU3RhdGVCZWdhbjsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRh
dGlvblVwZGF0ZV07Ci0gICAgRVhQRUNUX1RSVUUoZ0RpZFByb2Nlc3NSZXF1ZXN0KTsKKyAgICBF
WFBFQ1RfRVEoZ0RpZFByb2Nlc3NSZXF1ZXN0Q291bnQsIDFVKTsKIH0KIAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAKK1RFU1QoSW1hZ2VBbmFseXNpc1Rlc3RzLCBTdGFydEltYWdl
QW5hbHlzaXNXaXRob3V0SWRlbnRpZmllcikKK3sKKyAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
IGltYWdlQW5hbHlzaXNSZXF1ZXN0U3dpenpsZXIgeyBQQUw6OmdldFZLSW1hZ2VBbmFseXplckNs
YXNzKCksIEBzZWxlY3Rvcihwcm9jZXNzUmVxdWVzdDpwcm9ncmVzc0hhbmRsZXI6Y29tcGxldGlv
bkhhbmRsZXI6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KHN3aXp6bGVkUHJvY2Vzc1JlcXVlc3RX
aXRoUmVzdWx0cykgfTsKKworICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZpZXdXaXRoVGV4
dFJlY29nbml0aW9uRW5oYW5jZW1lbnRzKCk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRUZXN0UGFnZU5hbWVkOkAibXVsdGlwbGUtaW1hZ2VzIl07CisgICAgW3dlYlZpZXcgX3N0YXJ0
SW1hZ2VBbmFseXNpczpuaWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JJbWFnZUFuYWx5c2lzUmVx
dWVzdHM6NV07CisKKyAgICBOU0FycmF5PE5TU3RyaW5nICo+ICpvdmVybGF5c0FzVGV4dCA9IFt3
ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJpbWFnZU92ZXJsYXlzQXNUZXh0
KCkiXTsKKyAgICBFWFBFQ1RfRVEob3ZlcmxheXNBc1RleHQuY291bnQsIDVVKTsKKyAgICBmb3Ig
KE5TU3RyaW5nICpvdmVybGF5VGV4dCBpbiBvdmVybGF5c0FzVGV4dCkKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKG92ZXJsYXlUZXh0LCBAIkZvbyBiYXIiKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9tdWx0aXBsZS1pbWFn
ZXMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbXVsdGlwbGUt
aW1hZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVkNDc5ZDgzYjAyZDg2NmUwZjdkMWMwNmJmODE3OTNj
MWZkYzUzMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvbXVsdGlwbGUtaW1hZ2VzLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgbmFtZT0ndmlld3BvcnQn
IGNvbnRlbnQ9J2luaXRpYWwtc2NhbGU9MSc+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBmdW5jdGlvbiBpbWFnZU92ZXJsYXlzQXNUZXh0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCByZXN1bHQgPSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGlt
YWdlIG9mIEFycmF5LmZyb20oZG9jdW1lbnQuaW1hZ2VzKSkgeworICAgICAgICAgICAgICAgICAg
ICBjb25zdCByb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW1hZ2UpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXJvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICAgICAgICAgICAgICBjb25zdCBvdmVybGF5ID0gcm9vdC5nZXRFbGVtZW50QnlJZCgi
aW1hZ2Utb3ZlcmxheSIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW92ZXJsYXkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgICAgICByZXN1
bHQucHVzaChvdmVybGF5LnRleHRDb250ZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9oZWFkPgorICAgIDxib2R5IHN0eWxlPSdtYXJnaW46IDBweDsnPgorICAgICAgICA8
aW1nIHNyYz0ibGFyZ2UtcmVkLXNxdWFyZS5wbmciPgorICAgICAgICA8aW1nIHNyYz0ic3Vuc2V0
LWluLWN1cGVydGluby0yMDBweC5wbmciPgorICAgICAgICA8aW1nIHNyYz0idGVzdC5qcGciPgor
ICAgICAgICA8aW1nIHNyYz0iNDAweDQwMC1ncmVlbi5wbmciPgorICAgICAgICA8aW1nIHNyYz0i
c3Vuc2V0LWluLWN1cGVydGluby0xMDBweC50aWZmIj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0ltYWdlQW5hbHlzaXNUZXN0aW5n
VXRpbGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0ltYWdlQW5hbHlzaXNUZXN0
aW5nVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ1ZmMxNmYzZWM4OTJiOTBkYTUzOGUzZWFmMDgy
YjhjYWViZjdlNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
SW1hZ2VBbmFseXNpc1Rlc3RpbmdVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIEhB
VkUoVktfSU1BR0VfQU5BTFlTSVMpCisKK0BjbGFzcyBWS0ltYWdlQW5hbHlzaXM7CitAY2xhc3Mg
VktRdWFkOworQGNsYXNzIFZLV0tUZXh0SW5mbzsKK0BjbGFzcyBWS1dLTGluZUluZm87CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworUmV0YWluUHRyPFZLSW1hZ2VBbmFseXNpcz4gY3Jl
YXRlSW1hZ2VBbmFseXNpc1dpdGhTaW1wbGVGaXhlZFJlc3VsdHMoKTsKKworUmV0YWluUHRyPFZL
UXVhZD4gY3JlYXRlUXVhZChDR1BvaW50IHRvcExlZnQsIENHUG9pbnQgdG9wUmlnaHQsIENHUG9p
bnQgYm90dG9tTGVmdCwgQ0dQb2ludCBib3R0b21SaWdodCk7CitSZXRhaW5QdHI8VktXS1RleHRJ
bmZvPiBjcmVhdGVUZXh0SW5mbyhOU1N0cmluZyAqdGV4dCwgVktRdWFkICopOworUmV0YWluUHRy
PFZLV0tMaW5lSW5mbz4gY3JlYXRlTGluZUluZm8oTlNTdHJpbmcgKnRleHQsIFZLUXVhZCAqLCBO
U0FycmF5PFZLV0tUZXh0SW5mbyAqPiAqKTsKK1JldGFpblB0cjxWS0ltYWdlQW5hbHlzaXM+IGNy
ZWF0ZUltYWdlQW5hbHlzaXMoTlNBcnJheTxWS1dLTGluZUluZm8gKj4gKik7CisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEhBVkUoVktfSU1BR0VfQU5BTFlTSVMp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0ltYWdlQW5hbHlzaXNUZXN0
aW5nVXRpbGl0aWVzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbWFnZUFuYWx5c2lz
VGVzdGluZ1V0aWxpdGllcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODU1YjdjZjdiOWQzYzIwMmIyNjNhNTg0
YjIyNDdjMWFjYjk5YjIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9JbWFnZUFuYWx5c2lzVGVzdGluZ1V0aWxpdGllcy5tbQpAQCAtMCwwICsxLDE2OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiSW1hZ2VBbmFseXNpc1Rl
c3RpbmdVdGlsaXRpZXMuaCIKKworI2lmIEhBVkUoVktfSU1BR0VfQU5BTFlTSVMpCisKKyNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvVmlzaW9uS2l0Q29yZVNQSS5oPgorCitAaW50ZXJmYWNlIFRlc3RW
S1F1YWQgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVG9wTGVmdDooQ0dQb2lu
dCl0b3BMZWZ0IHRvcFJpZ2h0OihDR1BvaW50KXRvcFJpZ2h0IGJvdHRvbUxlZnQ6KENHUG9pbnQp
Ym90dG9tTGVmdCBib3R0b21SaWdodDooQ0dQb2ludClib3R0b21SaWdodDsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQ0dQb2ludCB0b3BMZWZ0OworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBDR1BvaW50IHRvcFJpZ2h0OworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBDR1BvaW50IGJvdHRvbUxlZnQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIENHUG9pbnQgYm90dG9tUmlnaHQ7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0VktR
dWFkCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFRvcExlZnQ6KENHUG9pbnQpdG9wTGVmdCB0
b3BSaWdodDooQ0dQb2ludCl0b3BSaWdodCBib3R0b21MZWZ0OihDR1BvaW50KWJvdHRvbUxlZnQg
Ym90dG9tUmlnaHQ6KENHUG9pbnQpYm90dG9tUmlnaHQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF90b3BMZWZ0ID0gdG9wTGVm
dDsKKyAgICBfdG9wUmlnaHQgPSB0b3BSaWdodDsKKyAgICBfYm90dG9tTGVmdCA9IGJvdHRvbUxl
ZnQ7CisgICAgX2JvdHRvbVJpZ2h0ID0gYm90dG9tUmlnaHQ7CisgICAgcmV0dXJuIHNlbGY7Cit9
CisKK0BlbmQKKworQGludGVyZmFjZSBUZXN0VktXS1RleHRJbmZvIDogTlNPYmplY3QKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgcXVhZDooVktRdWFk
ICopcXVhZDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RWS1dLVGV4dEluZm8geworICAg
IFJldGFpblB0cjxOU1N0cmluZz4gX3N0cmluZzsKKyAgICBSZXRhaW5QdHI8VktRdWFkPiBfcXVh
ZDsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU3RyaW5nOihOU1N0cmluZyAqKXN0cmlu
ZyBxdWFkOihWS1F1YWQgKilxdWFkCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfc3RyaW5nID0gc3RyaW5nOworICAgIF9xdWFk
ID0gcXVhZDsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoTlNTdHJpbmcgKilzdHJpbmcKK3sK
KyAgICByZXR1cm4gX3N0cmluZy5nZXQoKTsKK30KKworLSAoVktRdWFkICopcXVhZAoreworICAg
IHJldHVybiBfcXVhZC5nZXQoKTsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIFRlc3RWS1dLTGlu
ZUluZm8gOiBUZXN0VktXS1RleHRJbmZvCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdHJpbmc6
KE5TU3RyaW5nICopc3RyaW5nIHF1YWQ6KFZLUXVhZCAqKXF1YWQgY2hpbGRyZW46KE5TQXJyYXk8
VktXS1RleHRJbmZvICo+ICopY2hpbGRyZW47CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0
VktXS0xpbmVJbmZvIHsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2NoaWxkcmVuOworfQorCist
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHF1YWQ6KFZL
UXVhZCAqKXF1YWQgY2hpbGRyZW46KE5TQXJyYXk8VktXS1RleHRJbmZvICo+ICopY2hpbGRyZW4K
K3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoU3RyaW5nOnN0cmluZyBxdWFkOnF1
YWRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9jaGlsZHJlbiA9IGNoaWxkcmVuOwor
ICAgIHJldHVybiBzZWxmOworfQorCistIChOU0FycmF5PFZLV0tUZXh0SW5mbyAqPiAqKWNoaWxk
cmVuCit7CisgICAgcmV0dXJuIF9jaGlsZHJlbi5nZXQoKTsKK30KKworQGVuZAorCitAaW50ZXJm
YWNlIFRlc3RWS0ltYWdlQW5hbHlzaXMgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoTGluZXM6KE5TQXJyYXk8VktXS0xpbmVJbmZvICo+ICopbGluZXM7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBUZXN0VktJbWFnZUFuYWx5c2lzIHsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4g
X2xpbmVzOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhMaW5lczooTlNBcnJheTxWS1dL
TGluZUluZm8gKj4gKilsaW5lcworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2xpbmVzID0gbGluZXM7CisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKE5TQXJyYXk8VktXS0xpbmVJbmZvICo+ICopYWxsTGluZXMKK3sKKyAgICBy
ZXR1cm4gX2xpbmVzLmdldCgpOworfQorCitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworUmV0YWluUHRyPFZLUXVhZD4gY3JlYXRlUXVhZChDR1BvaW50IHRvcExlZnQsIENHUG9p
bnQgdG9wUmlnaHQsIENHUG9pbnQgYm90dG9tTGVmdCwgQ0dQb2ludCBib3R0b21SaWdodCkKK3sK
KyAgICByZXR1cm4gYWRvcHROUyhzdGF0aWNfY2FzdDxWS1F1YWQgKj4oW1tUZXN0VktRdWFkIGFs
bG9jXSBpbml0V2l0aFRvcExlZnQ6dG9wTGVmdCB0b3BSaWdodDp0b3BSaWdodCBib3R0b21MZWZ0
OmJvdHRvbUxlZnQgYm90dG9tUmlnaHQ6Ym90dG9tUmlnaHRdKSk7Cit9CisKK1JldGFpblB0cjxW
S1dLVGV4dEluZm8+IGNyZWF0ZVRleHRJbmZvKE5TU3RyaW5nICpzdHJpbmcsIFZLUXVhZCAqcXVh
ZCkKK3sKKyAgICByZXR1cm4gYWRvcHROUyhzdGF0aWNfY2FzdDxWS1dLVGV4dEluZm8gKj4oW1tU
ZXN0VktXS1RleHRJbmZvIGFsbG9jXSBpbml0V2l0aFN0cmluZzpzdHJpbmcgcXVhZDpxdWFkXSkp
OworfQorCitSZXRhaW5QdHI8VktXS0xpbmVJbmZvPiBjcmVhdGVMaW5lSW5mbyhOU1N0cmluZyAq
c3RyaW5nLCBWS1F1YWQgKnF1YWQsIE5TQXJyYXk8VktXS1RleHRJbmZvICo+ICpjaGlsZHJlbikK
K3sKKyAgICByZXR1cm4gYWRvcHROUyhzdGF0aWNfY2FzdDxWS1dLTGluZUluZm8gKj4oW1tUZXN0
VktXS0xpbmVJbmZvIGFsbG9jXSBpbml0V2l0aFN0cmluZzpzdHJpbmcgcXVhZDpxdWFkIGNoaWxk
cmVuOmNoaWxkcmVuXSkpOworfQorCitSZXRhaW5QdHI8VktJbWFnZUFuYWx5c2lzPiBjcmVhdGVJ
bWFnZUFuYWx5c2lzKE5TQXJyYXk8VktXS0xpbmVJbmZvICo+ICpsaW5lcykKK3sKKyAgICByZXR1
cm4gYWRvcHROUyhzdGF0aWNfY2FzdDxWS0ltYWdlQW5hbHlzaXMgKj4oW1tUZXN0VktJbWFnZUFu
YWx5c2lzIGFsbG9jXSBpbml0V2l0aExpbmVzOmxpbmVzXSkpOworfQorCitSZXRhaW5QdHI8VktJ
bWFnZUFuYWx5c2lzPiBjcmVhdGVJbWFnZUFuYWx5c2lzV2l0aFNpbXBsZUZpeGVkUmVzdWx0cygp
Cit7CisgICAgYXV0byBxdWFkID0gY3JlYXRlUXVhZChDR1BvaW50TWFrZSgwLCAwKSwgQ0dQb2lu
dE1ha2UoMSwgMCksIENHUG9pbnRNYWtlKDEsIDAuNSksIENHUG9pbnRNYWtlKDAsIDAuNSkpOwor
ICAgIGF1dG8gdGV4dCA9IGNyZWF0ZVRleHRJbmZvKEAiRm9vIGJhciIsIHF1YWQuZ2V0KCkpOwor
ICAgIGF1dG8gbGluZSA9IGNyZWF0ZUxpbmVJbmZvKEAiRm9vIGJhciIsIHF1YWQuZ2V0KCksIEBb
IHRleHQuZ2V0KCkgXSk7CisgICAgcmV0dXJuIGNyZWF0ZUltYWdlQW5hbHlzaXMoQFsgbGluZS5n
ZXQoKSBdKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8g
SEFWRShWS19JTUFHRV9BTkFMWVNJUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>