<?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>138019</bug_id>
          
          <creation_ts>2014-10-23 13:51:46 -0700</creation_ts>
          <short_desc>Clean up virtual functions in dom/</short_desc>
          <delta_ts>2014-10-23 16:26:05 -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>DOM</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043824</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-23 13:51:46 -0700</bug_when>
    <thetext>Clean up virtual functions in rendering/ by:
    - Making virtual functions final when possible
    - Making classes final when possible
    - Using &apos;override&apos; when appropriate
    - Explicitly marking functions / destructors as virtual when they are
      inherently virtual
    - Making isXXX() virtual functions private on XXX classes to avoid
      unnecessary type checks
    - Dropping final for virtual functions in classes already marked as
      final</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043826</commentid>
    <comment_count>1</comment_count>
      <attachid>240366</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-23 13:55:00 -0700</bug_when>
    <thetext>Created attachment 240366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043827</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-23 13:56:33 -0700</bug_when>
    <thetext>Attachment 240366 did not pass style-queue:


ERROR: Source/WebCore/dom/MutationEvent.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043845</commentid>
    <comment_count>3</comment_count>
      <attachid>240371</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-23 15:06:10 -0700</bug_when>
    <thetext>Created attachment 240371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043846</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-23 15:07:23 -0700</bug_when>
    <thetext>Attachment 240371 did not pass style-queue:


ERROR: Source/WebCore/dom/MutationEvent.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043870</commentid>
    <comment_count>5</comment_count>
      <attachid>240371</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-23 16:25:59 -0700</bug_when>
    <thetext>Comment on attachment 240371
Patch

Clearing flags on attachment: 240371

Committed r175148: &lt;http://trac.webkit.org/changeset/175148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043871</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-23 16:26:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240366</attachid>
            <date>2014-10-23 13:55:00 -0700</date>
            <delta_ts>2014-10-23 15:06:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138019-20141023135507.patch</filename>
            <type>text/plain</type>
            <size>38402</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA5MTRiZWY4ODZlOWNm
MDMwZjExYTg0YjkxYzk4NjFmOTc3OTE4Ny4uOGE4OTM1MWViMmE4M2NiYzQ1MDFhZGZmZTUxZmQz
MGMwODVjYzE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDczIEBACiAyMDE0LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBm
dW5jdGlvbnMgaW4gZG9tLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM4MDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBmdW5jdGlvbnMgaW4gZG9tLyBieToKKyAgICAgICAg
LSBNYWtpbmcgdmlydHVhbCBmdW5jdGlvbnMgZmluYWwgd2hlbiBwb3NzaWJsZQorICAgICAgICAt
IE1ha2luZyBjbGFzc2VzIGZpbmFsIHdoZW4gcG9zc2libGUKKyAgICAgICAgLSBVc2luZyAnb3Zl
cnJpZGUnIHdoZW4gYXBwcm9wcmlhdGUKKyAgICAgICAgLSBFeHBsaWNpdGx5IG1hcmtpbmcgZnVu
Y3Rpb25zIC8gZGVzdHJ1Y3RvcnMgYXMgdmlydHVhbCB3aGVuIHRoZXkgYXJlCisgICAgICAgICAg
aW5oZXJlbnRseSB2aXJ0dWFsCisgICAgICAgIC0gTWFraW5nIGlzWFhYKCkgdmlydHVhbCBmdW5j
dGlvbnMgcHJpdmF0ZSBvbiBYWFggY2xhc3NlcyB0byBhdm9pZAorICAgICAgICAgIHVubmVjZXNz
YXJ5IHR5cGUgY2hlY2tzCisgICAgICAgIC0gRHJvcHBpbmcgZmluYWwgZm9yIHZpcnR1YWwgZnVu
Y3Rpb25zIGluIGNsYXNzZXMgYWxyZWFkeSBtYXJrZWQgYXMKKyAgICAgICAgICBmaW5hbAorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogZG9tL0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpCZWZvcmVM
b2FkRXZlbnRJbml0OjpCZWZvcmVMb2FkRXZlbnRJbml0KToKKyAgICAgICAgKiBkb20vQmVmb3Jl
VGV4dEluc2VydGVkRXZlbnQuaDoKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vQ29tcG9zaXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9DdXN0b21FdmVu
dC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Db250cm9sbGVyOjp+RGV2aWNlTW90aW9uQ29udHJvbGxlcik6
IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp+RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50Lmg6Cisg
ICAgICAgICogZG9tL0Vycm9yRXZlbnQuaDoKKyAgICAgICAgKiBkb20vRm9jdXNFdmVudC5oOgor
ICAgICAgICAqIGRvbS9IYXNoQ2hhbmdlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRF
dmVudC5oOgorICAgICAgICAqIGRvbS9MaXZlTm9kZUxpc3QuaDoKKyAgICAgICAgKiBkb20vTWVz
c2FnZUV2ZW50Lmg6CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Lmg6CisgICAgICAgICogZG9t
L01vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vTW91c2VSZWxhdGVkRXZlbnQuaDoKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9OYW1lZEZsb3dDb2xsZWN0
aW9uLmg6CisgICAgICAgICogZG9tL092ZXJmbG93RXZlbnQuaDoKKyAgICAgICAgKiBkb20vUGFn
ZVRyYW5zaXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9QZW5kaW5nU2NyaXB0Lmg6CisgICAg
ICAgICogZG9tL1BvcFN0YXRlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vUmF3RGF0YURvY3VtZW50
UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpSYXdEYXRhRG9jdW1lbnRQYXJzZXI6OmZpbmlz
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYXdEYXRhRG9jdW1lbnRQYXJzZXI6OmZs
dXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhd0RhdGFEb2N1bWVudFBhcnNlcjo6
aW5zZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhd0RhdGFEb2N1bWVudFBhcnNl
cjo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyLmg6CisgICAgICAgICogZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vVGV4dEV2ZW50Lmg6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vVHJhbnNpdGlvbkV2ZW50Lmg6CisgICAgICAgICogZG9tL1VJRXZlbnQuaDoK
KyAgICAgICAgKiBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBkb20vV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Lmg6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuaDoKKyAgICAg
ICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNv
bnRyb2xsZXI6On5EZXZpY2VDb250cm9sbGVyKToKKworMjAxNC0xMC0yMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIE1vdmUgcmVtYWluaW5nIExlbmd0aC10eXBl
IHByb3BlcnRpZXMgdG8gdGhlIG5ldyBTdHlsZUJ1aWxkZXIKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODAxMgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDI3ZGE5MGQwNTk2NDk3NjQzYTFiZjVmNzM0NGZhYzVjY2E3YTA2ZDUuLmVlZjVkZDM0MmZl
MWY2ZDk3Mzg3YzE4MGIxMmEwZDkyMWY2NjNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0y
MDE3LDYgKzIwMTcsNyBAQCBfX1pOSzdXZWJDb3JlOERvY3VtZW50NHZpZXdFdgogX19aTks3V2Vi
Q29yZThEb2N1bWVudDZkb21haW5FdgogX19aTks3V2ViQ29yZThEb2N1bWVudDZsb2FkZXJFdgog
X19aTks3V2ViQ29yZThEb2N1bWVudDhzZXR0aW5nc0V2CitfX1pOSzdXZWJDb3JlOERvY3VtZW50
OXRvcE9yaWdpbkV2CiBfX1pOSzdXZWJDb3JlOEludFBvaW50Y3Y3Q0dQb2ludEV2CiBfX1pOSzdX
ZWJDb3JlOFBvc2l0aW9uMTBkb3duc3RyZWFtRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdS
dWxlRQogX19aTks3V2ViQ29yZThQb3NpdGlvbjEzY29udGFpbmVyTm9kZUV2CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaAppbmRleCA0NjE3NjU1MTQ3NzgwNTI2
Mjg5YjA4ZTExOWY1NWI0MDU4NGE0OTRjLi40OTNlYjRmM2Q0MDdmN2ZmZmIzZGI1MGU5ZGRhMWEw
NGY1OTA0NmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXV0b2NvbXBsZXRlRXJy
b3JFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdXRvY29tcGxldGVFcnJvckV2ZW50
LmgKQEAgLTM2LDcgKzM2LDcgQEAgc3RydWN0IEF1dG9jb21wbGV0ZUVycm9yRXZlbnRJbml0IDog
cHVibGljIEV2ZW50SW5pdCB7CiAgICAgU3RyaW5nIHJlYXNvbjsKIH07CiAKLWNsYXNzIEF1dG9j
b21wbGV0ZUVycm9yRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworY2xhc3MgQXV0b2NvbXBsZXRlRXJy
b3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8QXV0b2NvbXBsZXRlRXJyb3JFdmVudD4gY3JlYXRlKCkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQmVmb3JlTG9hZEV2ZW50LmgKaW5kZXggMmExOWU3YmI5ZGRjODAwMzZjMWRmZjAyMzU2ZTdj
NjIxZGU1YzdkNi4uNzkzNzNkZjU2MDFkZTg1MTcwY2ZhNDY5YTBlZTI1OTQwZDRlMDk4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuaApAQCAtMzUsMTIgKzM1LDEyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBCZWZvcmVMb2FkRXZlbnRJbml0IDogcHVibGljIEV2ZW50
SW5pdCB7CiAgICAgQmVmb3JlTG9hZEV2ZW50SW5pdCgpCiAgICAgewotICAgIH07CisgICAgfQog
CiAgICAgU3RyaW5nIHVybDsKIH07CiAKLWNsYXNzIEJlZm9yZUxvYWRFdmVudCA6IHB1YmxpYyBF
dmVudCB7CitjbGFzcyBCZWZvcmVMb2FkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJlZm9yZUxvYWRFdmVudD4gY3JlYXRlKCkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oCmluZGV4
IDc1NDIwMzU5Y2NlZTI0MzcwNTg2Mjg5Nzc3NzJhMmI3MzM5NTBiMjIuLjFlNGIzNWQwNmUzZjhh
NWY4ZTgyMDM0MmFiYjkzOWIxMGExYmU0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudC5oCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQmVmb3JlVGV4dEluc2VydGVkRXZlbnQgOiBwdWJsaWMgRXZlbnQgewor
Y2xhc3MgQmVmb3JlVGV4dEluc2VydGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVi
bGljOgogICAgIHZpcnR1YWwgfkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KCk7CiAKQEAgLTQwLDEz
ICs0MCwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBl
dmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBpc0JlZm9y
ZVRleHRJbnNlcnRlZEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAg
ICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CiAgICAgdm9p
ZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYgcykgeyBtX3RleHQgPSBzOyB9CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoY29uc3QgU3RyaW5nJik7CisgICAg
dmlydHVhbCBib29sIGlzQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKICAgICBTdHJpbmcgbV90ZXh0OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZEV2ZW50LmgKaW5kZXggMDE3MGI0NDY0Y2M5MDdhNTJiOTliNjViNjE0NGI4MmJkYzA4
N2Y5Ny4uZGI4NGM0MzNmY2ZmMTNjYTVlNDE5NTI2ZDY4ZmI3NWM3YzRjNjI3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NsaXBib2FyZEV2ZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgRGF0YVRyYW5zZmVyOwogCi0gICAgY2xhc3MgQ2xpcGJvYXJkRXZl
bnQgOiBwdWJsaWMgRXZlbnQgeworICAgIGNsYXNzIENsaXBib2FyZEV2ZW50IGZpbmFsIDogcHVi
bGljIEV2ZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkNsaXBib2FyZEV2ZW50
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5oCmluZGV4IGZhYTIyZGQ2MWQy
NmE3ZDE4YTkzODJhMWM2N2UzODI4NjQwOTc1ZWYuLmZkMWRkOTY3NmNhZjk0YzgyYTNlZmFkN2Vi
MWJlODhmNWMxMDYyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlv
bkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaApAQCAt
MzcsNyArMzcsNyBAQCBzdHJ1Y3QgQ29tcG9zaXRpb25FdmVudEluaXQgOiBVSUV2ZW50SW5pdCB7
CiAgICAgU3RyaW5nIGRhdGE7CiB9OwogCi1jbGFzcyBDb21wb3NpdGlvbkV2ZW50IDogcHVibGlj
IFVJRXZlbnQgeworY2xhc3MgQ29tcG9zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBVSUV2ZW50
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb21wb3NpdGlvbkV2ZW50PiBjcmVh
dGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50LmgKaW5kZXggNzVlMTJkZTY0YjEzNDQy
YmMyYTczODEyNDM3OGRiMjkzZTY4MzY1NS4uYTNhZTI4YmJlZjgzMTI2NjY0ODg5MmZiOGNhZjgy
YTYwOTI2ZTJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAg
c3RydWN0IEN1c3RvbUV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewogICAgIERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlIGRldGFpbDsKIH07CiAKLWNsYXNzIEN1c3RvbUV2ZW50IDogcHVibGlj
IEV2ZW50IHsKK2NsYXNzIEN1c3RvbUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5DdXN0b21FdmVudCgpOwogCkBAIC01NCw3ICs1NCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgaW5pdEN1c3RvbUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUmIGRldGFpbCk7CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJm
YWNlKCkgY29uc3Q7CisgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGRl
dGFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV0YWlsOyB9CiAgICAgUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpIHsgcmV0dXJuIG1fc2VyaWFs
aXplZFNjcmlwdFZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
TW90aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRy
b2xsZXIuaAppbmRleCBlZDJjNTdmNDRiODIzMWFkNmFlNTMxNmY4NTZiNDY4MGM4YzAzYzVhLi43
ZDcyZDUxNWNjNmQ4MTNkYzFmMzhjNjE5ZTg5ZTJjZGNmZDRiOWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKQEAgLTM1LDExICszNSwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnQ7CiBjbGFzcyBEZXZpY2VN
b3Rpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyIDogcHVibGljIERldmlj
ZUNvbnRyb2xsZXIgeworY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlciBmaW5hbCA6IHB1Ymxp
YyBEZXZpY2VDb250cm9sbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXZpY2VNb3Rp
b25Db250cm9sbGVyKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEZXZpY2VNb3Rpb25Db250cm9s
bGVyKERldmljZU1vdGlvbkNsaWVudCopOwotICAgIH5EZXZpY2VNb3Rpb25Db250cm9sbGVyKCkg
eyB9OworICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSB7IH0KIAogI2lmIFBM
QVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgdG8gcmVjb25jaWxlIHRo
ZSBpT1MgYW5kIE9wZW5Tb3VyY2UgZGlmZmVyZW5jZXMgd2l0aCB0aGlzIGNsYXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCmluZGV4IGY3MDgwMjI4NjUyYzc2ODliMWViNzRi
ZjQ2ZTAyNDg1ZWViNjE0MmQuLmY3OGEyOWU4NGVjYTAyOGNlMzQ4MDQ5NzgzZTBlYWZjMGUxZDUy
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCkBAIC0zMiw5ICszMiw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKIAotY2xh
c3MgRGV2aWNlTW90aW9uRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworY2xhc3MgRGV2aWNlTW90aW9u
RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgotICAgIH5EZXZpY2VNb3Rpb25F
dmVudCgpOworICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkV2ZW50KCk7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8RGV2aWNlTW90aW9uRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IERldmljZU1vdGlvbkV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAppbmRleCAwOWZjMGRkMTc3MDI0YmVh
ZDI0Yzc2N2UzMzk4ODNlNGMyZDMzMzYxLi4xMTgzMDYzNDg2OWU5MDZlNTg3NzM3NGJiNzNhMmZk
ZTRlOGI5Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlci5oCkBAIC0zNywxMSArMzcsMTEgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOwogCi1jbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgRGV2aWNlQ29udHJvbGxlciB7
CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgRGV2aWNl
Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIoRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKLSAgICB+RGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKCkgeyB9OworICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cigpIHsgfQogCiAgICAgdm9pZCBkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmll
bnRhdGlvbkRhdGEqKTsKICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50
YXRpb25DbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVu
dC5oCmluZGV4IGQ2OWRkYmY5NWUzNDU0NTYxYTRjOTlhZWYyNTdhMWZlY2VjZjRlODcuLjJlN2Q5
NDFkMzg4MDc2MGJiMWMzMWMyMWE2MmIyMDkyNjAzYzZlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKLSAgICB+RGV2aWNlT3JpZW50
YXRpb25FdmVudCgpOworICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uRXZlbnQoKTsKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBjcmVhdGUoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYzFhYzUxYmI2ZDY0OTUwMGIzNTY3ZmE4ODYyYzUyNWQx
NGY3YmNkNC4uZmU2NTkxY2U2ZTNiMzU4ODYyZWU3N2E5NGY2NWI3ZGRkYjI5MGUyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTMwNyw3ICszMDcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQ29u
dGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwogCi0gICAg
dmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIEVsZW1lbnQqIGdl
dEVsZW1lbnRCeUFjY2Vzc0tleShjb25zdCBTdHJpbmcmIGtleSk7CiAgICAgdm9pZCBpbnZhbGlk
YXRlQWNjZXNzS2V5TWFwKCk7CkBAIC00ODMsNyArNDgzLDcgQEAgcHVibGljOgogICAgIFN0cmlu
ZyBkb2N1bWVudFVSSSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRVUkk7IH0KICAgICB2b2lk
IHNldERvY3VtZW50VVJJKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCBVUkwgYmFzZVVS
SSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgVVJMIGJhc2VVUkkoKSBjb25zdCBvdmVy
cmlkZSBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQogICAgIEpTQzo6SW5wdXRDdXJz
b3ImIGlucHV0Q3Vyc29yKCkgY29uc3QgeyByZXR1cm4gKm1faW5wdXRDdXJzb3I7IH0KQEAgLTYy
NCw5ICs2MjQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsK
IAogICAgIC8vIE92ZXJyaWRlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgbWV0aG9kcyB0byBkbyBh
ZGRpdGlvbmFsIHdvcmsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHMo
QWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZv
clN1c3BlbnNpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQWN0aXZlRE9NT2Jq
ZWN0cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0
cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6
UmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIHN0
b3BBY3RpdmVET01PYmplY3RzKCkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBSZW5kZXJWaWV3KiBy
ZW5kZXJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJWaWV3LmdldCgpOyB9CiAKQEAgLTY3
OCw5ICs2NzgsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBVUkwgY29t
cGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgVVJMIGNv
bXBsZXRlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYgYmFzZVVSTE92ZXJyaWRlKSBjb25z
dDsKIAotICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3Qgb3Zl
cnJpZGUgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBib29sIGNh
bk5hdmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSk7CiAgICAgRnJhbWUqIGZpbmRVbnNhZmVQYXJl
bnRTY3JvbGxQcm9wYWdhdGlvbkJvdW5kYXJ5KCk7CkBAIC0xMDE1LDExICsxMDE1LDExIEBAIHB1
YmxpYzoKICAgICBib29sIGlzRE5TUHJlZmV0Y2hFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
c0ROU1ByZWZldGNoRW5hYmxlZDsgfQogICAgIHZvaWQgcGFyc2VETlNQcmVmZXRjaENvbnRyb2xI
ZWFkZXIoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soVGFzaykg
b3ZlcnJpZGU7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNo
cm9ub3VzbHkuCisgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFRhc2spIG92ZXJyaWRlIGZpbmFs
OyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5
LgogCiAgICAgdm9pZCBzdXNwZW5kU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJhY2tz
KCk7CiAgICAgdm9pZCByZXN1bWVTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3Mo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyU2V0VGhyb3R0
bGVkKGJvb2wpOworICAgIHZvaWQgc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyU2V0VGhyb3R0
bGVkKGJvb2wpOwogICAgIAogICAgIHZvaWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3Jt
RGlzcGxheUlEKTsKIApAQCAtMTA5MSw3ICsxMDkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
QW5ub3RhdGVkUmVnaW9ucyhjb25zdCBWZWN0b3I8QW5ub3RhdGVkUmVnaW9uVmFsdWU+Jik7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92ZXJyaWRl
IGZpbmFsOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU1ZHRG9jdW1lbnRFeHRlbnNpb25z
KiBzdmdFeHRlbnNpb25zKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU1ZHRG9jdW1lbnRFeHRlbnNp
b25zJiBhY2Nlc3NTVkdFeHRlbnNpb25zKCk7CkBAIC0xMTA1LDggKzExMDUsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBwcm9jZXNzaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNz
aW5nTG9hZEV2ZW50OyB9CiAgICAgYm9vbCBsb2FkRXZlbnRGaW5pc2hlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9hZEV2ZW50RmluaXNoZWQ7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRU
aHJlYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNKU0V4ZWN1dGlvbkZv
cmJpZGRlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
Ym9vbCBpc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgY29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzOyB9CiAgICAgdm9pZCBzZXRD
b250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpIHsgbV9jb250YWluc1ZhbGlkaXR5U3R5bGVSdWxl
cyA9IHRydWU7IH0KQEAgLTExMTcsNyArMTExNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVucXVl
dWVQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7CiAgICAgdm9pZCBlbnF1
ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5l
d1VSTCk7CiAgICAgdm9pZCBlbnF1ZXVlUG9wc3RhdGVFdmVudChQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gc3RhdGVPYmplY3QpOwotICAgIHZpcnR1YWwgRG9jdW1lbnRFdmVudFF1
ZXVlJiBldmVudFF1ZXVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ldmVudFF1ZXVlOyB9
CisgICAgdmlydHVhbCBEb2N1bWVudEV2ZW50UXVldWUmIGV2ZW50UXVldWUoKSBjb25zdCBvdmVy
cmlkZSBmaW5hbCB7IHJldHVybiBtX2V2ZW50UXVldWU7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgYWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciopOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKE1lZGlh
Q2FuU3RhcnRMaXN0ZW5lciopOwpAQCAtMTE5MSw4ICsxMTkxLDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZW5kV2lsbFJldmVhbEVkZ2VFdmVudHNJZk5lZWRlZChjb25zdCBJbnRQb2ludCYgb2xk
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBuZXdQb3NpdGlvbiwgY29uc3QgSW50UmVjdCYgdmlz
aWJsZVJlY3QsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgRWxlbWVudCogdGFyZ2V0ID0g
bnVsbHB0cik7CiAKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVt
YmVyLCBpbnQgY29sdW1uTnVtYmVyLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0
YWNrPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNv
bGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBp
bnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNj
cmlwdENhbGxTdGFjaz4pIG92ZXJyaWRlIGZpbmFsOwogCiAgICAgdm9pZCBpbml0RE5TUHJlZmV0
Y2goKTsKIApAQCAtMTI2Nyw5ICsxMjY3LDkgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRGlzYWJs
ZWRGaWVsZHNldEVsZW1lbnQoKSB7IG1fZGlzYWJsZWRGaWVsZHNldEVsZW1lbnRzQ291bnQrKzsg
fQogICAgIHZvaWQgcmVtb3ZlRGlzYWJsZWRGaWVsZHNldEVsZW1lbnQoKSB7IEFTU0VSVChtX2Rp
c2FibGVkRmllbGRzZXRFbGVtZW50c0NvdW50KTsgbV9kaXNhYmxlZEZpZWxkc2V0RWxlbWVudHND
b3VudC0tOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IG92ZXJy
aWRlIGZpbmFsOwogCiAjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCiAgICAgUGFzc1JlZlB0
cjxGb250TG9hZGVyPiBmb250cygpOwpAQCAtMTI4MCw4ICsxMjgwLDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudChib29sKTsKIAogI2lmIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQotICAgIHZpcnR1YWwgYm9vbCB3cmFwQ3J5cHRvS2V5KGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgYm9vbCB1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiB3cmFwcGVkS2V5LCBWZWN0b3I8dWludDhfdD4mIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHdyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIFZlY3Rvcjx1
aW50OF90PiYgd3JhcHBlZEtleSkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBib29sIHVu
d3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3Rvcjx1
aW50OF90PiYga2V5KSBvdmVycmlkZSBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRIYXNT
dHlsZVdpdGhWaWV3cG9ydFVuaXRzKCkgeyBtX2hhc1N0eWxlV2l0aFZpZXdwb3J0VW5pdHMgPSB0
cnVlOyB9CkBAIC0xMzE4LDI0ICsxMzE4LDI0IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiB2b2lk
ICgqQXJndW1lbnRzQ2FsbGJhY2spKGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBTdHJp
bmcmIHZhbHVlU3RyaW5nLCBEb2N1bWVudCosIHZvaWQqIGRhdGEpOwogICAgIHZvaWQgcHJvY2Vz
c0FyZ3VtZW50cyhjb25zdCBTdHJpbmcmIGZlYXR1cmVzLCB2b2lkKiBkYXRhLCBBcmd1bWVudHND
YWxsYmFjayk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudCgpIGNvbnN0IG92
ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJl
bkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGUgZmluYWw7CiAKLSAg
ICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
Tm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
U3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBOb2Rl
VHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCkgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIAotICAg
IHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBvdmVy
cmlkZSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgZmluYWwgeyBkZXJlZigpOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNj
cmlwdENhbGxTdGFjaz4sIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51
bWJlciwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4sIEpTQzo6RXhlY1N0
YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZSBm
aW5hbDsKIAotICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dCBvdmVycmlkZSBmaW5hbDsKIAotICAgIHZpcnR1YWwgZG91YmxlIHRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB0aW1lckFsaWdubWVu
dEludGVydmFsKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0ZVRpdGxl
KGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mKTsKICAgICB2b2lkIHVwZGF0ZUZvY3VzQXBwZWFy
YW5jZVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Jik7CkBAIC0xMzgwLDcgKzEzODAsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgaXNET01Db29raWVDYWNoZVZhbGlkKCkgY29uc3QgeyByZXR1cm4g
bV9jb29raWVDYWNoZUV4cGlyeVRpbWVyLmlzQWN0aXZlKCk7IH0KICAgICB2b2lkIGludmFsaWRh
dGVET01Db29raWVDYWNoZSgpOwogICAgIHZvaWQgZG9tQ29va2llQ2FjaGVFeHBpcnlUaW1lckZp
cmVkKFRpbWVyPERvY3VtZW50PiYpOwotICAgIHZvaWQgZGlkTG9hZFJlc291cmNlU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkTG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZSBmaW5hbDsKIAogICAgIHVuc2lnbmVkIG1fcmVmZXJlbmNpbmdOb2RlQ291bnQ7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IDY3ZWJmYzNlOTg0YjY4
MDVkN2RiMGVmZmIzNDM1ZGMxYmRlYjg3MzMuLjU0M2I1OWViOGU1YWM0ZGY1YmY3MmE0NTI3ZmY5
ZDU2YzUxZWYyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMzks
MTUgKzM5LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlSFRNTChjb25zdCBTdHJpbmcmLCBF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2NyaXB0
aW5nQ29udGVudCk7CiAgICAgYm9vbCBwYXJzZVhNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2NyaXB0aW5nQ29udGVu
dCk7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWlu
UmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNUZW1wbGF0ZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnRGcmFnbWVudChEb2N1bWVudCYsIENvbnN0cnVj
dGlvblR5cGUgPSBDcmVhdGVDb250YWluZXIpOwotICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBv
dmVycmlkZSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0
IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUo
Ym9vbCBkZWVwKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChO
b2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0Vycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKaW5kZXgg
YzhkZmQzMTA4MzkzMDA5MGEyMjIzYmUyYjM5OGM0ODg5ZDNiZjFjOS4uYjUxZDdhNjMzMjUzYTU4
NGViN2I5NGI5YWZmOWY0NzRmMWExMzc0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBFcnJvckV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewog
ICAgIHVuc2lnbmVkIGNvbG5vOwogfTsKIAotY2xhc3MgRXJyb3JFdmVudCA6IHB1YmxpYyBFdmVu
dCB7CitjbGFzcyBFcnJvckV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVhdGUoKQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Rm9jdXNFdmVudC5oCmluZGV4IGI5NjY4NjZlMGU3NDU1Yjg4MGE2OWEzYTg3MzUxZDYwYWNjNDg1
MWQuLmY4MDg4YThlZDI0Mjg3YTYyZmQyY2RlNjQ2MDI5MzA1M2RhY2M3YjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0ZvY3VzRXZlbnQuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgRm9jdXNFdmVudEluaXQgOiBw
dWJsaWMgVUlFdmVudEluaXQgewogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdl
dDsKIH07CiAKLWNsYXNzIEZvY3VzRXZlbnQgOiBwdWJsaWMgVUlFdmVudCB7CitjbGFzcyBGb2N1
c0V2ZW50IGZpbmFsIDogcHVibGljIFVJRXZlbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEZvY3VzRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewpAQCAtNTYsMTcgKzU2LDE4IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb2N1c0V2ZW50KHR5cGUsIGluaXRp
YWxpemVyKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdl
dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1fcmVsYXRlZFRhcmdldC5nZXQoKTsg
fQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3JlbGF0ZWRUYXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFJlbGF0ZWRU
YXJnZXQoUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkgeyBtX3JlbGF0ZWRU
YXJnZXQgPSByZWxhdGVkVGFyZ2V0OyB9CiAKICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2
ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGlzRm9jdXNF
dmVudCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEZvY3VzRXZlbnQoKTsKICAg
ICBGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQsIFBhc3NSZWZQdHI8
RXZlbnRUYXJnZXQ+KTsKICAgICBGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgRm9jdXNFdmVudEluaXQmKTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzRXZlbnQo
KSBjb25zdCBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9yZWxhdGVkVGFy
Z2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hDaGFuZ2VFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hDaGFuZ2VFdmVudC5oCmluZGV4IDg1Y2IwYjUz
YTMwNjM5OTQ2ZDEwOTUwZjA4MmJmOGRiMTA1YzUxZTMuLjdlMmFiNTMyN2MxNDk0ZWViNzZhMmMz
NzNmYTZiNTBmOTUyMmE1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9IYXNoQ2hh
bmdlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmgKQEAg
LTM1LDcgKzM1LDcgQEAgc3RydWN0IEhhc2hDaGFuZ2VFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJ
bml0IHsKICAgICBTdHJpbmcgbmV3VVJMOwogfTsKIAotY2xhc3MgSGFzaENoYW5nZUV2ZW50IDog
cHVibGljIEV2ZW50IHsKK2NsYXNzIEhhc2hDaGFuZ2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVu
dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SGFzaENoYW5nZUV2ZW50PiBjcmVh
dGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5oCmluZGV4IGFiOTQ1NzcxZDc1
MDFmYWU2ZTEzMDllMGUzMzYwODNlNzFlNjU2ZDguLjM3MTJlODNiZjRhMTcwM2FlMjg0MWU5ZTIy
OTRkOTljMzU1ZGExMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaApAQCAtNDUsNyAr
NDUsNyBAQCBzdHJ1Y3QgS2V5Ym9hcmRFdmVudEluaXQgOiBwdWJsaWMgVUlFdmVudEluaXQgewog
ICAgIGJvb2wgbWV0YUtleTsKIH07CiAKLWNsYXNzIEtleWJvYXJkRXZlbnQgOiBwdWJsaWMgVUlF
dmVudFdpdGhLZXlTdGF0ZSB7CitjbGFzcyBLZXlib2FyZEV2ZW50IGZpbmFsIDogcHVibGljIFVJ
RXZlbnRXaXRoS2V5U3RhdGUgewogcHVibGljOgogICAgIGVudW0gS2V5TG9jYXRpb25Db2RlIHsK
ICAgICAgICAgRE9NX0tFWV9MT0NBVElPTl9TVEFOREFSRCAgID0gMHgwMCwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9MaXZlTm9kZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9M
aXZlTm9kZUxpc3QuaAppbmRleCBiYzUyOTg3YTVmNmZhYzZkZThlMjhkNWIzNzM3NmQ0NDZhMmE2
NTI1Li4xOTZlNTBiYjgyYmViY2NmNzI2NGI0NjNhMmVlZTYzZWE2ZDEwYWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0xpdmVOb2RlTGlzdC5oCkBAIC05Miw4ICs5Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGNv
bGxlY3Rpb25DYW5UcmF2ZXJzZUJhY2t3YXJkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZvaWQgd2lsbFZhbGlkYXRlSW5kZXhDYWNoZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDYWNoZShEb2N1bWVudCYpIGNvbnN0OwotICAgIHZpcnR1YWwgc2l6ZV90IG1l
bW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNh
Y2hlKERvY3VtZW50JikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBzaXplX3Qg
bWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ2Fj
aGVkTGl2ZU5vZGVMaXN0KENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBOb2RlTGlzdEludmFsaWRh
dGlvblR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCmluZGV4IGM3NGFlMGRkNmM5ZTYw
MDhjYTZiZGEzMjMyNWU2NGY0NTYyMjEzOTQuLmNiYTRjMWYyYjEzMzA5MDk5MjNmNzRjYzEyZDA1
MjUwNzhiMGM5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKQEAgLTUxLDcgKzUxLDcg
QEAgc3RydWN0IE1lc3NhZ2VFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKICAgICBNZXNz
YWdlUG9ydEFycmF5IHBvcnRzOwogfTsKIAotY2xhc3MgTWVzc2FnZUV2ZW50IDogcHVibGljIEV2
ZW50IHsKK2NsYXNzIE1lc3NhZ2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmgKaW5kZXggMzVkNzQzOWY0NTZkNWI4NjlhOGFmN2YwOTI3OWFh
YzcxODk2YTZhYi4uZTFiOTZlNmJjNzEzMTQ3NTFmYjMyZDVlYjQyMmZmYjVkZjUwOWEzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKQEAgLTc0LDcgKzc0LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNZXNzYWdlUG9ydEV2ZW50VGFyZ2V0
SW50ZXJmYWNlVHlwZTsgfQogICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzTWVzc2FnZVBvcnQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgdm9pZCBkaXNwYXRj
aE1lc3NhZ2VzKCk7CiAKQEAgLTEwNiw2ICsxMDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNZXNzYWdlUG9ydCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRDaGFubmVsPiBtX2VudGFuZ2xlZENoYW5uZWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmlu
ZGV4IGE1OGIzNWU1NDE4ZmY4MjcxNWFhZWQzNDk3Y2FlMzVhMmZlMGIwMmMuLjFmYThhM2FlNjlh
NmI5ZGE0YmZmZDNmMWRiNDk3NmMyYmYyNmU3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApA
QCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gbV9k
YXRhVHJhbnNmZXI7CiB9OwogCi1jbGFzcyBTaW11bGF0ZWRNb3VzZUV2ZW50IDogcHVibGljIE1v
dXNlRXZlbnQgeworY2xhc3MgU2ltdWxhdGVkTW91c2VFdmVudCBmaW5hbCA6IHB1YmxpYyBNb3Vz
ZUV2ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaW11bGF0ZWRNb3VzZUV2
ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8QWJz
dHJhY3RWaWV3PiwgUGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50KiB0
YXJnZXQpOwogICAgIHZpcnR1YWwgflNpbXVsYXRlZE1vdXNlRXZlbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggNjZmYzEwNzM3OTk0ZWRkZWJmMWVmNTgzMTQ4
NzdjNjgyOTgwZDJkMC4uNzRhMWU4M2M0NjBjYzFjMTI0OWU3OWRmMDNmNDhiYTZiN2NmZTY2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKQEAgLTQ0LDEzICs0NCwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtb3ZlbWVudFkoKSBjb25zdCB7IHJl
dHVybiBtX21vdmVtZW50RGVsdGEueSgpOyB9CiAjZW5kaWYKICAgICAgICAgY29uc3QgTGF5b3V0
UG9pbnQmIGNsaWVudExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRMb2NhdGlvbjsg
fQotICAgICAgICBpbnQgbGF5ZXJYKCkgb3ZlcnJpZGU7Ci0gICAgICAgIGludCBsYXllclkoKSBv
dmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBpbnQgbGF5ZXJYKCkgb3ZlcnJpZGU7CisgICAgICAg
IHZpcnR1YWwgaW50IGxheWVyWSgpIG92ZXJyaWRlOwogICAgICAgICBXRUJDT1JFX0VYUE9SVCBp
bnQgb2Zmc2V0WCgpOwogICAgICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgb2Zmc2V0WSgpOwogICAg
ICAgICBib29sIGlzU2ltdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NpbXVsYXRlZDsgfQot
ICAgICAgICB2aXJ0dWFsIGludCBwYWdlWCgpIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2aXJ0
dWFsIGludCBwYWdlWSgpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIGludCBwYWdl
WCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgICAgICB2aXJ0dWFsIGludCBwYWdlWSgpIGNv
bnN0IG92ZXJyaWRlIGZpbmFsOwogICAgICAgICB2aXJ0dWFsIGNvbnN0IExheW91dFBvaW50JiBw
YWdlTG9jYXRpb24oKSBjb25zdDsKICAgICAgICAgaW50IHgoKSBjb25zdDsKICAgICAgICAgaW50
IHkoKSBjb25zdDsKQEAgLTcxLDcgKzcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZvaWQgaW5pdENvb3JkaW5hdGVzKCk7CiAgICAgICAgIHZvaWQgaW5pdENvb3JkaW5hdGVz
KGNvbnN0IExheW91dFBvaW50JiBjbGllbnRMb2NhdGlvbik7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCByZWNlaXZlZFRhcmdldCgpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2
ZWRUYXJnZXQoKSBvdmVycmlkZSBmaW5hbDsKIAogICAgICAgICB2b2lkIGNvbXB1dGVQYWdlTG9j
YXRpb24oKTsKICAgICAgICAgdm9pZCBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbkV2ZW50LmgKaW5kZXggY2JkMzYwMDkwZWE2YzFhM2JlZTIxMzNkNzgwYjBl
MjgyZTI2MTBkNS4uNGQwNTMxNGNkNDhjZjg5MGViMjkzZjdjZGNiZGQ4OWM2ZDIzOWFjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE11dGF0aW9uRXZlbnQgOiBwdWJsaWMgRXZlbnQgewor
ICAgIGNsYXNzIE11dGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCB+TXV0YXRpb25FdmVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05hbWVkRmxvd0NvbGxlY3Rpb24uaAppbmRleCAyYzBkOWM4MjFlNDNhMjk4ZTNiY2VjNzRhMjBh
Njg3Njg0MDA5Njg0Li5hYjYxOTc3Y2Y4ZmI3MGIzZjcyYzZjYmM0NTA4ZGY0NGY3MTg0ZmVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29sbGVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmgKQEAgLTQzLDcgKzQzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBET01OYW1lZEZs
b3dDb2xsZWN0aW9uOwogCi1jbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8TmFtZWRGbG93Q29sbGVjdGlvbj4sIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlciB7CitjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8TmFtZWRGbG93Q29sbGVjdGlvbj4sIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TmFtZWRGbG93Q29sbGVjdGlvbj4g
Y3JlYXRlKERvY3VtZW50KiBkb2MpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYW1lZEZsb3dDb2xs
ZWN0aW9uKGRvYykpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PdmVyZmxv
d0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5oCmluZGV4IDM1YzZk
MWFmMGE2OTVhMjE0ODQwYjZiODdkZTEzM2Q0MjFlM2NhZjUuLmQ0Y2QzMzc3YzAxMTg0ODg4YzI2
YjIzNzg0M2NkZmI4NWQyYzg2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PdmVy
Zmxvd0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL092ZXJmbG93RXZlbnQuaApAQCAt
MzgsNyArMzgsNyBAQCBzdHJ1Y3QgT3ZlcmZsb3dFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0
IHsKICAgICBib29sIHZlcnRpY2FsT3ZlcmZsb3c7CiB9OwogCi1jbGFzcyBPdmVyZmxvd0V2ZW50
IDogcHVibGljIEV2ZW50IHsKK2NsYXNzIE92ZXJmbG93RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZl
bnQgewogcHVibGljOgogICAgIGVudW0gb3JpZW50VHlwZSB7CiAgICAgICAgIEhPUklaT05UQUwg
PSAwLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmgKaW5kZXggMDUxYTEy
YzI2MDZhNTBkZmVlZmViZDdkYTNiNmRkMjQ0YjY4NGE1ZC4uODg4M2RjNDhhZjI5N2ZhY2ZhYzU3
Yzk3NDgzNzJhYjJlYWY1NmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BhZ2VU
cmFuc2l0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGFnZVRyYW5zaXRpb25F
dmVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHN0cnVjdCBQYWdlVHJhbnNpdGlvbkV2ZW50SW5pdCA6
IHB1YmxpYyBFdmVudEluaXQgewogICAgIGJvb2wgcGVyc2lzdGVkOwogfTsKIAotY2xhc3MgUGFn
ZVRyYW5zaXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBQYWdlVHJhbnNpdGlvbkV2
ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxQYWdlVHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5oCmluZGV4IGY3ODMxY2U2ZmQzOTQ2YzI3NzQ0YWFhYjhlYmRlZDAyZTc3YWEyZDcu
LjhlZGFkOTAzYzdiMzg5MjY2ZDM3MDE1Y2FjOWUwMzI1NDNhNTU4NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1BlbmRpbmdTY3JpcHQuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBFbGVtZW50OwogLy8gQSBD
YWNoZWRSZXNvdXJjZUhhbmRsZSBhbG9uZSBkb2VzIG5vdCBwcmV2ZW50IHRoZSB1bmRlcmx5aW5n
IENhY2hlZFJlc291cmNlCiAvLyBmcm9tIHB1cmdpbmcgaXRzIGRhdGEgYnVmZmVyLiBUaGlzIGNs
YXNzIGhvbGRzIGEgZHVtbXkgY2xpZW50IG9wZW4gZm9yIGl0cwogLy8gbGlmZXRpbWUgaW4gb3Jk
ZXIgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGRhdGEgYnVmZmVyIHdpbGwgbm90IGJlIHB1cmdlZC4K
LWNsYXNzIFBlbmRpbmdTY3JpcHQgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworY2xh
c3MgUGVuZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBw
dWJsaWM6CiAgICAgUGVuZGluZ1NjcmlwdCgpCiAgICAgICAgIDogbV93YXRjaGluZ0ZvckxvYWQo
ZmFsc2UpCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc2V0Q2FjaGVkU2NyaXB0
KG90aGVyLmNhY2hlZFNjcmlwdCgpKTsKICAgICB9CiAKLSAgICB+UGVuZGluZ1NjcmlwdCgpOwor
ICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQoKTsKIAogICAgIFBlbmRpbmdTY3JpcHQmIG9wZXJh
dG9yPShjb25zdCBQZW5kaW5nU2NyaXB0JiBvdGhlcikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BvcFN0
YXRlRXZlbnQuaAppbmRleCBkOWRiNjhkMTQwYTBjMDU5ODkzOWYyMjY1NDgyNTg2YjZhMWJmZGFk
Li5iNjc2MjdjNzVkZWU3NDExNTI4MjRiMTE4ZDQ4YzY3OWYzYTIyMDM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3BTdGF0ZUV2ZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IFBvcFN0YXRlRXZlbnRJ
bml0IDogcHVibGljIEV2ZW50SW5pdCB7CiBjbGFzcyBIaXN0b3J5OwogY2xhc3MgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOwogCi1jbGFzcyBQb3BTdGF0ZUV2ZW50IDogcHVibGljIEV2ZW50IHsKK2Ns
YXNzIFBvcFN0YXRlRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAgIHZp
cnR1YWwgflBvcFN0YXRlRXZlbnQoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQb3BTdGF0ZUV2
ZW50PiBjcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9j
dW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIu
aAppbmRleCBkNjJkMTgwNDJiNmE0MDAwODJkMWEzNWI4MTUxNTMxYzlkNGU4Mjc4Li44MzRkNDI2
NjZiYzUxOTc0ODM2ZWM3ZTk3ODJkYWRmZTk3OTViY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oCkBAIC0zNywyNiArMzcsMjYgQEAgcHJvdGVjdGVkOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkKKyAgICB2aXJ0dWFsIHZv
aWQgZmluaXNoKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICghaXNTdG9wcGVkKCkpCiAg
ICAgICAgICAgICBkb2N1bWVudCgpLT5maW5pc2hlZFBhcnNpbmcoKTsKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoKERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCisgICAg
dmlydHVhbCB2b2lkIGZsdXNoKERvY3VtZW50V3JpdGVyJiB3cml0ZXIpIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICAvLyBNYWtlIHN1cmUgYXBwZW5kQnl0ZXMgaXMgY2FsbGVkIGF0IGxlYXN0IG9u
Y2UuCiAgICAgICAgIGFwcGVuZEJ5dGVzKHdyaXRlciwgMCwgMCk7CiAgICAgfQogCi0gICAgdmly
dHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKQorICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAg
IC8vIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUzOTc+OiBKUyBj
b2RlIGNhbiBhbHdheXMgY2FsbCBkb2N1bWVudC53cml0ZSwgd2UgbmVlZCB0byBoYW5kbGUgaXQu
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5k
KFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pIG92ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0YWJsZURvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyLmgKaW5kZXggOGY4ZGM5OGM4NDM4ODg2NTk1NDkxN2EwZTk1NDQ0NDlkNmQ4
MDhkZS4uNDgyNjBhOTY4OTE5Y2U2NmU3NmE3ZDEwMjVkZDNmMjI2Y2RjNDMzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaApAQCAtNTUsNyArNTUs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKERv
Y3VtZW50JiwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2NyaXB0aW5nQ29udGVudCk7CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIGFzU2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyKCkgb3ZlcnJpZGUgeyByZXR1cm4gdGhpczsgfQorICAgIHZpcnR1
YWwgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBhc1NjcmlwdGFibGVEb2N1bWVudFBhcnNlcigp
IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NjcmlwdC1jcmVhdGVkLXBhcnNl
cgogICAgIGJvb2wgbV93YXNDcmVhdGVkQnlTY3JpcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaAppbmRleCA3OTlmOTk0ZGQ2OWEyOGU4
MWExYWE2MmZjZjgxNThiODRlZWZlOGIzLi45OWYyMjc4MDY4NjBjZTEwMzNiNDY0M2IzMzgwYTMw
NDhmNmNlNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAgICAgaW50IGxpbmVOdW1iZXI7
CiB9OwogCi1jbGFzcyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IDogcHVibGljIEV2ZW50
IHsKK2NsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZl
bnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5oCmluZGV4IDg4ZDA2
MWY0MTVkMzdhZWFmZjJlM2Q0NGI0ZjYyNTdkNGQyN2M5ZjkuLmFlZjU3M2E3YzMxZDZhNDAxZjgw
NTBkNDcxZGM1ODY2MzhhZjVmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgKQEAgLTM3LDcgKzM3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgZW51bSBjbGFzcyBNYWlsQmxvY2txdW90
ZUhhbmRsaW5nOwogCi0gICAgY2xhc3MgVGV4dEV2ZW50IDogcHVibGljIFVJRXZlbnQgeworICAg
IGNsYXNzIFRleHRFdmVudCBmaW5hbCA6IHB1YmxpYyBVSUV2ZW50IHsKICAgICBwdWJsaWM6CiAK
ICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dEV2ZW50PiBjcmVhdGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VG91Y2hFdmVudC5oCmluZGV4IDNhNjg4YjZkZTEyZjVlMGFmYmUxZDMyMDFlNmVmMzAzMDM1MDRj
ZDkuLmFhMDY3OTUzOWQyYmQzMzQxM2FlMWQ1NDdkNGViMjlmM2U1ODcwZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuaApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIFRvdWNoRXZlbnQgOiBwdWJsaWMgTW91c2VSZWxhdGVkRXZlbnQgeworY2xhc3MgVG91
Y2hFdmVudCBmaW5hbCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+VG91Y2hFdmVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhbnNpdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmgK
aW5kZXggZGRlNWVhOWY4ZTAxMTczZmY5YzgzMDBjMGVhODk5ZDE1ZGE1YzBiYS4uM2VhZGIyMjc4
NjZiYTRiYTBmOTgwNTg5YTMwMjAxMTUzMmY3MjMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyYW5zaXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0
aW9uRXZlbnQuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgVHJhbnNpdGlvbkV2ZW50SW5pdCA6
IHB1YmxpYyBFdmVudEluaXQgewogICAgIFN0cmluZyBwc2V1ZG9FbGVtZW50OwogfTsKIAotY2xh
c3MgVHJhbnNpdGlvbkV2ZW50IDogcHVibGljIEV2ZW50IHsKK2NsYXNzIFRyYW5zaXRpb25FdmVu
dCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9VSUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCmluZGV4IGFi
YTg3NTkyNzBmYzFlY2U5MWFkYzUzM2IxNGYwOGJlNDQwNzI0NjguLmY5ZmUxNDQ5NDlkM2VjM2Yz
ZmMyNzVjNzM1YzdkMTkyM2RkYjhiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9V
SUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjEsNyArNjEs
NiBAQCBwdWJsaWM6CiAgICAgaW50IGRldGFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV0YWlsOyB9
CiAKICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGlzVUlFdmVudCgpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBpbnQga2V5Q29kZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNoYXJDb2Rl
KCkgY29uc3Q7CkBAIC04MSw2ICs4MCw4IEBAIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYsIGNvbnN0IFVJRXZlbnRJbml0Jik7CiAKIHByaXZhdGU6CisgICAgdmly
dHVhbCBib29sIGlzVUlFdmVudCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworCiAgICAgUmVmUHRy
PEFic3RyYWN0Vmlldz4gbV92aWV3OwogICAgIGludCBtX2RldGFpbDsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oCmluZGV4IGE1ODQ2Nzk0OTQ0NGFjMWVkMGEz
ODk0MjEwNDk1NWZjOTMxZjE5ZTcuLjJhMzE3ZjRmYmM4ZDE1ZTI0MGI0ZWZjNGY0MjI0ZThlYWNh
M2VlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oCkBAIC0z
Nyw3ICszNyw3IEBAIHN0cnVjdCBXZWJLaXRBbmltYXRpb25FdmVudEluaXQgOiBwdWJsaWMgRXZl
bnRJbml0IHsKICAgICBkb3VibGUgZWxhcHNlZFRpbWU7CiB9OwogCi1jbGFzcyBXZWJLaXRBbmlt
YXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBXZWJLaXRBbmltYXRpb25FdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
S2l0QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dl
YktpdFRyYW5zaXRpb25FdmVudC5oCmluZGV4IGQwMWRhNGQyNjFlMWI2Y2YzZjM1MjI0ZmVmYWY4
MmY3MjFlYjhlNDEuLmMxZGYzNzJlMmJkOWMwYzBmMmU2MmM4OTNiZjBjMzk4N2MzZjYwNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgKQEAgLTM4LDcgKzM4
LDcgQEAgc3RydWN0IFdlYktpdFRyYW5zaXRpb25FdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0
IHsKICAgICBTdHJpbmcgcHNldWRvRWxlbWVudDsKIH07CiAKLWNsYXNzIFdlYktpdFRyYW5zaXRp
b25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBXZWJLaXRUcmFuc2l0aW9uRXZlbnQgZmlu
YWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktp
dFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaApp
bmRleCA2NzA1ZDRhODhiMjdiZjdiOGI0MzhkYzAwNGUyNmQ0MWQyMWY0NDMwLi45NGNjZjQzZWQ0
NmZmMGFkYjk1MTE1YTE2ZGJlM2VjNjk3NTFmNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0IFdoZWVsRXZlbnRJbml0IDogcHVibGljIE1vdXNlRXZl
bnRJbml0IHsKICAgICBpbnQgd2hlZWxEZWx0YVk7IC8vIERlcHJlY2F0ZWQuCiB9OwogCi1jbGFz
cyBXaGVlbEV2ZW50IDogcHVibGljIE1vdXNlRXZlbnQgeworY2xhc3MgV2hlZWxFdmVudCBmaW5h
bCA6IHB1YmxpYyBNb3VzZUV2ZW50IHsKIHB1YmxpYzoKICAgICBlbnVtIHsgVGlja011bHRpcGxp
ZXIgPSAxMjAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaAppbmRleCA0
MGYwM2I0NjE2ODU3MDMyMTVhZGQxNzRmNWM4OTUwNjE1NzU3ZWE3Li4yYWJmYjc5OGYzYzE5MWMw
M2I1YzYwM2JjYjUzZjlmNjc0Y2M5N2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRy
b2xsZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBEZXZpY2VDb250cm9sbGVyIDogcHVibGlj
IFN1cHBsZW1lbnQ8UGFnZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIGV4cGxpY2l0IERldmljZUNvbnRyb2xsZXIoRGV2aWNlQ2xpZW50Kik7Ci0gICAgfkRl
dmljZUNvbnRyb2xsZXIoKSB7IH0KKyAgICB2aXJ0dWFsIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9
CiAKICAgICB2b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CiAgICAgdm9p
ZCByZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240371</attachid>
            <date>2014-10-23 15:06:10 -0700</date>
            <delta_ts>2014-10-23 16:25:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138019-20141023150616.patch</filename>
            <type>text/plain</type>
            <size>39562</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNjNzVlNDY5OTNhYWU1
YTE3MTM2YTFkYzJlMWI3ZjQ2MTY3YjFlMi4uZmVkOTAxMDUxODRmZjVlOTQyM2YzMWQ5NDBjOWNj
NWM2NmUzZGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE0LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBm
dW5jdGlvbnMgaW4gZG9tLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM4MDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBmdW5jdGlvbnMgaW4gZG9tLyBieToKKyAgICAgICAg
LSBNYWtpbmcgdmlydHVhbCBmdW5jdGlvbnMgZmluYWwgd2hlbiBwb3NzaWJsZQorICAgICAgICAt
IE1ha2luZyBjbGFzc2VzIGZpbmFsIHdoZW4gcG9zc2libGUKKyAgICAgICAgLSBVc2luZyAnb3Zl
cnJpZGUnIHdoZW4gYXBwcm9wcmlhdGUKKyAgICAgICAgLSBFeHBsaWNpdGx5IG1hcmtpbmcgZnVu
Y3Rpb25zIC8gZGVzdHJ1Y3RvcnMgYXMgdmlydHVhbCB3aGVuIHRoZXkgYXJlCisgICAgICAgICAg
aW5oZXJlbnRseSB2aXJ0dWFsCisgICAgICAgIC0gTWFraW5nIGlzWFhYKCkgdmlydHVhbCBmdW5j
dGlvbnMgcHJpdmF0ZSBvbiBYWFggY2xhc3NlcyB0byBhdm9pZAorICAgICAgICAgIHVubmVjZXNz
YXJ5IHR5cGUgY2hlY2tzCisgICAgICAgIC0gRHJvcHBpbmcgZmluYWwgZm9yIHZpcnR1YWwgZnVu
Y3Rpb25zIGluIGNsYXNzZXMgYWxyZWFkeSBtYXJrZWQgYXMKKyAgICAgICAgICBmaW5hbAorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogZG9tL0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vQmVmb3JlTG9hZEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpCZWZvcmVM
b2FkRXZlbnRJbml0OjpCZWZvcmVMb2FkRXZlbnRJbml0KToKKyAgICAgICAgKiBkb20vQmVmb3Jl
VGV4dEluc2VydGVkRXZlbnQuaDoKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vQ29tcG9zaXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9DdXN0b21FdmVu
dC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Db250cm9sbGVyOjp+RGV2aWNlTW90aW9uQ29udHJvbGxlcik6
IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp+RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50Lmg6Cisg
ICAgICAgICogZG9tL0Vycm9yRXZlbnQuaDoKKyAgICAgICAgKiBkb20vRm9jdXNFdmVudC5oOgor
ICAgICAgICAqIGRvbS9IYXNoQ2hhbmdlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRF
dmVudC5oOgorICAgICAgICAqIGRvbS9MaXZlTm9kZUxpc3QuaDoKKyAgICAgICAgKiBkb20vTWVz
c2FnZUV2ZW50Lmg6CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Lmg6CisgICAgICAgICogZG9t
L01vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vTW91c2VSZWxhdGVkRXZlbnQuaDoKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9OYW1lZEZsb3dDb2xsZWN0
aW9uLmg6CisgICAgICAgICogZG9tL092ZXJmbG93RXZlbnQuaDoKKyAgICAgICAgKiBkb20vUGFn
ZVRyYW5zaXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9QZW5kaW5nU2NyaXB0Lmg6CisgICAg
ICAgICogZG9tL1BvcFN0YXRlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vUmF3RGF0YURvY3VtZW50
UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpSYXdEYXRhRG9jdW1lbnRQYXJzZXI6OmZpbmlz
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSYXdEYXRhRG9jdW1lbnRQYXJzZXI6OmZs
dXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhd0RhdGFEb2N1bWVudFBhcnNlcjo6
aW5zZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJhd0RhdGFEb2N1bWVudFBhcnNl
cjo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyLmg6CisgICAgICAgICogZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vVGV4dEV2ZW50Lmg6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vVHJhbnNpdGlvbkV2ZW50Lmg6CisgICAgICAgICogZG9tL1VJRXZlbnQuaDoK
KyAgICAgICAgKiBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBkb20vV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Lmg6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuaDoKKyAgICAg
ICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNv
bnRyb2xsZXI6On5EZXZpY2VDb250cm9sbGVyKToKKwogMjAxNC0xMC0yMyAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBkb24ndCB1cGRhdGUg
Y2FwdGlvbiB1c2VyIHN0eWxlIHNoZWV0IGR1cmluZyBwYXJzaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDI3ZGE5MGQwNTk2NDk3NjQzYTFiZjVmNzM0NGZhYzVjY2E3YTA2ZDUuLmVlZjVkZDM0
MmZlMWY2ZDk3Mzg3YzE4MGIxMmEwZDkyMWY2NjNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0yMDE3LDYgKzIwMTcsNyBAQCBfX1pOSzdXZWJDb3JlOERvY3VtZW50NHZpZXdFdgogX19aTks3
V2ViQ29yZThEb2N1bWVudDZkb21haW5FdgogX19aTks3V2ViQ29yZThEb2N1bWVudDZsb2FkZXJF
dgogX19aTks3V2ViQ29yZThEb2N1bWVudDhzZXR0aW5nc0V2CitfX1pOSzdXZWJDb3JlOERvY3Vt
ZW50OXRvcE9yaWdpbkV2CiBfX1pOSzdXZWJDb3JlOEludFBvaW50Y3Y3Q0dQb2ludEV2CiBfX1pO
SzdXZWJDb3JlOFBvc2l0aW9uMTBkb3duc3RyZWFtRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlRQogX19aTks3V2ViQ29yZThQb3NpdGlvbjEzY29udGFpbmVyTm9kZUV2CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaAppbmRleCA0NjE3NjU1MTQ3Nzgw
NTI2Mjg5YjA4ZTExOWY1NWI0MDU4NGE0OTRjLi40OTNlYjRmM2Q0MDdmN2ZmZmIzZGI1MGU5ZGRh
MWEwNGY1OTA0NmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXV0b2NvbXBsZXRl
RXJyb3JFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdXRvY29tcGxldGVFcnJvckV2
ZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgc3RydWN0IEF1dG9jb21wbGV0ZUVycm9yRXZlbnRJbml0
IDogcHVibGljIEV2ZW50SW5pdCB7CiAgICAgU3RyaW5nIHJlYXNvbjsKIH07CiAKLWNsYXNzIEF1
dG9jb21wbGV0ZUVycm9yRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworY2xhc3MgQXV0b2NvbXBsZXRl
RXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8QXV0b2NvbXBsZXRlRXJyb3JFdmVudD4gY3JlYXRlKCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQmVmb3JlTG9hZEV2ZW50LmgKaW5kZXggMmExOWU3YmI5ZGRjODAwMzZjMWRmZjAyMzU2
ZTdjNjIxZGU1YzdkNi4uNzkzNzNkZjU2MDFkZTg1MTcwY2ZhNDY5YTBlZTI1OTQwZDRlMDk4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuaApAQCAtMzUsMTIgKzM1LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBCZWZvcmVMb2FkRXZlbnRJbml0IDogcHVibGljIEV2
ZW50SW5pdCB7CiAgICAgQmVmb3JlTG9hZEV2ZW50SW5pdCgpCiAgICAgewotICAgIH07CisgICAg
fQogCiAgICAgU3RyaW5nIHVybDsKIH07CiAKLWNsYXNzIEJlZm9yZUxvYWRFdmVudCA6IHB1Ymxp
YyBFdmVudCB7CitjbGFzcyBCZWZvcmVMb2FkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJlZm9yZUxvYWRFdmVudD4gY3JlYXRlKCkK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlVGV4dEluc2VydGVk
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oCmlu
ZGV4IDc1NDIwMzU5Y2NlZTI0MzcwNTg2Mjg5Nzc3NzJhMmI3MzM5NTBiMjIuLjFlNGIzNWQwNmUz
ZjhhNWY4ZTgyMDM0MmFiYjkzOWIxMGExYmU0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9C
ZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQmVmb3JlVGV4dEluc2VydGVkRXZlbnQgOiBwdWJsaWMgRXZlbnQg
eworY2xhc3MgQmVmb3JlVGV4dEluc2VydGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewog
cHVibGljOgogICAgIHZpcnR1YWwgfkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KCk7CiAKQEAgLTQw
LDEzICs0MCwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBFdmVudEludGVyZmFj
ZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBpc0Jl
Zm9yZVRleHRJbnNlcnRlZEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CiAgICAg
dm9pZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYgcykgeyBtX3RleHQgPSBzOyB9CiAKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoY29uc3QgU3RyaW5nJik7Cisg
ICAgdmlydHVhbCBib29sIGlzQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBTdHJpbmcgbV90ZXh0OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZEV2ZW50LmgKaW5kZXggMDE3MGI0NDY0Y2M5MDdhNTJiOTliNjViNjE0NGI4MmJk
YzA4N2Y5Ny4uZGI4NGM0MzNmY2ZmMTNjYTVlNDE5NTI2ZDY4ZmI3NWM3YzRjNjI3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgY2xhc3MgRGF0YVRyYW5zZmVyOwogCi0gICAgY2xhc3MgQ2xpcGJvYXJk
RXZlbnQgOiBwdWJsaWMgRXZlbnQgeworICAgIGNsYXNzIENsaXBib2FyZEV2ZW50IGZpbmFsIDog
cHVibGljIEV2ZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkNsaXBib2FyZEV2
ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5oCmluZGV4IGZhYTIyZGQ2
MWQyNmE3ZDE4YTkzODJhMWM2N2UzODI4NjQwOTc1ZWYuLmZkMWRkOTY3NmNhZjk0YzgyYTNlZmFk
N2ViMWJlODhmNWMxMDYyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3Np
dGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaApA
QCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgQ29tcG9zaXRpb25FdmVudEluaXQgOiBVSUV2ZW50SW5p
dCB7CiAgICAgU3RyaW5nIGRhdGE7CiB9OwogCi1jbGFzcyBDb21wb3NpdGlvbkV2ZW50IDogcHVi
bGljIFVJRXZlbnQgeworY2xhc3MgQ29tcG9zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBVSUV2
ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb21wb3NpdGlvbkV2ZW50PiBj
cmVhdGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50LmgKaW5kZXggNzVlMTJkZTY0YjEz
NDQyYmMyYTczODEyNDM3OGRiMjkzZTY4MzY1NS4uYTNhZTI4YmJlZjgzMTI2NjY0ODg5MmZiOGNh
ZjgyYTYwOTI2ZTJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50LmgKQEAgLTM4LDcgKzM4LDcg
QEAgc3RydWN0IEN1c3RvbUV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewogICAgIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIGRldGFpbDsKIH07CiAKLWNsYXNzIEN1c3RvbUV2ZW50IDogcHVi
bGljIEV2ZW50IHsKK2NsYXNzIEN1c3RvbUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5DdXN0b21FdmVudCgpOwogCkBAIC01NCw3ICs1NCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgaW5pdEN1c3RvbUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUmIGRldGFpbCk7CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50
ZXJmYWNlKCkgY29uc3Q7CisgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFj
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IGRldGFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV0YWlsOyB9CiAgICAgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpIHsgcmV0dXJuIG1fc2Vy
aWFsaXplZFNjcmlwdFZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNv
bnRyb2xsZXIuaAppbmRleCBlZDJjNTdmNDRiODIzMWFkNmFlNTMxNmY4NTZiNDY4MGM4YzAzYzVh
Li43ZDcyZDUxNWNjNmQ4MTNkYzFmMzhjNjE5ZTg5ZTJjZGNmZDRiOWRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKQEAgLTM1LDExICszNSwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnQ7CiBjbGFzcyBEZXZp
Y2VNb3Rpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyIDogcHVibGljIERl
dmljZUNvbnRyb2xsZXIgeworY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlciBmaW5hbCA6IHB1
YmxpYyBEZXZpY2VDb250cm9sbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXZpY2VN
b3Rpb25Db250cm9sbGVyKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEZXZpY2VNb3Rpb25Db250
cm9sbGVyKERldmljZU1vdGlvbkNsaWVudCopOwotICAgIH5EZXZpY2VNb3Rpb25Db250cm9sbGVy
KCkgeyB9OworICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSB7IH0KIAogI2lm
IFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgdG8gcmVjb25jaWxl
IHRoZSBpT1MgYW5kIE9wZW5Tb3VyY2UgZGlmZmVyZW5jZXMgd2l0aCB0aGlzIGNsYXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCmluZGV4IGY3MDgwMjI4NjUyYzc2ODliMWVi
NzRiZjQ2ZTAyNDg1ZWViNjE0MmQuLmY3OGEyOWU4NGVjYTAyOGNlMzQ4MDQ5NzgzZTBlYWZjMGUx
ZDUyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCkBAIC0zMiw5ICsz
Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKIAot
Y2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworY2xhc3MgRGV2aWNlTW90
aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgotICAgIH5EZXZpY2VNb3Rp
b25FdmVudCgpOworICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkV2ZW50KCk7CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGV2aWNlTW90aW9uRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IERldmljZU1vdGlvbkV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAppbmRleCAwOWZjMGRkMTc3MDI0
YmVhZDI0Yzc2N2UzMzk4ODNlNGMyZDMzMzYxLi4xMTgzMDYzNDg2OWU5MDZlNTg3NzM3NGJiNzNh
MmZkZTRlOGI5Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlci5oCkBAIC0zNywxMSArMzcsMTEgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOwogCi1j
bGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgRGV2aWNlQ29udHJvbGxl
ciB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgRGV2
aWNlQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKLSAgICB+RGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyKCkgeyB9OworICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcigpIHsgfQogCiAgICAgdm9pZCBkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VP
cmllbnRhdGlvbkRhdGEqKTsKICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25F
dmVudC5oCmluZGV4IGQ2OWRkYmY5NWUzNDU0NTYxYTRjOTlhZWYyNTdhMWZlY2VjZjRlODcuLjJl
N2Q5NDFkMzg4MDc2MGJiMWMzMWMyMWE2MmIyMDkyNjAzYzZlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRh
dGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKLSAgICB+RGV2aWNlT3Jp
ZW50YXRpb25FdmVudCgpOworICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uRXZlbnQoKTsK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBjcmVhdGUoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYzFhYzUxYmI2ZDY0OTUwMGIzNTY3ZmE4ODYyYzUy
NWQxNGY3YmNkNC4uZmU2NTkxY2U2ZTNiMzU4ODYyZWU3N2E5NGY2NWI3ZGRkYjI5MGUyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTMwNyw3ICszMDcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
Q29udGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwogCi0g
ICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2lu
dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIEVsZW1lbnQq
IGdldEVsZW1lbnRCeUFjY2Vzc0tleShjb25zdCBTdHJpbmcmIGtleSk7CiAgICAgdm9pZCBpbnZh
bGlkYXRlQWNjZXNzS2V5TWFwKCk7CkBAIC00ODMsNyArNDgzLDcgQEAgcHVibGljOgogICAgIFN0
cmluZyBkb2N1bWVudFVSSSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRVUkk7IH0KICAgICB2
b2lkIHNldERvY3VtZW50VVJJKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCBVUkwgYmFz
ZVVSSSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgVVJMIGJhc2VVUkkoKSBjb25zdCBv
dmVycmlkZSBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQogICAgIEpTQzo6SW5wdXRD
dXJzb3ImIGlucHV0Q3Vyc29yKCkgY29uc3QgeyByZXR1cm4gKm1faW5wdXRDdXJzb3I7IH0KQEAg
LTYyNCw5ICs2MjQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24o
KTsKIAogICAgIC8vIE92ZXJyaWRlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgbWV0aG9kcyB0byBk
byBhZGRpdGlvbmFsIHdvcmsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVj
dHMoQWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNv
bkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQWN0aXZlRE9N
T2JqZWN0cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2Jq
ZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVj
dDo6UmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lk
IHN0b3BBY3RpdmVET01PYmplY3RzKCkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBSZW5kZXJWaWV3
KiByZW5kZXJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJWaWV3LmdldCgpOyB9CiAKQEAg
LTY3OCw5ICs2NzgsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBVUkwg
Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgVVJM
IGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYgYmFzZVVSTE92ZXJyaWRlKSBj
b25zdDsKIAotICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3Qg
b3ZlcnJpZGUgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZh
bChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBib29s
IGNhbk5hdmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSk7CiAgICAgRnJhbWUqIGZpbmRVbnNhZmVQ
YXJlbnRTY3JvbGxQcm9wYWdhdGlvbkJvdW5kYXJ5KCk7CkBAIC0xMDE1LDExICsxMDE1LDExIEBA
IHB1YmxpYzoKICAgICBib29sIGlzRE5TUHJlZmV0Y2hFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9pc0ROU1ByZWZldGNoRW5hYmxlZDsgfQogICAgIHZvaWQgcGFyc2VETlNQcmVmZXRjaENvbnRy
b2xIZWFkZXIoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soVGFz
aykgb3ZlcnJpZGU7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5
bmNocm9ub3VzbHkuCisgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFRhc2spIG92ZXJyaWRlIGZp
bmFsOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91
c2x5LgogCiAgICAgdm9pZCBzdXNwZW5kU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJh
Y2tzKCk7CiAgICAgdm9pZCByZXN1bWVTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFj
a3MoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyU2V0VGhy
b3R0bGVkKGJvb2wpOworICAgIHZvaWQgc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyU2V0VGhy
b3R0bGVkKGJvb2wpOwogICAgIAogICAgIHZvaWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRm
b3JtRGlzcGxheUlEKTsKIApAQCAtMTA5MSw3ICsxMDkxLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0QW5ub3RhdGVkUmVnaW9ucyhjb25zdCBWZWN0b3I8QW5ub3RhdGVkUmVnaW9uVmFsdWU+Jik7
CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92ZXJy
aWRlIGZpbmFsOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU1ZHRG9jdW1lbnRFeHRlbnNp
b25zKiBzdmdFeHRlbnNpb25zKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU1ZHRG9jdW1lbnRFeHRl
bnNpb25zJiBhY2Nlc3NTVkdFeHRlbnNpb25zKCk7CkBAIC0xMTA1LDggKzExMDUsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBwcm9jZXNzaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcm9j
ZXNzaW5nTG9hZEV2ZW50OyB9CiAgICAgYm9vbCBsb2FkRXZlbnRGaW5pc2hlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZEV2ZW50RmluaXNoZWQ7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRl
eHRUaHJlYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNKU0V4ZWN1dGlv
bkZvcmJpZGRlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1
YWwgYm9vbCBpc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgY29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzOyB9CiAgICAgdm9pZCBz
ZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpIHsgbV9jb250YWluc1ZhbGlkaXR5U3R5bGVS
dWxlcyA9IHRydWU7IH0KQEAgLTExMTcsNyArMTExNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVu
cXVldWVQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7CiAgICAgdm9pZCBl
bnF1ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcm
IG5ld1VSTCk7CiAgICAgdm9pZCBlbnF1ZXVlUG9wc3RhdGVFdmVudChQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gc3RhdGVPYmplY3QpOwotICAgIHZpcnR1YWwgRG9jdW1lbnRFdmVu
dFF1ZXVlJiBldmVudFF1ZXVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ldmVudFF1ZXVl
OyB9CisgICAgdmlydHVhbCBEb2N1bWVudEV2ZW50UXVldWUmIGV2ZW50UXVldWUoKSBjb25zdCBv
dmVycmlkZSBmaW5hbCB7IHJldHVybiBtX2V2ZW50UXVldWU7IH0KIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgYWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciop
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lciopOwpAQCAtMTE5MSw4ICsxMTkxLDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZW5kV2lsbFJldmVhbEVkZ2VFdmVudHNJZk5lZWRlZChjb25zdCBJbnRQb2ludCYg
b2xkUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBuZXdQb3NpdGlvbiwgY29uc3QgSW50UmVjdCYg
dmlzaWJsZVJlY3QsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgRWxlbWVudCogdGFyZ2V0
ID0gbnVsbHB0cik7CiAKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0
KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5l
TnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2Fs
bFN0YWNrPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRh
cmdldCgpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0Nv
bnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6
OlNjcmlwdENhbGxTdGFjaz4pIG92ZXJyaWRlIGZpbmFsOwogCiAgICAgdm9pZCBpbml0RE5TUHJl
ZmV0Y2goKTsKIApAQCAtMTI2Nyw5ICsxMjY3LDkgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRGlz
YWJsZWRGaWVsZHNldEVsZW1lbnQoKSB7IG1fZGlzYWJsZWRGaWVsZHNldEVsZW1lbnRzQ291bnQr
KzsgfQogICAgIHZvaWQgcmVtb3ZlRGlzYWJsZWRGaWVsZHNldEVsZW1lbnQoKSB7IEFTU0VSVCht
X2Rpc2FibGVkRmllbGRzZXRFbGVtZW50c0NvdW50KTsgbV9kaXNhYmxlZEZpZWxkc2V0RWxlbWVu
dHNDb3VudC0tOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZSBm
aW5hbDsKIAotICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IG92
ZXJyaWRlIGZpbmFsOwogCiAjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCiAgICAgUGFzc1Jl
ZlB0cjxGb250TG9hZGVyPiBmb250cygpOwpAQCAtMTI4MCw4ICsxMjgwLDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudChib29sKTsKIAogI2lmIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQotICAgIHZpcnR1YWwgYm9vbCB3cmFwQ3J5cHRvS2V5KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgYm9vbCB1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiB3cmFwcGVkS2V5LCBWZWN0b3I8dWludDhfdD4mIGtleSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIHdyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIFZlY3Rv
cjx1aW50OF90PiYgd3JhcHBlZEtleSkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBib29s
IHVud3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3Rv
cjx1aW50OF90PiYga2V5KSBvdmVycmlkZSBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRI
YXNTdHlsZVdpdGhWaWV3cG9ydFVuaXRzKCkgeyBtX2hhc1N0eWxlV2l0aFZpZXdwb3J0VW5pdHMg
PSB0cnVlOyB9CkBAIC0xMzE4LDI0ICsxMzE4LDI0IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiB2
b2lkICgqQXJndW1lbnRzQ2FsbGJhY2spKGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBT
dHJpbmcmIHZhbHVlU3RyaW5nLCBEb2N1bWVudCosIHZvaWQqIGRhdGEpOwogICAgIHZvaWQgcHJv
Y2Vzc0FyZ3VtZW50cyhjb25zdCBTdHJpbmcmIGZlYXR1cmVzLCB2b2lkKiBkYXRhLCBBcmd1bWVu
dHNDYWxsYmFjayk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudCgpIGNvbnN0
IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGUgZmluYWw7CiAK
LSAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBO
b2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCkgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgeyBy
ZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBv
dmVycmlkZSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgZmluYWwgeyBkZXJlZigpOyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6
OlNjcmlwdENhbGxTdGFjaz4sIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVt
bk51bWJlciwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4sIEpTQzo6RXhl
Y1N0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlk
ZSBmaW5hbDsKIAotICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1UaW1lckludGVydmFsKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBj
b25zdCBvdmVycmlkZSBmaW5hbDsKIAotICAgIHZpcnR1YWwgZG91YmxlIHRpbWVyQWxpZ25tZW50
SW50ZXJ2YWwoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB0aW1lckFsaWdu
bWVudEludGVydmFsKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0ZVRp
dGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mKTsKICAgICB2b2lkIHVwZGF0ZUZvY3VzQXBw
ZWFyYW5jZVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Jik7CkBAIC0xMzgwLDcgKzEzODAsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgaXNET01Db29raWVDYWNoZVZhbGlkKCkgY29uc3QgeyByZXR1
cm4gbV9jb29raWVDYWNoZUV4cGlyeVRpbWVyLmlzQWN0aXZlKCk7IH0KICAgICB2b2lkIGludmFs
aWRhdGVET01Db29raWVDYWNoZSgpOwogICAgIHZvaWQgZG9tQ29va2llQ2FjaGVFeHBpcnlUaW1l
ckZpcmVkKFRpbWVyPERvY3VtZW50PiYpOwotICAgIHZvaWQgZGlkTG9hZFJlc291cmNlU3luY2hy
b25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkTG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIHVuc2lnbmVkIG1fcmVmZXJlbmNpbmdOb2RlQ291
bnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IDY3ZWJmYzNlOTg0
YjY4MDVkN2RiMGVmZmIzNDM1ZGMxYmRlYjg3MzMuLjU0M2I1OWViOGU1YWM0ZGY1YmY3MmE0NTI3
ZmY5ZDU2YzUxZWYyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAt
MzksMTUgKzM5LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlSFRNTChjb25zdCBTdHJpbmcm
LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2Ny
aXB0aW5nQ29udGVudCk7CiAgICAgYm9vbCBwYXJzZVhNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2NyaXB0aW5nQ29u
dGVudCk7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5Db250
YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNUZW1wbGF0ZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnRGcmFnbWVudChEb2N1bWVudCYsIENvbnN0
cnVjdGlvblR5cGUgPSBDcmVhdGVDb250YWluZXIpOwotICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVO
YW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25z
dCBvdmVycmlkZSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVU
eXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNv
bnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5v
ZGUoYm9vbCBkZWVwKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dl
ZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0Vycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKaW5k
ZXggYzhkZmQzMTA4MzkzMDA5MGEyMjIzYmUyYjM5OGM0ODg5ZDNiZjFjOS4uYjUxZDdhNjMzMjUz
YTU4NGViN2I5NGI5YWZmOWY0NzRmMWExMzc0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0Vycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCkBA
IC00NSw3ICs0NSw3IEBAIHN0cnVjdCBFcnJvckV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQg
ewogICAgIHVuc2lnbmVkIGNvbG5vOwogfTsKIAotY2xhc3MgRXJyb3JFdmVudCA6IHB1YmxpYyBF
dmVudCB7CitjbGFzcyBFcnJvckV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50PiBjcmVhdGUoKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRm9jdXNFdmVudC5oCmluZGV4IGI5NjY4NjZlMGU3NDU1Yjg4MGE2OWEzYTg3MzUxZDYwYWNj
NDg1MWQuLmY4MDg4YThlZDI0Mjg3YTYyZmQyY2RlNjQ2MDI5MzA1M2RhY2M3YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0ZvY3VzRXZlbnQuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgRm9jdXNFdmVudEluaXQg
OiBwdWJsaWMgVUlFdmVudEluaXQgewogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRh
cmdldDsKIH07CiAKLWNsYXNzIEZvY3VzRXZlbnQgOiBwdWJsaWMgVUlFdmVudCB7CitjbGFzcyBG
b2N1c0V2ZW50IGZpbmFsIDogcHVibGljIFVJRXZlbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZvY3VzRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewpAQCAtNTYsMTcgKzU2LDE4IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb2N1c0V2ZW50KHR5cGUsIGlu
aXRpYWxpemVyKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBFdmVudFRhcmdldCogcmVsYXRlZFRh
cmdldCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1fcmVsYXRlZFRhcmdldC5nZXQo
KTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3JlbGF0ZWRUYXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFJlbGF0
ZWRUYXJnZXQoUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkgeyBtX3JlbGF0
ZWRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0OyB9CiAKICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNl
IGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGlzRm9j
dXNFdmVudCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEZvY3VzRXZlbnQoKTsK
ICAgICBGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQsIFBhc3NSZWZQ
dHI8RXZlbnRUYXJnZXQ+KTsKICAgICBGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgRm9jdXNFdmVudEluaXQmKTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzRXZl
bnQoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9yZWxhdGVk
VGFyZ2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hDaGFuZ2VF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hDaGFuZ2VFdmVudC5oCmluZGV4IDg1Y2Iw
YjUzYTMwNjM5OTQ2ZDEwOTUwZjA4MmJmOGRiMTA1YzUxZTMuLjdlMmFiNTMyN2MxNDk0ZWViNzZh
MmMzNzNmYTZiNTBmOTUyMmE1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9IYXNo
Q2hhbmdlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmgK
QEAgLTM1LDcgKzM1LDcgQEAgc3RydWN0IEhhc2hDaGFuZ2VFdmVudEluaXQgOiBwdWJsaWMgRXZl
bnRJbml0IHsKICAgICBTdHJpbmcgbmV3VVJMOwogfTsKIAotY2xhc3MgSGFzaENoYW5nZUV2ZW50
IDogcHVibGljIEV2ZW50IHsKK2NsYXNzIEhhc2hDaGFuZ2VFdmVudCBmaW5hbCA6IHB1YmxpYyBF
dmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SGFzaENoYW5nZUV2ZW50PiBj
cmVhdGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5oCmluZGV4IGFiOTQ1Nzcx
ZDc1MDFmYWU2ZTEzMDllMGUzMzYwODNlNzFlNjU2ZDguLjM3MTJlODNiZjRhMTcwM2FlMjg0MWU5
ZTIyOTRkOTljMzU1ZGExMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2Fy
ZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaApAQCAtNDUs
NyArNDUsNyBAQCBzdHJ1Y3QgS2V5Ym9hcmRFdmVudEluaXQgOiBwdWJsaWMgVUlFdmVudEluaXQg
ewogICAgIGJvb2wgbWV0YUtleTsKIH07CiAKLWNsYXNzIEtleWJvYXJkRXZlbnQgOiBwdWJsaWMg
VUlFdmVudFdpdGhLZXlTdGF0ZSB7CitjbGFzcyBLZXlib2FyZEV2ZW50IGZpbmFsIDogcHVibGlj
IFVJRXZlbnRXaXRoS2V5U3RhdGUgewogcHVibGljOgogICAgIGVudW0gS2V5TG9jYXRpb25Db2Rl
IHsKICAgICAgICAgRE9NX0tFWV9MT0NBVElPTl9TVEFOREFSRCAgID0gMHgwMCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9MaXZlTm9kZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9MaXZlTm9kZUxpc3QuaAppbmRleCBiYzUyOTg3YTVmNmZhYzZkZThlMjhkNWIzNzM3NmQ0NDZh
MmE2NTI1Li4xOTZlNTBiYjgyYmViY2NmNzI2NGI0NjNhMmVlZTYzZWE2ZDEwYWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0xpdmVOb2RlTGlzdC5oCkBAIC05Miw4ICs5Miw4IEBAIHB1YmxpYzoKICAgICBib29s
IGNvbGxlY3Rpb25DYW5UcmF2ZXJzZUJhY2t3YXJkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIHZvaWQgd2lsbFZhbGlkYXRlSW5kZXhDYWNoZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGVDYWNoZShEb2N1bWVudCYpIGNvbnN0OwotICAgIHZpcnR1YWwgc2l6ZV90
IG1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZUNhY2hlKERvY3VtZW50JikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBzaXpl
X3QgbWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAg
Q2FjaGVkTGl2ZU5vZGVMaXN0KENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBOb2RlTGlzdEludmFs
aWRhdGlvblR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCmluZGV4IGM3NGFlMGRkNmM5
ZTYwMDhjYTZiZGEzMjMyNWU2NGY0NTYyMjEzOTQuLmNiYTRjMWYyYjEzMzA5MDk5MjNmNzRjYzEy
ZDA1MjUwNzhiMGM5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKQEAgLTUxLDcgKzUx
LDcgQEAgc3RydWN0IE1lc3NhZ2VFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKICAgICBN
ZXNzYWdlUG9ydEFycmF5IHBvcnRzOwogfTsKIAotY2xhc3MgTWVzc2FnZUV2ZW50IDogcHVibGlj
IEV2ZW50IHsKK2NsYXNzIE1lc3NhZ2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoKQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKaW5kZXggMzVkNzQzOWY0NTZkNWI4NjlhOGFmN2YwOTI3
OWFhYzcxODk2YTZhYi4uZTFiOTZlNmJjNzEzMTQ3NTFmYjMyZDVlYjQyMmZmYjVkZjUwOWEzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKQEAgLTc0LDcgKzc0LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJn
ZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNZXNzYWdlUG9ydEV2ZW50VGFy
Z2V0SW50ZXJmYWNlVHlwZTsgfQogICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzTWVzc2FnZVBv
cnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgdm9pZCBkaXNw
YXRjaE1lc3NhZ2VzKCk7CiAKQEAgLTEwNiw2ICsxMDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsg
ZGVyZWYoKTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNZXNzYWdlUG9ydCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2Fn
ZVBvcnRDaGFubmVsPiBtX2VudGFuZ2xlZENoYW5uZWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5o
CmluZGV4IGE1OGIzNWU1NDE4ZmY4MjcxNWFhZWQzNDk3Y2FlMzVhMmZlMGIwMmMuLjFmYThhM2Fl
NjlhNmI5ZGE0YmZmZDNmMWRiNDk3NmMyYmYyNmU3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
aApAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4g
bV9kYXRhVHJhbnNmZXI7CiB9OwogCi1jbGFzcyBTaW11bGF0ZWRNb3VzZUV2ZW50IDogcHVibGlj
IE1vdXNlRXZlbnQgeworY2xhc3MgU2ltdWxhdGVkTW91c2VFdmVudCBmaW5hbCA6IHB1YmxpYyBN
b3VzZUV2ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaW11bGF0ZWRNb3Vz
ZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8
QWJzdHJhY3RWaWV3PiwgUGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50
KiB0YXJnZXQpOwogICAgIHZpcnR1YWwgflNpbXVsYXRlZE1vdXNlRXZlbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggNjZmYzEwNzM3OTk0ZWRkZWJmMWVmNTgz
MTQ4NzdjNjgyOTgwZDJkMC4uNzRhMWU4M2M0NjBjYzFjMTI0OWU3OWRmMDNmNDhiYTZiN2NmZTY2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKQEAgLTQ0LDEzICs0NCwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtb3ZlbWVudFkoKSBjb25zdCB7
IHJldHVybiBtX21vdmVtZW50RGVsdGEueSgpOyB9CiAjZW5kaWYKICAgICAgICAgY29uc3QgTGF5
b3V0UG9pbnQmIGNsaWVudExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRMb2NhdGlv
bjsgfQotICAgICAgICBpbnQgbGF5ZXJYKCkgb3ZlcnJpZGU7Ci0gICAgICAgIGludCBsYXllclko
KSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBpbnQgbGF5ZXJYKCkgb3ZlcnJpZGU7CisgICAg
ICAgIHZpcnR1YWwgaW50IGxheWVyWSgpIG92ZXJyaWRlOwogICAgICAgICBXRUJDT1JFX0VYUE9S
VCBpbnQgb2Zmc2V0WCgpOwogICAgICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgb2Zmc2V0WSgpOwog
ICAgICAgICBib29sIGlzU2ltdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NpbXVsYXRlZDsg
fQotICAgICAgICB2aXJ0dWFsIGludCBwYWdlWCgpIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2
aXJ0dWFsIGludCBwYWdlWSgpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIGludCBw
YWdlWCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgICAgICB2aXJ0dWFsIGludCBwYWdlWSgp
IGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgICAgICB2aXJ0dWFsIGNvbnN0IExheW91dFBvaW50
JiBwYWdlTG9jYXRpb24oKSBjb25zdDsKICAgICAgICAgaW50IHgoKSBjb25zdDsKICAgICAgICAg
aW50IHkoKSBjb25zdDsKQEAgLTcxLDcgKzcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIHZvaWQgaW5pdENvb3JkaW5hdGVzKCk7CiAgICAgICAgIHZvaWQgaW5pdENvb3JkaW5h
dGVzKGNvbnN0IExheW91dFBvaW50JiBjbGllbnRMb2NhdGlvbik7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCByZWNlaXZlZFRhcmdldCgpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVj
ZWl2ZWRUYXJnZXQoKSBvdmVycmlkZSBmaW5hbDsKIAogICAgICAgICB2b2lkIGNvbXB1dGVQYWdl
TG9jYXRpb24oKTsKICAgICAgICAgdm9pZCBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbkV2ZW50LmgKaW5kZXggY2JkMzYwMDkwZWE2YzFhM2JlZTIxMzNkNzgw
YjBlMjgyZTI2MTBkNS4uNGQwNTMxNGNkNDhjZjg5MGViMjkzZjdjZGNiZGQ4OWM2ZDIzOWFjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE11dGF0aW9uRXZlbnQgOiBwdWJsaWMgRXZlbnQg
eworICAgIGNsYXNzIE11dGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB+TXV0YXRpb25FdmVudCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uaAppbmRleCAyYzBkOWM4MjFlNDNhMjk4ZTNiY2VjNzRh
MjBhNjg3Njg0MDA5Njg0Li5hYjYxOTc3Y2Y4ZmI3MGIzZjcyYzZjYmM0NTA4ZGY0NGY3MTg0ZmVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRGbG93Q29sbGVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmgKQEAgLTQzLDcgKzQz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBET01OYW1l
ZEZsb3dDb2xsZWN0aW9uOwogCi1jbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8TmFtZWRGbG93Q29sbGVjdGlvbj4sIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlciB7CitjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8TmFtZWRGbG93Q29sbGVjdGlvbj4sIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TmFtZWRGbG93Q29sbGVjdGlv
bj4gY3JlYXRlKERvY3VtZW50KiBkb2MpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYW1lZEZsb3dD
b2xsZWN0aW9uKGRvYykpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PdmVy
Zmxvd0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5oCmluZGV4IDM1
YzZkMWFmMGE2OTVhMjE0ODQwYjZiODdkZTEzM2Q0MjFlM2NhZjUuLmQ0Y2QzMzc3YzAxMTg0ODg4
YzI2YjIzNzg0M2NkZmI4NWQyYzg2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9P
dmVyZmxvd0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL092ZXJmbG93RXZlbnQuaApA
QCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3QgT3ZlcmZsb3dFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJ
bml0IHsKICAgICBib29sIHZlcnRpY2FsT3ZlcmZsb3c7CiB9OwogCi1jbGFzcyBPdmVyZmxvd0V2
ZW50IDogcHVibGljIEV2ZW50IHsKK2NsYXNzIE92ZXJmbG93RXZlbnQgZmluYWwgOiBwdWJsaWMg
RXZlbnQgewogcHVibGljOgogICAgIGVudW0gb3JpZW50VHlwZSB7CiAgICAgICAgIEhPUklaT05U
QUwgPSAwLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BhZ2VUcmFuc2l0aW9uRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmgKaW5kZXggMDUx
YTEyYzI2MDZhNTBkZmVlZmViZDdkYTNiNmRkMjQ0YjY4NGE1ZC4uODg4M2RjNDhhZjI5N2ZhY2Zh
YzU3Yzk3NDgzNzJhYjJlYWY1NmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bh
Z2VUcmFuc2l0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGFnZVRyYW5zaXRp
b25FdmVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHN0cnVjdCBQYWdlVHJhbnNpdGlvbkV2ZW50SW5p
dCA6IHB1YmxpYyBFdmVudEluaXQgewogICAgIGJvb2wgcGVyc2lzdGVkOwogfTsKIAotY2xhc3Mg
UGFnZVRyYW5zaXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBQYWdlVHJhbnNpdGlv
bkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxQYWdlVHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVu
ZGluZ1NjcmlwdC5oCmluZGV4IGY3ODMxY2U2ZmQzOTQ2YzI3NzQ0YWFhYjhlYmRlZDAyZTc3YWEy
ZDcuLjhlZGFkOTAzYzdiMzg5MjY2ZDM3MDE1Y2FjOWUwMzI1NDNhNTU4NTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1BlbmRpbmdTY3JpcHQuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBFbGVtZW50OwogLy8g
QSBDYWNoZWRSZXNvdXJjZUhhbmRsZSBhbG9uZSBkb2VzIG5vdCBwcmV2ZW50IHRoZSB1bmRlcmx5
aW5nIENhY2hlZFJlc291cmNlCiAvLyBmcm9tIHB1cmdpbmcgaXRzIGRhdGEgYnVmZmVyLiBUaGlz
IGNsYXNzIGhvbGRzIGEgZHVtbXkgY2xpZW50IG9wZW4gZm9yIGl0cwogLy8gbGlmZXRpbWUgaW4g
b3JkZXIgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGRhdGEgYnVmZmVyIHdpbGwgbm90IGJlIHB1cmdl
ZC4KLWNsYXNzIFBlbmRpbmdTY3JpcHQgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewor
Y2xhc3MgUGVuZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7
CiBwdWJsaWM6CiAgICAgUGVuZGluZ1NjcmlwdCgpCiAgICAgICAgIDogbV93YXRjaGluZ0Zvckxv
YWQoZmFsc2UpCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgc2V0Q2FjaGVkU2Ny
aXB0KG90aGVyLmNhY2hlZFNjcmlwdCgpKTsKICAgICB9CiAKLSAgICB+UGVuZGluZ1NjcmlwdCgp
OworICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQoKTsKIAogICAgIFBlbmRpbmdTY3JpcHQmIG9w
ZXJhdG9yPShjb25zdCBQZW5kaW5nU2NyaXB0JiBvdGhlcikKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bv
cFN0YXRlRXZlbnQuaAppbmRleCBkOWRiNjhkMTQwYTBjMDU5ODkzOWYyMjY1NDgyNTg2YjZhMWJm
ZGFkLi5iNjc2MjdjNzVkZWU3NDExNTI4MjRiMTE4ZDQ4YzY3OWYzYTIyMDM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3BTdGF0ZUV2ZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IFBvcFN0YXRlRXZl
bnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiBjbGFzcyBIaXN0b3J5OwogY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOwogCi1jbGFzcyBQb3BTdGF0ZUV2ZW50IDogcHVibGljIEV2ZW50IHsK
K2NsYXNzIFBvcFN0YXRlRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAg
IHZpcnR1YWwgflBvcFN0YXRlRXZlbnQoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQb3BTdGF0
ZUV2ZW50PiBjcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYXdEYXRh
RG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJz
ZXIuaAppbmRleCBkNjJkMTgwNDJiNmE0MDAwODJkMWEzNWI4MTUxNTMxYzlkNGU4Mjc4Li44MzRk
NDI2NjZiYzUxOTc0ODM2ZWM3ZTk3ODJkYWRmZTk3OTViY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oCkBAIC0zNywyNiArMzcsMjYgQEAgcHJvdGVjdGVk
OgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkKKyAgICB2aXJ0dWFs
IHZvaWQgZmluaXNoKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICghaXNTdG9wcGVkKCkp
CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5maW5pc2hlZFBhcnNpbmcoKTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoKERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCisg
ICAgdmlydHVhbCB2b2lkIGZsdXNoKERvY3VtZW50V3JpdGVyJiB3cml0ZXIpIG92ZXJyaWRlCiAg
ICAgewogICAgICAgICAvLyBNYWtlIHN1cmUgYXBwZW5kQnl0ZXMgaXMgY2FsbGVkIGF0IGxlYXN0
IG9uY2UuCiAgICAgICAgIGFwcGVuZEJ5dGVzKHdyaXRlciwgMCwgMCk7CiAgICAgfQogCi0gICAg
dmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKQorICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIC8vIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUzOTc+OiBK
UyBjb2RlIGNhbiBhbHdheXMgY2FsbCBkb2N1bWVudC53cml0ZSwgd2UgbmVlZCB0byBoYW5kbGUg
aXQuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIHZpcnR1YWwg
dm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikKKyAgICB2aXJ0dWFsIHZvaWQgYXBw
ZW5kKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pIG92ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyLmgKaW5kZXggOGY4ZGM5OGM4NDM4ODg2NTk1NDkxN2EwZTk1NDQ0NDlk
NmQ4MDhkZS4uNDgyNjBhOTY4OTE5Y2U2NmU3NmE3ZDEwMjVkZDNmMjI2Y2RjNDMzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaApAQCAtNTUsNyAr
NTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgU2NyaXB0YWJsZURvY3VtZW50UGFyc2Vy
KERvY3VtZW50JiwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2NyaXB0aW5nQ29udGVudCk7
CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIGFzU2Ny
aXB0YWJsZURvY3VtZW50UGFyc2VyKCkgb3ZlcnJpZGUgeyByZXR1cm4gdGhpczsgfQorICAgIHZp
cnR1YWwgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBhc1NjcmlwdGFibGVEb2N1bWVudFBhcnNl
cigpIG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIC8vIGh0dHA6Ly93d3cu
d2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NjcmlwdC1jcmVhdGVkLXBh
cnNlcgogICAgIGJvb2wgbV93YXNDcmVhdGVkQnlTY3JpcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaAppbmRleCA3OTlmOTk0ZGQ2OWEy
OGU4MWExYWE2MmZjZjgxNThiODRlZWZlOGIzLi45OWYyMjc4MDY4NjBjZTEwMzNiNDY0M2IzMzgw
YTMwNDhmNmNlNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAgICAgaW50IGxpbmVOdW1i
ZXI7CiB9OwogCi1jbGFzcyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IDogcHVibGljIEV2
ZW50IHsKK2NsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMg
RXZlbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RleHRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5oCmluZGV4IDg4
ZDA2MWY0MTVkMzdhZWFmZjJlM2Q0NGI0ZjYyNTdkNGQyN2M5ZjkuLmFlZjU3M2E3YzMxZDZhNDAx
ZjgwNTBkNDcxZGM1ODY2MzhhZjVmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
ZXh0RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgKQEAgLTM3LDcg
KzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgZW51bSBjbGFzcyBNYWlsQmxvY2tx
dW90ZUhhbmRsaW5nOwogCi0gICAgY2xhc3MgVGV4dEV2ZW50IDogcHVibGljIFVJRXZlbnQgewor
ICAgIGNsYXNzIFRleHRFdmVudCBmaW5hbCA6IHB1YmxpYyBVSUV2ZW50IHsKICAgICBwdWJsaWM6
CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dEV2ZW50PiBjcmVhdGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVG91Y2hFdmVudC5oCmluZGV4IDNhNjg4YjZkZTEyZjVlMGFmYmUxZDMyMDFlNmVmMzAzMDM1
MDRjZDkuLmFhMDY3OTUzOWQyYmQzMzQxM2FlMWQ1NDdkNGViMjlmM2U1ODcwZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RvdWNoRXZlbnQuaApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFRvdWNoRXZlbnQgOiBwdWJsaWMgTW91c2VSZWxhdGVkRXZlbnQgeworY2xhc3Mg
VG91Y2hFdmVudCBmaW5hbCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+VG91Y2hFdmVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJhbnNpdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50
LmgKaW5kZXggZGRlNWVhOWY4ZTAxMTczZmY5YzgzMDBjMGVhODk5ZDE1ZGE1YzBiYS4uM2VhZGIy
Mjc4NjZiYTRiYTBmOTgwNTg5YTMwMjAxMTUzMmY3MjMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFu
c2l0aW9uRXZlbnQuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgVHJhbnNpdGlvbkV2ZW50SW5p
dCA6IHB1YmxpYyBFdmVudEluaXQgewogICAgIFN0cmluZyBwc2V1ZG9FbGVtZW50OwogfTsKIAot
Y2xhc3MgVHJhbnNpdGlvbkV2ZW50IDogcHVibGljIEV2ZW50IHsKK2NsYXNzIFRyYW5zaXRpb25F
dmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCmluZGV4
IGFiYTg3NTkyNzBmYzFlY2U5MWFkYzUzM2IxNGYwOGJlNDQwNzI0NjguLmY5ZmUxNDQ5NDlkM2Vj
M2YzZmMyNzVjNzM1YzdkMTkyM2RkYjhiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9VSUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjEsNyAr
NjEsNiBAQCBwdWJsaWM6CiAgICAgaW50IGRldGFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV0YWls
OyB9CiAKICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGlzVUlFdmVudCgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCBpbnQga2V5Q29kZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNoYXJD
b2RlKCkgY29uc3Q7CkBAIC04MSw2ICs4MCw4IEBAIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFVJRXZlbnRJbml0Jik7CiAKIHByaXZhdGU6CisgICAg
dmlydHVhbCBib29sIGlzVUlFdmVudCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworCiAgICAgUmVm
UHRyPEFic3RyYWN0Vmlldz4gbV92aWV3OwogICAgIGludCBtX2RldGFpbDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oCmluZGV4IGE1ODQ2Nzk0OTQ0NGFjMWVk
MGEzODk0MjEwNDk1NWZjOTMxZjE5ZTcuLjJhMzE3ZjRmYmM4ZDE1ZTI0MGI0ZWZjNGY0MjI0ZThl
YWNhM2VlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25F
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oCkBA
IC0zNyw3ICszNyw3IEBAIHN0cnVjdCBXZWJLaXRBbmltYXRpb25FdmVudEluaXQgOiBwdWJsaWMg
RXZlbnRJbml0IHsKICAgICBkb3VibGUgZWxhcHNlZFRpbWU7CiB9OwogCi1jbGFzcyBXZWJLaXRB
bmltYXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBXZWJLaXRBbmltYXRpb25FdmVu
dCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViS2l0QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdFRyYW5zaXRpb25FdmVudC5oCmluZGV4IGQwMWRhNGQyNjFlMWI2Y2YzZjM1MjI0ZmVm
YWY4MmY3MjFlYjhlNDEuLmMxZGYzNzJlMmJkOWMwYzBmMmU2MmM4OTNiZjBjMzk4N2MzZjYwNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgKQEAgLTM4LDcg
KzM4LDcgQEAgc3RydWN0IFdlYktpdFRyYW5zaXRpb25FdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJ
bml0IHsKICAgICBTdHJpbmcgcHNldWRvRWxlbWVudDsKIH07CiAKLWNsYXNzIFdlYktpdFRyYW5z
aXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBXZWJLaXRUcmFuc2l0aW9uRXZlbnQg
ZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YktpdFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQu
aAppbmRleCA2NzA1ZDRhODhiMjdiZjdiOGI0MzhkYzAwNGUyNmQ0MWQyMWY0NDMwLi45NGNjZjQz
ZWQ0NmZmMGFkYjk1MTE1YTE2ZGJlM2VjNjk3NTFmNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50
LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0IFdoZWVsRXZlbnRJbml0IDogcHVibGljIE1vdXNl
RXZlbnRJbml0IHsKICAgICBpbnQgd2hlZWxEZWx0YVk7IC8vIERlcHJlY2F0ZWQuCiB9OwogCi1j
bGFzcyBXaGVlbEV2ZW50IDogcHVibGljIE1vdXNlRXZlbnQgeworY2xhc3MgV2hlZWxFdmVudCBm
aW5hbCA6IHB1YmxpYyBNb3VzZUV2ZW50IHsKIHB1YmxpYzoKICAgICBlbnVtIHsgVGlja011bHRp
cGxpZXIgPSAxMjAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaAppbmRl
eCA0MGYwM2I0NjE2ODU3MDMyMTVhZGQxNzRmNWM4OTUwNjE1NzU3ZWE3Li4yYWJmYjc5OGYzYzE5
MWMwM2I1YzYwM2JjYjUzZjlmNjc0Y2M5N2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RldmljZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNv
bnRyb2xsZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBEZXZpY2VDb250cm9sbGVyIDogcHVi
bGljIFN1cHBsZW1lbnQ8UGFnZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIGV4cGxpY2l0IERldmljZUNvbnRyb2xsZXIoRGV2aWNlQ2xpZW50Kik7Ci0gICAg
fkRldmljZUNvbnRyb2xsZXIoKSB7IH0KKyAgICB2aXJ0dWFsIH5EZXZpY2VDb250cm9sbGVyKCkg
eyB9CiAKICAgICB2b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CiAgICAg
dm9pZCByZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0
RXhwb3J0cy5kZWYuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9y
dEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgppbmRleCA1YWEyNjQ2ZTY1MjNjNGY3OWU4
YzFhYzhhZWYxMmVkMzZhNzU1YTExLi4xODAwZjI4MzZiOTQwN2UzOTYyZTAwNWY3OTJjOWQ2NWJi
NGU1OGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4
cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgpA
QCAtMTM2LDcgKzEzNiw2IEBAIEVYUE9SVFMKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lu
c3RydW1lbnRhdGlvbkZvclBhZ2VAV2ViQ29yZUBAWUFQQVZJbnN0cnVtZW50aW5nQWdlbnRzQDFA
UEFWUGFnZUAxQEBaLCA/aW5zdHJ1bWVudGF0aW9uRm9yUGFnZUBXZWJDb3JlQEBZQVBFQVZJbnN0
cnVtZW50aW5nQWdlbnRzQDFAUEVBVlBhZ2VAMUBAWikKICAgICAgICAgP2lzTWFpblRocmVhZEBX
VEZAQFlBX05YWgogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/bG9ja0BNdXRleEBXVEZAQFFB
RVhYWiwgP2xvY2tATXV0ZXhAV1RGQEBRRUFBWFhaKQotICAgICAgICBzeW1ib2xXaXRoUG9pbnRl
cig/c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyU2V0VGhyb3R0bGVkQERvY3VtZW50QFdlYkNv
cmVAQFVBRVhfTkBaLCA/c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyU2V0VGhyb3R0bGVkQERv
Y3VtZW50QFdlYkNvcmVAQFVFQUFYX05AWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Np
Z25hbEBUaHJlYWRDb25kaXRpb25AV1RGQEBRQUVYWFosID9zaWduYWxAVGhyZWFkQ29uZGl0aW9u
QFdURkBAUUVBQVhYWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RpbWVkV2FpdEBUaHJl
YWRDb25kaXRpb25AV1RGQEBRQUVfTkFBVk11dGV4QDJATkBaLCA/dGltZWRXYWl0QFRocmVhZENv
bmRpdGlvbkBXVEZAQFFFQUFfTkFFQVZNdXRleEAyQE5AWikKICAgICAgICAgc3ltYm9sV2l0aFBv
aW50ZXIoP3Rsc0tleUNvdW50QFdURkBAWUFBQUpYWiwgP3Rsc0tleUNvdW50QFdURkBAWUFBRUFK
WFopCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>