<?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>8643</bug_id>
          
          <creation_ts>2006-04-28 01:30:07 -0700</creation_ts>
          <short_desc>Style cleanup in WebKit</short_desc>
          <delta_ts>2006-05-01 01:09:38 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>40649</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-04-28 01:30:07 -0700</bug_when>
    <thetext>I&apos;ve had these sitting in my tree for too many weeks.  Time to either land or chuck.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40650</commentid>
    <comment_count>1</comment_count>
      <attachid>8017</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-04-28 01:30:57 -0700</bug_when>
    <thetext>Created attachment 8017
misc. style cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40667</commentid>
    <comment_count>2</comment_count>
      <attachid>8017</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-28 09:08:26 -0700</bug_when>
    <thetext>Comment on attachment 8017
misc. style cleanup

Looks all fine to me. r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8017</attachid>
            <date>2006-04-28 01:30:57 -0700</date>
            <delta_ts>2006-04-28 09:08:26 -0700</delta_ts>
            <desc>misc. style cleanup</desc>
            <filename>style.patch</filename>
            <type>text/plain</type>
            <size>35779</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5SZXByZXNlbnRhdGlvbi5tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5SZXByZXNlbnRhdGlvbi5tCShyZXZpc2lv
biAxNDA5NCkKKysrIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5SZXByZXNlbnRhdGlvbi5tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwxMCBAQAogICAgICAgICAgICAgX2RhdGFMZW5n
dGhSZWNlaXZlZCA9IDA7CiAgICAgICAgICAgICBbc2VsZiByZWNlaXZlZERhdGE6ZGF0YSB3aXRo
RGF0YVNvdXJjZTpfZGF0YVNvdXJjZV07CiAgICAgICAgICAgICBpZiAoIVtfZGF0YVNvdXJjZSBp
c0xvYWRpbmddKSB7Ci0gICAgICAgICAgICAgICAgaWYgKF9lcnJvcikgeworICAgICAgICAgICAg
ICAgIGlmIChfZXJyb3IpCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHJlY2VpdmVkRXJyb3I6
X2Vycm9yIHdpdGhEYXRhU291cmNlOl9kYXRhU291cmNlXTsKLSAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgZmlu
aXNoZWRMb2FkaW5nV2l0aERhdGFTb3VyY2U6X2RhdGFTb3VyY2VdOwotICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KSW5kZXg6IFBsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5QYWNrYWdlLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblBhY2thZ2UubQkocmV2aXNpb24gMTQwOTQpCisrKyBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1
Z2luUGFja2FnZS5tCSh3b3JraW5nIGNvcHkpCkBAIC03MywxMyArNzMsMTIgQEAgc3RhdGljIFRy
YW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1bmN0aQogICAgIEZTUmVmIGZyZWY7CiAgICAgT1NF
cnIgZXJyOwogICAgIAotICAgIGlmIChpc0J1bmRsZSkgeworICAgIGlmIChpc0J1bmRsZSkKICAg
ICAgICAgcmV0dXJuIENGQnVuZGxlT3BlbkJ1bmRsZVJlc291cmNlTWFwKGNmQnVuZGxlKTsKLSAg
ICB9IGVsc2UgeworICAgIGVsc2UgewogICAgICAgICBlcnIgPSBGU1BhdGhNYWtlUmVmKChjb25z
dCBVSW50OCAqKVtwYXRoIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl0sICZmcmVmLCBOVUxMKTsK
LSAgICAgICAgaWYgKGVyciAhPSBub0VycikgeworICAgICAgICBpZiAoZXJyICE9IG5vRXJyKQog
ICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZXR1
cm4gRlNPcGVuUmVzRmlsZSgmZnJlZiwgZnNSZFBlcm0pOwogICAgIH0KQEAgLTg3LDExICs4Niwx
MCBAQCBzdGF0aWMgVHJhbnNpdGlvblZlY3RvciB0VmVjdG9yRm9yRnVuY3RpCiAKIC0gKHZvaWQp
Y2xvc2VSZXNvdXJjZUZpbGU6KFNJbnQxNilyZXNSZWYKIHsKLSAgICBpZiAoaXNCdW5kbGUpIHsK
KyAgICBpZiAoaXNCdW5kbGUpCiAgICAgICAgIENGQnVuZGxlQ2xvc2VCdW5kbGVSZXNvdXJjZU1h
cChjZkJ1bmRsZSwgcmVzUmVmKTsKLSAgICB9IGVsc2UgeworICAgIGVsc2UKICAgICAgICAgQ2xv
c2VSZXNGaWxlKHJlc1JlZik7Ci0gICAgfQogfQogCiAtIChOU1N0cmluZyAqKXN0cmluZ0ZvclN0
cmluZ0xpc3RJRDooU0ludDE2KXN0cmluZ0xpc3RJRCBhbmRJbmRleDooU0ludDE2KWluZGV4CkBA
IC0xMDIsMTQgKzEwMCwxMiBAQCBzdGF0aWMgVHJhbnNpdGlvblZlY3RvciB0VmVjdG9yRm9yRnVu
Y3RpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogICAgIHVuc2lnbmVkIGNoYXIgKnAgPSAo
dW5zaWduZWQgY2hhciAqKSpzdHJpbmdIYW5kbGU7Ci0gICAgaWYgKHAgPT0gTlVMTCkgeworICAg
IGlmICghcCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICB9CiAgICAgCiAgICAgLy8gQ2hlY2sg
dGhlIGluZGV4IGFnYWluc3QgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGxpc3QsIHRoZW4gc2tp
cCB0aGUgbGVuZ3RoLgotICAgIGlmIChpbmRleCA8IDEgfHwgaW5kZXggPiAqKFNJbnQxNiAqKXAp
IHsKKyAgICBpZiAoaW5kZXggPCAxIHx8IGluZGV4ID4gKihTSW50MTYgKilwKQogICAgICAgICBy
ZXR1cm4gbmlsOwotICAgIH0KICAgICBwICs9IHNpemVvZihTSW50MTYpOwogICAgIAogICAgIC8v
IFNraXAgYW55IHN0cmluZ3MgdGhhdCBjb21lIGJlZm9yZSB0aGUgb25lIHdlIGFyZSBsb29raW5n
IGZvci4KQEAgLTEyMywxOSArMTE5LDE2IEBAIHN0YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0
b3JGb3JGdW5jdGkKIC0gKEJPT0wpZ2V0UGx1Z2luSW5mb0Zyb21SZXNvdXJjZXMKIHsKICAgICBT
SW50MTYgcmVzUmVmID0gW3NlbGYgb3BlblJlc291cmNlRmlsZV07Ci0gICAgaWYgKHJlc1JlZiA9
PSAtMSkgeworICAgIGlmIChyZXNSZWYgPT0gLTEpCiAgICAgICAgIHJldHVybiBOTzsKLSAgICB9
CiAgICAgCiAgICAgVXNlUmVzRmlsZShyZXNSZWYpOwotICAgIGlmIChSZXNFcnJvcigpICE9IG5v
RXJyKSB7CisgICAgaWYgKFJlc0Vycm9yKCkgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBOTzsK
LSAgICB9CiAKICAgICBOU1N0cmluZyAqTUlNRSwgKmV4dGVuc2lvbnNMaXN0LCAqZGVzY3JpcHRp
b247CiAgICAgTlNBcnJheSAqZXh0ZW5zaW9uczsKLSAgICBOU1JhbmdlIHI7Ci0gICAgdWludCBp
OworICAgIHVuc2lnbmVkIGk7CiAgICAgCiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqTUlNRVRv
RXh0ZW5zaW9uc0RpY3Rpb25hcnkgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsK
ICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpNSU1FVG9EZXNjcmlwdGlvbkRpY3Rpb25hcnkgPSBb
TlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKQEAgLTE0MywzMyArMTM2LDIzIEBAIHN0
YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGkKICAgICBmb3IgKGk9MTsgMTsg
aSs9MikgewogICAgICAgICBNSU1FID0gW1tzZWxmIHN0cmluZ0ZvclN0cmluZ0xpc3RJRDpNSU1F
TGlzdFN0cmluZ1N0cmluZ051bWJlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbmRJbmRleDppXSBsb3dlcmNhc2VTdHJpbmddOwotICAgICAgICBpZiAoIU1JTUUpIHsKKyAg
ICAgICAgaWYgKCFNSU1FKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyBGSVhNRTogQXZvaWQgbWltZSB0eXBlcyB3aXRoIHNlbWktY29sb25zIGJlY2F1c2UgS0pT
IGNhbid0IHByb3Blcmx5IHBhcnNlIHRoZW0gdXNpbmcgS1dRS0NvbmZpZ0Jhc2UKLSAgICAgICAg
ciA9IFtNSU1FIHJhbmdlT2ZTdHJpbmc6QCI7Il07Ci0gICAgICAgIGlmIChyLmxlbmd0aCA+IDAp
IHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CiAKLSAgICAgICAgZXh0ZW5zaW9u
c0xpc3QgPSBbW3NlbGYgc3RyaW5nRm9yU3RyaW5nTGlzdElEOk1JTUVMaXN0U3RyaW5nU3RyaW5n
TnVtYmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRJ
bmRleDppKzFdIGxvd2VyY2FzZVN0cmluZ107CisgICAgICAgIGV4dGVuc2lvbnNMaXN0ID0gW1tz
ZWxmIHN0cmluZ0ZvclN0cmluZ0xpc3RJRDpNSU1FTGlzdFN0cmluZ1N0cmluZ051bWJlciBhbmRJ
bmRleDppKzFdIGxvd2VyY2FzZVN0cmluZ107CiAgICAgICAgIGlmIChleHRlbnNpb25zTGlzdCkg
ewogICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFtleHRlbnNpb25zTGlzdCBjb21wb25lbnRzU2Vw
YXJhdGVkQnlTdHJpbmc6QCIsIl07CiAgICAgICAgICAgICBbTUlNRVRvRXh0ZW5zaW9uc0RpY3Rp
b25hcnkgc2V0T2JqZWN0OmV4dGVuc2lvbnMgZm9yS2V5Ok1JTUVdOwotICAgICAgICB9IGVsc2Ug
eworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIC8vIERSTSBhbmQgV01QIGNsYWltIE1JTUVz
IHdpdGhvdXQgZXh0ZW5zaW9ucy4gVXNlIGEgQCIiIGV4dGVuc2lvbiBpbiB0aGlzIGNhc2UuCiAg
ICAgICAgICAgICBbTUlNRVRvRXh0ZW5zaW9uc0RpY3Rpb25hcnkgc2V0T2JqZWN0OltOU0FycmF5
IGFycmF5V2l0aE9iamVjdDpAIiJdIGZvcktleTpNSU1FXTsKLSAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgZGVzY3JpcHRpb24gPSBbc2VsZiBzdHJpbmdGb3JTdHJpbmdMaXN0SUQ6TUlNRURl
c2NyaXB0aW9uU3RyaW5nTnVtYmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFuZEluZGV4OltNSU1FVG9FeHRlbnNpb25zRGljdGlvbmFyeSBjb3VudF1dOwotICAg
ICAgICBpZiAoZGVzY3JpcHRpb24pIHsKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uKQogICAgICAg
ICAgICAgW01JTUVUb0Rlc2NyaXB0aW9uRGljdGlvbmFyeSBzZXRPYmplY3Q6ZGVzY3JpcHRpb24g
Zm9yS2V5Ok1JTUVdOwotICAgICAgICB9IGVsc2UgeworICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBbTUlNRVRvRGVzY3JpcHRpb25EaWN0aW9uYXJ5IHNldE9iamVjdDpAIiIgZm9yS2V5Ok1JTUVd
OwotICAgICAgICB9CiAgICAgfQogCiAgICAgW3NlbGYgc2V0TUlNRVRvRGVzY3JpcHRpb25EaWN0
aW9uYXJ5Ok1JTUVUb0Rlc2NyaXB0aW9uRGljdGlvbmFyeV07CkBAIC0xNzgsMTYgKzE2MSwxNCBA
QCBzdGF0aWMgVHJhbnNpdGlvblZlY3RvciB0VmVjdG9yRm9yRnVuY3RpCiAgICAgTlNTdHJpbmcg
KmZpbGVuYW1lID0gW3NlbGYgZmlsZW5hbWVdOwogICAgIAogICAgIGRlc2NyaXB0aW9uID0gW3Nl
bGYgc3RyaW5nRm9yU3RyaW5nTGlzdElEOlBsdWdpbk5hbWVPckRlc2NyaXB0aW9uU3RyaW5nTnVt
YmVyIGFuZEluZGV4OjFdOwotICAgIGlmICghZGVzY3JpcHRpb24pIHsKKyAgICBpZiAoIWRlc2Ny
aXB0aW9uKQogICAgICAgICBkZXNjcmlwdGlvbiA9IGZpbGVuYW1lOwotICAgIH0KICAgICBbc2Vs
ZiBzZXRQbHVnaW5EZXNjcmlwdGlvbjpkZXNjcmlwdGlvbl07CiAgICAgCiAgICAgCiAgICAgTlNT
dHJpbmcgKnRoZU5hbWUgPSBbc2VsZiBzdHJpbmdGb3JTdHJpbmdMaXN0SUQ6UGx1Z2luTmFtZU9y
RGVzY3JpcHRpb25TdHJpbmdOdW1iZXIgYW5kSW5kZXg6Ml07Ci0gICAgaWYgKCF0aGVOYW1lKSB7
CisgICAgaWYgKCF0aGVOYW1lKQogICAgICAgICB0aGVOYW1lID0gZmlsZW5hbWU7Ci0gICAgfQog
ICAgIFtzZWxmIHNldE5hbWU6dGhlTmFtZV07CiAgICAgCiAgICAgW3NlbGYgY2xvc2VSZXNvdXJj
ZUZpbGU6cmVzUmVmXTsKQEAgLTE5NSw3ICsxNzYsNyBAQCBzdGF0aWMgVHJhbnNpdGlvblZlY3Rv
ciB0VmVjdG9yRm9yRnVuY3RpCiAgICAgcmV0dXJuIFlFUzsKIH0KIAotLSBpbml0V2l0aFBhdGg6
KE5TU3RyaW5nICopcGx1Z2luUGF0aAorLSAoaWQpaW5pdFdpdGhQYXRoOihOU1N0cmluZyAqKXBs
dWdpblBhdGgKIHsKICAgICBbc3VwZXIgaW5pdFdpdGhQYXRoOnBsdWdpblBhdGhdOwogCkBAIC0y
NTksMTEgKzI0MCwxMCBAQCBzdGF0aWMgVHJhbnNpdGlvblZlY3RvciB0VmVjdG9yRm9yRnVuY3Rp
CiAKIC0gKFdlYkV4ZWN1dGFibGVUeXBlKWV4ZWN1dGFibGVUeXBlCiB7Ci0gICAgaWYgKGlzQ0ZN
KSB7CisgICAgaWYgKGlzQ0ZNKQogICAgICAgICByZXR1cm4gV2ViQ0ZNRXhlY3V0YWJsZVR5cGU7
Ci0gICAgfSBlbHNlIHsKKyAgICBlbHNlCiAgICAgICAgIHJldHVybiBXZWJNYWNoT0V4ZWN1dGFi
bGVUeXBlOwotICAgIH0KIH0KIAogLSAoQk9PTClpc0xvYWRlZApAQCAtMjczLDIyICsyNTMsMTkg
QEAgc3RhdGljIFRyYW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1bmN0aQogCiAtICh2b2lkKXVu
bG9hZFdpdGhvdXRTaHV0ZG93bgogewotICAgIGlmICghaXNMb2FkZWQpIHsKKyAgICBpZiAoIWlz
TG9hZGVkKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCi0gICAgaWYgKHJlc291cmNlUmVmICE9
IC0xKSB7CisgICAgaWYgKHJlc291cmNlUmVmICE9IC0xKQogICAgICAgICBbc2VsZiBjbG9zZVJl
c291cmNlRmlsZTpyZXNvdXJjZVJlZl07Ci0gICAgfQogCi0gICAgaWYgKGlzQnVuZGxlKSB7Cisg
ICAgaWYgKGlzQnVuZGxlKQogICAgICAgICBDRkJ1bmRsZVVubG9hZEV4ZWN1dGFibGUoY2ZCdW5k
bGUpOwotICAgIH0gZWxzZSB7CisgICAgZWxzZQogI2lmICFfX0xQNjRfXwogICAgICAgICAvLyBD
Rk0gaXMgbm90IHN1cHBvcnRlZCBpbiA2NC1iaXQKICAgICAgICAgV2ViQ2xvc2VDb25uZWN0aW9u
KCZjb25uSUQpOwogI2VuZGlmCi0gICAgfQogCiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW4gVW5s
b2FkZWQiKTsKICAgICBpc0xvYWRlZCA9IE5POwpAQCAtMzIxLDE0ICsyOTgsMTIgQEAgc3RhdGlj
IFRyYW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1bmN0aQogI2VuZGlmCiAgICAgTE9HKFBsdWdp
bnMsICIlZiBMb2FkIHRpbWluZyBzdGFydGVkIGZvcjogJUAiLCBzdGFydCwgW3NlbGYgbmFtZV0p
OwogCi0gICAgaWYgKGlzTG9hZGVkKSB7CisgICAgaWYgKGlzTG9hZGVkKQogICAgICAgICByZXR1
cm4gWUVTOwotICAgIH0KICAgICAKICAgICBpZiAoaXNCdW5kbGUpIHsKLSAgICAgICAgaWYgKCFD
RkJ1bmRsZUxvYWRFeGVjdXRhYmxlKGNmQnVuZGxlKSkgeworICAgICAgICBpZiAoIUNGQnVuZGxl
TG9hZEV4ZWN1dGFibGUoY2ZCdW5kbGUpKQogICAgICAgICAgICAgZ290byBhYm9ydDsKLSAgICAg
ICAgfQogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgQ0ZBYnNvbHV0ZVRpbWUgY3VycmVudFRp
bWUgPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKTsKICAgICAgICAgQ0ZBYnNvbHV0ZVRpbWUg
ZHVyYXRpb24gPSBjdXJyZW50VGltZSAtIHN0YXJ0OwpAQCAtMzM4LDE2ICszMTMsMTQgQEAgc3Rh
dGljIFRyYW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1bmN0aQogICAgICAgICAKICAgICAgICAg
aWYgKGlzQ0ZNKSB7CiAgICAgICAgICAgICBwbHVnaW5NYWluRnVuYyA9IChNYWluRnVuY1B0cilD
RkJ1bmRsZUdldEZ1bmN0aW9uUG9pbnRlckZvck5hbWUoY2ZCdW5kbGUsIENGU1RSKCJtYWluIikg
KTsKLSAgICAgICAgICAgIGlmICghcGx1Z2luTWFpbkZ1bmMpIHsKKyAgICAgICAgICAgIGlmICgh
cGx1Z2luTWFpbkZ1bmMpCiAgICAgICAgICAgICAgICAgZ290byBhYm9ydDsKLSAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIE5QX0luaXRpYWxpemUgPSAoTlBfSW5p
dGlhbGl6ZUZ1bmNQdHIpQ0ZCdW5kbGVHZXRGdW5jdGlvblBvaW50ZXJGb3JOYW1lKGNmQnVuZGxl
LCBDRlNUUigiTlBfSW5pdGlhbGl6ZSIpKTsKICAgICAgICAgICAgIE5QX0dldEVudHJ5UG9pbnRz
ID0gKE5QX0dldEVudHJ5UG9pbnRzRnVuY1B0cilDRkJ1bmRsZUdldEZ1bmN0aW9uUG9pbnRlckZv
ck5hbWUoY2ZCdW5kbGUsIENGU1RSKCJOUF9HZXRFbnRyeVBvaW50cyIpKTsKICAgICAgICAgICAg
IE5QUF9TaHV0ZG93biA9IChOUFBfU2h1dGRvd25Qcm9jUHRyKUNGQnVuZGxlR2V0RnVuY3Rpb25Q
b2ludGVyRm9yTmFtZShjZkJ1bmRsZSwgQ0ZTVFIoIk5QX1NodXRkb3duIikpOwotICAgICAgICAg
ICAgaWYgKCFOUF9Jbml0aWFsaXplIHx8ICFOUF9HZXRFbnRyeVBvaW50cyB8fCAhTlBQX1NodXRk
b3duKSB7CisgICAgICAgICAgICBpZiAoIU5QX0luaXRpYWxpemUgfHwgIU5QX0dldEVudHJ5UG9p
bnRzIHx8ICFOUFBfU2h1dGRvd24pCiAgICAgICAgICAgICAgICAgZ290byBhYm9ydDsKLSAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAjaWYgX19MUDY0X18KQEAgLTQ0OCwx
NyArNDIxLDE1IEBAIHN0YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGkKICAg
ICAgICAgTlBQX1NodXRkb3duUHJvY1B0ciBzaHV0ZG93bkZ1bmN0aW9uOwogICAgICAgICBucEVy
ciA9IHBsdWdpbk1haW5GdW5jKCZicm93c2VyRnVuY3MsICZwbHVnaW5GdW5jcywgJnNodXRkb3du
RnVuY3Rpb24pOwogICAgICAgICBOUFBfU2h1dGRvd24gPSAoTlBQX1NodXRkb3duUHJvY1B0cilm
dW5jdGlvblBvaW50ZXJGb3JUVmVjdG9yKChUcmFuc2l0aW9uVmVjdG9yKXNodXRkb3duRnVuY3Rp
b24pOwotICAgICAgICBpZiAoIWlzQnVuZGxlKSB7CisgICAgICAgIGlmICghaXNCdW5kbGUpCiAg
ICAgICAgICAgICAvLyBEb24ndCBmcmVlIHBsdWdpbk1haW5GdW5jIGlmIHdlIGdvdCBpdCBmcm9t
IGEgYnVuZGxlIGJlY2F1c2UgaXQgaXMgb3duZWQgYnkgQ0ZCdW5kbGUgaW4gdGhhdCBjYXNlLgog
ICAgICAgICAgICAgZnJlZShwbHVnaW5NYWluRnVuYyk7Ci0gICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIC8vIFdvcmthcm91bmQgZm9yIDMyNzA1NzYuIFRoZSBSZWFsUGxheWVyIHBsdWctaW4g
ZmFpbHMgdG8gbG9hZCBpZiBpdHMgcHJlZmVyZW5jZSBmaWxlIGlzIG91dCBvZiBkYXRlLgogICAg
ICAgICAvLyBMYXVuY2ggdGhlIFJlYWxQbGF5ZXIgYXBwbGljYXRpb24gdG8gcmVmcmVzaCB0aGUg
ZmlsZS4KICAgICAgICAgaWYgKG5wRXJyICE9IE5QRVJSX05PX0VSUk9SKSB7Ci0gICAgICAgICAg
ICBpZiAobnBFcnIgPT0gTlBFUlJfTU9EVUxFX0xPQURfRkFJTEVEX0VSUk9SICYmIFtbc2VsZiBm
aWxlbmFtZV0gaXNFcXVhbFRvU3RyaW5nOlJlYWxQbGF5ZXJQbHVnaW5GaWxlbmFtZV0pIHsKKyAg
ICAgICAgICAgIGlmIChucEVyciA9PSBOUEVSUl9NT0RVTEVfTE9BRF9GQUlMRURfRVJST1IgJiYg
W1tzZWxmIGZpbGVuYW1lXSBpc0VxdWFsVG9TdHJpbmc6UmVhbFBsYXllclBsdWdpbkZpbGVuYW1l
XSkKICAgICAgICAgICAgICAgICBbc2VsZiBsYXVuY2hSZWFsUGxheWVyXTsKLSAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGdvdG8gYWJvcnQ7CiAgICAgICAgIH0KICNpZiAhTE9HX0RJU0FCTEVE
CkBAIC00ODcsNyArNDU4LDcgQEAgc3RhdGljIFRyYW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1
bmN0aQogCiAgICAgICAgIC8vIExpdmVDb25uZWN0IHN1cHBvcnQKICAgICAgICAgTlBQX0dldEph
dmFDbGFzcyA9IChOUFBfR2V0SmF2YUNsYXNzUHJvY1B0cilmdW5jdGlvblBvaW50ZXJGb3JUVmVj
dG9yKChUcmFuc2l0aW9uVmVjdG9yKXBsdWdpbkZ1bmNzLmphdmFDbGFzcyk7Ci0gICAgICAgIGlm
IChOUFBfR2V0SmF2YUNsYXNzKXsKKyAgICAgICAgaWYgKE5QUF9HZXRKYXZhQ2xhc3MpIHsKICAg
ICAgICAgICAgIExPRyhMaXZlQ29ubmVjdCwgIiVAOiAgQ0ZNIGVudHJ5IHBvaW50IGZvciBOUFBf
R2V0SmF2YUNsYXNzID0gJXAiLCBbc2VsZiBuYW1lXSwgTlBQX0dldEphdmFDbGFzcyk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBMT0coTGl2ZUNvbm5lY3QsICIlQDogIG5vIGVudHJ5
IHBvaW50IGZvciBOUFBfR2V0SmF2YUNsYXNzIiwgW3NlbGYgbmFtZV0pOwpAQCAtNTQxLDkgKzUx
Miw4IEBAIHN0YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGkKICNlbmRpZgog
ICAgICAgICBMT0coUGx1Z2lucywgIiVmIE5QX0luaXRpYWxpemUgdGltaW5nIHN0YXJ0ZWQiLCBp
bml0aWFsaXplU3RhcnQpOwogICAgICAgICBucEVyciA9IE5QX0luaXRpYWxpemUoJmJyb3dzZXJG
dW5jcyk7Ci0gICAgICAgIGlmIChucEVyciAhPSBOUEVSUl9OT19FUlJPUikgeworICAgICAgICBp
ZiAobnBFcnIgIT0gTlBFUlJfTk9fRVJST1IpCiAgICAgICAgICAgICBnb3RvIGFib3J0OwotICAg
ICAgICB9CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBDRkFic29sdXRlVGltZSBjdXJyZW50
VGltZSA9IENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpOwogICAgICAgICBDRkFic29sdXRlVGlt
ZSBkdXJhdGlvbiA9IGN1cnJlbnRUaW1lIC0gaW5pdGlhbGl6ZVN0YXJ0OwpAQCAtNTUxLDkgKzUy
MSw4IEBAIHN0YXRpYyBUcmFuc2l0aW9uVmVjdG9yIHRWZWN0b3JGb3JGdW5jdGkKICAgICAgICAg
TE9HKFBsdWdpbnMsICIlZiBOUF9Jbml0aWFsaXplIHRvb2sgJWYgc2Vjb25kcyIsIGN1cnJlbnRU
aW1lLCBkdXJhdGlvbik7CiAKICAgICAgICAgbnBFcnIgPSBOUF9HZXRFbnRyeVBvaW50cygmcGx1
Z2luRnVuY3MpOwotICAgICAgICBpZiAobnBFcnIgIT0gTlBFUlJfTk9fRVJST1IpIHsKKyAgICAg
ICAgaWYgKG5wRXJyICE9IE5QRVJSX05PX0VSUk9SKQogICAgICAgICAgICAgZ290byBhYm9ydDsK
LSAgICAgICAgfQogICAgICAgICAKICAgICAgICAgcGx1Z2luU2l6ZSA9IHBsdWdpbkZ1bmNzLnNp
emU7CiAgICAgICAgIHBsdWdpblZlcnNpb24gPSBwbHVnaW5GdW5jcy52ZXJzaW9uOwpAQCAtNTk2
LDkgKzU2NSw4IEBAIGFib3J0OgogICAgIAogLSAodm9pZCl1bmxvYWQKIHsKLSAgICBpZiAoIWlz
TG9hZGVkKSB7CisgICAgaWYgKCFpc0xvYWRlZCkKICAgICAgICAgcmV0dXJuOwotICAgIH0KICAg
ICAKICAgICBMT0coUGx1Z2lucywgIlVubG9hZGluZyAlQC4uLiIsIG5hbWUpOwogCkluZGV4OiBQ
bHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGx1Z2lucy9XZWJC
YXNlUGx1Z2luUGFja2FnZS5tCShyZXZpc2lvbiAxNDA5NCkKKysrIFBsdWdpbnMvV2ViQmFzZVBs
dWdpblBhY2thZ2UubQkod29ya2luZyBjb3B5KQpAQCAtNTYsOSArNTYsOCBAQAogewogICAgIFdl
YkJhc2VQbHVnaW5QYWNrYWdlICpwbHVnaW5QYWNrYWdlID0gW1tXZWJQbHVnaW5QYWNrYWdlIGFs
bG9jXSBpbml0V2l0aFBhdGg6cGx1Z2luUGF0aF07CiAKLSAgICBpZiAoIXBsdWdpblBhY2thZ2Up
IHsKKyAgICBpZiAoIXBsdWdpblBhY2thZ2UpCiAgICAgICAgIHBsdWdpblBhY2thZ2UgPSBbW1dl
Yk5ldHNjYXBlUGx1Z2luUGFja2FnZSBhbGxvY10gaW5pdFdpdGhQYXRoOnBsdWdpblBhdGhdOwot
ICAgIH0KIAogICAgIHJldHVybiBbcGx1Z2luUGFja2FnZSBhdXRvcmVsZWFzZV07CiB9CkBAIC03
NiwxNiArNzUsMTQgQEAKICAgICBPU1N0YXR1cyBlcnI7CiAKICAgICBlcnIgPSBGU1BhdGhNYWtl
UmVmKChjb25zdCBVSW50OCAqKVt0aGVQYXRoIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl0sICZm
cmVmLCBOVUxMKTsKLSAgICBpZiAoZXJyICE9IG5vRXJyKSB7CisgICAgaWYgKGVyciAhPSBub0Vy
cikKICAgICAgICAgcmV0dXJuIG5ld1BhdGg7Ci0gICAgfQogCiAgICAgQm9vbGVhbiB0YXJnZXRJ
c0ZvbGRlcjsKICAgICBCb29sZWFuIHdhc0FsaWFzZWQ7CiAgICAgZXJyID0gRlNSZXNvbHZlQWxp
YXNGaWxlV2l0aE1vdW50RmxhZ3MoJmZyZWYsIFRSVUUsICZ0YXJnZXRJc0ZvbGRlciwgJndhc0Fs
aWFzZWQsIGtSZXNvbHZlQWxpYXNGaWxlTm9VSSk7Ci0gICAgaWYgKGVyciAhPSBub0Vycikgewor
ICAgIGlmIChlcnIgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybiBuZXdQYXRoOwotICAgIH0KIAog
ICAgIGlmICh3YXNBbGlhc2VkKSB7CiAgICAgICAgIENGVVJMUmVmIFVSTCA9IENGVVJMQ3JlYXRl
RnJvbUZTUmVmKGtDRkFsbG9jYXRvckRlZmF1bHQsICZmcmVmKTsKQEAgLTk2LDkgKzkzLDkgQEAK
ICAgICByZXR1cm4gbmV3UGF0aDsKIH0KIAotLSBpbml0V2l0aFBhdGg6KE5TU3RyaW5nICopcGx1
Z2luUGF0aAorLSAoaWQpaW5pdFdpdGhQYXRoOihOU1N0cmluZyAqKXBsdWdpblBhdGgKIHsKLSAg
ICBbc3VwZXIgaW5pdF07CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBleHRlbnNpb25U
b01JTUUgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdOwogICAgIHBhdGggPSBb
W3NlbGYgcGF0aEJ5UmVzb2x2aW5nU3ltbGlua3NBbmRBbGlhc2VzSW5QYXRoOnBsdWdpblBhdGhd
IHJldGFpbl07CiAgICAgYnVuZGxlID0gW1tOU0J1bmRsZSBhbGxvY10gaW5pdFdpdGhQYXRoOnBh
dGhdOwpAQCAtMTA5LDE1ICsxMDYsMTMgQEAKIAogLSAoQk9PTClnZXRQbHVnaW5JbmZvRnJvbUJ1
bmRsZUFuZE1JTUVEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilNSU1FVHlwZXMKIHsKLSAgICBp
ZiAoIWJ1bmRsZSkgeworICAgIGlmICghYnVuZGxlKQogICAgICAgICByZXR1cm4gTk87Ci0gICAg
fQogICAgIAogICAgIGlmICghTUlNRVR5cGVzKSB7CiAgICAgICAgIE1JTUVUeXBlcyA9IFtidW5k
bGUgb2JqZWN0Rm9ySW5mb0RpY3Rpb25hcnlLZXk6V2ViUGx1Z2luTUlNRVR5cGVzS2V5XTsKLSAg
ICAgICAgaWYgKCFNSU1FVHlwZXMpIHsKKyAgICAgICAgaWYgKCFNSU1FVHlwZXMpCiAgICAgICAg
ICAgICByZXR1cm4gTk87Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBOU011dGFibGVEaWN0aW9u
YXJ5ICpNSU1FVG9FeHRlbnNpb25zRGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRp
Y3Rpb25hcnldOwpAQCAtMTMyLDIzICsxMjcsMjAgQEAKICAgICAgICAgCiAgICAgICAgIC8vIEZJ
WE1FOiBDb25zaWRlciBzdG9yaW5nIGRpc2FibGVkIE1JTUUgdHlwZXMuCiAgICAgICAgIE5TTnVt
YmVyICppc0VuYWJsZWQgPSBbTUlNRURpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OldlYlBsdWdpblR5
cGVFbmFibGVkS2V5XTsKLSAgICAgICAgaWYgKGlzRW5hYmxlZCAmJiBbaXNFbmFibGVkIGJvb2xW
YWx1ZV0gPT0gTk8pIHsKKyAgICAgICAgaWYgKGlzRW5hYmxlZCAmJiBbaXNFbmFibGVkIGJvb2xW
YWx1ZV0gPT0gTk8pCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQogCiAgICAgICAg
IGV4dGVuc2lvbnMgPSBbW01JTUVEaWN0aW9uYXJ5IG9iamVjdEZvcktleTpXZWJQbHVnaW5FeHRl
bnNpb25zS2V5XSBfd2ViX2xvd2VyY2FzZVN0cmluZ3NdOwotICAgICAgICBpZiAoW2V4dGVuc2lv
bnMgY291bnRdID09IDApIHsKKyAgICAgICAgaWYgKFtleHRlbnNpb25zIGNvdW50XSA9PSAwKQog
ICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdDpAIiJdOwot
ICAgICAgICB9CiAKICAgICAgICAgTUlNRSA9IFtNSU1FIGxvd2VyY2FzZVN0cmluZ107CiAKICAg
ICAgICAgW01JTUVUb0V4dGVuc2lvbnNEaWN0aW9uYXJ5IHNldE9iamVjdDpleHRlbnNpb25zIGZv
cktleTpNSU1FXTsKIAogICAgICAgICBkZXNjcmlwdGlvbiA9IFtNSU1FRGljdGlvbmFyeSBvYmpl
Y3RGb3JLZXk6V2ViUGx1Z2luVHlwZURlc2NyaXB0aW9uS2V5XTsKLSAgICAgICAgaWYgKCFkZXNj
cmlwdGlvbikgeworICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKQogICAgICAgICAgICAgZGVzY3Jp
cHRpb24gPSBAIiI7Ci0gICAgICAgIH0KIAogICAgICAgICBbTUlNRVRvRGVzY3JpcHRpb25EaWN0
aW9uYXJ5IHNldE9iamVjdDpkZXNjcmlwdGlvbiBmb3JLZXk6TUlNRV07CiAgICAgfQpAQCAtMTU5
LDE1ICsxNTEsMTMgQEAKICAgICBOU1N0cmluZyAqZmlsZW5hbWUgPSBbc2VsZiBmaWxlbmFtZV07
CiAKICAgICBOU1N0cmluZyAqdGhlTmFtZSA9IFtidW5kbGUgb2JqZWN0Rm9ySW5mb0RpY3Rpb25h
cnlLZXk6V2ViUGx1Z2luTmFtZUtleV07Ci0gICAgaWYgKCF0aGVOYW1lKSB7CisgICAgaWYgKCF0
aGVOYW1lKQogICAgICAgICB0aGVOYW1lID0gZmlsZW5hbWU7Ci0gICAgfQogICAgIFtzZWxmIHNl
dE5hbWU6dGhlTmFtZV07CiAKICAgICBkZXNjcmlwdGlvbiA9IFtidW5kbGUgb2JqZWN0Rm9ySW5m
b0RpY3Rpb25hcnlLZXk6V2ViUGx1Z2luRGVzY3JpcHRpb25LZXldOwotICAgIGlmICghZGVzY3Jp
cHRpb24pIHsKKyAgICBpZiAoIWRlc2NyaXB0aW9uKQogICAgICAgICBkZXNjcmlwdGlvbiA9IGZp
bGVuYW1lOwotICAgIH0KICAgICBbc2VsZiBzZXRQbHVnaW5EZXNjcmlwdGlvbjpkZXNjcmlwdGlv
bl07CiAKICAgICByZXR1cm4gWUVTOwpAQCAtMTc1LDkgKzE2NSw4IEBACiAKIC0gKE5TRGljdGlv
bmFyeSAqKXBMaXN0Rm9yUGF0aDooTlNTdHJpbmcgKilwTGlzdFBhdGggY3JlYXRlRmlsZTooQk9P
TCljcmVhdGVGaWxlCiB7Ci0gICAgaWYgKGNyZWF0ZUZpbGUgJiYgW3NlbGYgbG9hZF0gJiYgQlBf
Q3JlYXRlUGx1Z2luTUlNRVR5cGVzUHJlZmVyZW5jZXMpIHsKKyAgICBpZiAoY3JlYXRlRmlsZSAm
JiBbc2VsZiBsb2FkXSAmJiBCUF9DcmVhdGVQbHVnaW5NSU1FVHlwZXNQcmVmZXJlbmNlcykKICAg
ICAgICAgQlBfQ3JlYXRlUGx1Z2luTUlNRVR5cGVzUHJlZmVyZW5jZXMoKTsKLSAgICB9CiAgICAg
CiAgICAgTlNEaWN0aW9uYXJ5ICpwTGlzdCA9IG5pbDsKICAgICBOU0RhdGEgKmRhdGEgPSBbTlNE
YXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6cExpc3RQYXRoXTsKQEAgLTE5Myw5ICsxODIsOCBA
QAogCiAtIChCT09MKWdldFBsdWdpbkluZm9Gcm9tUExpc3RzCiB7Ci0gICAgaWYgKCFidW5kbGUp
IHsKKyAgICBpZiAoIWJ1bmRsZSkKICAgICAgICAgcmV0dXJuIE5POwotICAgIH0KICAgICAKICAg
ICBOU0RpY3Rpb25hcnkgKk1JTUVUeXBlcyA9IG5pbDsKICAgICBOU1N0cmluZyAqcExpc3RGaWxl
bmFtZSA9IFtidW5kbGUgb2JqZWN0Rm9ySW5mb0RpY3Rpb25hcnlLZXk6V2ViUGx1Z2luTUlNRVR5
cGVzRmlsZW5hbWVLZXldOwpAQCAtMjA3LDE0ICsxOTUsMTIgQEAKICAgICAgICAgaWYgKHBMaXN0
KSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgcGxpc3QgaXNuJ3QgbG9jYWxpemVkLCBoYXZlIHRo
ZSBwbHVnLWluIHJlY3JlYXRlIGl0IGluIHRoZSBwcmVmZXJyZWQgbGFuZ3VhZ2UuCiAgICAgICAg
ICAgICBOU1N0cmluZyAqbG9jYWxpemF0aW9uTmFtZSA9IFtwTGlzdCBvYmplY3RGb3JLZXk6V2Vi
UGx1Z2luTG9jYWxpemF0aW9uTmFtZUtleV07Ci0gICAgICAgICAgICBpZiAoIVtsb2NhbGl6YXRp
b25OYW1lIGlzRXF1YWxUb1N0cmluZzpbW3NlbGYgY2xhc3NdIHByZWZlcnJlZExvY2FsaXphdGlv
bk5hbWVdXSkgeworICAgICAgICAgICAgaWYgKCFbbG9jYWxpemF0aW9uTmFtZSBpc0VxdWFsVG9T
dHJpbmc6W1tzZWxmIGNsYXNzXSBwcmVmZXJyZWRMb2NhbGl6YXRpb25OYW1lXV0pCiAgICAgICAg
ICAgICAgICAgcExpc3QgPSBbc2VsZiBwTGlzdEZvclBhdGg6cExpc3RQYXRoIGNyZWF0ZUZpbGU6
WUVTXTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIE1JTUVUeXBlcyA9IFtwTGlzdCBvYmpl
Y3RGb3JLZXk6V2ViUGx1Z2luTUlNRVR5cGVzS2V5XTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICAvLyBQbGlzdCBkb2Vzbid0IGV4aXN0LCBhc2sgdGhlIHBs
dWctaW4gdG8gY3JlYXRlIGl0LgogICAgICAgICAgICAgTUlNRVR5cGVzID0gW1tzZWxmIHBMaXN0
Rm9yUGF0aDpwTGlzdFBhdGggY3JlYXRlRmlsZTpZRVNdIG9iamVjdEZvcktleTpXZWJQbHVnaW5N
SU1FVHlwZXNLZXldOwotICAgICAgICB9CiAgICAgfQogICAgIAogICAgIC8vIFBhc3MgdGhlIE1J
TUUgZGljdGlvbmFyeSB0byB0aGUgc3VwZXJjbGFzcyB0byBwYXJzZSBpdC4KQEAgLTIyOCw5ICsy
MTQsOCBAQAogCiAtIChCT09MKWxvYWQKIHsKLSAgICBpZiAoaXNMb2FkZWQgJiYgYnVuZGxlICE9
IG5pbCAmJiBCUF9DcmVhdGVQbHVnaW5NSU1FVHlwZXNQcmVmZXJlbmNlcyA9PSBOVUxMKSB7Cisg
ICAgaWYgKGlzTG9hZGVkICYmIGJ1bmRsZSAmJiAhQlBfQ3JlYXRlUGx1Z2luTUlNRVR5cGVzUHJl
ZmVyZW5jZXMpCiAgICAgICAgIEJQX0NyZWF0ZVBsdWdpbk1JTUVUeXBlc1ByZWZlcmVuY2VzID0g
KEJQX0NyZWF0ZVBsdWdpbk1JTUVUeXBlc1ByZWZlcmVuY2VzRnVuY1B0cilDRkJ1bmRsZUdldEZ1
bmN0aW9uUG9pbnRlckZvck5hbWUoY2ZCdW5kbGUsIENGU1RSKCJCUF9DcmVhdGVQbHVnaW5NSU1F
VHlwZXNQcmVmZXJlbmNlcyIpKTsKLSAgICB9CiAgICAgcmV0dXJuIGlzTG9hZGVkOwogfQogCkBA
IC0zNjUsOSArMzUwLDggQEAKICAgICAgICAgZXh0ZW5zaW9uRW51bWVyYXRvciA9IFtleHRlbnNp
b25zIG9iamVjdEVudW1lcmF0b3JdOwogCiAgICAgICAgIHdoaWxlICgoZXh0ZW5zaW9uID0gW2V4
dGVuc2lvbkVudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkgewotICAgICAgICAgICAgaWYg
KCFbZXh0ZW5zaW9uIGlzRXF1YWxUb1N0cmluZzpAIiJdKSB7CisgICAgICAgICAgICBpZiAoIVtl
eHRlbnNpb24gaXNFcXVhbFRvU3RyaW5nOkAiIl0pCiAgICAgICAgICAgICAgICAgW2V4dGVuc2lv
blRvTUlNRSBzZXRPYmplY3Q6TUlNRSBmb3JLZXk6ZXh0ZW5zaW9uXTsKLSAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KIH0KQEAgLTQxNCwxMiArMzk4LDEwIEBACiAgICAgICAgIGNvbnN0
IE5YQXJjaEluZm8gKmxvY2FsQXJjaCA9IE5YR2V0TG9jYWxBcmNoSW5mbygpOwogICAgICAgICBp
ZiAobG9jYWxBcmNoICE9IE5VTEwpIHsKICAgICAgICAgICAgIHN0cnVjdCBtYWNoX2hlYWRlciAq
aGVhZGVyID0gKHN0cnVjdCBtYWNoX2hlYWRlciAqKVtkYXRhIGJ5dGVzXTsKLSAgICAgICAgICAg
IGlmIChoZWFkZXItPm1hZ2ljID09IE1IX01BR0lDKSB7CisgICAgICAgICAgICBpZiAoaGVhZGVy
LT5tYWdpYyA9PSBNSF9NQUdJQykKICAgICAgICAgICAgICAgICByZXR1cm4gKGhlYWRlci0+Y3B1
dHlwZSA9PSBsb2NhbEFyY2gtPmNwdXR5cGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKGhlYWRlci0+bWFnaWMgPT0gTUhfQ0lHQU0pIHsKKyAgICAgICAgICAgIGlmIChoZWFkZXIt
Pm1hZ2ljID09IE1IX0NJR0FNKQogICAgICAgICAgICAgICAgIHJldHVybiAoKGNwdV90eXBlX3Qp
IE9TU3dhcEludDMyKGhlYWRlci0+Y3B1dHlwZSkgPT0gbG9jYWxBcmNoLT5jcHV0eXBlKTsKLSAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gWUVTOwpAQCAtNDM2LDkg
KzQxOCw4IEBACiAgICAgTlNTdHJpbmcgKnN0cmluZzsKIAogICAgIHdoaWxlICgoc3RyaW5nID0g
W3N0cmluZ3MgbmV4dE9iamVjdF0pICE9IG5pbCkgewotICAgICAgICBpZiAoW3N0cmluZyBpc0tp
bmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKSB7CisgICAgICAgIGlmIChbc3RyaW5nIGlzS2lu
ZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCiAgICAgICAgICAgICBbbG93ZXJjYXNlU3RyaW5n
cyBhZGRPYmplY3Q6W3N0cmluZyBsb3dlcmNhc2VTdHJpbmddXTsKLSAgICAgICAgfQogICAgIH0K
IAogICAgIHJldHVybiBsb3dlcmNhc2VTdHJpbmdzOwpJbmRleDogUGx1Z2lucy9ucGFwaS5tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFBsdWdpbnMvbnBhcGkubQkocmV2aXNpb24gMTQwOTQpCisrKyBQbHVnaW5z
L25wYXBpLm0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDEzICszNywxMSBAQCBXZWJCYXNlTmV0c2Nh
cGVQbHVnaW5WaWV3ICpwbHVnaW5WaWV3Rm9yCiAKIHZvaWQqIE5QTl9NZW1BbGxvYyh1aW50MzIg
c2l6ZSkKIHsKLSAgICAvL0xPRyhQbHVnaW5zLCAiTlBOX01lbUFsbG9jIik7CiAgICAgcmV0dXJu
IG1hbGxvYyhzaXplKTsKIH0KIAogdm9pZCBOUE5fTWVtRnJlZSh2b2lkKiBwdHIpCiB7Ci0gICAg
Ly9MT0coUGx1Z2lucywgIk5QTl9NZW1GcmVlIik7CiAgICAgZnJlZShwdHIpOwogfQogCkBAIC03
MSwxMSArNjksMTAgQEAgTlBFcnJvciBOUE5fUmVxdWVzdFJlYWQoTlBTdHJlYW0qIHN0cmVhbQog
Ly8gVGhpcyBzcGVjaWZpY2FsbHkgd29ya3MgYXJvdW5kIEZsYXNoIGFuZCBTaG9ja3dhdmUuIFdo
ZW4gd2UgY2FsbCBOUFBfTmV3LCB0aGV5IGNhbGwgTlBOX1VzZXJBZ2VudCB3aXRoIGEgTlVMTCBp
bnN0YW5jZS4KIFdlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgKnBsdWdpblZpZXdGb3JJbnN0YW5j
ZShOUFAgaW5zdGFuY2UpCiB7Ci0gICAgaWYgKGluc3RhbmNlICYmIGluc3RhbmNlLT5uZGF0YSkg
eworICAgIGlmIChpbnN0YW5jZSAmJiBpbnN0YW5jZS0+bmRhdGEpCiAgICAgICAgIHJldHVybiAo
V2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyAqKWluc3RhbmNlLT5uZGF0YTsKLSAgICB9IGVsc2Ug
eworICAgIGVsc2UKICAgICAgICAgcmV0dXJuIFtXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3IGN1
cnJlbnRQbHVnaW5WaWV3XTsKLSAgICB9CiB9CiAKIE5QRXJyb3IgTlBOX0dldFVSTE5vdGlmeShO
UFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIFVSTCwgY29uc3QgY2hhciogdGFyZ2V0LCB2b2lkKiBu
b3RpZnlEYXRhKQpJbmRleDogUGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFBsdWdpbnMvV2ViUGx1Z2luRGF0YWJhc2UubQkocmV2aXNpb24gMTQwOTQpCisrKyBQbHVn
aW5zL1dlYlBsdWdpbkRhdGFiYXNlLm0JKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDggQEAg
c3RhdGljIFdlYlBsdWdpbkRhdGFiYXNlICpkYXRhYmFzZSA9IG5pbAogCiArIChXZWJQbHVnaW5E
YXRhYmFzZSAqKWluc3RhbGxlZFBsdWdpbnMgCiB7Ci0gICAgaWYgKCFkYXRhYmFzZSkgeworICAg
IGlmICghZGF0YWJhc2UpCiAgICAgICAgIGRhdGFiYXNlID0gW1tXZWJQbHVnaW5EYXRhYmFzZSBh
bGxvY10gaW5pdF07Ci0gICAgfQogICAgIHJldHVybiBkYXRhYmFzZTsKIH0KIApAQCAtNjMsMTkg
KzYyLDE2IEBAIHN0YXRpYyBXZWJQbHVnaW5EYXRhYmFzZSAqZGF0YWJhc2UgPSBuaWwKICAgICB3
aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsK
ICAgICAgICAgaWYgKFtbW3BsdWdpbiBwZXJmb3JtU2VsZWN0b3I6ZW51bWVyYXRvclNlbGVjdG9y
XSBhbGxPYmplY3RzXSBjb250YWluc09iamVjdDprZXldKSB7CiAgICAgICAgICAgICBpZiAoW3Bs
dWdpbiBpc0tpbmRPZkNsYXNzOltXZWJQbHVnaW5QYWNrYWdlIGNsYXNzXV0pIHsKLSAgICAgICAg
ICAgICAgICBpZiAod2ViUGx1Z2luID09IG5pbCkgeworICAgICAgICAgICAgICAgIGlmICghd2Vi
UGx1Z2luKQogICAgICAgICAgICAgICAgICAgICB3ZWJQbHVnaW4gPSBwbHVnaW47Ci0gICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmKFtwbHVnaW4gaXNLaW5kT2ZDbGFzczpb
V2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIGNsYXNzXV0pIHsKICAgICAgICAgICAgICAgICBXZWJF
eGVjdXRhYmxlVHlwZSBleGVjdXRhYmxlVHlwZSA9IFsoV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdl
ICopcGx1Z2luIGV4ZWN1dGFibGVUeXBlXTsKICAgICAgICAgICAgICAgICBpZiAoZXhlY3V0YWJs
ZVR5cGUgPT0gV2ViQ0ZNRXhlY3V0YWJsZVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KENGTVBsdWdpbiA9PSBuaWwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFDRk1QbHVnaW4p
CiAgICAgICAgICAgICAgICAgICAgICAgICBDRk1QbHVnaW4gPSBwbHVnaW47Ci0gICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV4ZWN1dGFibGVUeXBlID09
IFdlYk1hY2hPRXhlY3V0YWJsZVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1hY2hv
UGx1Z2luID09IG5pbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIW1hY2hvUGx1Z2luKQog
ICAgICAgICAgICAgICAgICAgICAgICAgbWFjaG9QbHVnaW4gPSBwbHVnaW47Ci0gICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICB9CkBAIC04NywxOSArODMs
MTggQEAgc3RhdGljIFdlYlBsdWdpbkRhdGFiYXNlICpkYXRhYmFzZSA9IG5pbAogCiAgICAgLy8g
QWxsb3cgb3RoZXIgcGx1Zy1pbnMgdG8gd2luIG92ZXIgUVQgYmVjYXVzZSBpZiB0aGUgdXNlciBo
YXMgaW5zdGFsbGVkIGEgcGx1Zy1pbiB0aGF0IGNhbiBoYW5kbGUgYSB0eXBlCiAgICAgLy8gdGhh
dCB0aGUgUVQgcGx1Zy1pbiBjYW4gaGFuZGxlLCB0aGV5IHByb2JhYmx5IGludGVuZGVkIHRvIG92
ZXJyaWRlIFFULgotICAgIGlmICh3ZWJQbHVnaW4gJiYgIVt3ZWJQbHVnaW4gaXNRdWlja1RpbWVQ
bHVnSW5dKSB7CisgICAgaWYgKHdlYlBsdWdpbiAmJiAhW3dlYlBsdWdpbiBpc1F1aWNrVGltZVBs
dWdJbl0pCiAgICAgICAgIHJldHVybiB3ZWJQbHVnaW47Ci0gICAgfSBlbHNlIGlmIChtYWNob1Bs
dWdpbiAmJiAhW21hY2hvUGx1Z2luIGlzUXVpY2tUaW1lUGx1Z0luXSkgeworICAgIGVsc2UgaWYg
KG1hY2hvUGx1Z2luICYmICFbbWFjaG9QbHVnaW4gaXNRdWlja1RpbWVQbHVnSW5dKQogICAgICAg
ICByZXR1cm4gbWFjaG9QbHVnaW47Ci0gICAgfSBlbHNlIGlmIChDRk1QbHVnaW4gJiYgIVtDRk1Q
bHVnaW4gaXNRdWlja1RpbWVQbHVnSW5dKSB7CisgICAgZWxzZSBpZiAoQ0ZNUGx1Z2luICYmICFb
Q0ZNUGx1Z2luIGlzUXVpY2tUaW1lUGx1Z0luXSkKICAgICAgICAgcmV0dXJuIENGTVBsdWdpbjsK
LSAgICB9IGVsc2UgaWYgKHdlYlBsdWdpbikgeworICAgIGVsc2UgaWYgKHdlYlBsdWdpbikKICAg
ICAgICAgcmV0dXJuIHdlYlBsdWdpbjsKLSAgICB9IGVsc2UgaWYgKG1hY2hvUGx1Z2luKSB7Cisg
ICAgZWxzZSBpZiAobWFjaG9QbHVnaW4pCiAgICAgICAgIHJldHVybiBtYWNob1BsdWdpbjsKLSAg
ICB9IGVsc2UgaWYgKENGTVBsdWdpbikgeworICAgIGVsc2UgaWYgKENGTVBsdWdpbikKICAgICAg
ICAgcmV0dXJuIENGTVBsdWdpbjsKLSAgICB9CiAgICAgcmV0dXJuIG5pbDsKIH0KIApAQCAtMTE4
LDkgKzExMyw4IEBAIHN0YXRpYyBXZWJQbHVnaW5EYXRhYmFzZSAqZGF0YWJhc2UgPSBuaWwKICAg
ICAgICAgLy8gYW5kIGZpbmQgdGhlIGEgcGx1Zy1pbiBmcm9tIHRoZSBNSU1FIHR5cGUuIFRoaXMg
aXMgZG9uZSBpbiBjYXNlIHRoZSBwbHVnLWluIGhhcyBub3QgZnVsbHkgc3BlY2lmaWVkCiAgICAg
ICAgIC8vIGFuIGV4dGVuc2lvbiA8LT4gTUlNRSB0eXBlIG1hcHBpbmcuCiAgICAgICAgIE5TU3Ry
aW5nICpNSU1FVHlwZSA9IFdLR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9uKTsKLSAg
ICAgICAgaWYgKFtNSU1FVHlwZSBsZW5ndGhdID4gMCkgeworICAgICAgICBpZiAoW01JTUVUeXBl
IGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgcGx1Z2luID0gW3NlbGYgcGx1Z2luRm9yTUlNRVR5
cGU6TUlNRVR5cGVdOwotICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBwbHVnaW47CiB9CkBA
IC0xNDksOSArMTQzLDggQEAgc3RhdGljIE5TQXJyYXkgKnBsdWdpbkxvY2F0aW9ucyh2b2lkKQog
ICAgIC8vIFRoZSBwdXJwb3NlIGlzIHRvIGFsbG93IG5vbi1hZG1pbiB1c2VycyB0byB1cGRhdGUg
dGhlaXIgcGx1Zy1pbnMuCiAgICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5V2l0aENhcGFjaXR5OltleHRlbnNpb25QbHVnSW5QYXRocyBjb3VudF0gKyAzXTsK
ICAgICAKLSAgICBpZiAoZXh0ZW5zaW9uUGx1Z0luUGF0aHMpIHsKKyAgICBpZiAoZXh0ZW5zaW9u
UGx1Z0luUGF0aHMpCiAgICAgICAgIFthcnJheSBhZGRPYmplY3RzRnJvbUFycmF5OmV4dGVuc2lv
blBsdWdJblBhdGhzXTsKLSAgICB9CiAgICAgCiAgICAgW2FycmF5IGFkZE9iamVjdDpbTlNIb21l
RGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiTGlicmFyeS9JbnRl
cm5ldCBQbHVnLUlucyJdXTsKICAgICBbYXJyYXkgYWRkT2JqZWN0OkAiL0xpYnJhcnkvSW50ZXJu
ZXQgUGx1Zy1JbnMiXTsKQEAgLTE2MCwxNSArMTUzLDExIEBAIHN0YXRpYyBOU0FycmF5ICpwbHVn
aW5Mb2NhdGlvbnModm9pZCkKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKLS0gaW5pdAorLSAoaWQp
aW5pdAogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgaWYgKHNlbGYgPT0gbmlsKSB7
Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQogICAgIFtzZWxmIHJlZnJlc2hdOwogICAgIHJl
dHVybiBzZWxmOwotICAgIAogfQogICAgIAogLSAodm9pZClyZWZyZXNoCkBAIC0yMjgsOSArMjE3
LDggQEAgc3RhdGljIE5TQXJyYXkgKnBsdWdpbkxvY2F0aW9ucyh2b2lkKQogICAgIE5TU3RyaW5n
ICpNSU1FVHlwZTsKICAgICB3aGlsZSAoKE1JTUVUeXBlID0gW2tleUVudW1lcmF0b3IgbmV4dE9i
amVjdF0pICE9IG5pbCkgewogICAgICAgICBDbGFzcyBjbGFzcyA9IFtNSU1FVG9WaWV3Q2xhc3Mg
b2JqZWN0Rm9yS2V5Ok1JTUVUeXBlXTsKLSAgICAgICAgaWYgKGNsYXNzID09IFtXZWJOZXRzY2Fw
ZVBsdWdpbkRvY3VtZW50VmlldyBjbGFzc10gfHwgY2xhc3MgPT0gW1dlYlBsdWdpbkRvY3VtZW50
VmlldyBjbGFzc10pIHsKKyAgICAgICAgaWYgKGNsYXNzID09IFtXZWJOZXRzY2FwZVBsdWdpbkRv
Y3VtZW50VmlldyBjbGFzc10gfHwgY2xhc3MgPT0gW1dlYlBsdWdpbkRvY3VtZW50VmlldyBjbGFz
c10pCiAgICAgICAgICAgICBbV2ViVmlldyBfdW5yZWdpc3RlclZpZXdDbGFzc0FuZFJlcHJlc2Vu
dGF0aW9uQ2xhc3NGb3JNSU1FVHlwZTpNSU1FVHlwZV07Ci0gICAgICAgIH0KICAgICB9CiAgICAg
CiAgICAgLy8gQnVpbGQgYSBsaXN0IG9mIE1JTUUgdHlwZXMuCkBAIC0yNDUsMjIgKzIzMywxOSBA
QCBzdGF0aWMgTlNBcnJheSAqcGx1Z2luTG9jYXRpb25zKHZvaWQpCiAgICAgTlNFbnVtZXJhdG9y
ICpNSU1FRW51bWVyYXRvciA9IFtbTUlNRVR5cGVzIGFsbE9iamVjdHNdIG9iamVjdEVudW1lcmF0
b3JdOwogICAgIFtNSU1FVHlwZXMgcmVsZWFzZV07CiAgICAgd2hpbGUgKChNSU1FVHlwZSA9IFtN
SU1FRW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgIGlmIChbV2ViVmll
dyBjYW5TaG93TUlNRVR5cGVBc0hUTUw6TUlNRVR5cGVdKSB7CisgICAgICAgIGlmIChbV2ViVmll
dyBjYW5TaG93TUlNRVR5cGVBc0hUTUw6TUlNRVR5cGVdKQogICAgICAgICAgICAgLy8gRG9uJ3Qg
YWxsb3cgcGx1Zy1pbnMgdG8gb3ZlcnJpZGUgb3VyIGNvcmUgSFRNTCB0eXBlcy4KICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICB9CiAgICAgICAgIHBsdWdpbiA9IFtzZWxmIHBsdWdpbkZv
ck1JTUVUeXBlOk1JTUVUeXBlXTsKLSAgICAgICAgaWYgKFtwbHVnaW4gaXNKYXZhUGx1Z0luXSkg
eworICAgICAgICBpZiAoW3BsdWdpbiBpc0phdmFQbHVnSW5dKQogICAgICAgICAgICAgLy8gRG9u
J3QgcmVnaXN0ZXIgdGhlIEphdmEgcGx1Zy1pbiBmb3IgYSBkb2N1bWVudCB2aWV3IHNpbmNlIEph
dmEgZmlsZXMgc2hvdWxkIGJlIGRvd25sb2FkZWQgd2hlbiBub3QgZW1iZWRkZWQuCiAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoW3BsdWdpbiBpc1F1aWNrVGlt
ZVBsdWdJbl0gJiYgW1tXZWJGcmFtZVZpZXcgX3ZpZXdUeXBlc0FsbG93SW1hZ2VUeXBlT21pc3Np
b246Tk9dIG9iamVjdEZvcktleTpNSU1FVHlwZV0gIT0gbmlsKSB7CisgICAgICAgIGlmIChbcGx1
Z2luIGlzUXVpY2tUaW1lUGx1Z0luXSAmJiBbW1dlYkZyYW1lVmlldyBfdmlld1R5cGVzQWxsb3dJ
bWFnZVR5cGVPbWlzc2lvbjpOT10gb2JqZWN0Rm9yS2V5Ok1JTUVUeXBlXSkKICAgICAgICAgICAg
IC8vIERvbid0IGFsbG93IHRoZSBRVCBwbHVnLWluIHRvIG92ZXJyaWRlIGFueSB0eXBlcyBiZWNh
dXNlIGl0IGNsYWltcyBtYW55IHRoYXQgd2UgY2FuIGhhbmRsZSBvdXJzZWx2ZXMuCiAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoW3BsdWdpbiBpc0tpbmRPZkNs
YXNzOltXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgY2xhc3NdXSkgeworICAgICAgICBpZiAoW3Bs
dWdpbiBpc0tpbmRPZkNsYXNzOltXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgY2xhc3NdXSkKICAg
ICAgICAgICAgIFtXZWJWaWV3IHJlZ2lzdGVyVmlld0NsYXNzOltXZWJOZXRzY2FwZVBsdWdpbkRv
Y3VtZW50VmlldyBjbGFzc10gcmVwcmVzZW50YXRpb25DbGFzczpbV2ViTmV0c2NhcGVQbHVnaW5S
ZXByZXNlbnRhdGlvbiBjbGFzc10gZm9yTUlNRVR5cGU6TUlNRVR5cGVdOwotICAgICAgICB9IGVs
c2UgeworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChbcGx1Z2luIGlzS2luZE9m
Q2xhc3M6W1dlYlBsdWdpblBhY2thZ2UgY2xhc3NdXSk7CiAgICAgICAgICAgICBbV2ViVmlldyBy
ZWdpc3RlclZpZXdDbGFzczpbV2ViUGx1Z2luRG9jdW1lbnRWaWV3IGNsYXNzXSByZXByZXNlbnRh
dGlvbkNsYXNzOltXZWJQbHVnaW5Eb2N1bWVudFZpZXcgY2xhc3NdIGZvck1JTUVUeXBlOk1JTUVU
eXBlXTsKICAgICAgICAgfQpJbmRleDogV2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2Fk
ZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlU3VwcG9ydC9XZWJTdWJyZXNvdXJjZUxvYWRlci5t
CShyZXZpc2lvbiAxNDA5NCkKKysrIFdlYkNvcmVTdXBwb3J0L1dlYlN1YnJlc291cmNlTG9hZGVy
Lm0JKHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcgQEAKIAogICAgIE5TRW51bWVyYXRvciAq
ZSA9IFtjdXN0b21IZWFkZXJzIGtleUVudW1lcmF0b3JdOwogICAgIE5TU3RyaW5nICprZXk7Ci0g
ICAgd2hpbGUgKChrZXkgPSAoTlNTdHJpbmcgKilbZSBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Cisg
ICAgd2hpbGUgKChrZXkgPSBbZSBuZXh0T2JqZWN0XSkpIHsKIAlbbmV3UmVxdWVzdCBhZGRWYWx1
ZTpbY3VzdG9tSGVhZGVycyBvYmplY3RGb3JLZXk6a2V5XSBmb3JIVFRQSGVhZGVyRmllbGQ6a2V5
XTsKICAgICB9CiAKQEAgLTkxLDkgKzkxLDggQEAKICAgICBbbmV3UmVxdWVzdCBzZXRNYWluRG9j
dW1lbnRVUkw6W1tbW193ZWJWaWV3IG1haW5GcmFtZV0gZGF0YVNvdXJjZV0gcmVxdWVzdF0gVVJM
XV07CiAgICAgW25ld1JlcXVlc3QgX3dlYl9zZXRIVFRQVXNlckFnZW50Oltfd2ViVmlldyB1c2Vy
QWdlbnRGb3JVUkw6W25ld1JlcXVlc3QgVVJMXV1dOwogICAgICAgICAgICAgCi0gICAgaWYgKCFb
bG9hZGVyIGxvYWRXaXRoUmVxdWVzdDpuZXdSZXF1ZXN0XSkgeworICAgIGlmICghW2xvYWRlciBs
b2FkV2l0aFJlcXVlc3Q6bmV3UmVxdWVzdF0pCiAgICAgICAgIGxvYWRlciA9IG5pbDsKLSAgICB9
CiAgICAgCiAgICAgcmV0dXJuIGxvYWRlcjsKIH0KQEAgLTE1MCw5ICsxNDksOCBAQAogICAgIE5T
VVJMICpvbGRVUkwgPSBbcmVxdWVzdCBVUkxdOwogICAgIE5TVVJMUmVxdWVzdCAqY2xpZW50UmVx
dWVzdCA9IFtzdXBlciB3aWxsU2VuZFJlcXVlc3Q6bmV3UmVxdWVzdCByZWRpcmVjdFJlc3BvbnNl
OnJlZGlyZWN0UmVzcG9uc2VdOwogICAgIAotICAgIGlmIChjbGllbnRSZXF1ZXN0ICE9IG5pbCAm
JiBvbGRVUkwgIT0gW2NsaWVudFJlcXVlc3QgVVJMXSAmJiAhW29sZFVSTCBpc0VxdWFsOltjbGll
bnRSZXF1ZXN0IFVSTF1dKSB7CisgICAgaWYgKGNsaWVudFJlcXVlc3QgIT0gbmlsICYmIG9sZFVS
TCAhPSBbY2xpZW50UmVxdWVzdCBVUkxdICYmICFbb2xkVVJMIGlzRXF1YWw6W2NsaWVudFJlcXVl
c3QgVVJMXV0pCiAJW2NvcmVMb2FkZXIgcmVkaXJlY3RlZFRvVVJMOltjbGllbnRSZXF1ZXN0IFVS
TF1dOwotICAgIH0KIAogICAgIHJldHVybiBjbGllbnRSZXF1ZXN0OwogfQpJbmRleDogQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24gMTQwOTUpCisrKyBDaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2NiBAQAorMjAwNi0wNC0yOCAgRXJpYyBTZWlk
ZWwgIDxlc2VpZGVsQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNaXNjLiBzdHlsZSBjbGVhbnVwLgorICAgICAgICBodHRwOi8vYnVn
emlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTg2NDMKKworICAgICAgICAqIE1p
c2MvV2ViSWNvbkRhdGFiYXNlLm06CisgICAgICAgICgtW05TTXV0YWJsZURpY3Rpb25hcnkgaWNv
bkZvclVSTDp3aXRoU2l6ZTpjYWNoZTpdKToKKyAgICAgICAgKC1bTlNNdXRhYmxlRGljdGlvbmFy
eSBpY29uVVJMRm9yVVJMOl0pOgorICAgICAgICAoLVtOU011dGFibGVEaWN0aW9uYXJ5IHJldGFp
bkljb25Gb3JVUkw6XSk6CisgICAgICAgICgtW05TTXV0YWJsZURpY3Rpb25hcnkgcmVsZWFzZUlj
b25Gb3JVUkw6XSk6CisgICAgICAgICgtW1dlYkljb25EYXRhYmFzZSBfc2V0SWNvbjpmb3JJY29u
VVJMOl0pOgorICAgICAgICAoLVtXZWJJY29uRGF0YWJhc2UgX2ljb25zRm9ySWNvblVSTFN0cmlu
ZzpdKToKKyAgICAgICAgKC1bV2ViSWNvbkRhdGFiYXNlIF9mb3JnZXRJY29uRm9ySWNvblVSTFN0
cmluZzpdKToKKyAgICAgICAgKC1bV2ViSWNvbkRhdGFiYXNlIF9yZWxlYXNlSWNvbkZvckljb25V
UkxTdHJpbmc6XSk6CisgICAgICAgICgtW1dlYkljb25EYXRhYmFzZSBfaWNvbnNCeVNwbGl0dGlu
Z1JlcHJlc2VudGF0aW9uc09mSWNvbjpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VQbHVn
aW5QYWNrYWdlLm06CisgICAgICAgICgrW1dlYkJhc2VQbHVnaW5QYWNrYWdlIHBsdWdpbldpdGhQ
YXRoOl0pOgorICAgICAgICAoLVtXZWJCYXNlUGx1Z2luUGFja2FnZSBwYXRoQnlSZXNvbHZpbmdT
eW1saW5rc0FuZEFsaWFzZXNJblBhdGg6XSk6CisgICAgICAgICgtW1dlYkJhc2VQbHVnaW5QYWNr
YWdlIGluaXRXaXRoUGF0aDpdKToKKyAgICAgICAgKC1bV2ViQmFzZVBsdWdpblBhY2thZ2UgZ2V0
UGx1Z2luSW5mb0Zyb21CdW5kbGVBbmRNSU1FRGljdGlvbmFyeTpdKToKKyAgICAgICAgKC1bV2Vi
QmFzZVBsdWdpblBhY2thZ2UgcExpc3RGb3JQYXRoOmNyZWF0ZUZpbGU6XSk6CisgICAgICAgICgt
W1dlYkJhc2VQbHVnaW5QYWNrYWdlIGdldFBsdWdpbkluZm9Gcm9tUExpc3RzXSk6CisgICAgICAg
ICgtW1dlYkJhc2VQbHVnaW5QYWNrYWdlIGxvYWRdKToKKyAgICAgICAgKC1bV2ViQmFzZVBsdWdp
blBhY2thZ2Ugc2V0TUlNRVRvRXh0ZW5zaW9uc0RpY3Rpb25hcnk6XSk6CisgICAgICAgICgtW1dl
YkJhc2VQbHVnaW5QYWNrYWdlIGlzTmF0aXZlTGlicmFyeURhdGE6XSk6CisgICAgICAgICgtW05T
QXJyYXkgX3dlYl9sb3dlcmNhc2VTdHJpbmdzXSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblBhY2thZ2UubToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdl
IG9wZW5SZXNvdXJjZUZpbGVdKToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdl
IGNsb3NlUmVzb3VyY2VGaWxlOl0pOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblBhY2th
Z2Ugc3RyaW5nRm9yU3RyaW5nTGlzdElEOmFuZEluZGV4Ol0pOgorICAgICAgICAoLVtXZWJOZXRz
Y2FwZVBsdWdpblBhY2thZ2UgZ2V0UGx1Z2luSW5mb0Zyb21SZXNvdXJjZXNdKToKKyAgICAgICAg
KC1bV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIGluaXRXaXRoUGF0aDpdKToKKyAgICAgICAgKC1b
V2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIGV4ZWN1dGFibGVUeXBlXSk6CisgICAgICAgICgtW1dl
Yk5ldHNjYXBlUGx1Z2luUGFja2FnZSB1bmxvYWRXaXRob3V0U2h1dGRvd25dKToKKyAgICAgICAg
KC1bV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIGxvYWRdKToKKyAgICAgICAgKC1bV2ViTmV0c2Nh
cGVQbHVnaW5QYWNrYWdlIHVubG9hZF0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5SZXByZXNlbnRhdGlvbi5tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblJlcHJl
c2VudGF0aW9uIHJlZGVsaXZlclN0cmVhbV0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2lu
RGF0YWJhc2UubToKKyAgICAgICAgKCtbV2ViUGx1Z2luRGF0YWJhc2UgaW5zdGFsbGVkUGx1Z2lu
c10pOgorICAgICAgICAoLVtXZWJQbHVnaW5EYXRhYmFzZSBwbHVnaW5Gb3JLZXk6d2l0aEVudW1l
cmF0b3JTZWxlY3RvcjpdKToKKyAgICAgICAgKC1bV2ViUGx1Z2luRGF0YWJhc2UgcGx1Z2luRm9y
RXh0ZW5zaW9uOl0pOgorICAgICAgICAocGx1Z2luTG9jYXRpb25zKToKKyAgICAgICAgKC1bV2Vi
UGx1Z2luRGF0YWJhc2UgaW5pdF0pOgorICAgICAgICAoLVtXZWJQbHVnaW5EYXRhYmFzZSByZWZy
ZXNoXSk6CisgICAgICAgICogUGx1Z2lucy9ucGFwaS5tOgorICAgICAgICAoTlBOX01lbUFsbG9j
KToKKyAgICAgICAgKE5QTl9NZW1GcmVlKToKKyAgICAgICAgKHBsdWdpblZpZXdGb3JJbnN0YW5j
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIubToKKyAg
ICAgICAgKCtbV2ViU3VicmVzb3VyY2VMb2FkZXIgc3RhcnRMb2FkaW5nUmVzb3VyY2U6d2l0aFJl
cXVlc3Q6Y3VzdG9tSGVhZGVyczpyZWZlcnJlcjpmb3JEYXRhU291cmNlOl0pOgorICAgICAgICAo
LVtXZWJTdWJyZXNvdXJjZUxvYWRlciB3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubToKKyAgICAgICAgKC1bV2ViRGF0
YVNvdXJjZSBpc0xvYWRpbmddKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm06CisgICAg
ICAgICgtW1dlYkZyYW1lIF9sb2FkRGF0YVNvdXJjZTp3aXRoTG9hZFR5cGU6Zm9ybVN0YXRlOl0p
OgorICAgICAgICAoLVtXZWJGcmFtZSBfc3ViZnJhbWVJc0xvYWRpbmddKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0V2l0aEZyYW1lOl0pOgor
ICAgICAgICAoLVtXZWJWaWV3IGluaXRXaXRoRnJhbWU6ZnJhbWVOYW1lOmdyb3VwTmFtZTpdKToK
KwogMjAwNi0wNC0yNiAgVGltIE9tZXJuaWNrICA8dGltb0BhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgR2VvZmYuCkluZGV4OiBNaXNjL1dlYkljb25EYXRhYmFzZS5tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIE1pc2MvV2ViSWNvbkRhdGFiYXNlLm0JKHJldmlzaW9uIDE0MDk0KQorKysgTWlzYy9X
ZWJJY29uRGF0YWJhc2UubQkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDE5ICsxNDgsMTYgQEAgTlNT
aXplIFdlYkljb25MYXJnZVNpemUgPSB7MTI4LCAxMjh9OwogICAgIEFTU0VSVChzaXplLndpZHRo
KTsKICAgICBBU1NFUlQoc2l6ZS5oZWlnaHQpOwogICAgIAotICAgIGlmICghVVJMIHx8ICFbc2Vs
ZiBfaXNFbmFibGVkXSkgeworICAgIGlmICghVVJMIHx8ICFbc2VsZiBfaXNFbmFibGVkXSkKICAg
ICAgICAgcmV0dXJuIFtzZWxmIGRlZmF1bHRJY29uV2l0aFNpemU6c2l6ZV07Ci0gICAgfQogCi0g
ICAgaWYgKFtVUkwgX3dlYmtpdF9pc0ZpbGVVUkxdKSB7CisgICAgaWYgKFtVUkwgX3dlYmtpdF9p
c0ZpbGVVUkxdKQogICAgICAgICByZXR1cm4gW3NlbGYgX2ljb25Gb3JGaWxlVVJMOlVSTCB3aXRo
U2l6ZTpzaXplXTsKLSAgICB9CiAgICAgCiAgICAgTlNTdHJpbmcgKmljb25VUkxTdHJpbmcgPSBb
X3ByaXZhdGUtPnBhZ2VVUkxUb0ljb25VUkwgb2JqZWN0Rm9yS2V5OlVSTF07Ci0gICAgaWYgKCFp
Y29uVVJMU3RyaW5nKSB7CisgICAgaWYgKCFpY29uVVJMU3RyaW5nKQogICAgICAgICAvLyBEb24n
dCBoYXZlIGl0CiAgICAgICAgIHJldHVybiBbc2VsZiBkZWZhdWx0SWNvbldpdGhTaXplOnNpemVd
OwotICAgIH0KIAogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmljb25zID0gW3NlbGYgX2ljb25z
Rm9ySWNvblVSTFN0cmluZzppY29uVVJMU3RyaW5nXTsKICAgICBpZiAoIWljb25zKSB7CkBAIC0x
ODMsOSArMTgwLDggQEAgTlNTaXplIFdlYkljb25MYXJnZVNpemUgPSB7MTI4LCAxMjh9OwogCiAt
IChOU1N0cmluZyAqKWljb25VUkxGb3JVUkw6KE5TU3RyaW5nICopVVJMCiB7Ci0gICAgaWYgKCFb
c2VsZiBfaXNFbmFibGVkXSkgeworICAgIGlmICghW3NlbGYgX2lzRW5hYmxlZF0pCiAgICAgICAg
IHJldHVybiBuaWw7Ci0gICAgfQogICAgIHJldHVybiBVUkwgPyBbX3ByaXZhdGUtPnBhZ2VVUkxU
b0ljb25VUkwgb2JqZWN0Rm9yS2V5OlVSTF0gOiBuaWw7CiB9CiAKQEAgLTIxMSw5ICsyMDcsOCBA
QCBOU1NpemUgV2ViSWNvbkxhcmdlU2l6ZSA9IHsxMjgsIDEyOH07CiB7CiAgICAgQVNTRVJUKFVS
TCk7CiAgICAgCi0gICAgaWYgKCFbc2VsZiBfaXNFbmFibGVkXSkgeworICAgIGlmICghW3NlbGYg
X2lzRW5hYmxlZF0pCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgCiAgICAgaW50IHJldGFp
bkNvdW50ID0gKGludCkodm9pZCAqKUNGRGljdGlvbmFyeUdldFZhbHVlKF9wcml2YXRlLT5wYWdl
VVJMVG9SZXRhaW5Db3VudCwgVVJMKTsKICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShfcHJpdmF0
ZS0+cGFnZVVSTFRvUmV0YWluQ291bnQsIFVSTCwgKHZvaWQgKikocmV0YWluQ291bnQgKyAxKSk7
CkBAIC0yMjMsOSArMjE4LDggQEAgTlNTaXplIFdlYkljb25MYXJnZVNpemUgPSB7MTI4LCAxMjh9
OwogewogICAgIEFTU0VSVChwYWdlVVJMKTsKICAgICAKLSAgICBpZiAoIVtzZWxmIF9pc0VuYWJs
ZWRdKSB7CisgICAgaWYgKCFbc2VsZiBfaXNFbmFibGVkXSkKICAgICAgICAgcmV0dXJuOwotICAg
IH0gICAgCiAgICAgCiAgICAgaW50IHJldGFpbkNvdW50ID0gKGludCkodm9pZCAqKUNGRGljdGlv
bmFyeUdldFZhbHVlKF9wcml2YXRlLT5wYWdlVVJMVG9SZXRhaW5Db3VudCwgcGFnZVVSTCk7CiAg
ICAgCkBAIC0zNTMsOSArMzQ3LDggQEAgTlNTaXplIFdlYkljb25MYXJnZVNpemUgPSB7MTI4LCAx
Mjh9OwogICAgIAogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmljb25zID0gW3NlbGYgX2ljb25z
QnlTcGxpdHRpbmdSZXByZXNlbnRhdGlvbnNPZkljb246aWNvbl07CiAgICAgCi0gICAgaWYgKCFp
Y29ucykgeworICAgIGlmICghaWNvbnMpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgCiAg
ICAgW19wcml2YXRlLT5pY29uVVJMVG9JY29ucyBzZXRPYmplY3Q6aWNvbnMgZm9yS2V5Omljb25V
UkxdOwogICAgIApAQCAtNjM2LDIxICs2MjksMTcgQEAgTlNTaXplIFdlYkljb25MYXJnZVNpemUg
PSB7MTI4LCAxMjh9OwogewogICAgIEFTU0VSVChpY29uVVJMU3RyaW5nKTsKIAotICAgIGlmIChb
X3ByaXZhdGUtPmljb25VUkxzV2l0aE5vSWNvbnMgY29udGFpbnNPYmplY3Q6aWNvblVSTFN0cmlu
Z10pIHsKKyAgICBpZiAoW19wcml2YXRlLT5pY29uVVJMc1dpdGhOb0ljb25zIGNvbnRhaW5zT2Jq
ZWN0Omljb25VUkxTdHJpbmddKQogCXJldHVybiBuaWw7Ci0gICAgfQogICAgIAogICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKmljb25zID0gW19wcml2YXRlLT5pY29uVVJMVG9JY29ucyBvYmplY3RG
b3JLZXk6aWNvblVSTFN0cmluZ107CiAKLSAgICBpZiAoaWNvbnMpIHsKKyAgICBpZiAoaWNvbnMp
CiAJcmV0dXJuIGljb25zOwotICAgIH0KIAkKICAgICAvLyBOb3QgaW4gbWVtb3J5LCBjaGVjayBk
aXNrCi0gICAgaWYoIVtfcHJpdmF0ZS0+aWNvbnNPbkRpc2tXaXRoVVJMcyBjb250YWluc09iamVj
dDppY29uVVJMU3RyaW5nXSl7CisgICAgaWYoIVtfcHJpdmF0ZS0+aWNvbnNPbkRpc2tXaXRoVVJM
cyBjb250YWluc09iamVjdDppY29uVVJMU3RyaW5nXSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAg
ICB9Ci0KICAgICAKICNpZiAhTE9HX0RJU0FCTEVEICAgICAgICAgCiAgICAgZG91YmxlIHN0YXJ0
ID0gQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCk7CkBAIC03NTEsOSArNzQwLDkgQEAgTlNTaXpl
IFdlYkljb25MYXJnZVNpemUgPSB7MTI4LCAxMjh9OwogICAgIFtpY29uVVJMU3RyaW5nIHJldGFp
bl07CiAgICAgaWQgVVJMcyA9IFtfcHJpdmF0ZS0+aWNvblVSTFRvUGFnZVVSTHMgb2JqZWN0Rm9y
S2V5Omljb25VUkxTdHJpbmddOwogICAgIGlmIChVUkxzICE9IG5pbCkgewotICAgICAgICBpZiAo
W1VSTHMgaXNLaW5kT2ZDbGFzczpbTlNNdXRhYmxlU2V0IGNsYXNzXV0pIHsKKyAgICAgICAgaWYg
KFtVUkxzIGlzS2luZE9mQ2xhc3M6W05TTXV0YWJsZVNldCBjbGFzc11dKQogICAgICAgICAgICAg
W19wcml2YXRlLT5wYWdlVVJMVG9JY29uVVJMIHJlbW92ZU9iamVjdHNGb3JLZXlzOltVUkxzIGFs
bE9iamVjdHNdXTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBBU1NFUlQoW1VSTHMgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CiAgICAgICAg
ICAgICBbX3ByaXZhdGUtPnBhZ2VVUkxUb0ljb25VUkwgcmVtb3ZlT2JqZWN0Rm9yS2V5OlVSTHNd
OwogICAgICAgICB9CkBAIC03NjksMTAgKzc1OCw5IEBAIE5TU2l6ZSBXZWJJY29uTGFyZ2VTaXpl
ID0gezEyOCwgMTI4fTsKICAgICAKICAgICBpbnQgcmV0YWluQ291bnQgPSAoaW50KSh2b2lkICop
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUoX3ByaXZhdGUtPmljb25VUkxUb0V4dHJhUmV0YWluQ291bnQs
IGljb25VUkxTdHJpbmcpOwogCi0gICAgaWYgKHJldGFpbkNvdW50IDw9IDApIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgQVNTRVJUKHJldGFpbkNvdW50ID4gMCk7CisgICAg
aWYgKHJldGFpbkNvdW50IDw9IDApCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgCiAgICAg
aW50IG5ld1JldGFpbkNvdW50ID0gcmV0YWluQ291bnQgLSAxOwogICAgIGlmIChuZXdSZXRhaW5D
b3VudCA9PSAwKSB7CkBAIC04OTEsOSArODc5LDggQEAgTlNTaXplIFdlYkljb25MYXJnZVNpemUg
PSB7MTI4LCAxMjh9OwogICAgICAgICBbc3ViSWNvbiByZWxlYXNlXTsKICAgICB9CiAKLSAgICBp
ZihbaWNvbnMgY291bnRdID4gMCl7CisgICAgaWYoW2ljb25zIGNvdW50XSA+IDApCiAgICAgICAg
IHJldHVybiBpY29uczsKLSAgICB9CiAKICAgICBMT0dfRVJST1IoImljb24gaGFzIG5vIHJlcHJl
c2VudGF0aW9ucyIpOwogICAgIApJbmRleDogV2ViVmlldy9XZWJWaWV3Lm0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViVmlldy9XZWJWaWV3Lm0JKHJldmlzaW9uIDE0MDk0KQorKysgV2ViVmlldy9XZWJWaWV3
Lm0JKHdvcmtpbmcgY29weSkKQEAgLTE2MDMsMTIgKzE2MDMsMTIgQEAgTlNNdXRhYmxlRGljdGlv
bmFyeSAqY291bnRJbnZvY2F0aW9uczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuYW1lOldlYlByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbiBv
YmplY3Q6W3NlbGYgcHJlZmVyZW5jZXNdXTsKIH0KIAotLSBpbml0V2l0aEZyYW1lOihOU1JlY3Qp
ZgorLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWYKIHsKICAgICByZXR1cm4gW3NlbGYgaW5p
dFdpdGhGcmFtZTpmIGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOm5pbF07CiB9CiAKLS0gaW5pdFdp
dGhGcmFtZTooTlNSZWN0KWYgZnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5h
bWU6KE5TU3RyaW5nICopZ3JvdXBOYW1lOworLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWYg
ZnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5TU3RyaW5nICopZ3Jv
dXBOYW1lOwogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmXTsKICAgICBpZiAo
IXNlbGYpCkluZGV4OiBXZWJWaWV3L1dlYkZyYW1lLm0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViVmlldy9X
ZWJGcmFtZS5tCShyZXZpc2lvbiAxNDA5NCkKKysrIFdlYlZpZXcvV2ViRnJhbWUubQkod29ya2lu
ZyBjb3B5KQpAQCAtMjM0NSw4ICsyMzQ1LDcgQEAgc3RhdGljIENGQWJzb2x1dGVUaW1lIF90aW1l
T2ZMYXN0Q29tcGxldAogICAgIEFTU0VSVChbc2VsZiB3ZWJWaWV3XSAhPSBuaWwpOwogCiAgICAg
Ly8gVW5mb3J0dW5hdGVseSB0aGUgdmlldyBtdXN0IGJlIG5vbi1uaWwsIHRoaXMgaXMgdWx0aW1h
dGVseSBkdWUKLSAgICAvLyB0byBLREUgcGFyc2VyIHJlcXVpcmluZyBhIEtIVE1MVmlldy4gIE9u
Y2Ugd2Ugc2V0dGxlIG9uIGEgZmluYWwKLSAgICAvLyBLREUgZHJvcCB3ZSBzaG91bGQgZml4IHRo
aXMgZGVwZW5kZW5jeS4KKyAgICAvLyB0byBwYXJzZXIgcmVxdWlyaW5nIGEgRnJhbWVWaWV3LiAg
V2Ugc2hvdWxkIGZpeCB0aGlzIGRlcGVuZGVuY3kuCiAKICAgICBBU1NFUlQoW3NlbGYgZnJhbWVW
aWV3XSAhPSBuaWwpOwogCkBAIC0yNzYyLDIwICsyNzYxLDExIEBAIHN0YXRpYyBDRkFic29sdXRl
VGltZSBfdGltZU9mTGFzdENvbXBsZXQKIAogLSAoQk9PTClfc3ViZnJhbWVJc0xvYWRpbmcKIHsK
LSAgICAvLyBQdXQgaW4gdGhlIGF1dG8tcmVsZWFzZSBwb29sIGJlY2F1c2UgaXQncyBjb21tb24g
dG8gY2FsbCB0aGlzIGZyb20gYSBydW4gbG9vcCBzb3VyY2UsCi0gICAgLy8gYW5kIHRoZW4gdGhl
IGVudGlyZSBsaXN0IG9mIGZyYW1lcyBsYXN0cyB1bnRpbCB0aGUgbmV4dCBhdXRvcmVsZWFzZS4K
LSAgICAvLyBGSVhNRTogaXMgdGhpcyByZWFsbHkgc3RpbGwgdHJ1ZT8gd2UgdXNlIF9maXJzdENo
aWxkRnJhbWUvX25leHRTaWJsaW5nRnJhbWUgbm93IAotICAgIC8vIHdoaWNoIGRvZXMgbm90IG1h
a2UgYSBjb3B5LgotICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW05TQXV0b3JlbGVhc2VQ
b29sIG5ld107Ci0KLSAgICBXZWJGcmFtZSAqZnJhbWU7Ci0gICAgZm9yIChmcmFtZSA9IFtzZWxm
IF9maXJzdENoaWxkRnJhbWVdOyBmcmFtZTsgZnJhbWUgPSBbZnJhbWUgX25leHRTaWJsaW5nRnJh
bWVdKQorICAgIC8vIEl0J3MgbW9zdCBsaWtlbHkgdGhhdCB0aGUgbGFzdCBhZGRlZCBmcmFtZSBp
cyB0aGUgbGFzdCB0byBsb2FkIHNvIHdlIHdhbGsgYmFja3dhcmRzLgorICAgIGZvciAoV2ViRnJh
bWUgKmZyYW1lID0gW3NlbGYgX2xhc3RDaGlsZEZyYW1lXTsgZnJhbWU7IGZyYW1lID0gW2ZyYW1l
IF9wcmV2aW91c1NpYmxpbmdGcmFtZV0pCiAgICAgICAgIGlmIChbW2ZyYW1lIGRhdGFTb3VyY2Vd
IGlzTG9hZGluZ10gfHwgW1tmcmFtZSBwcm92aXNpb25hbERhdGFTb3VyY2VdIGlzTG9hZGluZ10p
Ci0gICAgICAgICAgICBicmVhazsKLQotICAgIFtwb29sIGRyYWluXTsKLSAgICAKLSAgICByZXR1
cm4gZnJhbWUgIT0gbmlsOworICAgICAgICAgICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4gTk87
CiB9CiAKIC0gKHZvaWQpX2FkZFBsdWdJblZpZXc6KE5TVmlldyAqKXBsdWdJblZpZXcKSW5kZXg6
IFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tCShyZXZpc2lvbiAxNDA5NCkKKysrIFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDE3LDEyICsxMDE3LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRU
eXBlc0Zyb21DbGFzcyhOU00KICAgICAvLyBPbmNlIGEgZnJhbWUgaGFzIGxvYWRlZCwgd2Ugbm8g
bG9uZ2VyIG5lZWQgdG8gY29uc2lkZXIgc3VicmVzb3VyY2VzLAogICAgIC8vIGJ1dCB3ZSBzdGls
bCBuZWVkIHRvIGNvbnNpZGVyIHN1YmZyYW1lcy4KICAgICBpZiAoW1tzZWxmIHdlYkZyYW1lXSBf
c3RhdGVdICE9IFdlYkZyYW1lU3RhdGVDb21wbGV0ZSkgewotICAgICAgICBpZiAoIV9wcml2YXRl
LT5wcmltYXJ5TG9hZENvbXBsZXRlICYmIF9wcml2YXRlLT5sb2FkaW5nKSB7CisgICAgICAgIGlm
ICghX3ByaXZhdGUtPnByaW1hcnlMb2FkQ29tcGxldGUgJiYgX3ByaXZhdGUtPmxvYWRpbmcpCiAg
ICAgICAgICAgICByZXR1cm4gWUVTOwotICAgICAgICB9Ci0gICAgICAgIGlmIChbX3ByaXZhdGUt
PnN1YnJlc291cmNlTG9hZGVycyBjb3VudF0pIHsKKyAgICAgICAgaWYgKFtfcHJpdmF0ZS0+c3Vi
cmVzb3VyY2VMb2FkZXJzIGNvdW50XSkKICAgICAgICAgICAgIHJldHVybiBZRVM7Ci0gICAgICAg
IH0KICAgICAgICAgaWYgKCFbW1tzZWxmIHdlYkZyYW1lXSBfYnJpZGdlXSBkb25lUHJvY2Vzc2lu
Z0RhdGFdKQogICAgICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9Cg==
</data>
<flag name="review"
          id="2218"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>