<?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>89101</bug_id>
          
          <creation_ts>2012-06-14 07:27:28 -0700</creation_ts>
          <short_desc>Web Inspector: refactor settings screen to move user agent and experiments out of general tab.</short_desc>
          <delta_ts>2012-06-14 09:49:28 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>649158</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-14 07:27:28 -0700</bug_when>
    <thetext>See screenshot attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649159</commentid>
    <comment_count>1</comment_count>
      <attachid>147582</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-14 07:27:55 -0700</bug_when>
    <thetext>Created attachment 147582
[IMAGE] with patch applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649162</commentid>
    <comment_count>2</comment_count>
      <attachid>147583</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-14 07:30:45 -0700</bug_when>
    <thetext>Created attachment 147583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649163</commentid>
    <comment_count>3</comment_count>
      <attachid>147584</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-14 07:31:21 -0700</bug_when>
    <thetext>Created attachment 147584
[SettingsScreen.js]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649183</commentid>
    <comment_count>4</comment_count>
      <attachid>147583</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-14 08:06:44 -0700</bug_when>
    <thetext>Comment on attachment 147583
Patch

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

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:46
&gt; +    this._tabbedPane.headerContentsElement.insertBefore(this._createCloseButton(), this._tabbedPane.headerContentsElement.firstChild);

After this change it is quite possible that this._tabbedPane.headerContentsElement.offsetWidth is not big enough for all tabs.
Consider setting shrinkableTabs on tabbedPane and making sure all necessary resize/calculations are done properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649184</commentid>
    <comment_count>5</comment_count>
      <attachid>147583</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-14 08:07:28 -0700</bug_when>
    <thetext>Comment on attachment 147583
Patch

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

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:306
&gt; +    _updateScriptDisabledCheckbox: function()

Please remove the duplicate of this method below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649246</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-14 09:49:28 -0700</bug_when>
    <thetext>Committed r120331: &lt;http://trac.webkit.org/changeset/120331&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>147582</attachid>
            <date>2012-06-14 07:27:55 -0700</date>
            <delta_ts>2012-06-14 07:27:55 -0700</delta_ts>
            <desc>[IMAGE] with patch applied</desc>
            <filename>Screenshot-settings.png</filename>
            <type>image/png</type>
            <size>67917</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAABGMAAAFgCAIAAACQYyNaAAAAA3NCSVQICAjb4U/gAAAAGXRFWHRT
b2Z0d2FyZQBnbm9tZS1zY3JlZW5zaG907wO/PgAAIABJREFUeJzs3Xd4HMXdOPDvzLbrRe1UbRVb
ki13uWJcMGCaDYRAaAk4kBCICS8kQF6/8IbyoyQEEkLi0F5Cix0ChFACxhTb4IKL3GVbkiVLVu93
uru9uy0z8/vjbEmWZVs2BsnJfB4eHvlub3ZmZ29vvjuzM+id5c8drK6urm2YcvYFwHEcx3Ecx3Ec
xwGI3X/NP2e6KIoY40HMzbePUmqapqIog50RjuM4juM4juOGkJ5ISVUjFotFksTjbP3vxzDMWCzG
IyWO4ziO4ziO43rriYsi0aggCoLwn9WnZJhGJBpNAO9gZ4TjOI7jOI7juCGkJ1KKRqNWi4WI0iDm
5ttnGmY0Gh3sXHAcx3Ecx3EcN7T0REqxaEx3GJL8nxUp6YYRi8YGOxfckNbV1bWvbD9lFGPMGAMA
BIgBwwgLArbZ7dnDh1sU6T/kGb/927dvevNvWig8eu68qZdfLogiABBC1i1bNvWK71od9sHO4EnT
dX3NF+sO1NRmZaZfdMF5/071yBgjhAiCgBACAEppW3t76Z6ynbtKYzEdANxux9TJk0bk5dhsNsYg
fnoTSqwWiyAIg5x7juM4jhtsvSIlTTMMg1E6iLn59hmGEdO0Y71LKd21e080pjNKCSWE0G6EUMoo
Y4zGX2SUUkYIYYxZFOmyhRfHmyb/CcLh8J6Kyk8+WdPaEcaioMhyYrJ7TFH+6LycYRnp/wbtrbLy
yryCsXa7PV71pmkYhmmapmEYmqa1trYGQhX5I3ISPA78717nwa6ustWf4OYmixatXftZVlFR5qhR
AFBbdaDmy1WFs+eciZFSQ2NTTW2D25PY3NKmRiJOh2Owc3TaEEK6uoKGaTJKGYOYpm3dtqO6phYL
ki8twzTNjvbWdRs2NTW35uQMp4QQQihlCMGowgKbzTrY2ec4juO4QdYrUorFTMM0TXL0RtUteyq1
NRHSCXDMliACQBgBAkaZFXvz5Lm5qUXfSJZPK9MwY7Fj9ikhhBoamydOno4QwodvyiKEAFD3kYhH
RwhhYpqUUkEUVq744NvJ/FBQW1v/j3+tbGjqSPQmTJs5zpPgAZM0Njbv2Ve94auSSy86d8r4sWf0
TXrGmGHoETUCDCijAEApNQyDEBL/vyzLXV1datSQFdraVDsiL3uws3zaMMbq6ptq6xrqGpo0w9QN
Q//8/blCZNxlVwuCUL1m5Sf3Lp79yNOKy73yV3cXRjo3/eONS3/xy8HO9cmpb2j825vvTpw0+cIL
L/z7G8urqmqsNntdfWMwpBLTtNksbpdrWFZ6VmbamXjvAyFUWXXAl55ttTsj9fXL33/Pm5x6zfdv
Ss3IstntlNFQIFC1v+Kvr79a29B6+WWXEULsDsf7770zcmTeYOe9r2AovObLjZphntrHEUICRufO
meFyOU9vxjiO47h/Y70jJc0wDXpUn1JZQwmbtGmcrQAjpSc+AAYAhwMnhhACYJ3tXZqmeRI8Njdu
C3+xb3O0IG3SN1+Er8UwjVjsmH1KCCFK6ahRo03T1DRN13WXy6XruqZp3aNZ7HZ7LBaLxWIOh0OW
ZVEUV67415nYqDpZpmkuf+tfn3yxedbsOd+bfUnBqFxJkfWoSQlhjJiEHKg7uOzNd99659O7fnpD
RlrKYOf3FCGEEEJYwAgjCUuKoui6jhBSFEXTtHA4bLfbW1tbk5OTKaWS1bV3X/noUQWDneuvixBy
oLq+qqY+ITE5HNG9Sb7EpMR9Tz0yrmJD3rQZeigkpmak5hed1Vz75W3Xx5iYQ/w5BYUbtqwLtN3s
SU4a7OwPVFdX15ov1yMsNjQ0VFRU5OaNLN23f+q0qcVTpjscDlEUo9Go3x+oqTm4t7w6Nzsjf0T2
YGf55GCMKaUFhaMsFsuLH/5r1LhJ37v+hghD/rDW0hnFomC1ekZPnv6/+YUv/vmPtXW1F110MQC4
XK4heAULh1WLzTFn2jSEUHyUIGPxn56eP3qLvxj/P0LINM3Nmzd3hcI8UuI4juMGridS0jRN1w1C
j+hTIoRUxFaPt2TVB3dpLMKAIUAIgAE79LvEgAFlwPyNuj0wNsGWtWn/Gk3sSLClHaz4m1vISE4a
0s0mXTe0Y4++A4B4f0hnZ6eqqvG5H8LhsKqqhBAAYIylpKQEg8FQKJSUlGSz2RITE+Nv/XszCXns
ty/uONBy3XXflwW76HA0tPljwRhGCAtYtAhd/kgkKt704x9+8vHqn9791G8evK1wZPZg5/rUCYKg
KEpnZ+fnn38+cuTInJyczz//PDExccSIEYIgEEJM08zKyqKUMsYqq6pH5OUMdpZPXSymbdm2h1CY
WDxJDas7tm81KBs7YYKoGOlRojbXWpsbUGIy83gT04YXNdXWtnXFEISaajMUz/ZPPj7n+u8PdgkG
yu12Txw/tqPji2BXoKKiYvr06Xl5eZWVlZs3b2pubo7FtMTEhKxhw8aMHm3Lz9u7Z29rW8fkiWMt
FnmwMz5Q8SDBYrF88snKplD0Zz++ziAMEeK1iEBprK0NMKbJSd4Ezw8W/WjpH57MTM8YO368YZhH
3zIbdAihUCgUCoXa2to6OjpOGMvFo6n4H8nJyZIktbW14VFDrq+M4ziOG8p6IiXdMAgxCen5gaSU
xmKxsNkeJojQmACIMQS9RuDFf4kQEmIxldSn/HDBrzHG/uDVAbWdEHNr09a6usYEb8K3WJyTRoip
G8YJN+vuU6qpqQEAQsjw4cMDgUAwGKypqUEIxdvKQ7B58Q154/3PVm05eMXVV2imbBAtGI01NrUr
CJwOi26aKCp2dmnBrmhurm/SxOKKyvaHnnztD4/cnpI8pE+G48AYS5K0YsWK9vb2yZMni6KoKMr7
77+/aNGi1NRURVHi4XFqaqppmsjlopThM/OhJcMwv9q83eZw5+XlfvHFl6W7d6ekpjps1v01B0fe
9t9q6XZba4PZ1sBCudjhUZLTHN5kqfNgjIDfH87woa8++1d44aUOl2uwyzFQRaMLBUHYumPfhAkT
Ghsb16xZQwjJzs4+55xz7HZ7a0tLdWXV8p07CgoL58yes39/1Vebt509Y/KZsu4cY4wxtqe+9YvN
2+bNnhvTNFXTgBDAGNrbSV2ds6hIwCgW1T2JCflFYz/6ckNiwfiwZsLhMGNIMU2zq6urqqoqv6BA
wgDAKEOUASEkGo3KsmyxWLojKIwxQig+C8uuXbvS0tKOf1OM4ziO4452xOg7XTd694dQSjVdpwYz
SIxQAMYAMcQwRQwjJMrI0AkwJIoIA2L08A08AAA2InNcV4NZVrZ1iHew6PrxRt91UxQlISGBMaaq
qqJYJEnUdd1qtTLGwuGwaZqCIEQikfi4rHA4/C3kfBDtq6t79qXVY6dMMwysEc2iCLFgbNrYvAxf
giAIjLFASN1zoKnKbP1qd+Wo3PQ5c6avXsP++JcP/t8vbxzsvJ86WZYjkcj06dN9Ph8hZNq0abt2
7TIMA2Ps8XiWL19uGIbdbs/NzR05cuSObXvPmXPWYGf5pDHG9uyrACQNGzbs3X++F41GfnDDDSNG
jGhra3v++Rc8V19rv+J6uux50l5ndLQpbq8lJc2bluVuaYx2GSECJKSmhUv2bdw8Zf55g12UgdJ1
vbyybs6cubV1tV9+8cXooqLLL/8uZUJHhz8zO1Vs69Czc3dT8ulH//rnP/95ySULysrKSveWTxx/
BjyEGYcQUpsOypI4bPiwWCjolmTR66ExrW1/BbHZ7T6fKAhNbW3BLn923sgNX65ys5hNwjD0Rt/F
maZps9kmjh/fphJCkc8Biog0gj766KPc3Nzx48fHf3G6w6T4H5WVlf2O0OM4juO44+uJlEzTMAmh
R0ZK1CSmSYEyHB9jBwghJko4HNAaK6KZ+XZEyMHqcEa+Xclof/XzJQnWrKrQqor6kgeu+pQCkCMT
HIJMQkxzQH1K8R/aWCwmy5Kq6nv37Qt2ddntNqfTaZqmKIrxbodgMFg4asy/VnzmS06YMnmoP6Z1
Ciij76/dMaG4OBiBiGGm2aTCzLTpY3MxZpqm6zoDAKdVnluc70ty/+uLXS2toVDYjBn2ddv3b95e
PnXimfoMz65du4LBYHJycrwpZrFYfD7f9u3bExMTPR7PsGHDRFFkjBmGUVVV1d7ePtj5PRUMYM++
qplnz1y1ahVD7NbbbktKStI0zePxTJ0yuWzblgkLb4x8tVJqrDPaGixZ2UpSCtjcVptTDndGKagx
6pH0PR+8daZESpSx/VV1bre3o7Nj7bq1l152ucPp2bipZPqMmU6XJxahQumeIKCMCcU3Lrr5zTeW
r1696qyZMzdu2DBubNGZskY3pSzY2alTZk9MCh6sJXtKkdWKEIYuP+TlCiIGYuqxqNvpbAx0+f3+
5oZ6YGxo9inFQx1BEGQJbagV1tbA9CxUnIlGJgvAGEJIlmXDMLo3692/BL3G43Ecx3HcAPV+Tkk3
dN3sFdiYJjFMU9cZJQwBkkREGURVo3pnoPVgOBwwfVmZVKelX7bUV1gz8uxm4voAGL5Cb4QmURMx
oIRSc2hHSoaua5p+vC0QAgDTNP1+fywW8/u7KqsOqGrEKosIYZfLPXfunD6fyM3NLSsre+ftN/79
IqVIRNtdVvvV6poJk8f7RCUzwzt7fP6wFA8x9RgBygAYQhhMnRASKchMaBud+/K7JanJDlG0eFOG
ffD5rqz0lDSfd7DLcdIIISUlJZ2dnWlpafEb1Xa73efzrVixYtasWdnZ2UlJSZ2dnYIoIEAA6EBl
OaX0jJv0r6ziQFp6emNTU319/Y9+9KOkpCQAkCTJarWeN//89959r6KlNe/a/9J+d5e1rc5obVq3
ffu+hhZDF1MY2BDUGuAfddaUHy0e7HIMVF1dY0Vl1djxkz795OP8kSN9qZkOp/eD99/PzMoaMTIn
XN8W3rfHfd1NRFFkh23BpZe/+vJfmpuaU9MzyvdXji4YMdjZP7H46DuTmCZCBoDgtLlzsmv/+Q8A
yLz8OwGPW0KsrbOjtblRsVq6NK1LVTva24dsRNGdMcrwnBwW1NiH5WxzA/zuUlGUxPiCBKIo9u47
ih+B+Lho3qfEcRzHnaxezynpuq4bptkzB6tpEpOYpk4oYQzhrg69pSp0cG8gFiU2l5g33mW1i6ZE
ho9ytzVE9m3scHjl3NFu4sTEYPGfpPjTOz176/ziN7/5pK3X7p3TfnJP0arH1ky97yejT/PiHdED
771ZN/m6ORnHXUpX1w1dP16kFItpjY1NlQeqO9o7NE1LdNnH5qSnDs8KK271YFlLe1dnZycAKIoS
CATiLWNJkrq6An2Trf/nTbcvb5UkCQDAMCB50g333L8w54x5NhwAAOoa20t2VnsSk6tqulJSE26c
nJ+bmtDQ1Lh16w6Bhi0yiBhiBigSag2J48cVTSjIGZae0hYII0ESJHtNc7i0ouGISKl+2U23rxn7
yNN3jbEDAOh7Hvnhstl/emz20cGUuueFZyrO+8V3ck/pkOmlT9z02sznnph5amvlCIJw9dVXh0Kh
6urq4uJiQRDiKyndeuut48eP37FjRyAQaGtvj2namNGj09PTZVk+RqSkt6x95YmX1pQHDLCnT7/i
lju/WzR0lu/Zs7dsZP6o7du3jxs3Ljc3N/5ifJoKURDnzZv397fedo8dj6ac56ncuq7R/6kldeKP
fhFoamhc/5nN32YfO+Gi2+/w+XyH0/N/du/ipyuO6LPNvOLpZyYtO9m60Lc9+oN3zn/2mjV3fI1K
PNrO0n2ipLS1Nmsx/bzzLhAlh9WqXLzgshUrPry94PaWVR/b0jIjWFDb21tamrOHZ2bn5GzZsnn8
+PFfbSzJzxsuikdeXOqX3XT7u62H/2XPmbt4yeLZJ5j0sfWj++/5cylMuK6wpmT2M9esue2d8196
ZOppPCUopQkuFxh6XUtbIjKTpxYHNm9ghuGbNqWjbL+uaa2tLaMK890pyZWffemx27KyMjZtOt7t
Lb365Zvu+jR3yYsPTzvh2ln61od+/PbCFx+Sn77ptZnPPeBZ/jW+wr0psrij2dzZxIpShclZgiIJ
GOH41y0eDhFCKGOEUsMwGGPxqS36SUit/uilF5ev3R8wwJ5z1nW33nJZwWlbECx+0p7e2uQ4juO+
ZT2REhaE+M3y7lcoNTBCzGSIUcbw7jXN/taoICo547wjxtktVtHUCVbwuHOSwp1G7Z6uurLgzi9b
UrKcrlQa/1XCCB3RWMQIOcfdseTa7F4NDKMMABA+7bfftY6qpsDUE6WLMcbHWBq1pbWtvKImFiMV
FRVet6Mod2JShq/SUD6ogbrNsLUD8gPKuXmO1FA4/nBWe3u7KIoAYLFYKKVH35aVPWc9+cJdhTIA
gF79zzvu/fNn03578Rk1e3ZVbUd9q+oPkhF5Ht1ALe3hzCQrQviFl161BdaNTEVeO6poIrmp8kub
fW/+9QVGjaK8xNVbIpJs0QNRk7DyA23nz+qTauDzJ5edt/SWscdvoqgNu6vbBmtQF0Io/lhaJBKJ
L0GLEBIEISUlRZbl/Px8XdfDXV1qMJiclWW32ewOR/xk6Kt1zRPP1cx+5MWncux66+YX73/iicw/
D6DF+S0JhaMYY7/fP2/evO4Xy8vLS0pKFixYEI1Ga6oqg5o2Z8GN257cpU2ZOWzYaCOiDs8b2WqV
r/nedwgh8WmpD3/rvOc9sfw8AKj/5633N975wuL4yQ/64j8ukU6h+Sjnn+IHj8XvD2TnjGhqak5J
TUlMSsaCZJpQUFBQUbn/w+VvZh88iC6dHG0pdVj1lATDiEVmTMtsaxWTkiWvJ+Ng7S6bNSEt7chJ
Dj1znzxUTP/WZ+995Jn1kx45blyn7v+8Pv+hZfcVS6r/fMleveb0Fa4H8qRFg6GdlZUTC0dW1tap
Y8ZS09xfXe33t2dlpGWmp7mSkgIA+8r2ut1Jnaas6seZmUY/8PEWx8SMA/9Y7582f4C9w4cqTl1z
Wr7CGGOExbxktMjJJmZIioQAgFAavw6HwxHTNBline1tbQ2NAsYI4/aWFo/36My2vvfQgytyFj+1
bKpP1lvWLv3Fw094//RQP7dpOI7juP9UPY05SRSlwwMY4mw2q2maxAQgjAFTFCwImJok3BELd8o4
CYAxDGBGWSSghf06YyBbBKsDCZgxBggAC0LvBEHAAKjPa1RACGEs6Ac+X/bmhjYTwDri/BuvnJxw
8NWH3oZsZ6izs9MYPmumVLWtoa3TzP3eT68e54ruP3rjdyHbGuoMdUads26+ZXzDO581+mMvv5px
+7XOz17+oCwIBjjHXnXj1YVHLKYhSaLUb4sWoHRvRXpW3oxZc0WHZ3cYv1gO2z+Cg53QoAJEAQRY
XQG+K+Gqc3ydAZUxlp2dHf+goijt7W3HH8GiqgEASZYAQN39j6eXrmzQAexjrrr31nOy1M1LH39l
awB08My49Z7Fk7wA/q0vPb10baMOkm/aontvm+rtuVvZc9f21pcMu3+Pv+Ce55Zkl7/29NJVjTpI
WfMW33dDkWNAezmx9s5IOGxEY6yyJjh9ap6EtYgaIaYpy7LL43W4wW4DVwwcbsnhsBNCYjHda6ei
qGAsmSAykwW6+q7zK6ecdWXG+t+/Nve52/J73Wvuk+Gi8mffqm5VH3ncU9y63r7kD4sy1a0P/fgJ
+32v310E5UtvfWn0U09MONDnKJU+0X1MnlkYT1Yve+2+RyrmPv6rS7JO5sa2JEkIoaysrNWrVycn
J0+fPv3ll18WBMHn8wU7OqorKsbMmFG6c+fObdtuu/POtStX6p2BqgM1ebnZfRPSVVXypHjsACCn
TL1xCewGGDr1q4ZVSqluGg6H47333p89e5bX683MzFz/1VevvvZaLBodN24cQmh/xCDX/Dx39PgR
0cjBmmqX01kTicS7S/uMfeqXXrH0Z6/NfOaG9Xc8C4XeQEtrm5F/8UXy3i+rG1r0osWPLJ7h7Vsc
3+EP3hH/4EtQaA+0+NtU78X3/+o7ufJRxR9Y5QaDIUkSu7q6MrMy2zsCoqi4XC6EYdbsWX//0x8y
i8aHGbWZbRlZmaYWIYxlDhtmmj5KmSyPrq+tKdtX3TdS6uEdO2+0/amKhu3rf/Nar4rrXdE3Z3z5
+CvlgcDv71/68+vU370185lrDtXDaalNAEAIYYy8TuvUiRM+ff+dzDEPueyWxHEuBTHQ9aSCQpvd
ITgd7QCfl5SufvNvP7rpR0luhySgY16+9P3vbZLOXXJd+cOvfFY//6rM3j0nh87VxyepXz372NJN
quzNyFSNwzU+9lr7O9Wt6iOPZz9+h+ftUypOr4LhUak998AIIVOnThUFsaGhqWz3StHidrtzgp9/
4g34KQBidIJmHESICULvcunlb73VOvP+R6b6ZACQfbNueRg2qwD9fB9Ln7ipzyk3kKs0HKM2z6yB
BBzHcf/ZeoIEWZYEURSO6FOiAsbUYJRQADru3JTO+mhNqb+9IdR6MJiSaR0/JzkcMte+3xLwG7KM
PUnysFHOhFRLxW6/aRBKmSQKQp8+pdDO3/9y5+F/O6fd+T/XIAQI6+VvLi+f+F8PTEmE6N7lv3t1
44i7MyAakmbddcdoKF36v29U3XjfPdeL+1997O2KcIHzH/1s7Jdm/eyO0dbgxt8+8a8DsxdffcEX
f2r4wY9m0i9+U5a96H+/kwENX76xuUkd7e49gbEgirLc//g8XYs5LbjTnjD5txBpBiIBIAAMIACI
ABjACrIAlA6odQgAemDD3d/bEP/bnjPlorvvOc8L4W1Lf7/9rMdfOMcH6tZn7nliZdG9+rKtBfc8
d3MOVH+4dFWNf5IX1j79ROmEJ194KEtu/ez++574OPvx/nqi/K3Sj19YPsMO4W1P/H5T/sMvPJQL
1a/88sUV8x67qPXEexlIa8Uk1CSAqBCLQXOLFuxS9WS7bhiSJOgRa1cIjJip6XJbB7VaZMMwdF2P
xSIgKoIgJSS6IWpQdnQfn2f2bbfU3/X0i/OeXny42Xn0YfnjbVe9d3/NXUsuh5fW/L60dVFK4MsG
SYfN9fpIWFfhnXdVP0cps+eY6KWfAujVHzz6+4q5D59kmAQAsiybprlw4cJLLrnE7XZjjG+88UaL
xRLvONpZVVVfWWlfuXJEZ+cX69cHiosThw/fvGpdMBicOGHcEQllzl88a8sjt9z4asGEsRMnzJ41
c0aK7F/7xBCpX8PQDcMQsQAQbysjAHC73TdcffWrTz2VnJOz8LLL6uvr33nnnfTsnI6ugM2iIIQo
JUg4NO70pI6qGpAueuKxYtj8q0VLd9/956fukHY/ufiF7f6xnhf7FOepjCM/2Cpd9MJjxXb/Z3fd
+UrpJffCUWfLwgH11RqGEYvF4hc6h92h6QQATAPcDveNd/3SILC/bJdFJLoW+XJrqVVRCrKz6ppb
i3KHAcQojejHmXVab926cq+R8dNk6dPuivOvfeCIil716FO/WLTxrs2LfrO4oOKJntIN4Jow8NgC
Y+yUYNqU4v1bN//jqd9cetc944YlYwAJQAeoA+iksH5dyco/Pbng/PMaaqu3bVjDiIGO0Rcf3v7u
Nvvc6wqKCscEfvNBxWW35fezzdo/L60+/6lX5vv8mx+5fcfhwZeuObdd9fH9NXctma9/8F+nXJw+
U9gRQnRdj0ajDoeDMrx/76bh7nfb/JbNbyXM7mxzER0UBRhL0Q0l2NWc7Ovo7MjMSI1/1l9do2Ze
l9lzKbDnzjoHAPz9XUn6nHI/rh7oVfro2hzgyclxHMcNBT2RkihKkigeMRQNISwIphl/UoEixlIy
Lb7MtIaqcEuN2lQdC7QZZjA0MbnRPQLZnJI3xUKp34gYUSrbZEtSimXDhk7KWM8wJIzAOfGeh27I
6T36bi8CoO07ajtrav/w8CcAAEbUNLtIFrL5xmY5BGy43a6EnCwHFgx3ohXFjLaq/jfOdQgYHEkJ
UpQyjBECjAQhOX+U9Myzv24dO37SxAsuG+U5cqidJIp9HzY4zONxlZdVTM8vzhCgTKcgAVAAChB/
8AphIPEZ0RkhpPvHm1IqHHnnstvh0XetXz354FJ1ykXTvAB6/br9reX7l9zyFgCArup6m3fhBPn+
B++onzp91llX/mCiF/Td6xpTFt6ZJQNAyvSF6S9+UBO+op8M2zNmFtoBQG/dXuOYd32uDAA5i37/
GIBe9s4J9zIgLofFapVMQmRFjOmodH9zbobLMEw9pjZ1ALX4BBMMhmub/WYsFI+UWtsD4/NzxHzP
jvLGPVsbJNHd37GeufjWNbc+9cq5v5kCAP0eFn3aoaOYOa9IfX2/v6DmQMbl57VuKQu0qaXy7IWe
+peOOkrXdB8TAACj4sUlFdKsX917Co9JSJKkKEo0GqWUtra2JiQkHJplC2MB4/OLiw889NAoRRFk
OXLwYH0g8P+iUdPrvcDQxxSNOjKQto+9+bG//6C1bPue3ds2/H7x8tw7Hr1syNSvKEvBYFCSJC0W
u/zyyw69quuWmpoffv/7elqaJIrDs7MLCwsrKiqys7P37q1KSUlpa2vLzMg4bsL9s2dMzbUD6B6v
N6Ugxw6ge1JsoEbqS4+q/Yy+HyywA4DdlyKrRqR+01HbL0wZSCVbbNbOzk6LRQkEuiwWye6wxp8u
pBRkWQHdZACAgDEmCgJjtKaxOcXrlhUFAICiQ2si9BZYc/f31gAAgJQy5vx7fzHR0fBpd8XVH13R
047OlNl44mvCQMVXnhUlWbbQi+bO+dtHK5b+9OY51y8aOWW6zZsAAIH6uq2frNj09vILzp33X3fd
tXTp0sce/7Xb6bj4gnnufhbF8m/7oMJ74Y+zQPYtnGA8/u7uG+4d23cbvXpTjXfeT30A4J1w2RjP
8qNS8Y05xeJAr1kZDMPQNE3TtO5pwYMhVetak5Hn8Mjq3raNgYQpVouAGhtoLGabNTdz+9YZ/vaW
kcNh7KEZ3o9xhvRXTdf0OeWMo4qCPJJoAAAgAElEQVRwrKt0P7U5wJOT4ziOGwp6IiWLRZFlqffA
OISQIGDTpNQggBAwICZDCGXm2X0Z1uH5umnSDNR40eWdsoURAxAAxtDUCFljb01KGJ6UgDEWDcNU
4g0LABBwPPo6YvQdRoAwRuCbd8fDl/sAACLBLsllqf4SQLEIgkAFBAgpgiBQAcdHqfe/sSAIQjw9
goXDI/0sI658+NezyvfuK9n49mMrRv3igatze0VGsixZLAr0J82XuqF2e7pVPz9FLisBwAwYAGIA
ACYCEyAECDHGSHxeWsZYfNml+KE79ui7lBl3LN54y6NPfFz01IUeAMhc+OBzN2QAAKh+v+R1yEXP
vTJ/97YdX6568Y43Jjz+p0XHrUFD73lg/vAt/V5zSej+VtU+kL3cUjiAX+/hGd791R3EjDATBBCa
W6GpqcVms1x7zdUV+yvffe89h9MVDgYnT5ly7eyzMcYdHW0HGmNzZrlMw6z/vAwzmpvVf7vIO+un
i1fd+cTr9u7ZAPpkWA40xF+Xc+bm+j/8altAnrZ4dsWa5Zs26zDhzhQI9J/lXt0cnrn33RxY+tyy
soEV9shUJABYvXq1aZqGYWRkZBQWFhqmyVT1lRdeuCwcHm2xOBMTI6bZLEkRQXgwM3OF200Rqq9v
TE9P7f4K+De9/Ip//l0XZhROSymcds5F0x69+fWd8453i/lbrV+30xHwB+x2W3VN9ajRowAAdB32
7QW3W87OkQEMwwDGZsyYUVZW1t7eEY3GGGONjU3nzO6nyT8AvWrnyPsVfWu/9N0+H+x1CPrbfmC7
T0lKbG1tS01N7ezsCPg7Q2EjKTnZapUpjc+SzRAAY0yx2MaMyDENo7alrTMYrm7cOaWoQBD660bu
eU7pcO4ajizmwJyW2uwmCtjpsJuJCeeef37jX1/f+Mqz2997E2SLIGCnKCRYLd+9bGFdQ8Nzzz03
fsKEzZs37y8re+2vf1ty78/7JuTf8lZppL78nqvfANAN1TDe3ubv9Xhh73P18F/9lVwu+OHXKQ6l
VFXVSCQSn9Hu0EQOWGiq3zM8ocyacYuVNOee/efyj6vTb7zJ+PgD67gJ1OkKNtdnIFy3Zy8suDie
jj1npP2NLfX6xMN7V7c++/TGaYtn97/bI065o4qw6DgZPrWTk+M4jhsKeoZYyJIkCKIg4CP/E5iB
wCRgUkYoYpSa1IiaGFhSukyJKRlhk7CuIJgMahqgvhkqasA048PUgNAYQtCTGkYIAPfZBQZAUtrE
zODGLyo1LAj+tUsf/eN6v4ARICQIOL4qRvxTGCGE5YzjbYwFBAhjQUEImUQgDe/95pH1ZOS0eTcs
uiwv2uqnfQooysdoxqSkJCmS2FBdOWU0YIwgTCBEoQmgBiCAsyww2t1ZZG8VJGtiYmJCQkJiYqLT
6ew3qb7kokU3Fx14/ZWvVDlzWrZ/1Ye7VQBo/eihO3+1suHAa/f87GO9YNYli++4vlBtaDXkzLPT
Wz/YUKcDQOvGDxpTpmU77B6pdU+rDuDf83l1pE/qKdOyw+s21+kAevXy+x9cXg0D2MuAMp43PLlo
pE+LarpGiEYEOfHztfsASHFxcU728JSkRK/LkZjgycpImzx5ssft3FFaQZAj0EVK97aX7231OJUJ
RcfqfPDOvmNR5tp3d6sAcPRhaQUJAAwdAOTsc1P2L/9AHTsmOefsjLo33vKPOcsH/R2lI3cgpRSN
nfXjWzLWP/169XEnhu8HY8xqtV588cULFixYuHDhmDFjUlNTh2VlpefnL7jwQr221i4I0fb26tbW
No9nUkFBUjSatH+/1WVTIxFCep6Pt3uM3a8vfWVbqw4AasO2VTVSzvC8IVO/qb6kpuZml8u9d9/e
xqYmMAzYtxc8Xsg+NCxSFEVRFN1u97x58w4cqEpJSQ74/eFQICU58SSP6HFI/dT+6dy+x7CM1FDQ
jxHSdX3b1s0uhwUBC4ejhmHC4SZ4XFKiV43FUhI8gVBYFsXOYAgATnJ51hOfogAAIKafptrsFlAN
1RAk2ZaSmXvDLT+7/sZbLjhn/jnFU2ZPmDRjyoxJM+Zk5o0KRc3nn3/+6d/9zuNwjC4a/eGKT599
/i990mlZ92F9/k9ff+vVvy979e9vvfLMFcm739nS2vdclXNmZftXbqnTAdQ9n23vdQfj0FdY/zrF
QQiZphmNRuPD8DDGjDGMcSgUIeGvUj0dhGKgpGimU1Oa9vzxj6kPP46zspv/8rxhmjFGdaNnZ3LB
JVd51z/90uY6HQD0ulUv/H6dXpDjGUA1GQO6SgP0V5sDPTk5juO4oaDXc0qKLEkiRr2GpyPACBMK
zKSAKEJAEULAGGMEKGWI6iwWBaIDIfD5VxCJwvh86GyBbduWB7uQLCN/R9RuO78nTYQguO3x27f1
7D7nB48tRADYMfGGW6v/8pcH/scAsOVf+bM5yfgAAGCMMEYYHXoyGWMEJ9gYMEIIEMb23ELp748/
ID1494K8F/78y89FCaRhC28qth8xAF+SRFnp/x6fJIkJXvfWHXvPnz86DaOGMkHMwtNGoRnZMGYM
zJkAB7dGdQ0D6mfyPITw8Wd08M5adN0bd774RvVzN//03vKnf7/4xzqAY8yi+y7IyFKvKnz8sZs+
kGSQcq+5c7od5Fl33lnx2wdueRdA8k5bdP8FKTJcfl3Oo7/44QZvysjinGT1yMQdk358V+nTD9zy
0aEn/gtkB5x4LwOR4HXMmJyTkrS7LaAFg7HsYYn7q92rvtg+Y+qorKzMBx54ID42JhaLtbY0l1Uc
aI+4x+Tlle/v3LKzQYtG5s8el5157Ca195y7bltz0zMRAHBM65PhFICRY6UX775deuZPtxTOSw48
lzE9RXbYp/jUPZlnZ8jQz1GCin72Mfu2RSvuevq9C357VeZJ3NsVBEE3jK1bt9pstrS0tM2bN6ek
pPh8vrRhwxxutz8SCe/dWyuKbVZr8YgRkbq62nA4FA6XbticmJAwpmhUdzpywaKHbn3l6WfuvCJg
ANhyzr7+4VvzffJQqd8J40aX7q3QNI1RumbNmgUzz3L5fJCaxhjbtWt3amqqz5eiKAolRNP1zs7O
pqYmi9WanuZLTDid84X1U/ulJ7n9wBQWjjxYV3+wti4lJXHvvr3DMjOLRo+vqK6zO5yJid7Ozq54
rwUA0iIRSRTTkhNlSeoIdGWkJDXUNZ7s8qzeo09Rdf/Rm9n7FucUa7NbOEpEoC5BtNk9qTaXy5Mc
VsMRVUUIRFGSJIkCTJk2Y3vJpt27d1NCfD7f8Kxhf3n1r4mJ3u9d+Z3DyTSs+CBQfGv3RAVy7sKr
Cj546zP5vj7nqmPaT+8q/e0Dt3wI9uTMFFuvgh3+Cj9yVeGTp1KcPn318X9ijBESG+v2ZCWVS8gE
M2ZqzckpQs4spXlnTt177zksspA3Uj9YRQHpR6zvl3HZI/fqz7xw9/d+qwLYM6Zc96t7z/MCnPhK
IuUuPPFVOn7SHlWb/CEljuO4Mwl6Z/lzB6urq2sbzr9wQUZ6urvXfAeU0nBYfemjpwrntSV6LQwQ
QkAxwowBMIxwY3XU3VZ6wfjAWx9CLAaXngduJxgRWPkF7NwDc87CdZHbv3PZTYNYvBPq6go2NDbO
Ovuso9+ilJbvr1qzbst///KXf/oQvDIU5UJaiuESA/t2l+7ZV/Pluo1z58654orvHP3Zki1bVq/6
5L9u/8k3X4JB8H/L1i1946DHnTp35oj6Rs2MHcz0Nk4cm+71ujEWGaNqOFpWXtsa8Qa0HAmkBedn
vP7utlBH9fJnrnTYLYOd/ZO2fsPGs+fMVyyW+vp6i8Vit9vb29stFovNZnMnJDRs21Z6++2eaDTk
8UwtKIg2Nla1t/sprSSk+ezpc+bMmjZt8slOdTBYGGObtmz7aOXqwsLCrq6ujMzM2XPmDs/KBIBl
y/42ceKE0aNHxTRt/fr1GzduDAdDDY31hYWjXQ7LD667crDzforCYfWlV/+mWGwWi8U0zSlTp02Y
MEmSraKIdu3aF4sEvS7/6LGZZkwHQBghLGDAGDCuPVBbWnpw5lkXD3YJTmDjpi0TJk232G3Q2NBC
2Zp164Axp9M1ffr0+JpvgiDout7R0fHl2nV/fvZZhFB+Xp43IaGpubmzo/3ZP/1u0sTxg10IAIDm
lrYv1peMGjWqvr7+kksuiS/zBQCCIHT61YbyFyflfiUaKnL/lMb2iWhDR1h+9zW788Od2dkZmT+4
ufm1/4t1duybfc73fnn3YBeF4ziOO2P0fk7JIkqiKPb0jzCGBRFPzJr71Zd/GzG+y+4QESAKLD7i
BGPUGdCEMGE6zCqGtV/Bzh0wrgAO1ENXAK6cD04vaqoUeic4BImSaLH033bHGKckJUYjanNL67Uz
UFegvfpA9ZbPaju6Qg6b3eNxX3TRhaoafvLJJ7VeU2BJkrR3z+6ZM6ZOnjQkmhffhBuumrq2pHrb
/tDB+g6H3V3bkWoQV+Oa+tF5Qa9LKq/qaunE7pS8cNTT0ByzWaMfrInur6z7zZ2jzsQwKQ4LQiQS
qa+vdzgcTqeTMeb3+/1+v2S1EkHo9Ho7AS7Iy1Nrag6GQk2aVkfpvpF5l846KzEpUVVVj8cz2CUY
EITQpAnj6uobS/eWDx8+rLGh4a03/56bmzMsa9jUKcW6Yaxataq6+kBLS4uABUEQorHo/sr9+SNH
fvr5mvPPnTvY2T8VDod94SXzX1/+dmJiks1mXb9ubeX+ipycnNTUVKvC9paWjciRoyFvIBBGGHd3
IimKwnrNLjDE6SbBBhEoa+/wexOSpk+btnLlyrAaqaurAwCfzxcKhZqamhISEubOmbNixYrKqqps
0/S63YHOzjff/ucQiZR0XccYS5JkGEZNTU336wiJTXVl2e5Si4IMw0IDm8DsNC1icpKUlly1n5mu
5mb6wlJdDW+yOsfNnDl4JeA4juPOPL0iJUWRJKn35LAIwGK1FhWMIeSa7V9sDkYCDKB77mCEQA1F
x2UK5lhwK3DZXNi3H9pawFDhklkgIWhSERKkY802O0RIkmRR+p/RAQBkRZZlcf26DW3tbaqqJiUn
ZQ3PGZfgtVutsqIghFRVzc7ONk2THWa1WrVo+JKL5tvtQ2U50dMoXkZZlh++85yblny8fZ8ydZxk
UrO1SxZwTo6cZrch4lRz0+VojFTW+nVdsznQlxsr77jSc87sYjhqkt8zBRYw6GAYRnNzczgcliSp
sbFRkqTEhISo3W797nf1V15ZtW1bhBCTECk5uTIjPQr0QGX1uLFjbDbbiXcwZMiydMF5c03D2L23
PCXZ53A6ysvKS3eXEkIQRqIgKooiCGJLSwsxjWuv+s5XmzaHQqGt23dPmjAuMTEhvvjsmVXFudnD
Lr34/I8/Xd3Z6felpHR0dDQ1NRq6YRLS2dmenjpVURRZ1noXSpbF487aMrQwxhhljFFBEBrq67+i
VNd1q9WakJAQX0NZkqR4MD9t2jRN01asWGEahsfr7fD7Ozo6Bzv7h3R0dMiyLIpicnLyrl274tWB
EAqrGlZXz7lEJboAxABGGTDEwIzQqecl71kZDLUy8Pt3uBL0OedaHP+Gl2WO4zjum9MrUrJaZEkS
hSOWYbVZsJCUNGXi5NH5ozVNo7SnZSAIuKWltaa8lYYCTAADoHA4GBHI8IIWA4rBDBNZsvZJcKiR
JcliPWZHh81q9bqdPl+yy+1I8HhlRY5P28cY0zQtPvzDZrPF44f4P51OZ2KCNynpND7gPuRompaR
kfrkvTP+58m1G3bow9NTQhGqaXTTjgarVWxsit581ci2ziiF2Kh8e6iz7raF8nXfnR2LxUTxiKWN
zyDEJB6v59xzz41XdLyVxihjiLljmnL++dswrquoMAmJRSJ1zc3O9LT5UyYCpYIoiMdY2njIcjod
554zyzD0XXsqKKGJiQl2l8tms1GTqlG1uaUl1NWVlOidOb14+LDMpETvH5a+OGF88WvL/v6jm35A
CbFYLMqx7z4MQYyxUYUjDdP49PMv9pTudnk8Ho/HYrVKjGGEDN0AYBgjhBA7/AEAIMQQhnaHORy+
taGqqmESFu5yON1jxowxDCM9PV3XdYfDQQgxTVOSJK/XG6+4Cy64oKOjffu27R1+/7CszMnFEwe7
EIdQxggh1dXVoijG7z4wxgDhUKB57gRVETGlWBB0lHIuxMoh+imlYkqiPOLipFdfU31JKcmTp/iS
k4+3BBbHcRzHHaWnDWe1WkVJFIQjuoAEAYuioCiyx+NmlMKhPiUAAIRxgtdTe3D61spqhxKjgMAE
ygAoMAAkoMqO3JETC/okONSIkmi1Wo/1LsY4Iy31jeWvmaYpCIgxOP5dZEqZLMvz5s76BnI6tASD
IZ8v8bG7z/r7O5s/39nUpSfHiIU0GR6X3BrU/u+tPc3tQUNrS5bJd+dnT5o4IRwO2+32M+Vxnd7i
bU0hPgMjxKcWOXxKCwAAkkPKcziSv/e9moMH1XCYUZrhdv/17b/nZA9PTEowDZNSiod2z2pvjLFI
JBqJRPLycux2e/WB6ua29pqaA7qmY0Gw2axer6cwPzczI02W5a6uoM+Xcta0yTtLyx0Ox86du8cU
jTJNckYFSkAICYXCVkWZWjzhYG19XV19dXVVRI2YxFQk8V8fhjdv3mm1WiVRVKyK0+m0WSyiJDkd
rtTUnBOnPqgIIS6X65WXnvcHugQBd5+98YAfDl/PEULxtYZ1XY9EIkWj8i+58DzGWEKCt2DkiEEu
w2Fej3vX7rLag9VHXIQRjgTqJqT6qcYoY8wAVv5HYBQrBLAhiYhYJNuYAkf6cFERjWjYexKL3HIc
x3Fcrxkd7vz5PRaLRZL6v/8dby8e8UmETNOsq2so2f6VP9DSJ4CQRGlk3viJ48cPdOLsQWIYZiwW
Szj2zF2hcDgYDA1wmE18aFl6WuoZ1DI+KezQ3XSiaXooHAqHVU3Taw7Wl+w8WFYdbPVjkwBlyG0l
ORnSxKLUMaNz3G6X1WJxuZxWq1WSpPhSmINdjpNACNlSsn1fxQHGjl5n9NABYYzF11kihBDT1AxD
ROxHP/y+x+MmhMRL/e3n/JSZphkMhvyBQCQSJcQ0TWKaJmWMMYYRFgSMMZZlSVEUp9NptVgam5pf
ff1vWZkZly640OP1WBTljOtTikSi/kAgFAobhh4vLyGUMmroOqEEISoKgqwoNqvF5XLZbFZRFCVR
kiTZYhnSQysZY7GYFujqMk2zO9TvPml7Lmu9XlEjUQAwTUPTdLvdnpjoTfX5jrmDb5GmaUcv6o0x
7uz079i+pbmpLhaNkfhKWAgAAAECALszcUR+YXb2MK/HIwgCIeTMOjk5juO4wdUTKd33vw8IgnBS
Tfz4LyshxDRJnx8wQcCiKB5xA35IopTy385TQCk1DCOmaaoaMU2TmCQSjaqqqhsGQshmtdrtNkWW
EcY2q9VqtSqK3N0tc2YhhLS1t1dUVIZC4aMfuovHfZQyTdMIIfHtDcMYPixrcvEk67EHdg5xlFLT
NOPfa8pod6saISRgwWJRBEGIf3cIIeGwaphmqi/FNE0AiH/xB7sEp8I0TV03KKWUUQBglDLGEAKE
ECAkYFEQBFEU4osVAABCZ9gTWQMU/2ozxgQsyLI0pLqCj75p1V0F8bOxz7umSSilkiRKkjTEf4w4
juO4IainB+mUowVRFM/cQANjfMY9RjIUYIwVRVEUxe1ynXjrM5kgCKk+3xC5rf6twRjLsiwfd8Up
jHF8LrLu2SOHVJP6FMTX1R3sXAw+SRpa0VFvxwlNBUE4+jHI45/DHMdxHHd8/B4bx3Ecx3Ecx3Fc
XzxS4jiO4ziO4ziO64tHShzHcRzHcRzHcX31DMr/4OMvBjEfHMdxHMdxHMdxQ0dPpPT0008PYj44
juM4juO4M10oFHI4HIOdC447PfhETxzHcRzHcdxpc/SU/Rx3huLPKXEcx3Ecx3Ecx/XFIyWO4ziO
4ziO47i+vplIiRmh6qDRdy31AX+2qtNf1emvOtUUOI7jOI7juKEkFAqZpjnYueC4k/PtPqfEjFBN
1JLtko65zDoAkpx5CfEtv72McRzHcRzHcd8MxhilVFVVSZIsFgvGx7hTz6gei0Q1gzIAwKJitVll
4TiNxtOGGrFIjFocNvHEe6NasCtCZafb3r0xo3pUjWomBQBAgmy12RQRnThZEusKRpnidA9kv9xg
OHGk1NXVFY32DVrcbrfVav1mssRxHMdxHMf9GzIMwzRNRVFkWUaoT3RAdbVLNQDLFrssEC0a09Qg
BbdD/safFaFmNGoQxTKwrRE6/L9DiBZWNSIoNqcsUF1VtUgYsNsusRMleyglHiUNXSeOlJxOZzQa
/fWvf/0t5ObbxGdF5ziO4ziOO+0YO97jE4yxWCxmGIbFYhEEoecNEosYALLb6xKBAVgURY0YAo4n
x8yYGomZFACwaLHZLSIy1UDYEGQJDIMwwJJVAT1mEAaCbHfYJAQk2hXSkCQh0yAMsGi12xWBRrtC
GrK6XAoGGgsGY2BxyLpKAEALBUyb2ylRLaJGDQqAsGSx2xQBATBy6EUkSCIDAGC9ykkZABJESZQE
rHgEMWYCYiQa6k7WaoVolIh2t0NCwPRQV4RIDre9OwRk1Oxnp9zgO3GkhDG22WwA8N///d/xVxIS
EmRZ7tmCmEZY00IGQYLktCh2ScBG6ECIJbqcbpFFQsE27BhuF1F/o++YEapWpTSL1hhT0i16i2Eb
7ux/SwAgxFA1LaQTJkhORXbIYq/v10m58847T/GTHMdxHMdx3NdDCFFV1WazieKhtiijJgMQZURN
wgAAkGCzi4xSyhiNhcMxIlicbgU0NRQLh8DplBAAECJ5vE4S6gwZUc3i9jhZxB/UoppFsmCEEAAl
2OlJFM1wIBQNRwSXNd6PE98nAgBA2OK0Gl1RIjrcDhGZajhqCHa3WwYt1BUJRwS3XSTRcNRgkt1t
F0kkGO5OIE6w2RUjpKldugpIEGXFarWIiAo9yUqY0mhQ0wwmyUzXCGCLTcJweDZ1Zkb62em3UhHc
8Q2oFnqvICYIwhFhEjNCNSFTke0+jyx1vwiARItLRAiQVRFY7Hj3FhAWJIwxFiSMjn8XQhAkl01y
2cDQ1ZZwqF105B73kSeO4ziO4zhu6MEYW63WI/qU4tEHY+xQGMLo4XWZiKETQIrTLmEGNodFD8R0
nYoAAIJVRoxiEYMBioKBURGDRnsalILVKgFlotWCtSgxKOun4YiQgABAwBiBqZsMwFS7/OqhnZsE
kGkyQBa7IiAm2GyCrtLen2dMciQm2Q1N13RN17VISNOsLqcFdyfLmGCxYC2m6UQAnYBgs+CePDLS
305PuT+AO40GFCn1fvDO4/Ec8R6SnNkuPaTpzYEo7u5TAkCHB3AOZPBlfJujt2RHxuzdfUpUkJwO
Z5rMH3/jOI7jOI47syiKoihKnxeRICAwTd1kkoQAgJFoOGxgi92mHGohEpMCAhYPnxAAAwDEGGMQ
Dznif3c3HeOBCCOEMAGxQ/1Uh96j8Q3o4S3jCTB6KEwT7AkJNgGAUooxmIZBEABjhFABAT0U4HTv
iuqRsEYFm9Mu22SLHbRAR8jUTapI3ckCAmyxCjE1FosBAdEho8O5BjjUBO67U8KngB4CTqJnDyEk
CIIkSX3fEETZI8oeANPUg7FIk2ZN73v296QBlBggycd4v9eWGFHDAKk7JWaqTRGwKRafR+T9kRzH
cRzHcWeI7u4TURSPOfedYLNLWthQQ6oii4jqmk4YFkWMAEmKAFFNjWKrBEYsRkGwKQLqO99Yv5EF
jUVi2CJSLUYBWWQBEwRADN0QRarp9NCCOQgAwNQNU5EUCTQ9EgojBWlqxADZ4bKJkowhqsd0ySrS
WJQceScfi5hGdDMcYookIGrETAAsifhQQBZPVsRIsokQMgwAySoeyuyhLON+d8r7A4aAk5hNxOl0
9u1Q6kMU5QSHM9NxzKpFgsWJonUDWCsJidYEQa/vtSUS7Zkue4LCw6QBcqSlnTgg/c9zRh+WU878
GV1qjuM47t8AQshms9lstmNPEc5kV4LLKiNTi0VjOsWy1e2Jz8SNbG63TUZGVFWjOpNtbrcVdw9d
65tKn/3KIomqaszEssNtEwDJDquISEwNR0xBOTTADQkWGQPRIjGDCQ6PXcZGNByOGEhxuB0SAsBW
t1PBRjQcDGsg9x0WJ9g8LquETD0WjUY1E0kWl9smHJlsfDsJAECxHjWurt+dckPASYQd8Xkdji+x
+Maf337t3LFJCgCEarZ+8sJjT31yMKe7GwqJSW5vUq8PIMmZIwGA1Ov/cdjl9LgGnrv47hcsW/lg
QfmDF1z/r46T/OgxU2t85buX/ukgAICcv+T95d9N2v0/c3/4SfjrJ/9NSlvw5PNL8j+57lDOv57E
+ctWPlbQ58X25ddd+rsK/eun3mdfp7UG+zqth+UYHPlX/GLJLfMPfQXK17zyu8df3doBAIlXLFv5
PwWnfvaccua/jVJzHMdxXLd+nzqPP/R+/AfSiUkFm8vrQIeeWKLENONj3UyKLS6vHSGIj4IzTQqi
MzkZM9MwKMPWhGQHEMMgDFs8yXZEDd08fKfd6nG74oPnTJMwhrDNk+RAAIxRBk4nEMMgILkSkxEA
I4ZBQXF5bfFdUWISwhgwApLDm+xCAIxSwK74Hg6PwyNUsLkTDuW7V8ZRd7K6phvE0AwAbLHiw8cB
WxOSHYgautnfTrkh4HR20KQteGb5g2c5ARp3b6gJOdOLxxZ/97Hl2Y4rf/JO02ncDXdCcvbCuelK
4+lNtGbDyvLQ4X/oTVs7TnuYBABa09Y1G5pqmrRvIO1v5rAcyTHjwZf/Z66i1WxdWd7uLJh71tyf
PZ+mL7z+b1/7G3DKmf8WSs1xHMdxpwejpkH7f4MYlBzxEjX1w00RRgydHPVnzwu9ow5GTePoJgw1
9J4XiWGQvhswYh794onyzap72q4AACAASURBVLqTZWZUjRLAos1phcPPR/XJ93HS5wbL6VvLyzHj
F0vOckLN8kVzL/3hHXfc8cMrL1j0ytbyilB6tgMAIHHG7c+8v76kpKTk45eXzE+TASDximUlJeuf
v/3n8TdWL3tgflo8sX42Hn7j+yUlq59/9PmPS0rWP78gUc6/4tG3V5eUlJSUlHy87IH53+7oorT5
S17+OL7z9e8/c2OxY6DZ7p1I/0VwFN/+/PslJSUlHz/z8xufWV1S8va1acdIvP8DOPzGt/9YDADp
i/5R8vJ8B5wejWueuq/HQ3/6ogPk/NvfLikpWf/M/ESQx/z8/ZKSko+XFDvSbny7pGT1Mz9/IH6E
3n/+9kOHZwDHJzWteO5Zc2ekKQBy/pKPS0ref+D2eDrr33702jnXxo/X+p4z5ZQPS/81+HUlFucr
ALsf+slP7rvvvjuu++EfN5SX69nZPYk7xyx69O14rpbM+f/s3X1cG+edKPrf6GVGCA1gDzgRdoqc
1KKNIU0rt/sB37Ooe05Fbw3eHsvtXfDegs9uzG4DPlnj5hyUvQvez7HIbiFNwe1GZDfAnhjuaZA3
NbRrq/2sRW+Bsw1qk0LSIiexSIwUG8YGj16Y0cvcP8SLQCPzEr/n9/0jHxieeV5GziP95vfMo4V/
DaS25JgtPoahs221RfHDK65M1/NnVrympP7AydPxfzoXTp88kEcCaCv6RkdHO0vi/7cdOD06Otpp
0tyRUSOEEEL3IHk6k5OzNXmp290gU23JycnJYbJURAyzRfeRWxYpkfnmIgrA1d4xvri2yD9+qubQ
4eOnRvwAeRVt7dXF9HhPe3u/v9BstdXqFyIbymDOd5863mT30PnljfUG8maFaYNR47Lb7fZRprbF
Uqpj+9tb2/sn6PzyxgbDnQuVNKYmq7nQb7da6pt63ExxXUO1nlxPt0cSlpSReqkhMGWttmpDrvd8
V+sAV1xXTC+U3sAFZEc6+r0AwLt6WrvGblXmJ9dYf3JJY20JAyC4OyztHqCKGxprG6yVueC1H291
xV9+utic6zpV39Qzxhiqba0mZl0v68j1pGbLjWBvtvR4KF1pfWsVZW+y9ExQ+eWNtQbyY1yW9/9Q
6hX8+HwOpxeg0Hq2z3byWJWJcVoOHTrcPLK83E5XaQTnqS7nDJ1vbjpWQAJoDA2drZUGxnO+p+e8
hymubj/duBTBLF6ZM/aXEl5TssTaaSnN55w97T3DfH6pxVZfkKL3d2TUCCGE0D1IjAiCcI9sISfG
woJw73QHrdctW31HMgwFwM3E12TFHzdZ+JOrrthqqMgHcDXXv+Dwg5M22KvLK/SnTgEAgKfLesox
CWM91WaLTqulIa9cqnAXAAB4OyzPdU8CADgOltoZ3icweoOeK8/PZhg6uVe3CQUkAOgMRoPXMdxa
2TE+6QfIq11Pt5cJ7heSh8AYzAYAb1fdc6cmAYa5fHudDgBSXBPpC+h3ORy+pvJcdszeO3jr1j3q
ikt1S794fV0dg6wguHvr2032uuLqcgBvz/HW8aXAbKK16dSAD8DDGO11hgqDZkK/juvDlK1u1tXe
OjDozyusrazOneho7h1ktcyRSosulyEBtJu9LH5TNSS9greA4H6hstpTV1dpMpRWGkor64Af6zla
94JrsXpvV/1zpyZByxuNFp0ulwaP4Uh5NszYaw43jwtAOoSzXeXlR4pbayZWXhlyeqnzXInNSIG3
q+74qUkgHSNGvTDhEaBQqkN+9x0YNUIIIYTQg+iWRUoC6+WhkM7V0TDOAucZ6D/vIbMNpYZsACCz
tTQAGKzOUeviCbos4YN5EQA4HwsAIAgLz6ZIFmYWbn2znoWsDJlnqm2qLS/MBuA4gOS9TjZBDHOe
kEq39G22wqp8DAkUAAAP7EhT03lrQ2mxua7YDAAzw9Yay+R6ur2iutVDAABSSwMA644X97lZAB2s
cU1WX8DbY3lnixWESXu3q85qAPDa7Yk7PPjjvQLWxwLk0szWdb2sSbgZvwAAAicAgN/Hw+JASZL6
GJeFdSa/gsfPTH7sBBypYWh2pLXmTDOQWn2R8UhDvbGypc5R2jy+0LDbn9ArEoDRagHA5/IIAACC
Z8QH5dlaLQPxSEnqytC5DABwnnhNvhGHDwBAm1hk4Z/qHRo1QgghlCAaxQdu0APi1kVKEwMjfKmx
8MgRg7PZ5R/vPfEcMKY2oyGbAhBmfBwAPWattIxwJJ2bS/PeS29z8H9K1iRR2OP2a3QAANxC9KI1
tzaV6zxdNYc6XHzJK87mJzbfdT4wNy2nd6hWr0TkWJYHyC0sZGCSBQBap6cBeNYvkDR4zrxQ+YKH
0huKymrrSovrqnVPJXZbs21L4Mb0/JSfXtHtRCuGYOx0WgsBgPNxAKAtyCUdboHUGrQ3vSaQlIG5
4zSG+mMGAADIrWuqcBxe2rogr0hHjrgFMrdACwCs99oMs/bLKmVFoLOy2OYvi9QrqB84Mf4xgwZt
ma3fks/115SfcPl97sF+e3mt0UgvRW9J4wFgfT6AXK1BRzrGBSB1RVoA8C3FR1JXhvOyADqmUEsO
sAKpr2qsyh0/0+5cGBgF4CdpndQTSLdp1AghhFAilUp1t7uA0K1x6/a+8480nxg2WIvNNmfR2LCb
o3SFBh0NADMeDib77Z7qusIjtWYYIUuPVBroscY/OvihdE0ShZtKD49JlCRJktGVlFU/AQBAbe6J
CzF8LSzfopZ4YEuY6B/hjUZD09m+cpcHGIMhH4AfsU8IWnNrV52OG+5qHVhIo3jd7LvDCd02PVW5
J+O3jaX/ZXyN5heGUFUY/8U/0uviCw2Vbe2Uw6szlefe9JqMpKpV4HiAXFNdA9vV3jt+S5ZY5Rrr
T2qX9r4DYby7uddNGupPlmeDp6uup7DFYqhvqRg+1Bu/ItmVbS3UgEdbVpkN/LB93D/pWe/Lun6b
viznWXPzkdWv4McPGHyD3cP11uJyW79+2OUDbUFxPgXg6h/3g2SSBwD8w13nOUOp2dapGRiHgrLS
bJixt4/4V+aIVnS+q7NnmDcUm1vaSYc311RuyJ7x97ZyHi8PuvwjDVW0R2+uzJY48TaNGiGEEEqE
OSX0wLh1e98BsI6jB2ta+8e8dGGxsdigA4+rv73evL95XIDJ7pr6HpdgqLbUVxbc+EX7t57pZxcW
zM37Z9+bDfgXN0yMCsHhF/+vQ6/872C8MDfc+Wd/8f2L1z8MxQAgFAwGRQDw9Td1vTGTW9ne8w/f
zvnVz6cBdhpySTEWA4BoJBJJ0cVIRLjm5y4nhA4RPiQoVerF7/cSxch1bva9a9ffmw34bwxaDlv7
x2ZAZyg2GvLJ6dEzJyoaR/ww2fVf/vx7g3NfqG6yWutLlL/6X/XH7T6Y7K555n/+arHbv3jxT58Z
YAFiIgCEw8ld8vU3dblmcivbe2x1uePOGQCdIZdkHfVHu1wz2Qaz2cD1dk0sll5xAbnhrprjN/nC
IWGi1z7BQ67RZNTdsqe3dMWlCcpNOlJjqG8pzwZvl6Vj5ExT6xhAfr21Ii/+nVieHgcUVVcWZ3uH
249aHOwGh7BOm70sVH9NXdcwZ6huslrrjaTLXn/cfise6WIdxw839Y95yfxio7E4n/aO9Vur6286
Tv/Iicr6nmFfbqnZXKrzDXfVHWqWyPIkvqbE4PHD1vMTlKG8stwAE/1NNa3jgt/V3Hzew+ca644U
gb3VdQdHjRBCCCH0ICLO9Lw0eenSpQ+mhkZ/d5NyzzzzzIsvvrj5dqKRsJ/nuXCUkCtpFZWulMvC
3PucyGTQmQoxyN2Ylmny0hWEKHjnwhm0WiOHYODGNKH5lFqe8C3FYih440osPU+jIER+apZPp+lM
eXTuBscSmkczlARANBoO8DwnREW5kqZIDamQS7ReX78wnMj0bJDMyMiUAQCId7BLqTCGsiKGdbtc
blYAjanTaS2csJQectyG72G9XbRVff11urF64+FB3DAAIYQQ+kThOC4tLe1u9wKhW+NWfvNsSmKY
83ARikx/KItULh0EIBSqDAVBAJFGycV5EQDEiBCKhUNzwpWF7sUA5ABiIOifno8s5HIV8ZJhQa56
WEEQoKDT5NfmF6qVy5UZamWGGsJC4Iqfm1FodqbNJ7ceFxPmg/I0JiGxdme69OjSphFJyLyKJks+
eM+3944zRVWFAF7HxH0UJiGEEEIIIfRAuCOREqGkdRkCxwsfzYZkSzklAAKIeMBAJMQNckX6pzLI
xFWBYiQ4zctysrLSZURM4DzzcBNLCZyYXElraC2pkIEyqfV42RgXiqrTlYlt3ZkupQqTAMA3YGkq
bKo1ldbVlwLMTPQ3WXqTd5xDCCGEELoviKLo9/tjsVjyn2QyGU0vPScgxoRQIMRHYgAAhJxMU6sp
BQEQC88H52MqjTrFB6jo/NyNkEjRmakKILRZdyRSAgC5gsxSkFkAkYhwYz7o49NypZ5wJxQkGQ2x
giKblCWucBMJmYwgRDF8LRgRZfGSSjI6z0WVmbIoF4qKBACAGAn4gqCmVA9lKRJHltR6vPD8LFDb
17oCt6lLKQmTAycOD5xYT9F7lK/74J7uu90JhBBCCN0TCIJQqVTBYDD5TyvW6UV5f4CPyik1Tcpj
QiDAB/0gy0xXipFQKBylUu+nRxDxVm5919En3p2KlJYbVJBbNeRWADEs9WeCfEgTvRKYez/+hEt8
oZpCzcg57/XrQCgyKTkR3xuBoLapw965WRbkGlJGxO8/KNJ3ZKyrdQAxGAqTaRlrX4Db3CWEEEII
oQeImPQdlwqFQqFQrNpxS6lUyuXyhMIxEYCQK5QKpVxGZckV8xEgxGiIC0QBgOdmI2lpEApFFemZ
GiUBosDNBaNKTWb60qofMRbhg4FQOAZAyJSqdDUlJ0CM8oFAKJ6okinS1OkUZp7Qut3xSGkJoaR3
KiV+livTcrNWPQkoy6Azl8KNpe2PlZQmL8XWyzdFkuTs7Cx/ParMIVf8v3L3uoQQQggh9ABTqVR+
//JOT/FE04oScnU6Feb4wJwQAEKuIKm0NJWCiMnptPBcKKrQZGqUslgsdIPnw6KSFAU+CjKVWimD
xT3JxUjQHwrL0zMzSeC5uaA/KM9MlwnBUARUmVvTZdFQIBiJREUFhkpovZYjpWeeeeYu9uNOoihK
FMX/3tJ0tzuCEEIIIYQQuketd5dwhBBCCCGEbo7juNXJokWiKAYCgVgsJpfL09PTV/01JgSDfEyu
ptOVMkJGAD/LchG5OoNWRv1zgQhFZ6bJCSAgfGM2EFMqIRyWa7JoBYgQE27cCIKKThf9HC9L37pV
LQeIxWIyGUTCUZDLiYgwz/OCIERiQCg1GemYVELrdPdW3yGEEEIIoU+Mpa0dJEMpmUIWCwoRPydS
SjkRC89HAGRKhQwgBgAQEcIRSqmQEUq1ArhwGECZpoD4M04LTzrJKCXwQpDzExTBB4JhIDUZaQQ/
Ozcvkho6nVaR3Kw/ktwyQiktR0qCINzFfiCEEEIIoQebQqFIS0uTy+USf5OrszIIzh8S5iMAADKl
itao5WJMlKtImV/gg/OyDA1FgFythBthoNKSKpFrstL9XCDkDwPIKE1GuhJiYhqdHuMC/jkeAGQK
VaZGSSTtOIFQCncvpyRG5r1hZW6afEMJ0M2ddf92CSGEEELovpK8910ihUIhXUCMxuTqzK2ahe2+
RTEWjURiIgChzGByCAAxKvBCOBrmwwAyVZpssSFZ2tYcDRELC5EYUBlb1AQBAGIsGolGRRGAIOkt
aQvf9CLGIvE6EVoXXH0HIPDB64TqoRVfLYsQQgghhO4kMRYJS3w/rRgLLyx8EiOhQCgKMoWaTgNx
sagYDQvRpR/D0VVni9HI6mMIrRNGSmJkLiLLUGOYhBBCCCF0L5OptuRoiIWACDND6Pa745FSJBoJ
hCPzoMxRgBiLXAvOB2OgkJPZacr41xeFwzzLR8IASgXFqBRLB2f4SARkasVCwjYaDl2JKB9OU8gA
+PngdZnqYVImRvmrAqgUinSlXHJkS61vUy0slouEwxEFqVpcOXfnu4QQQgghhNZhObuE0B1xp1Ip
0WiE4+evBIKsEJMryGyVnAAQxZiSUu9IV6WLwrV4ujUWvsbH1GnqHekqdYxfOCiGr/Gx9DT1jnRS
GVsIS+QKpSIaDokAYuRGlNAoZABAyKlsSiGPhdlA8EqI5yLRaOrW43/hwqBRLj9idMe6hBBCCCGE
ELqH3ZE0hxiZ985HSQW1NX0hIQMAIgAhU6bLCQLk6aSMC4uiEiAWjSQfjK44eCMMAACEnJbzc+EY
RYTDMuXWxZBPLpNrKLmGgnCEvzY/PytXbVeGk1uPi0XC8zLlQwnh4p3p0g7c/gEhhBBCD6Yo3hVG
D4o7EikRClVuWiQQibABgZAp0pWKNIXsY2ezCIqUR+eFORBJanm3yWgsGgqHA5GYKJOrVapshVwG
8uTW5QAAsYAQU1GKW5dXW2+XMExCCCGE0AMqLS3tbncBoVvjTj06I5crMuSKDCr+pBA/EyFzFCDG
woGonJaJASGmUMoIAJDJFQsHYwEhplASRPzkWDgQk9NELCDExMU4QyZXponzAVA8tPhVy2KUn+FB
pVQy6SseCkpufZtKDtGwH5Q5Kzfjv2NdQgghhBBCCN3D7viHd4VckSlXZAKIkTBByMJ88HJ8+wQl
AQAgU26lojOh4BzED8oAAAjlVio6EwzOgUytIIjlvU7kajnMy5RLa+oIOfWQel2tA4ghIaogyVUX
4M53CSGEEEIIIXTvuXtpDkKh2qEAAIpZeVypVGmVqwtLHgQxwkWJdEq2mcVssciNmHyLYsWpd7lL
CKFPqqzZ73V9uDPxSEA5/m/bW/6Jnt18pdE/+Lt3GvKpfzqi77+6nj5c/17X5Z2XdlT/1ZaP0ShC
CK1FDF5+dyoEAJC2/dM71LfxI1Ms54vep77BPqmLABCz7qzXuz/104u34aNv4oj2qE69PKnz5D31
bPbchiuKhaanfLPz0dt+ZdB63bcLwsTI/OX5qFKpojf3mJFM+VD6PdYlhNAnHPXr/08VAAAykv8H
gYJyz/GJz/z1L5PvyNweYeX4v2uuXlaG71B7CKFPKkK9Y9cuEIOX3792O5uJ5X7N/WJ1AEDuHiV5
Jlqov159Mpj1ncd7JjfyOU0MXn7/2tZHbxq33KoRifPXbkS3fOqxLRR+krxXbCZSikQikruayGQy
pfJOvakTCtUjmtUHydxcyuvl7kgHktuS7BJCCK3T1Yx/an14CgAAtpW7O/6M314QUf5Smf75j47+
5cwXtolwPe3cP33qn35JhrPY73V5t4/nnBdmS78QJgOqf/uHvLZfkgCQ9Xnv8aNswRa4/mvm3xNu
B2UlV7L9ascPrqSPZ17aPleQnt72nS0Ff+DfuS1L+T8BUtefXvBRw9Hpgm1w/ddMP1z/1heU681Z
IYTQnZQ5+1RlACD95f+6o/OXs1sfzf30PvfffyOs2y0oJ1WQM1v57Q+/slsggbj65raXf7DjrTmA
zOm/f/mD3Lcf+ln4+leeFMhAmvPlx344BADR//DU72tMgSwAEMg3X9O9+GM6CKBcXcnWy8m9+Nzl
p5+6+uQ2EWbTHV07u4epm9+NEkFBkRgm3UOWIyWSJNdzQjgcjkQiP/7xj7dt2yaKy8/nRCKR+vr6
3/zmN2r1ysdyyKK24fbi5d9575ijo7l5wL3Bbw7TVvT1lXXtPzTApihA6o/1teWe2H/cdUtr1lb1
9Zk69h9yJP51020hhFAypYIAgCz/N566EgAAZXi3kQeQv+NKJ3RsU+O0LqD5yenMdOPUV49fil7Z
3T2rIADIgmuPvv6p745w1U/P/NHRj37xm0+/kzVtaWT1QP7q9W3enOmv7wAAkCtJUndFopKwAgDS
C25ohrIds/RYMLYfAAi5kiRJZYr61TOW/zG9G8ih17dN50x/a29sof51vXsghD4ReJ5ffSjqn/Ze
nZ2PgjxtizY3Oy11JJBcUgxefs8XkYlRklYJN+ZV2p25GlnKktOqLMWN68EoKLZ+JbKLBBgS//kX
vhDA1LvvTX1fc+AnO9QEgJr79sn3jFmEZ2jb28B9Ze+V574baXom77cBTgAgd1956JW0vzqT9t//
NmT8y9+/2quWfyXw30zRS6/RtktbC77+wb5Dl/7oJ1v/X0XmsyffM2bBhCPDnR4u3Xvlub+f935d
NZk4nNwrzz13RccpTrfJ6f2B/c+4w1O7u1NmtMTofCAM+ADHvWXDOaVYLHbmzJmdO3eKokgQy6+m
KIo2m+2JJ55YHSkBAA+uE2aLyw8kqWH0xuqGph4bXX641/cxO78KydDUZs5jnc0W9wYzUZttCyGE
UiFDxn2h+I8Bz5bTr23/6VuK3MqrOoC3X36se1gBb0Qef/GKcV+w5zQAAEw9/HLPVi+k//TrM09t
F3LUkPk4qwe4+pPHvt+jDkMm7Hr769sAAHKNUpW8DgAAV3Nf/P7DXgDInFndn+T6d8/sBrj6+q7v
96gAMgO6tw9tvyNXBiF0H4tyvplI1o7HaKUYnP7gI5bW5VDS0YBUSQAAeZY2a/bybPqOnIjvBi9q
0ogUJUUhIH8o79O5YsB3TeEnAQLhRz71admllcvn1E96jVkw69A/94+aMMSGw2Mnjew3Ppf983/l
ZQAwtf3Vcw9PA39uavyp7crPP7H9I+JdgOjOYuLzArzV/fhrF5VXLnsi5V5jFlz7F/rISzsfypT9
7/DYSePcnxWTf5Mwlcbn3t+c0v/Lb1TiOxf3vMSVfC3Y8w8aibTS4pNOZHaeCkOle8mGIyVRFLOy
soLBoCzhG5EIgohGoxRFJWaZEvA852NnApwnpNL5Ji0e6LEfqTXYn3MJAIyhqqGh2qijgfMMdzWf
6HaxAJqCiqaGI8Z8GjiPs91isb/NTgajYjTguRHW5O9r7WzUOo7WvODyLzXBlLW3l9I02M7bmipr
BnyS1S7Lq+rrMo65mHJj7sTLL1Pf+sN4TokpOWZtqDRkw8xYv0MwGidqDvYCUHRRVVutuTiX4j3O
1nrLYOHKtjZ6DRFCSMLVh77zVw+Hiz0nn55Lz4nNeqgwxLJyogCw+5m3fvTMYrHcyMIq5wA5CwAg
ExbfddOzIgAwe5EMAwAoLk4DbAO4eSWzqpT7NyTVT+ZEAGDWE3/jID2zABgpIYRuTuRvhMLB0KT/
o/jvaSm/lTZVSUKuUCrkMrlCqZCLMfFmJVVbM1VyAkCdId5gASA9K6qExc+r6vld2wnPRSorRwCA
q++owgAAsqk3KTBGcrbF1PJYFADm+EkuRGgUS1PfNWfG94aCT++9YTp0wwQAsxm2Z9MctB8AvG+o
1BoFAMQr0ebGYDlSimXlRADg8w3v9C0d2x5RAkhESoR6x67HhDnvB+x1PushDJbuHZt5TkkQBIVi
3Sfy8xFxZTPCpLPfW1dRoiNdbqaizVZ1pf7Q/+H0KvIPWG02G5gPDuS32mrh1GHjITcU1NpsbfXu
/c2sWk7I5GnbS62djdqBmppT4/7EStmBurqi8+3U8dLjLgG0FW22atZaYzzjBv1itd0rMqIkXWjw
1pSWesl0Y/u3AABAW9FmLfc1m4sHfIypsdNKw0S8bK4xt6Om9LiXMVl7mppMg4cT20IIoVskHFZ4
B3Xf3fV2k2nu6e98dPHZh2en5QBR98uf/f6bcqVayEknpqfUQZBehTw7rQDgs3QRGFYARHOy4odl
0pWkzwMABIn1b+EQmFYA8Nt2CcphRVgp7M752ANGCH0SyFUP6x6R3O4qJgIQNy0pAgAhI2QEEDJC
tkZJgpDHayNkYbfq9yB85knf3twd7vcBILbrGxdP7hMCjvxn3iEBhG2PzyuHNWGIbX+SB4Bprzpr
R7YSLgOIoWveq2zGUkRH0nDZ8cizXSqljnvSOHVo740/rdg64AAAePhL6VnvQnSxEp9HFltOGchm
r8oBYr+zffbUbxMn8FRkJJ1JTc/F1rye6A7aTKTE87xcLk8+LpVQEsPXI0RSZOxnOaAYEkBrMudf
eukvu37P6TKU7jPN7eb+6vLP+QwFrP2w3e0HgPGOo4cdpFcAGoDK/tqpH/3h51x15avCpNW0JnO+
p6P8jNsPAIvV5nWfWhEqgae318WyAIsr7LVGc76v4/jApADgc7xwqqK0drFkR+uA2w/gd9rdfIOe
IR3ruU4IIbQJind6HnV+yW3UTX37K1v+2pkz9fUp/TemvgIZymLfvt1R9w+e+Os3pc8Mvr3tbeHS
7q95qqa2eXRXKxcTPl7JSi5uuGcL9e+7aFFund5+zbht84NECH1SEFQGKbAz/rQczcrvZpEpiXBI
EDVLCZSUJddfZwJW9YPT4fZDgae+/65xWBZ8eOZzj0YB0nt+rJkLPDwUeHevyd0oqt7VwH/aG4HZ
7J43FaCWyQBAQedsi7He+cWYh8gtv95axwbefKjLqY7fWpqeTCd+S53jIl/9+mRzjt8NAePeCFzf
8vJINPTp5S54B7M//M++z35j8j8SW6m9i3PvYOrHtAg5QSRFj+iu2sz2GjzPz6cQCcxzl/2RpYgp
wocExXIbohi5zs2+dy2WmQ43vBxPpDFb+al3fLGI//1r19+78ZGX5Wntth1bKfY3l9zXZr1+v+ej
934x7l2Ii7L/8FNTU3Sx2bC4xZwYCVy+EbjGRyKJHSQZHcOznqWbrqyP5WktveqZY55juZVn6RlY
PovzeTlhccDswk+CgDkkhNDtFqS7XmQCAPqqD4oDDzd9d9vbAvf1py7v2yV/83X9dwdTbzE6t/W7
1u1vzgb2PX3pkC7tp28u3tLybqSSm5jb+l3rQ2/PRnabph8PPPS6ZzN1IIQ+YeS0VqsRpj3vXrx4
8eLFi5eD8U+JhIphSO7Dd5ePpCq5/jpXIC69/plnXtz25hTsKg5/7tGo97eq731H/7NpgGDmD599
7Ce/UWpLQ1/bOz/9xszdXgAAIABJREFU5kMnv5N3UQhevnSVB4D5Kx7ffPq2bOVCuEJxZ7KefkU+
99krTz9zqfqLsbcdj333ZyqKoJsqmbO/IXP2zpjilTz76BWa5LxXeIinwgC8uX/7d1ve5IMHjlze
9+nY0Ctb/tZ587mXkEE4JGBW6R6yyV3CQ6EQsTJVFN/gISZTqrUa+eJfItfnIZNM2PYhGpalZz5a
UP7NHTd+cf5DEB9hr1FFj2tlw6wuQ0nAw7m5FOe8eiUPMh/PfeRfZzzzitws/Vf/4j9wPf/LBwCX
Gvf/6a/+1P6vTU0l5ccH/QCEIl2bHg7w81dmo2QwKIpkFAAEzsNShToGRuKPEDHaXIpzcmsEOQLn
4WD5LJrJJclU++wBCAC4pQNC6NaY2/rsN7cmHgi+ozv8Td3CL288cuKNR1aWz3n2m0tL35SDzxoG
l0982Fr78OJveT1LZyRX4n249psPL/86l/3sN7PXqD+T+2KO+vWTT1gnlWGIFP+PKQDZLN4/Qgjd
nFydvWNndtJhReb2RzPXLKne8ZgaANQJ/715SQAAYuFn7/Aj1uGVUx8AAISns7qbs7oTDxHqHVt3
/z/fBADQPgoAsDT1peXsnD4Hz5xLLB31X5+PUo+82ky+umpEsD1eSdyc61GrK7GV5L4k/lXFbFVO
ffjeLH7z7D1jMzmlSCQil8vj24XHhcNhACAIQqmSLa/LiwnzQXkaLQOgKFrLMEz2Q3mf2fsfq1tt
R7PfsP7dr3mASYd9YudfNFV/hgYg88rq63Qee/9bI6f/fZv5mPmzmTJZ1he+9Xcn/7OOFwAAeJ7n
Ba/d0s4amxqKFvJKcrkyQ63ZnpW5TQnzVFZGRoYSJh32Cd2RhgN6TUK1k5KDSTDp6J3QVtWa8kgg
tSW1xwpvGgrxJJOnZXBvXITQJwc5v+/pS8999/ff/uMrX6u6VK0HuLrVs/FvoUcIofuYGLx88f0r
Yfqhrbf8UyBBbdnx6K5du3ZhmHSv2Eyk9PzzzyuVyuzsbGZRdnY2TdP//Mo/R3hx6TtpY1woqk5T
ygAoMFjt5x3/NvT7C2e7m8rpQUvlt//lQwAA8PUePfIK1Lz2S9focFc1aa+r6Z4E9uzT3+zgD706
yrp/+cOvvl//f//9eMJNS36y19LFlloXYqVoNHwj6J+anftg4vWfez//wrlX6/Skr/doTRdUdjpH
E6pdk6/3qMWRe8w+PDrcWQ0j3tQlBc/AoK/QYu+s1WOshBD6pJhmXvwB454N7z10uXrfDfAwP7Bu
u8lMiRBCDyBCvWPXrk/rtqnxG2I/AYgzPS9NXrp06YOpodHfrecEURTn5uZ4nk/ev0Epk6XLVOF5
Wdp2jQIiwQ8Csu2ZqqX1fWKY84RUugwlserniN/jV2zPUpErS34qbf6Dxf8ulgxM+gltlnop2SNG
AlNBUFNUBrX+3fhSYgoMjG/MHX8oiSk7fbZ64ODBW/2tTwghhBBCDyqO42iavtu9QOjW2HB4QRBE
ZmamKIrJkZJMJiMIQgUAAGIgFCbTMtZTPSFX0QT34bUQKDSPZihvkm0kFGlb5TcuX+OXShKK9B0Z
Gx1CKiRTfrKzoPdwTbdbYIqOHMlnHZbUDyohhBBCCCGEHlybScQQBEEk7/y9Qoy/HlXmkCsKEUp6
p1LiZyAU2ZlbsiVKKhP+GyfLoLNuWWS0muBuP36qqanTWUcBPzM2YKnpmMRHlRFCCCGEEPok+vhL
1iTJVDuybk/Nt5V/vPf4wd673QuEEEIIIYTQ3YYPoyGEEEIIIYTQahgpIYQQQgghhNBqt2n1HUII
oY0Jh8OxWExysxySfIC+j4DUakmfz39P1oYQerB8UuZVWDkZ3i8T4/3QT8wpIYTQ3RcOh0Oh0I9+
9KPBwUFngp///OeFhYXBYFDiHKaotq3vwujo6Ojo6IW+ttoSbfx9X1vVN3TaxNzZASzRVvQNnS5L
1TqpP9bXWZ9/iz6g3MLa8qrODnWaNLegJoTQPWLD86rG1Dl6obHgFkwppL7q9OiQrUy7XLeh4exQ
X62eBE1J5+jo6OjpAyvmybyqvtHR0b4D2hTdIA0tQ6O2osSDTNnp0QsNBSSsnAzXnBhJQ8vQ6ApD
5zobTNo7HDne2reD2wYjJYQQuvtisdiZM2d27typVqs1CTIzM2022/z8fNIZeVW2djPV31RpLi83
Vzb1g7m1s+FWvMN/TKyz2fKCi0v1Z5KhqVR/27hbWxtC6IGy8Xn1lhHc3cebxguaWqr0JACAtqy1
rczXXHfKvbCpMg/55pLlOAryys26j9Ng4mS4ronRVV9aHGcsNR8fIM3WdrN2zbNuqftjAt9MpBQO
h3men08iCLinNkIIbYYoillZWcFgMHF25Xk+FAoRBJG8dAQ0umId52zvHXRP+nyT7sFui8XuBt3C
PUqKLqpqOzs0Ojo61NdyII8EAGAMVS3xFNSFvrYqAwN5tWeHOuPZH9Jw8sLivUnQVvQNda7KSWmr
+oZON57s7Ovr6zt31nasJH5anqmh82z85uRQX0uFngRgjA3WYwYaQFvVd6GzodF29ty5C0MX+loO
6EmmrL29lKaNtvOJt1oBAPKq+i50NracHR0dPV2h1RRUnDy90NWWioJ4pkdTUNGydPCAnoRVtUl1
RqIPAABMyTHbudHR0dFznY3HbBfOHtMnRphSrWtNDZ3nhhaP6e9+QIoQWtOG59UUkiZPgLWmEQDw
DVgs53PrWuoNTMGx9oY8x9H6Ad/iHzlX/4Su0rg4D5J6swmcTu8mB5o4GX52xcQoPXUDAIDACXF+
dnKkq8MFOqMuPgTJGZgpOmY7OzQ0NHTO1lBru9BXoV2ZimfKTg/1VWhTnJ48ha6awO/dOXbDkdKG
U5lkUdvKDN/ZzsaypUtw83UakiQXltyxhRN3d1kLQujBFX/PSrz9FAqFBEHgeV6itH+85zxf3tLe
UFVWVKDVAPhHmo+eWHofzjXmOo6XFhvNzd4iS5OJAW1Fm62a7Kkx7tljrOmBaputSulwsnpTgQaA
1JUYaKANBi0AMIYyrdvuSvrebSrfwLZWHzx4cL9lrNjaVqGFvIpWa5H7xP49e/YUl5/wGOobV02O
dKGBba/86le/XGqZMFgajDBQV3ee45w1pTXLnxgWkHShwXuitLT8+IXCVlttrqPOuGdPcXUXHLG1
mhhgTK22Wnqgxrhnj7HOqa1vqy/gVtSWqjOr+8CAtqLNWs6dMhfvKT7cS5oM9Ir3ZMaU3LqmqKGx
xHNi/549e4zHh/W1jWV3+NYrQmhzNjavSpKYPPPWmEYWsIMn6nrAbOuzmfmOmmZXwvM4vM/RO641
m/IAAIDUm42Co9+zZsLB0D6c8In6fFP+QkMJk+HvVk+zyVN3Ek1BeXUBeJweAaTnQNAeaGsxzbQe
3Lv3y4d7NGUGOmUX1zuFJvbZdy/PsRuOlDaTyuTBZTGXlpaWlpebqy12tqipx7bwSq2xTgMhhD4p
+NSkirODzx00Nzuh0NzQ3u8cHTrbdsyUt/Rm7eloHXD7Bf+k0+7mtXrmUyZzvqej+YzbD+B3n2lu
n9CZvxpzjHCFpnwSGINBcNonGFMhAxpDea6nPzlQAn6io3vcDwDCeG+XR2c2aiftdeWHW10skBqG
5lkOaGbV/SqP3T7uBwD/mMPDM/qb383y9Pa6WNYn7KkycAPNveN+AGFyoL2LNVQVfdpQUcDaW+1u
P4B/vOPo4aNdqz5UpOzM6j5ojeZ8X0frwKQAgs/xwqmxFdUwRRKtawROyDaYy0yGPBh7Yf/eQ2dW
x3kIoXvSBudVCVqJybN8z02nkWWC2273AE15BhyTq8IgbqTHxZjL8wCALKwo4uz9nrU/DU9YK83L
ato96xhA8tQNACuDLmdXlWCvr+v1QYo58HFjZb6v+9SgD0DwDb7QMZHy6m1uChXu4Tl2w5HSplKZ
PM/5WJZlfb7J8cFuS027p/BIrYGEhHUa0nk3qdUUAEDRJbW2c/FH0I6VrIo7JZOGqwqsXMKRsiGp
ktLLWtZsFCGEbk5yVXOc9Amkf3Kwt/n44f1f3lNcWtPBGq1djUWahbrYhXfl+LJoJaNjeNazFP6w
PpantSpP/whvMOm1BhPjttsH2FxTgbawTM8OjEi8Swk+3+L7OMf6QaOjNbS+wto3NDp6oa+9waxP
vsm43I3FLt9s/BzLAQDJ6BnINvcsvonb63KB1m/fwVCce2lQrNu9erskMkVnVvdB+bCegeVLwfm8
XMLfpVvPGDtR0+QkTcdsdufwhdMnD9xLS0MQQqlteF5djZSaPLdv/8xNppGEkwtq2+s0zv4xXX17
7appQ+BcvS7aZNaTGkOFge11+NbxCIvf55lc5mHXE+4lT90kAMBYk7k8nsCY4GaGu1tPDfri45WY
Az+zfYcGOO9SNZMp+6rc3BQquO7dOXYzzyl93FSmMOns99KGEl3CZZDOu6Vc2pFbTPfXFO8prjzF
lre2JGYSJZOGiSSWcJDSDUmWBJBY1rJmowghtJZIJBIKhVa9l4dCoXA4nFxYU2IbutBStHhXRmDH
B051TdCFBum5J8x5WIrRLf2R0eZSnI/zuwfGwWAylWsnHW6Pa5jTl5sr9Gz/sNTtPFKrXQw/tHqG
YifkRmtrOXfqYPGevV89eLi5PzkNJWWtDwMC52HB227es8hYXn741PhVDmg9s/CuQeoP1FYYNIm1
MaZ1dibMeThYvhQ0k5u4VbB06x5GR7s7jh766p7i0up2tthivYeWhiCEUtvQvCpFkJo8p6bfv8k0
slS0xNpeKXQdtZw4bjnPVLc1GFbeR/e7eodpo7mwuKJgsneE/ZjP+gspfk6euuNRncD6fD7f5Lij
ucYyoq/vbInPapJzYNuv32NXjJdZGi5JLmzKQDIUFX+vWf8UKiz38d6dYzcTKX38VKaf5YBiEv9V
SefdUq+maI+nPCcH2rs8+ealR+Kks36JnxwYySUcUg1JlwRIXtby8FqNIoTQmiKRiFwuD4fDkUXx
93LJdL3f1eHgjC3tDWVF+jytNq/AVNtYlz8z4kyxZOEDh31Cd6ThgF4DQOaV1dfpPPb+SRAm7G5t
5ZEC1jnGCp7BMcpYXSw4nZNSVVD5tbUlWhLIvAP11dqx3sFZmgbgWE4AIPNMtUd0AKnXri/jSSZP
y6S+Yegb6R1jqusP6DUAwBQ19PR31uq5kV4XU15bptcAaAoqGuvLdLyQWBu57s584Oid0FbVmvJI
ILUltccKV2y+JNn6VkNDm63JpCVBYFmWA5714wZGCN0PNjSvAgAASTOJNJNSk+fwTacRAAAyr6LF
WuS21p1yC8AONh+3C+Vt1pX30YWxXidZ1nis0N0zvPrmzupurD3UxKk18eekqXv1u4R/pPl4D1vc
ZD2ghVQz8GCvi6muP6AngWRKamvj42U9PtCVl+RpSI2+rLZCB6lOTzmFLvaTvofn2M188yzP8zKZ
RIgVi8XWWYNGRwPnS0xVCq4TNU21tRXHbHVW4CbOt584ccYtkLS+oqnebMiFGY/bzS297XFe3+I/
KdbDgUZLK+O/LyUNzctVe/UMCUuhuka7egkHQHzZxuqGpEvSUsta1moUIYTW9Pzzzz///PM0veID
fjQaffXVV+Vy+erSfteJQ3WehtraFnM2BQCcZ9hed/jUeKppx9d7tIZsbOh0Wqh42ZruSQDwj9nH
oTjP5WIBhAnHGJTqnY4U0dbMOHmkZ7iV5j3OjqN1A6xf09RlbLE5R3nO63b2dvQb6vS6Nd7PBc/A
oM9msXfqKg++4JburG+groZuarI5LTQAN9HfVNM8Lgjj9UeZpoX+T5xvrmkdFwASautYd2d8vUct
2pYG+7AVZsb6R7xQtFbrHwkWS6G1oW/YSgHvddktFsf6EmgIobtrY/MqAABlbO03Lv3GO2u+fFxq
8py82TQCGkN9e73OWX9w8Xkbv6v1eHtBj7WlYqKmf6mY4LYPcuVl4ys2e0jRjdLem41zxdSa8HMv
JE/dQOpWnz1+6nhXcY+lpcJ1uHcyxQxcQzdZO4ctFDfhdM2ADgD8I9ZmZ2u93Wnhvc6O7uFiM2xo
Ck3s8707xxJnel6avHTp0gdTQ6O/W88J8/PzXV1dCoWCIIjE46IoqtXq0tJShlmZTSGL2i60wPEv
Hx1Zek/Mqzprr3ZVl54YF7QVfX1lXfsPOUh9Ie11uf1AMgVlje2W3Pbyg4OGzvP1rKXS4vAJANoD
ff3V/eb9DmNfn7Gj9LDDDwCgrejrK+vZb6E7e4ynSg+PmU73VzvM+7sXbolqtFqK9SWELEzZ6fNH
XItv0aT+wBHDZJdD257c0GHWmlyy12vu6zN17D/kYAGALLJdaJw4fMTTeOamjSKE0M2Jojg3N8fz
fPJtTqVSuWXLFsn7U3eOtiph6rvPMQUGxje2cB+MKTt9tnrg4MHee+f5YYTubxzHrYpM7pbbOK/e
L9PIbZm67+Hx3gab+Sey8VQmRdFahmEYRptXUFLVYqtjXK0dK259SubdUq6moAqrzHoSADRF1RXM
eO/g0j8Ayaxf4ioPVmoJh2RDkiUlL8hHazWKEEI3RxBEZmZmjpStW7fe5TDpwUIy5Sc72yr0GgCS
KTpyJJ91Ji18QQg9AG7fvIrTyCfHZlbfbTiVSYHBaj+/8AvncTksla2rlnewA1J5t/4Uqyl4j6ew
oe8sQ5KCu7eufoCFvMWKJJdtrGwpeQmH4JFqSKokSD5htmajCCG0FoIgVuXq0e0guNuPn2pq6nTW
UcDPjA1YajpWb9+LEHpA3KZ5FaeRT44Nr76715eIIIQQQgihu2T16jsxePndqRDIVVna7Tlp+BkR
3V82nFOKpzJFUUyOlGQyGd4QRQghhBBCCwj1jl27Yvz1Dy5fm8/ersbPiei+spnVd7hEBCGEEEII
rZOMpBQQuNu9QGjDMAuKEEIIIYRuK0IG4cB8VHLjL4TuWRgpIYQQQgih24lQZW+VzV5+/92Ll4MY
LaH7x2ZW3yGEEEIIIbReIn/9ejhtW15uJok36dF9BCMlhBBCCCF0W8XCMSqTvtNhUjgcjsVikpuQ
kSR+8+UDhNRqSZ/Pf+srxsAeIYQQQgjdTmIMCEJ+Z7cDC4fDoVDoRz/60eDgoDPBz3/+88LCwmAw
uPoEsqhtdIWhs7ZjJZLfpHlX5VWdHeo0ae52N24TbUXf0OkyZiOnkPpjfZ31+eQmT78pzCkhhBBC
CKHbKCaEwiC7w/smx2KxM2fO7Ny5UxTFxE2bRVG02WxPPPGEWq1efQ4PrhNmi8sPACTJFFZbra0t
nvJDZ3x3suOfbKyz2eL2chs6h2Ro6mOcfjObySmFw2Ge5+eTCAJ+P/FtQGq1D+ptA4QQQgg92MTg
5YsX3/uQU25lVHc2VBJFMSsrKxgMJn5q5Xk+FAoRBJG8JA8AAHie87Esy7Ksz+d2tLePgc6oIyGv
qu9CZ2PL2dHR0dMVWk1BxcnTF0ZHR0cv9LVUFGgAALSmhs5zQ4vH9AtL+yRKJlT1L68NXzhpWChK
FjScG2or0UiflQJjqGrpWyjZVmWIp1KYkmO2c6Ojo6PnOhuP2S6cPaZfsdBwRUqKKTs91FehBW1V
39DpxpOdfX19fefO2o6VMKnq11b1XehsaLSdPXfuwtCFvpYD+lXLGKULkHmmhs6zQ/FcXV9LhZ7U
FLUNSQyfMTZYjxnoVANJrocpa28vpWmj7bytTLvi9E10PsmGI6WPncocOtvZWLbUr03kyLRVfUOn
TatO2UwikixqGx1qM9yaZapMUW1b/NUYHb3Q11Zbol1nvTe/Aon5RIQQQgih+wuh3rFr165dj+7Y
Qt357+IUBEEQhMTb+qFQSBAEnufXcbZGX16pB9+IRwAAki40eE+UlpYfv1DYaqvNddQZ9+wpru6C
I7ZWE6Mpamgs8ZzYv2fPHuPxYX1tY5kWABhTcsnEqv5rywUoPlBIAgCQerOJGul1+VOdJUFb0War
JntqjHv2GGt6oNpmq8oDbUWbtZw7ZS7eU3y4lzQZ6PV+iKTyDWxr9cGDB/dbxoqtbRVa6foBgC40
sO2VX/3ql0stEwZLgzGpe8kF8iparUXuE/v37NlTXH7CY6hvNFGubqfE8BNHlzwQiXpgoK7uPMc5
a0prBnwrTt9c51facKS0lMpUq9WaBJmZmTabbX5+XuIcHlwWc2lpaWl5ubnaYmeLmnpsFfFln6yz
2fKC69blyO6SvCpbu5nqb6o0l5ebK5v6wdza2VCwrn+aa1yBhHwiQgghhBBaNz416RMoqrh9ePHm
vrOnlnE21dsXPn57entdLOsT9lQZuIHm3nE/gDA50N7FGqqKNAInZBvMZSZDHoy9sH/voTM+AKZI
oiSTUNUHv+l18sUVBg0AWVhhhOFel/8mZ62mNZnzPR3NZ9x+AL/7THP7hM5cvsdozvd1tA5MCiD4
HC+cGlv/xZro6B73A4Aw3tvl0ZmNn5OqPw8AwGO3j/sBwD/m8PCMPjlTkVRg0l5XfrjVxQKpYWie
5YBmNMKYxPCXRyc5EKl6JEcjeXHW1/kVNvyc0lIqUyZbjrIIgohGoxRF3TSVKQAA6/N1WzzQYz9S
a7A/5xIYY4O1rGv/oQFWa2qwHisrzKaA8zg7LJZetwBA5pnqm2rLCnMpAN7jPGWx9LoBgKJLam3H
yg3Z/MyYvdnywmDi8lFNQUVDw5HSfBo4j7Ojqal3fB07YSQ31M+0nLdyR0ufcwkAQBY0nLVpm0uP
DgoSXSJ1xTrO2dQ76BYAwOfrtlhyrSYdA+M+AE1BRVPDEWO8P+0Wyxm3kFfV12UcczHlxtyJl1+m
vvWHXfsPDZBVfX2mMadQmE+DhmQdrZYXxova20tpGmznbU2VKwJlhBBCCCF0UzzPJ35eXRKLxVKc
AGPNlZb4DWyBY1n/8oMlPMdyAEAyegayzT3D5uWzvPqMsRM1TbW1FcdsdVbgJs63nzhxxiNZklGy
i1UBCO5eB2erKNSMQUUx76gZE1LUz5DArn7GhWR0DM962MXfWR/L09u3f4aB5YOcz8ut99kYwedb
vHHPsX7QPLr90eT6tbSSA55f1RkSYMWB5AIkra9oqjcbcmHG43ZzdKrhJ4xOLzUQyXokSF6c9XV+
pc3s6CAIgkLxMbaCECad/d66ihId6XIvHotnLY/vPzzCagzHetoay5yHzvjyKlqtRa6a/YddLKk1
WXusjSbHIRcA5BbTHdXFNT5tmbWrtcVXfmh4sSLG1GqrJTtqjIfGhbwya5etld1f42AlO7JMqqHD
3U5oOVBIulzCQk7Q4vJDXpVElwbGe87zrS3tQm+/0+UaG/f5R5qPjiz3B04dNh5yQ0GtzdZW797f
zMUTrzWlpV4y3dj+rcVuUPkGtrry4LifLKjtsbX5Dh6qqys6304dLz3uwmfAEEIIIYQ2IBKJxJ9K
Sjy4aoOHlXiO9fh8N/nQJXAeFry95v3dk/EDGq2WYllGV+juOHroBSCZgrLGdou1bOTgiFRJn6Yi
sTa33c52VRiNYOAGqt0CAEjWL9UjgfOwVKGOgZH4rXRGm0txzun3Odi9dJBmcklS4lMwSVIAfgAg
GWpx7RKp1dIALACAVs9Q7Pmr73+e2r26fi6c+tqkttVkbS1nLQeLHT4BQHugr786xfATRsdB4eqB
pKgHBICVS7CkL84mOr+ZHR02nMpM4mc5oJjExWmCVNYydYrN0x7Pxk0OtHd58s3GpR0c15+yXGH9
OUHpLrGDzx00Nzuh0NzQ3u8cHTrbdsyURwIAY6goYO2tdrcfwD/ecfTw0S5P/N/BQuLVl/iaJeU9
772dKRFCCCGE7g+RSEQul4fD4ciicDgMAKl3dFibb6R3jKmuP6DXAABT1NDT31mr32poaLM1mbQk
CCzLcsCzfkG65OpHMyYddq+hocHA2u2TqeuXfKBj0mGf0B1pOKDXAJB5ZfV1Oo+9f9jRO6GtqjXl
kUBqS2qPFSY9xMF6fKArL8nTkBp9WW2FbvE4lV9bW6Ilgcw7UF+tHesdHJWqf3JTF42kaQCO5eLr
xWqP6ABo6eEnjE5iICnr4UkmT5sYWkhenE10fjOpoQ2nMpNodDRwvsR0oOBKzlq6hVQpNs7rW4yP
WQ8HGi2tjP++/pTlSuvPCabqEumfHOxtHuwFAJIpMNVarV0MV/6cV8tQnHuxdYF1uwEAGFhOvCZa
nffU0eT6l5cihBBCCKFlzz///PPPP0/TKxZpRaPRV199VS6Xb7JS30BdDd3UZHNaaABuor+ppnn8
I8FiKbQ29A1bKeC9LrvF4mABQKKkoDWsqs7R665vInscvpvUL/0x1td7tIZsbOh0WijgPMP2upru
SYDJoxZtS4N92AozY/0jXihadZZ/xNrsbK23Oy2819nRPVy8+KF5Zpw80jPcSvMeZ8fRugEWQKr+
Td3F/6i/qcvYYnOO8pzX7ezt6DfU6XUamPQnDz9xdEkDka5HcA0M+mwWe6eu8mDvTS/Oxju/mUhp
46nMVfKMplzO5Uy8JKRWRydlLQcN0ik2IGl6cVEhnUvzrIcNLwQ3a6UsSX1Vez3dWnfKLcQzjxwA
ALPunKBkSU2J7byVO156fMQPACCw4wOnuirKqw0MuFkO6KVQjdQfOGKY7OqdSXFhkvKenJCcT0QI
PYDUedPVT3mL9RESAAJpv3r9kZd/TM/d7V4hhNAmhEKhu90FAABRFH/9618bjcbk9JFCocjIyFjd
z9C/PfWFL0jX9fuXvvKFl5YLvvHK0/teWVni/XN/8yfn/mb1eRIl51ZUBQCXX/uT3a+tdVaKzlz+
5UtP7VtRGzBPaC+99K2SkwIAAPPHdtPuD6bnVow09PvXju1bbvGlVwAgNxzjZwZOmp8+tqIyifrf
f2nfcv9D5/7kC+dWdS9Fge9+q+S7y4VeOb3UxKrhv//Kvi+8knIg017Jeqb/Zt/uhYv/1sLpm+t8
kk1GShRF8TwT5DliAAAgAElEQVS/FBqJoqhQKFKnMimK1jKMH4DUaPXG6oY6xtXUsSI+pg0NbfXs
iUqLw7ectSRpGsCTmGIT4gERVVhl1ju73YKmqLqCGe8YZKEsXo9vpHesvr7+wIjljNvPFDV0tpe4
qvefWGpL4ATGYD5icraOUcbKAvC0egVI3dCkw+490tAAvo7meOglWdLv6nBwtpb2huYO+5iHA6aw
/Ehd/oyj2Qesv9fVUF9bNmA544aCisb6svGajpRXlsqvrS1xNQ+y2gP11dqx1kEfaBfyiWOTa6TF
EEL3L/Xct09+8CWSmHp7i2c2qvvijS8dcm8LFzz7U7xPghC6/6hUqrvdhQUqlUoUxeRPpzKZbN33
9+8z5HZzS1dhb/WRLrfAFB2t/Qx7/g3/2q8IpSSAUKrunZduswO51TYTKW04lUmBwWo/v/AL53E5
LJWtq5Js7IBU1lI6VQfAezyFDX1nGZIU3L119QMs5C1WtFbK0me3tBpaGrr6KeA85631Az4A8K07
Jyhd0j944lCdp6G2tsWcTQHEk3yHT40LAOxA/VGmaSH3N3G+uaZ1XFju7WrJeU9+OZ/4ghtjJYQe
TFmcjgRw65pObJ0DUOZ99J2nr6lz59VABQGUObOV3/7wK7sFEoirb257+Qc73poDyLnyvR9c3u5+
rPqvs4IQ/srf//YpXfqL1Z8Zzvro1ItT6W9v8Wy/vlut+cHT+cNZ099+emqvLgog9wxtf/GHOd4w
ZH7u8tNPXX1ymwiz6Y6und3DVBj44j+/VG0KZAGAQL75mu7FH9NJX5CHEEJri0ajd7sLa1j/AyP3
ndDvvv9XbX/7t12DdRTwM789+9/+/B/eC639esRiABCL3kMv3SYHcqsRZ3pemrx06dIHU0Ojv1vP
CaIozs3N8TyfHKArlcotW7ZIPsKE1qat6uszdew/tOZGfQihB40yWPW93+3bBsKU5o03M998M+uN
t1QLUYqa+/aLbmMW4RnKeRu4r+wNkbNM0zO6d9JvFiltA8IzxLhn6ddekz3V8d6XSPJXP8mZ3n5l
35ORWUf+0z8NnHzxsi6g+cnrmenGKeN28iff2f3a9otdz/inHJ967S1i1x9/sE9Pvv6dx3smcT5H
CG0Mx3FpaWl3uxcI3RobzikRBJGZmflJS2UihNBtFFZ3P5vvrZz62l7/3n3+vfumQEj/ifXT3e8o
1E96jVkw69A/94+aMMSGw2Mnjew3ntxx4uJNK7ya++L3H/YCqL848SUSrr6+q6VHBcotb34xFPao
coyXdABvv/xY97AC3og8/uIV477gT94UAWD77tnHp7e81f34axdVmFBCCN0SYjQ4d4MHks5MV8Q/
JoqRwBwnyDVZtDLpc6MYCQYiVLpKLvEX/1yIypQ4R7rZsH9uflVxMcoHgyEhIgIQclKlVqsUBIAY
E0KBIB8/qlSp01UKQvrgouj83I1QQlpKpkzTSHVZshPofrKZ1XcEQWBEhBBCt4wykpmufLM7/2f/
CMqc4JNf9D5VPbfvO1PDR/ICOQIAXH1HFQYAkE29SYExkpMTgRWRUgyUKyucVc0CAEB6ThgAglNy
AIAw9dYwBRB7PCcKALufeetHzyyWz40EX9b9YOj9p/beMB26YQKA2YyXmx77mRdzSgihj48ggIhF
hKioUBAAIEaESPyoBDEaiYopntHc2KdPYvUJsXk/JyjoLdmUnIDo/I3rfr8sgyZBCASjVFb2FgUB
UZ6b5QKyTI1C6iC5WB1BEDJqy9aMheApErx2PSCQGVTylEkA4Efm+9nH+AJZdGv5ug/u7b7bnUAI
3QU5RvcPngoFnPqnf0gHp9VvOHNKKue+lD6fpYSpaRJA2Pb4vHJYE4bY9id5AJj2Lk7dZEQJAMpo
bvrKGoNE/KvaAtNKAD5rF68cVIaVwT/+9kc5F3MuTMsBou6XP/v9N+VKtZCTTkxPqcNqwfuzR57t
Uil13JPGqUN7b1R+Pej8oWZT3zGIEPpEk9jfS0aqZGEhKsrlABAJRxSUIhwFEMWoEAjMR0VRFP9/
9u4+ro3zThT9b0aakZA0vHgwtsCJZPtU3rbQpit2W5z2WGkbkZwCaY13c8DdBbcN7LbAtsbZu9C9
B7ytIbeBpAtOTuTcLriu4dwUfFOgrU2ya9xToD2VuumBbNa6aywSg4zNGMwISTMjzdw/xDsS2A62
cfL7ftx+4JnnVXYk/eZ5GVBpDAY67A+EZcXnIw0GSg7O+oWwAoRKMzelo8jC7Iw/JMugijMYNCpQ
QsKsX5ABgFBr9TqaBEUK+PyiQpCkSlGWdSYcCMqaBL1aCUuSQhCUPpERQ6AoCigESc6lqnUJjCRD
jMT5qhQAgFBIivyuhMMABAFKZAYp3kARACHfzaA2wTA3iSZLK/qpSAFfQFJAAYLWGeLUGE5tUhgp
IYTQfXb9f21/q+jyIzb3S+b4t69BimXGTAO8zbr94H9re//sfzxqdx/Ts26YtT0agunktrfUQGmv
i5Bm9j7zVHjcfP1LidFr9r+97S3R94j9UjW95frWG7aPh6ZnU07+YuvYl8csfzb2OMRTe71f+njY
/dInXk78j2MHhdm3trX26SLR0XUPhWESQmhjEAStIWfFMMSpICSG1Nq4sBQGgJAgErokVktCODA1
FQxpGYNenAkxCVpF4HmJSmST1BDyTfEibdAAKDJotrCJqkhmjQ78fkmbyMapQBZnpnyC2kAG/OG4
pOQ4VTh4c4pfGrHJ4bCi0kJYVgAAFEUGQk2rFVkBjUEjzkxPE2o1paYojYYmQY6auCQCVGSBnxbm
BqeitfHxGlKWZWJhGotY/BHk0Mp+6iEo0QlbDGoI+fnA/GQb2nxUT+fn3Jyenr7Jvzce6yk/CCGE
7iYh7jcumjUHzLv9D6cJiSTt/p9pL7y8dVwCkLS/H9Bp02Y//qf8Rx8OX31rW/Oxh//NDyDR/84J
jzwy+9FPzWrf2/Y6P/NICv2b15Pf0/r+yxO8/uqWM/9TKwOApP2Ni9pumbE+4jOnkJ6+h577p8Sb
Nw2/8YR3Z0z95/88Y0mk3ure/cOeuMmLSW4qkLH3xmOPTj+ynXj7n3f+4xmD/wN7OhRC6G4RRVGt
Xn4jXgkJEkHH0aGgpKLVsiAQcVpSEsJqLU1p46hwMBAIBIKiFAZaQ4EsioqaJmUxGKL1GkIOy4RG
r1ODrMiSKGvjaEUOKxAWJZJWS0FBEoVgIBAIirICBKWWRVkTR4McVlRqWZRUGnphRZwsCWGVhiYX
Y5L5yIfU6Ax6LUUSSkgMzPolkqJVRNTE+YJhUSITk7cw+jgqLIqg1ccRihJpQh1pQpaEsEpLgySE
1ZQsruinVkOKs76AKIWAioujiKgP2UGbwG2ffYcQQgghhFBUPM+veOiNEg7yfsLAaGQfL2m1SiAc
x2jCvhlBGx+n+Hk/aHQaSq2C2ZmANt5Ahny+cByjAYH3kwaGJgFAkWWFIAnZzwdoxqAmQAkH+ICa
iQvxflXCFr0aIHLytyz6bgbUBgNFAijhAB+kGP3CbI0cnPEpOmZhpZsi+WclSq+FYFCmdRoVQZAE
SRKhmRs+tUEbFlYlMsx82CWLvC+sY+JUBBAqJTB1U9LEMxpSCc3OCJp4vZqAuR914J8RaD0ZCCzv
Z1gm1SpZEsRgMCCE1QZGh5NKmxPu1kUIIYQQQnedWktIgWCY0iwEBbIUJuIMeg2lhpAQVgAACAVA
ASBISq0IUlgBUMJBny8YjjLtoqLVcsAfECVJCvqmb0z7wypaLQcjpUKCuHxaXKXVkaI/IIUVAFDC
ot8vEbSaIEgIBf0BKSwrshwSAoEQoVaT0RKXHqK3+FOYjNPT4WBAUgAIkghLsgIgh4TQQh5iVT9D
Yf/0lC9EqDUGRk9F2deFNgvcp4QQQgghhDZMtG/+iqIooNaSYb/aQCxkUMfp1Pz0VJAkSBVFqcIh
WVGpKcLP8woTr2donp8JKkCotEy8GsKhxdrnKlAb4uN4fuamAkDShngtqYCBoWf4GQEIUqUilnVG
IeiEBIXnfTdnI6eE6xMMFIRllT6B8fM8f1OBuWQ9qchREuXwfF1K5H+RuhVQ6/TkdCAYYuLidOoZ
fkYkSTWtVi0+JnVlP1UK6CmevzlNEECo9QxNKDJGS5sSrr5DCCGEEEIbg+d5jWb5Kd+EmlIrISms
ECqKUimSGFKApGhVWJQUFaVWzUcdBKGEpDCoKYoEWZLChEqtUhEEKEo4LIVlINW0ShYlGWDhR4Kc
ywOKHAqFZAUIUq1WkZFghoBwJPsCUqVWqSI7lRQ5HArNzWORarWanD+mbi45auL8iFQURYTEhWkj
QkVRpCJJIVCp1SqSUBRZAYIISxLMjXNlP+dqVxQAZXndaFPBOSWEEEIIIXTXKCEpcpKmEpbEuYkW
WYqsjQtLUnhF9pAkwnx2eelFObSwnm7+R0VekQcUOSTFPoxGDofkle1Fyoi3lDh/Lbz80uLAwqEV
45kb58p+rlU72kRwnxJCCCGEEEIIrYRzSgghhBBCaMOEw6unbRB6IGGkhBBCCCGENszKfUoIPbBw
9R1CCG12Tz311Cc/+cn73QuEEELowwXnlBBCaFOQJEmW5dWn6375y192uVy//vWvzWbz/egXQggh
9CGFc0oIIXT/SZIUCARee+21Cxcu9C3xq1/96p133unq6jKZTCvLsFllTR3nnU6n0+k839FUts9I
AwCAsaij/7Sd3dgO0pailvNOp9PZkhO1ZlNRV3+L3bCyizmn+zsKjBvbFYTQg0Txj10e89/uIdh3
VgoAQA5MXvFcunTp0p0VR2iZB35OSbdVkK5rpPvdDYQQej9kWT5z5ozZbNZqtcFgkCAIANBoNDU1
Na+//vqOHTsiKUuYihzN+VxzbWGfmwfGYiurbWxhi/OODt+Vc2dpc05+BtdYeKB7nPPdjQYQQmgj
KMEpXk7YsTNJg5MBaAPc5j+jhBs/eM312oo/J94zUQAJkz94zfXaDyYT7k5HoxH2HRk6UXN9671r
ESGE7gpFURITE7VabXFxcVxcXDAYlGX58OHD3/ve9xwOh0qlWlnAYN5r5vua2y+4R73eUfeFk9XV
nW4wz833aJisoqaufqfT2d/RsN9EAwCw1qKGyBTU+Y6mIisLprKu/rkZItp67LzzfFU6DQBgLOjo
b1k6J0VbylpaClPBXNlyujaDjlLVMuy+w46ufqez/6yjLIuZ29htSC84dnquSENBugEATEUd51tq
GrqcTufpgk/aq1rO9s9ft9Ab/gojhD4kFFBpaAyT0Ma4s39Jmrf6k/rn//T1MdP3ZU6HCtr+VMSP
U4TQB4MkSUePHv3xj39cWlpK0/Sbb77Z1NT0mc985umnn46S2zfcdk7IbWiuKsrJSjcaAHyD9RVH
e7xzl1Ntqb1Hsvfa8uvHs6pr7SwYC5ocxXRbqS0z01baBsUORxHV28dZ7OkGANq8z8oAY7UaAYC1
5hjdnS5usS3RffzQobZJwVX+2BNHBsUoVS1ZGWgsaKqzTx4/sDfzsdJOZm8qAACw9kZHWWpvuS0z
c29xK5Q4Gu0sANBMhnX8aHZ2bs2Vr9fs8xzNy8zMtB0ZsJTV5OCKPYQ+OJSw79p7I5cujYxenRHn
lsQpIj/x7silS5dG3p3glyaOjly6NPLeNV84khbmr3jGZyNPmQ1MeN6dWnPaXAkH/SFQEWvlQeg2
3NHqu2uJrf+4Y3zNLAmfvPKtZ649kqLAtL63defJAQ2YRl96flLs2/ZvqZzNEhLHktra9B8p9D6a
FhY97MvPmweuRy8oJVz/wavvpr697Q1p6vFHRHo2ru/V3S8PKE+9+B8fB4CUiR++5vth8U4ovFxs
n00EAJF+66fmH/6M8d/J2BBC6P4IBoNPP/10fX19S0uLIAinTp3atm3bT37yk9nZ2WjZuQvfPZC/
L7cwN7+quDaVEcYHOo83Hu8djXyL8Jxo7HH7AHx9nW6hysI+zObv8ZzIPeP2AYD7TH1zfnfxE3L1
IN9s30NfGLdaxb7Oi1Z7BnuSs+amerqXBkorGO2rq8o19fFzV235e7wnj/R6RYDR3sbmElshAJtV
ZOV7CtuHfQAw2tPcWtJZlMVWA4Cnvd3FccD7eTHZmp9jF/sGhl7Ie3RjX1mE0P2lSAKdZt5Fi9Nj
3mu8bke8GkL8xKTIpO5MpMXpMe8EH/dQvBrC/LVJMX4uccxHAgCodInU5NRsWM8Q/qmAOpGNeYtc
8Y+NeIMA9JaHtBgqoQ1yR3NKKdPFfzPyN3N/PIV/smpGKXXiu9+deESv//nptL7ZWfu33YUmea6o
bRreMP3w5xo6bar42avUG+Yf/jyONnPfLOSpNQvSH580e9Kefyl5TB+wffO9j1Hqt37KXgMA0fDz
1u1XrJ5v22dnex/+4fOmn3ukRw6Ofnm+IEIIPRAEQVCpVH/4wx8URTl58iRJkq+88kooFAoEAtEL
0L7RC+31Rw7lPZa5N7v0BGera63JMszVxc3ddxVFEQAo1swKnGch/OG8nMAYtZ7uQcFqtxitdtbd
2dnDpdrTjRk5Fq5n0ButwUirUatiqLmrjNkA3Di/cHGcB6BYCwvJ+W0DkdMnnJ3lqcBYWApA4Dke
AEB0HS2t7aPthx2dfQPnTx/bj8vvEPoAITRJ8VqSILXxSZTkExUARfSFqMXEUCRR8EmLifRctKPS
JWqkKZ8Ymp0SqUR97Fv8hC5t986Htmqlm9MCnuWANsidrb4THnl06tG5P9zej4Sp5ZdTbdfMAG+/
uvvkz7a//Py2ayDavuSfy/P2jtYLiQNvJF4DAE/qq79IHPjF1jEAeqtErV1wbPurbVv+cGH7L8YA
aHGrTj06kHQdAKb1b/wi8WZYAYC0j09/LBX+7eTHiv88vW0Ul6gihB4koVDI7/dLonj69GkA+NrX
vrZr165AICBJUdY3G/Y5+s83ZM2fNSdywz3HWy8yGSv3DM2ReA+nYc0LF1ljqob38j53zzBY7fZc
42iv2+Ma4C25+QUWrnsgdqAEYvSqpIWrPmBTmbmLDMsykdZhvDk/c54tN/fQcfeSYdFGM+M+UXHw
icy92cXN3N7qOlx+hxCKIOOS4sJTN7gbIW2SbtWezRV5aUMCLUt4sxxtlDsKJ65t+/afW/98/k9Z
m3b5x7icuDUMAB//9h9ee8312g8nUgD0qaFIwDM7rZIAQFJLADBLSwAgEhIA0DK1ZkGYpacBAEgx
2p6om78zv9QfJ6bN2A+OPnvs7dYT/9/jqfifCULoQRIKhVQqlSCKFovl+PHjFRUVwWAQAAiCWP2Q
JZ/rRC9va2iuysmymIxGU7q9rKZ8z+RgX4wY593ezovmkqr9FgMAbcqpLDd7OrtHQbzY6TYWlqRz
fUOc6LkwpLEV7xX7+kbX6udo9KrmePvahowllTkmGmjjvrKyPQAA3sH2Iba4cr/FAABsVlVbd0vZ
slkjxlrV5Ki1G2kQOY7jQeB8d+UIP4TQ/aAIUzNBWZGFmSmJMmgIAII2qKVIYnBmSlIbaAKA0Bgo
aWpGiCSKC297pDZRr8z6ZF1i3PpfWwmSIGDVWyZCd+hunBJOTl9XAYTdr370H99SUTpxq564Pqbz
J94EAIBlS0elWykIsdfLz6N0MP7GQ3/bqqXM/CO2sYOPzhR+2d/3sgFPD0cIPSiee+655557jmEY
AMjLywuHw3q9PhwO/+QnP4ly9p3PdfRguaeqrKwhP1kDALxnoLP80PGYZ4R72ytK6Zqqlr5qTSRv
6clRAPANdQ7DXpPLxQGIF3uHINvS17vGjFLMqhbOdPCeKa9g6mraBmo1k0OdFy4KVgDw9pSXMrW1
jr5qBoC/2F1bWj8sGq0LVXI91dUZdVUdA3UaEMZdndXVveu/8SOEHhAEpRGve0ZEUOuTjYwKAEDN
bGP93vHLNxRCrU82MmoAABWTwvq9Vy7fIGiDgSIWvsQRGoOG8FMJmlvZfkSoIBQQZb0W1xahDUCc
aXtl9PLly++O9TvfWT97wo0fvHrZDJq3+nWLW4wl/euvbhvVTf7g1VGzx/TM3ybfTL364g/H0qbj
X/9pPLXX+6WPh90vfeKoZ/yl5yep/j0l/2iQtl598aWxtLf/08GjCVLCOgX//q3pH7z6rtm9s/jv
t/hB2veD//0tc9xLz3zsgp8/0uL+U5r+X70p/Tevf+fPhNm3trX26fR/Mlb8qOhpTf/bX2ju4iuH
EEIbR1GUmzdvCoKwevqIoqikpCSSxE99hNADgOd5vV6/oVWGfePvcpo0U+zTHJZQhKlx741gGLTG
XWk6PNoBvT93NqckPPKosORX8Xet25Yt1hjfXvu89O2i619+ZgZE+q3Xd790gYJVz5ePImrBWE9o
kuJ+8UbcI18K/Omj07/72z3HKM8z/2XiW48AiOq3e3e//AaGSQihBwZBEAkJCYqirI6USJJc9dhZ
hBD6cFD8YyNegYrfvv0Wz3khNElp5qS72yn04XGbc0oIIYQQQgjFcBfmlBC6b3A5B0IIIYQQQgit
hJESQgghhBBCCK2EkRJCCCGEEEIIrYSREkIIIYQQ+nBQ/KHLYzI+cAndmrvxPCWEEEIIIYQ2H0Kn
3qm749KSJFEUFetq2M9NTM4EJBkASCouPnkbq1v1NDz0QMFICSGEEEIIofUFAoFgMBgXF6dWr/oK
rQSuT/Cqrak79RoSZHH2+vjEpM68LQ6f8vAgw0gJIYQ2BUmSZFmO+jwlmr7FB4l8oNFGI+31+u5J
qTtzL9tC6INN8YcuTyikolAGUuJl7XZ6ux4Uf2jEK0cyqLWqrdtVkRkbxR+6fB30pOwTQZ1ImVgC
AEQ+5L0uh4AwGGBWUu1MI2GhuFa9K40kFhriiASVPB1QQE1uS1Mb1At9GPNMJZlXPr5WURS/30+S
ZFxcnEq1ZMqIUFEqIgTEkgS1CvxjI5O0geB5EdSGrcYUhiYAwr6r73Lk9odSNMK1967K7MPbDao1
G0X3C+5TQgih+0+SpEAg8Nprr124cKFviTfffDMjI8Pv90cpw2aVNXWcdzqdTqfzfEdT2T7jhsdT
xqKO/tN2do0MBR39p3PWyLBRaMvhjpbKPbc5wjsrFcvag93YthBCoCK3sUQwSGxLJoK8ogAQOvXu
3fTu3fTuXXSKRr7GLd5ZUkKKKpneZVbrZFAAICxfm1QMqfQus5oW5rJFiu8ykiu+/CqiTG6hdu2i
tmuUyalVd6uik2V5dnbW5/PJsjyfRm9JTQpff+/yyKVLI5ffux5OSt1CA4AiBamt5l07U+PFyWu+
MACAypCSovFPXJ28OuHXpqQYcInepoVzSncEbxwihDaULMtnzpzZuXOnoigEsXgvUVEUh8PxiU98
QqdbsbDeVORozueaawv73DwwFltZbWMLW5x3dFi8l/3m+uqr3eP8PWiJZhnNvSoVwzqD3dC2EEIE
SVBqIEmCUhNKWAEgAGB2Uro+o4Qj0Yx2LhEACI1qSxwQQG7dCgCgCLJEqYxaIICITyKmbq7ZkEaV
oAUCiDgGlOklderS1tvRJMtyKBSan/YP8VdvyPGppi1xagj5b3gnrvK6NDUQmqR4LUmANj6Jmp4R
FEZHAJD6lBTfqNevM5r0SyO3W2gU3Uv3dE6JtRbUOLoid0DPdzkO201r3XwzFXX1t9gNt9sIbSlq
Oe90Op0td+s2J944RAhtNEVREhMT/X6/IAjBeYIgBAIBgiBWL8kDg3mvme9rbr/gHvV6R90XTlZX
d7rBHHnbM6QXHDt9PjLX1FCQbgAAoE32qpaufqfT6XT2dzQUWGgAU1HH+Zaahi6n03m6wGhIL2hY
KLXfMvcep2Gyipq6+iOl9q9812ZtVXWHrQyAsajjfEtVjaPr7Nnz/UvLL+lytPpZa1FDx1xiU5GV
hahVsTnNzdkMY3Occ+QYow/wFkotYbRXtZztn69gvq9Rerj0JTqUtzjY/tM1x1o6Ojo6znY5Du9j
YUVb0etHCN0OAgiCAAIWbh4pwdB1H7H1YXr3bnrnNmLp+jSCgDterrZQliBuqw6NRsMwzOLqaEXk
JXViUpyaACDUuqQkSuLF2DNUckiSQZZCcswcaBO4d5GSMaepw1HEDjWW52Zn5xZWt/P2urbmlZ9e
7xttzsnP4BoLs23lPdwG173QBt44RAhtOFEURVEMLhEIBERRFAQhSm7fcNs5IbehuaooJyvdaADw
DdZXHO3xAgBrb3SUpfaW2zIz9xa3Qomj0c6CqaCxLst9NC8zM3Nv7lGPtbLGzgIAzWRYx49mZ+ce
OZ/R6ChjekptmZm28j5jZVNleuTjP9WW2nske68tv348q7p2jaV4TIaVay584onHsqsvWqurbMtz
svYo9RsLmhzFdFupLTPTVtoGxQ5HkSlaVdBTXn6O5/tKs0t7vNEHuG6pJQxZVTX7PEfzMjMzbUcG
LGU1OcZYPVz6Ev1yZrEKzR4r11h84MCBvOqhvXVNBfTStqLXjxB6vxRQCIIkQQnLN26stUyO0JCU
FJ4OgiIrM7e6oG5Va/6xy2P+aGVpmmYYRqPRLI+t1FpSnJoKhBQAJRSYmhJJrZoAUISpmaCsyMLM
lEQZ6EiJED/ByQkpCTI3wYduqVF0X9yrSMmQVVm1d7zxUMXxC8NejvO6B9urSxtdYLVEPkuj3FZc
IsrV5bdC5/LRlrKWlsJUMFe2nK7NoNctWFoWuQfZcfbs+f6zLYf3ZRU1nO46299//nRVFgsQ7S7s
GjcpEULozgmxRcvOXfjugfz6PsjIr2ru7nP2dzXNzdOzWUVWvqe+fdgHII72NLdy1qIsdrSzPPdQ
o4sD2sAyAscDw0am7D3t7S6O84qfKEjnOhs73T4A3/CJikMVrZ7IOj7PicYet0/0jfZ1ugWjhY09
P+Lp7Bz2AYBvqNcjsJZlSwJYa5T6jfb8PZ4T9WfcPgCf+0x980Vzfq5p3aqiDnC9UkuJIi8mW/Nz
7FYTDLnD/G8AACAASURBVL2Q9+jBM94YPVz6EnmlpX9bF0+cHPYBgDjc3uox59uM69WPEHq/CK2K
1cjjl8WR92TQrzkBpCJTkgnfuDjiCYlaYuHwhkuXxBGvLAdDI5fES3fyVCWKogwGg1arjTL/RNBb
jFs1gYnRkUuXRkYnApqtxi00ABCURrzmGbk8NkOxKYwaACDsuzYZZraxDLuNCc1vXgIAUARfSD0f
TaFN4B7tU6L35GRpPI19Sz8sxNH2itLIj8aCJkcxV1dqO+MGy/46h8MB+Qf65jPGuEozGdbx0uzs
cZqfr1Z0Hz90iO5q2XP0sdJBcf2CenvzMxlWrrj4iWExvaqrtbGmu/xg3hHeVNTWWVXQlnccChrr
slyleYdcHG2017XV1dh7D5aXZ51r1hzJPuK6p9sBEEIfbIIgkCs3GgMALNkuvBztG73QXn+hHQBo
Nt1eVlfXyvK5RzkLC8n5bQP5iznHLazBZSyorcy3psKkx+3mmYVWeY4HADAYWQ3v5ube1UTO7QYA
YAAEYSFRXPs9bzHnfAcBFhKi1U+nm1mB8yxM/3NeTmCMDMVHrWrhRzbqACluzVLLiK6jpbVlZQWH
HeV1wF8813z06Bl39FeAXXyJllfh9c4n8pwPDGaGHlq7fvzAQOg2zD/1iFzy/wAEEb+dip/Pk7wy
8zI0ozYxAArMXpOCGgLmTnRY1dKSsivqibZlKC4ubq1e00zKDiZlaZICQKgMKWkp25amqgypOyP3
cjTJpp2L6SF+MhCXnIynCGwe92hOiaaTNcB5YyyHi31bce2r8/f5Ynz+rF9QgoV7kKLH5YXJC+0u
DkD0Dnt4xsjQEPMuLEIIbbBQKBR5UseKBXiSJK3ObNjn6D/fkDX/hiRywz3HWy8yGVZW5D0cjDfn
Z86z5eYeOs7Z6hpz+eMH9mY++sSBQ/Xdq96NfRwPzMKEEW3ZX1Zg3ci3u2j107yH07DmhUUErDFV
w3v5KMMFWAy6og/QvU6pZWijmXGfqDj4RObe7OJmbm91XY7xNl8B2micjzaNFlbDXeTFxbai1o8Q
uqciM0iXRsRrEpmy5fZ2IN036vgdppQ4PJh6E7lHfxkiP86DYeFzZQ7NsgYAoNnotxXnM8W6GvU+
39Lab6WgIPBzH24CCCIvLPwSqYOxFNR19Dud5zuaq/ItK/qPEEIbJxQKqVQqSZJC8yIxUtQTHXyu
E728raG5KifLYjIaTen2spryPZODfV7wDrYPscWV+y0GAGCzqtq6W8oseoYB4DleBKBN9rISM8Dy
NzRusN3F5pblWAwAhvSCmsocs7CRsyBR6x/t7bxoLqnabzEA0KacynKzp7N7NFYVAs2ajCwdfYAx
1wTOl1qKsVY1OWrtRhpEjuN4EDifeJuvgGZPWdk+Iw20aX9lsXGo/YJ3SVtR60cI3VMLR4rv3KG6
j7EHoUvbiQ9HeoDdq0jJ0+vi9+Tbl91VMxU4znUfs9LimrcV1766Vpu3WHCNzy/WHv0uLH7kIYQ2
3HPPPUdRVHJyMjsvOTmZYZi2trZlDzeM8LmOHiw/waWXNbR1dnd3tlbZoLP8UP2wCODtKS89IRY6
+pxO57m6dFdtaf3wu921re4sR5+z/3xHbdbwie5JxmJeNmPC9VRWtIqFLX1OZ1+z3VNf2rix541H
rd/bXlHaCoUtfU7nQGsx3VleejJGoCR6ei54M6o7W8osdLQBRu/r0lLL+lJd3cse7hhwOp0dlcnd
1dW93O2+ApPDdEnbgHOgrVBsrSjv4Za2xUetHyGE0IOGONP2yujly5ffHet3vnNXWzLud3RUmwab
60/0DnPApttLqsqzvHUHDp3xgrHgdHcJV1dafcYtmnLqWmvNrfkH+mxdbbbj2Yd6mTWvrnioEW05
vGSf0joFjUUdHfYTeQd7OQDDvpZzla7CvOOjALT12LkGKM8+ntHWXTJUmnvU5aNN9hpHXbbYmp93
gqnpcphPFB7pGeUwZkIIbQRFUW7evCkIwurpI4qikpKSom5hQvfH0s8OhNByPM/r9fr73QuENsa9
2zPmPVNe6CurLKltK2cAgB93dVcXHu/1AgB42ytK6Zqqlr5qDfCegchtxYWNSmtfXavJOy24UEF3
bautwdHnFPhxd1/7iW5rucVsEF09F7yO6s4Wc+GBF3CTLkJoAxAEkZCQoCjK6kiJJMnbfMgHQggh
hDbAvZtTQgghhD4IcE4JodhwTgl9kOA5hAghhNDt8J488OjJ+90JhB4Qin9sxBsElSZhW2oyHuuG
HjD4LxYhhBBCCN0dhC5t9+6dOxJkfip4+096Rej+wkgJIYQQQgjdRSStUQHGSejBg5ESQgghhBC6
qwgVhPzBMEZL6MGCkRJCCCGEELqbCO2WRPLmuGfk0pgfoyX04MBICSGENrunnnrqk5/85P3uBUII
3SlFmL4pabc+tHN3mg6feoAeHHj2HUIIbQqSJMmyvPp5Sl/+8pddLtevf/1rs9l8P/qFEELvnyzJ
dIKBxjv06MFyHyKl3Nzc7u7ue98uQghtWpIkBQKBn/3sZykpKUuDJZIkn3nmma6urk996lPLCtDW
hvMOm2Z5LUJf6WNHXLf+POyozwUyFXW12Y5nH+r13clAEEIoCkUBgiBxNgk9aHBOCSGE7j9Zls+c
OWM2m7VabTAYJAgCADQaTU1Nzeuvv75jx45IygpDtflHBpcGNAJ362ESQgjdK7IYCIEKAyX0wMFZ
UIQQuv8URUlMTNRqtcXFxXFxccFgUJblw4cPf+9733M4HCqVKmopkfNyy/gAAIxFHedbqmocXWfP
nu8/39Gw30IDAG2yV7V09TudTqezv6OhwEIDAICG2VfmOOt0OvvPthzeZ1xevyG94Njp806n03m+
o6Eg3bCyfaO9quVs//z1uRqBtRY1dMyVaiqysgBgKurqb7HPlWdzTvd3FBjBVNRxvqWmocvpdJ4u
MBrSCxoW2to/V9c6HZgfacfZs+f7z7Yc3pdV1HC662x///nTVVksxBi1saij/3TNsZaOjo6Os12O
w/vY2GNBCL1fin/s0qXLYz51YpIWQyX0oMFICSGENgVJko4ePfrjH/+4tLSUpuk333yzqanpM5/5
zNNPP33bdTEZVq658IknHsuuvmitrrKxYCporMtyH83LzMzcm3vUY62ssbMAAJC6l+ku3Zu5t/A4
l9vYULAkVmLtjY6y1N5yW2bm3uJWKHE0zhWZY8iqqtnnOZqXmZlpOzJgKavJMQKAsaDJUUy3ldoy
M22lbVDscBSZYnWTZjKs40ezs3OPnM9odJQxPaW2zExbeZ+xsqkynV63AwsjLX7iiezSC8bCxhpz
Z0XeE48VtmryqwpMEHPUmj1WrrH4wIEDedVDe+uaCozRx4IQev8IXdru3bt3m9OSNBgooQfO5o2U
wuFwMBj0+/2BQECSpPvcG9poXHU3FSGENlAwGHz66adpmm5pafnmN7/5la98Zdu2bT/5yU9mZ2dj
FbE2DziXOFuTPj8V4unsHPYBgG+o1yOwFgOMdpbnHmp0cUAbWEbgeGDYyJuap7mxZ1QEcbSnudWz
J9+2ECGwWUVWvqe+fdgHkauctShraaQiiryYbM3PsVtNMPRC3qMHz3gBjPb8PZ4T9WfcPgCf+0x9
80Vzfm7MUAk87e0ujvOKnyhI5zobO90+AN/wiYpDFa0ecd0OLB2p6HF5YfJCu4sDEL3DHp4xMnTM
UQsXT5wc9gGAONze6jHn27ZEGwtCCKEPuU26T8nv9xuNxq9+9avZ2dlvv/32qVOnBgcHGYYhyaih
HZ1ec641V+gszqsfvguL9GnL4Y6m1KN5R1xi9A3QG4DNOd1V3HPgQDt+OiP0ISUIgk6n+8Mf/pCR
kXHy5Em1Wv3KK6+EQqFAIBCryFBtYbWLX/ydn9+mJKzcsETTjKWgtjLfmgqTHrebZxaKjHvn3804
Dw8GI0NFfqdZCwvJ+W0D+Yu1jFtYGhZqFl1HS2vLygoOO8rrgL94rvno0TMe1swKnGfhDZLzcgJj
ZKglnVw2Zp7jAQAMRlbDu+drFjm3G4C2rNeByEj5+TGDIPLCwi+RQcQYtej1zveI53xgMGuHVo/F
jXu+EELoQ24zRkp+v/8LX/jCiy++qFarASA1NfXxxx9vb28/duyYVquNUsBgLbbxfQO0vSSrueLC
XTiuiWYZzfq5EELofQiFQn6/X0WSp0+ffvrpp7/2ta/t2rUrEAhEPcshQuQ8Xu8tfZ/fYq9rzOWq
D+zt9YoAxv0d3cWRCzTD0AAiAACTygich5Mi8YTIezgYb8/POzkayWkwGjXc0tZoo5lxn6g4+ALQ
bHpOTXN1Xc7gAZeH02SYWRiM3PVhjakavo+XAICmNQA+AKBZzcp3VB/HA7MQBdGW/SXW0da+9Tow
9yLEHjUbc9RGIwPAAQAYLayGOxdkzVtXjQXnlRBC6ENu062+C4fDW7du/f73vx8KhV566SWr1VpZ
WXnlypUnn3xy//79wWBwdRHWVpLFdTY3nuSsJfbFpeXrbs+NttM3yrbjj+Y0N2czjM1xzhFZuK5h
soqauvojpfabaIAYO5hXbFZevS+Z3XfY0dXvdPafdZRlYTCG0IdbKBRSqVSCKFosluPHj1dUVETe
8QiCWP2QpQiaNbLLxTqIgGYYAJ7jRQDaZC8rMQNEAiJNRlG+hQYAQ1ZxATvcfmFhOsg72D7EFlfu
txgAgM2qautuKVv2TspYq5octXYjDSLHcTwInE+E0d7Oi+aSqv0WAwBtyqksN3s6u0c5jxfMuftM
BtpgySkrMK/sHjfY7mJzy3IsBgBDekFNZY5ZENftwLpij3pPWdk+Iw20aX9lsXGo/cJstLEghBD6
kNt0kZIkSV/5yldCodDLL7/8r//6r6dPnzaZTPX19eFweN++fdFWoRjtxRZ3a8/oaO+JYXPJfEi0
/vbcmPubV5juKS8/x/N9pdmlPZEbjKm21N4j2Xtt+fXjWdW1djbWDuYVm5VX7ks2FjTV2SePH9ib
+VhpJ7M3dUNfR4TQg+a5556jKCo5OTkxMTEvL0+v1ycnJzMM09bWFuvsu4zaznPLnI4VSlztrm11
Zzn6nP3nO2qzhk90TzIWswEABI8no6qjq+tsR6Wxs7yyZ8nCYm9PeekJsdDR53Q6z9Wlu2pLl69v
5nqqq3vZwx0DTqezozK5u7q6lwPwtleUtkJhS5/TOdBaTHeWl54cBd9gXX0fW97ZN3CuweY+ObBq
MR7XU1nRKha29Dmdfc12T31p47C4bgfW5Y01apgcpkvaBpwDbYVia0V5Dxd9LAghhD7ciDNtr4xe
vnz53bF+5zv3psm1nzw7Ozvb1taWmpr6xBNPFBUVAQBBED/60Y/efPPNcDj8J3/yJ9u3b1+an7Yc
7nCYG3MrLvjAkNXQXQfVuUcGfUBbj51zZLiaj7f3DQyNRr05GFnJwYm0wWi2Fjc0ZnXm5/XZljxy
cX7vUCd77Fyz5kj23D6l7tzO3Mh+IsO+lnNVQ4dKuLozC2kAxv2nu4sH88v55s7c9twD7V5gc06f
KxsuzKuPLHs3FXV12k/8ZU/xj/MXShn3d3QXLtaBEPpwURTl5s2bgiCsnj6iKCopKSnGLk10++7W
dlOEEAAAz/OR3RMIfQBsun/KBEG88847ycnJn/70p994441wOKxSqR5++OFgMOj1eld9V6AzinJT
Gaaxz7mQVGJjB3u4aFuNl2/PjbXTd12LW6VFUQQAKuYO5rnNylE3Rv9R2i4DcOP8QqHxGDueEUIf
AgRBJCQkKIqyOlIiSXKNrUoIIbTZaFbtRUToAbXpblKqVKquri4A+PrXv56UlPT73/8+FAp97Wtf
E0Xxt7/97cr/9gxZJTY4V5mbPSe3tG08o6TAtLjV+InMvdnFzdze6roVy+9Ye11jLn/8wN7MR584
cKi+e/HmIk3PNbK47XjN9R4S7+E0rHlh6R5rTNXwXn7xYPPIxujm/Mx5ttzcQ03DIz5gU+cDNIZl
bz1WQwh9ABEEQZKkahUMkxBCCKH7YtNFSjRN/+Y3v+nt7d2yZcs//MM//O53v3vllVc++clPTk1N
nTp1Sq/XL81stJdY+d6TgwtPqfe62ts9qfklVjrqVuNlDUXd6Rtr27FAsyZjrL3S70bdwbwkQ9R9
yVxf25CxpDLHRANt3FdWtmeDXkGEEEJr8J488CguvUMIIbS+TRcpRZagPP/88//0T/80Ojqq0Whm
ZmbOnTv3zW9+c3Z2dvnKV1N+8Z7J3k7P0hDI29s6xGSX2GC97bnRd/pG3XYsenoueDOqO2MeuxR1
B/OyDNH2JXvPlFe0RjYVtxSLFy4KG/ICIoQQQghtFop/7PKYP/r5nbdQ9lLE+6jhDlp/P32+xTrf
bxNyYPKK5/28MujWbLoTHSLC4fDs7GwwGJQkSaVSaTQavV5PURSuQkEIIYQQ2rR4nl+2Akjxj3mm
ksxpuhXf4GKlr3brOTeq7Ptp8d7UqfjHPZNxqTuSNJtuzuMDZtOd6BChUqkYhjEY5h5sRBAExkgI
IYQQQggBgAIqDY1h0l23SSMlwOgIIYQQQugDQJEDN8avTQfCoDZsS9umF8dGvEEAAPCOXALQGnel
6YjIgrSJMKmEKYNG4gXtdtN2/QaEAkrYd+29qz4R1Ppk47Z4mgAAReSvXb3ukxSCMmzdnsIsJHqv
+0JAGwxzp5CG+Svv8UkPp+pJUAITo9fp1IeTbuv511HqVPzzw58fOAAowuS7V2H7w8kaYsmPsYcU
9IdAhd+S74HNGykhhBBCCKEHniL6ybSHdmkU/8SV61NB/da03btjrEZTJWxLuDl+U5+aHJ7gBUUf
9/6jAUUS6DTzLlqcHvNe43U74tUQ4icmRSZ1ZyItTo95J/i4h+LVEOavTYrxc4ljPhIAQKVLpCan
ZsN6hvBPBdSJsc72iiVanYRuYfiLGQma0cOETwINLfn8oN9Gxxr4fKBFb3lIi6HS3YfTdgghhBBC
6K4hNEkJWhVBqOMYtSLKa+Uk1ZSaJEk1pSaV8MYcVUBokuK1JEFq45MoyScqAIroC1GLiaFIouCT
FhPnAxWVLlEjTfnE0OyUSCXqb3OCIXqd0XtJMzrFHwgpoYBf0TGx8xK6tN07H9qqlW5OC3iWw92H
kRJCCCGEELprCIIk5n5YbxYksvUiyv6LVQ/lvkfIuKS48NQN7kZIm6RT3cWGCJrRyXxA8PPyWoFS
pFO0IYGWpbViTrRBMFJCCCGEEEL3GKGCsCDeSgBEUkQosDrnLR60rQhTM0FZkYWZKYkyaAgAgjao
pUhicGZKUhtoAoDQGChpakaIJC62RmoT9cqsT9Ylxi370nwrrceqM0ZmJi48feNmOI6JvUNpITNJ
EPctevxQ2bz7lMLhsCRJsiwTBKFWqymKut89QgghhBBCG4HQJDCE98rIjaUHG0TPqd2yhboyNnJz
eU5F8IUiQc46DVEa8bpnJHKiA6MCAFAz21i/d/zyDYVQ65ONjBoAQMWksH7vlcs3CNpgoAhpsaMG
DeGnEpaHL7fWerQ6F090WH6gBRCa+LjQ2Kw+bf1ACYBQQSggynotznncXZs0UvL7/Uaj8atf/Wp2
dvbbb7996tSpwcFBhmFIcvk/CNracN7BHNlbOrjw9Fk25/S5yuHi7PphkbY2nHfYNMurFvpKHzsy
ZC5qaSvx1R4o7fFGkg3WqrYma++hwuNuEWIzFXU0s9UHXnCzBacd5voDjUzDQPPeJbWPD/WeqK/v
WVYJnV5zrjVX6CzOqx9eVjlrLSgrKbBZUxkAftzVfbzueO9oJAdtyqmpq8zewwB/sbuxur5nVKSz
mtZoK/ZgXWsNCCGENgWXy3W/u/BBY7Va73cXEAIgdGk7dVF+BjIu+aFdyVFy6pb8f4Q6PtUcv6Le
ED8ZiEtOXueLLKFL2/UwAKRsW55Mx283rawxaiJAeHZaUDErTqK7tdaj16lL2707emZtys7oV6Jk
TUpUe8cu31w3zkTvz2aMlPx+/xe+8IUXX3wRAGRZfuyxxx5//PH29vZjx45ptdrbrW2oNv/IoG9J
gsCJAO6TR2r3dtQ2FLkPnXSLYMxpbMrx1h9YO0wCMFrttKveIwJrtbNDx90iWEEA19H8apcPaNrA
WmzFVbVtDib3ULt3vpDBWmzj+wZoe0lWc8WFha4Yc5raai1DrfXltcNeYC22kpq6tj30gdIeL9Dp
lY6qPT0VtoMuTdZhR0NzmfvACx5Yt63og0UIoQdBQUHB/e7CB0d7e/v97gJCd5U6fkeUsGaDKf6x
Ea9AxW/fvuLQu3vS+loITVKaOel+9uBDYtNFSuFweOvWrd///vd9Ph9JkiRJKooSDoeffPLJd955
58yZM7cbLImcl4sWLnh7qquzOhobKocPde9rrjL1VhyYm18yFXV1FgwW5tUvCZtoy+GOtsJUAABo
HciNJDq6xGeOAQgCP9cE5/WerPZAW2dJmbXzu3NzOaytJIvrLGwUG9tK7MYLZyKNGLIqq/aON+ZW
zEU53GB7dSk0VFstbI+XtxTYGVd1q8sH4Bs80ejKryuwHK+HdduKNViEENr8FFx0jxDaVIiY8z/o
Q2LTRUqSJH3lK18JBoPhcFitVhMEoSiKLMuKouzbt+/06dOrIyVr84BzeQo/fCtNcReOlrd1tDo6
coTxE4X1rvm5GG/v0fLhyfFlAYfofiEv83h6TUeVu/RgO2c53FHHlR84OUpnNa2oVRzt6x4vL9hn
pl1uEQCM9mKLu/XI6CicGC47XGDpecEtAtB7crI0nsY+77KS7RWlAADAms0M1zs+1yHfuItj7GYG
uJUjWNrWrYwYIYQ2MVnGk5wQQghtIpsuUgqHw/v27QsEAoqiCIIQOSZSURSCID72sY8JgrC6yMW6
wmrXQnqyrdFRvOTqijhqsrs47+j8biHR3dnpKSw3e3rmtwcBAIhe1+DSCGYBm2GB4XYOgE23wlB9
1DwA4ON40Mw9m4y2FBSwrsY+DgAGWger6kqsJ44M+oCmkzXAeVfFPhE0owGRX+iRKIqgYejVkdLy
ttYZLEIIbW44p4QQQmhT2XSREkEQ77zzzqc//WlRFBc+NSPH301MTKw80QEAAHxez+hioOPjlgdT
Q7WF1S5+8Xd+cXUanV7WXG7o6x7Kqmwuc615lgNtKWtrKzYDQNtAfiSpdSB3svuZY6vzGswM8F5e
BAA6oyg3lWEa+xbjlxIbO9jDifw4DxYjA8vCH5plaY7zgcgLQDML8Q9N0yDwUTu32Ba9zmARQuj2
0EYj7fX63keG24RzSgghhDaVTXe2oEql6urqoihKluVQKCSKYigUinx8/va3v9VoNOvWsILIebxL
+eZjB3ZfXXOh2FpRffRI9Tm2uKnKalijFvfxwsLO8YuNuZmZewvbxj3N+ZmZmU8cfTu0KqvJZk/l
XX1eADBkldjgXGVu9pzc0rbxjJICE4Do6XXxe/LtxmUlCxznuo9ZaeA9Hp7JSJ0LlQypVpZ3e/hV
LS1ra+3BIoQ+aNj9p51dZSZ6/ZwAwOac7u8oMK6fcQFtOdzRUrkndvVLMxgLOvpP57C3UX1UyrrU
/6n45Y6XC1PXz/mh937/MhDaPBR/6PKYrMT49dYruXRJvHRJvHT7ZW/X6kctKf6xSxG38ACoW6wT
3RObbk6Jpunf/OY3b7zxhs1mi8RIBEFQFHXjxo1Tp07p9frbrpA1suyye548x4m0qaChLstdFznt
7kL9kc42R1PdYF5FLwe0yZqVOukaHF1+p5SxWGhPLwdAmzNoz/HFtXcaDRNpgjYYLbbiqnLWVXti
WAQw2kusfG/hoHdhZodrb/cUlpRYT3zXNdjY7Oqobmmg60/0DnPApttLqsqNQ3XlLhHA3d4rOCpL
rMXHXRprSaWV6z7kFsG6RltrDfZ2XzKEEAKaZda+M7UkA9dXX+0ej3Y757asN6ek+3jx/5GTAtcU
+UM++9Tf33/9+vWFX5OTkz/72c/ex/4gdE8ROvWSA8Rvo9Tu3aD4Q56pu9Cn9VtP270bFP/YfWkd
vQ+bLlIiCCIhIeH5558fGRn54he/+NGPfnRiYuJf/uVfWlpaZmdndbrb/m8jo7bz3LKEybbCwgv5
zZXmvsoDcwfRgc/VeKQ5va2uoeBiaTvYahpXnn0HQButrHfQIwJttrKca/HABw1Y6xaa4D2u3urC
xl4vAJjyi/dM9h71LK3F29s6VFlbYnuhtNd7przQV1ZZUttWzkDkeUrVhcd7vQAA4nBjaX1NXUNf
MQP8xXP15cfdItBrtLXGYPNeWOfoc4TQA85Y1NFmc/WJWVkmhtFwg83V1WfcIrD7DtdV5ltTYdLV
65qPagzpBVVVJdl7GOA9fSdqa9uHfVGKX7A0N2czDDjOOWoLS3s4k72ytiwnI1UDIHj6jldX9y7L
4LJV1eW05h3s4YC1FlVVFdvMDPCegdb6oyddXIzurbb2TIj+U39Vkf6vZ698/o9h9ZxJymf/qvLr
n9+TRMPsld/+j8aG7ssSpOw/fvxz7t+Klp160NPTv/5Rw49+Ow1U2me/XvGXn9+TQgOIV357KpJX
b8mt+Ov/+umdepi98tsfNzacuywB6C25f/XX//VzkcT/0dTU7Z6N2tA9Z7FYlkZKe/bswUkkhBC6
GzZdpAQAFEWRJPnTn/701KlTkiSpVCqNRqPX6+Pi4lZmFV1HHs1cnsT1HMzsiXl1Xn1eZv3ymtwn
D2aejPx8Mm/+p6UZho/mHQIAAHd93sGF1MGKzBhNwOjxvMzjKxO5nkPz3QNxtPeFit4XohYWR3u+
e7Dnu8uS1mhrzcEihD7wmAwrV1z4xLDPkHWsu7nKduHQkL2pzu45emBvL2e017XWAQcArL3RUUaf
KLUdHBZNOXWtjkYur3QoWvHy8qxzzZoj2UdcIpiKGuuyXKV5h1wcbbTXtdXV2HsPLs2wsKzPWNDk
oU2SmQAAIABJREFUKObqSm1n3GDZX+dwOCD/QG+0+nujHFGz1kxR4ufKK9J+VVt78Zuf/dSqOSX9
H5dWfPpK3Tee/f20Pv0bP6wtf2zw22evyQrQOz8+deTbz7tnKctf/mPdf/vSN7/9+89VHfnUUPU3
nh2eplI+9+wPny1/9MK3f5/xd9//Czj5bEH3ZbD85bG6//a1S9/479c+83ff/wu6vbrgb9xi2uef
ff77f3fjG3Wz0RrauL/GW7Rly5bk5OTJyUkASE5O3rJly4d8kg19MIl8yHtdDgFhMEDkVoDiD414
ZQAArXpXGjn3uFVF8U2GJnklHMmkVe9KI8EfujxJGIgwL4LaoDamkHSMh7Mu1gmg1qq2blfpVBDm
pfd41cOpJAkQmJCu0+qHk+Zb8495ppLM6z3sVQn7rr131SeCWp9s3BYfq3UAReSvXb3ukxSCMmzd
nsJEcsrBm9ev3/CJkcEad6UtThSEZ6+NXQ8lphoXKr3FLqE7shkjJQBQqVQMwxgMczuHCIKIHIKH
EEIoGk9n57APAHxDvR6h0mIwsvl7vCeP9HpFgNHexuYSWyEAm1Vk5XsK24d9ADDa09xa0lmUxR6J
Uhz6ltQ92lme28N5OaANLCNwPFjY6Ns6jfb8PZ4TuWfcPgBwn6lvzu8uzjX18lHqjxYpxZ4YSfnC
s99I7Kj6wYj4x0ok47KcgjArJqU/8fnPCr/5/b+/+o38+epAHGn/6UWfAiBe/FnHlbwDn97a9cua
r785dW1aofSJOmFqFnYm6hLSc/dM/fLIL0d8CsDFtpojv6KviQmfyc+Y/eeKn130KQBX/rm1o+CV
/D+OezVaQ/fDRz7ykUik9JGPfAQnlNAHUVi+NqnEp9KJtDI9JvlIgBgr6JRg+Lqf3G5SxamWJAIo
kkyl0btoZXpMuuajdzDR24nUGSkT4KQJjjSlECqdipoMz4ZJhpCnApDI3vZ3UEUS6DTzLlqcHvNe
43U74mN84Q7xE5Mik7ozkRanx7wTfNxD8WqQZ696p1TJqWaDRjXfsgIAoIi+iaucsmWHkVHj1+J7
Y5NGSoDREUII3TpBWL4lkdpiNgC3sHWI847zABRrYSE5f+EETwCAcQtLcauKw7KTHGjGUlAbWcfn
cbv5GN83AGjWzAqcZyEG4rycwBgZio9a/+r1d7G+8e/Ie7YI2ip/dkUEPQCAsjKnOPRi1YvFxU89
U1+cBL6RX5188cVfXpYUUMSJCd9cXt+NWdCn6eJ02/K+U/dkxjaYem9kZFYPAKBPSaJnR26IkYzi
1MgIALVzZxIkPdl05snFZiZ26v89WkOxXo+7KTKtpCjKli1bMFJCH0CKIEuUKl4LBBDxScTUzZg5
CRWhDoevXVV0WiJOR+rj5r48EprF4tMzssKQsb5Uzk5K12cWpqQUAAJUZKImxPmUODIsUir9km/L
hC7tVnZJEZqkeC1JgDY+iZqeEZX46JGNIvpC1MqcINwU1OzDjEa1PLMcvD4WVAyp5hVh0i12Cd2R
zRspIYQQulMS7/GBNZUB8AEAMCzLAEi8h4Px9vy8k6ORXAajUcN56YKoVYgAkb1NrL2uMZerPrC3
1ysCGPd3dBcvz7BQgvdwmgwzC3OPpGONqRq+j7/lSCLWErLPP/VHSdv+6J96vjX3+x+9ciajueTw
LxeWvVEpabpLP/k/yxxAJe354ne+V/63n/9d6S9lBeiUrTpZngIA2Lozkb7RR37mb//+C1PPlTz1
q2sSQMqTjtY/V2R+ygf6nYkq+YYEANSuJw9mXPnp4Ls3YOL1kkM/vRJpQ5+SQk9NJTz0R6sbuvfL
7wAAYPfu3YBHqyMEtOohE+n3y4GgMnVVupFILayUi0UBWMihBEPXfcTWhym9GmSf5JkPyeKSyPBE
mCNAu5VUxajnjihLW789hDo+iZydvCHsYDU4l3CPbLpTwhFCCL1/V/vahowllTkmGmjjvrKyPQAA
3sH2Iba4cr/FAABsVlVbd0uZJeZB4ALNmowsDTTDAPAcLwLQJntZiRmAWZZhwWhv50VzSdV+iwGA
NuVUlps9nd2jt9znWAdev/adonnfar4EN37+98/8wxsTSzLoM771vee+87mtakW8cWNqFsQpn6go
igL07uLiz2xVK+q0J0v+bNs7rw9O6/UAvhs+UVHUaZ87dPAhAL1yw/n6/076YvEXd+oURbfnqe+U
fnGHKEw4X38n6c9KntypUxQl8Y+/dbz1heJdCTEaui+SkpKSkpJiXb2zfzYIbRaEhqSk8IwAiqzM
TK33L1pF6BgVm6xOZoiwML+pSQjPBOeKU4b5VUokECFFXHaANygEQZKghOUbNxYbIrUqvSL7ZCJx
+Sb5WzytWxGmZoKyIgszUxJlmI9rSIoIBZa2TtAGtRTJGZyZktQGmgAgNAmaEDfJCyuOMyc1W9ik
7Sna2auTgaV3SPAA8bsJ55QQQuiDyHumvIKpq2kbqNVMDnVeuChYAcDbU17K1NY6+qoZAP5id21p
/bDIWqMUFz09F7yO6s4Wc+GBE7WttgZHn1Pgx9197Se6reUWs0F0LWZoX2i0vaKUrqlq6avWAO8Z
6CwvPTkKt/wYp1jTIzx3dX4ZoZ4TRdHnvbr8EeNcb33dnqqKV7uqaBCv/uHndXV9nAzbFIAb/04d
fKnrvxnE9wZOfbeul5vVN/w/n6n5QccvRd/VSwP/7096M762My2O6639buKRihc7ymnwXepreva/
/5sgQ+93n9UdOfJ/dZQbAHyXehuebfq3CSlaQwihjaciU1jZe0W8QRAGA0FIAMtOX5BHLi0e3rBw
JINKo9q6nSAis0YUIV4TRyRQ69VGZi5UIbSqLVRobCS8cCYEoVWxmtD45TCoyASGIILzHSAIgwb8
lOrOZm8ISiNe94xETnRgVPOtb9lCXRkbuRk5pIEAADWzjfV7xy/fUAi1PtnIqAEASP12Y+ja9fHL
11af6EDGJW+Lv3L1+uyObfpItYrgC0VCLHQXEGfaXhm9fPnyu2P9znfuTZO5ubnd3d33pi2EEEIP
BJfL9fjjj29kjdue/r9/ZDv1F3994UP5/JI33njDao0WAyN0l/E8fwdPv9xgij/kmSLNaTH3Jq0v
LI+/G9akUeytPd/7vgnNXBkLsg+lxOEysbti884phcNhSZIiT55Vq9UURd3vHiGEELqLNnjLjawA
KB/6p9QihG5fZPKKildv3+RhEgCo43eY4u93Jz7ANmmk5Pf7jUbjV7/61ezs7LfffvvUqVODg4MM
w5Dk8oiZtjacd9iW7ikWJod6Xqhu7PXOH6tksNhLSorsWXuSNQDC5NBg+4nG9kGvCAZ7S19dxmJJ
3jPQ+f+3d/8xcaRnvuifququarqraNtlZtMkZyGbu20lMTcrtXV28axEj5K0J1pwToyPIhitYFZa
I+0Ba6+xjgRzJdu7MUQnMJs1zlUgVwKSGHQjsHYNezRDorhZyZDcpaUZwZ6Re28yzewOnUlcY+Pq
X/X7/tGAoSls7LHH2PP9/BHRb1U971s9DvTT7/O+1X/h8rzL1rW7FmqZmIgNHX9l+/63YqRrsGnu
9NnZ4hE+3D42GO4/dnpeJyKSa9vPdTUdrRRIW0lM9p+/PJvWSa4909PVGCk2jvd233dorhFCTRNT
ndUb56T6G06Op10bn0jYycqu4abE6bNuuwEDAJR6zKtrnPUNxVG+D/BJw/g9H2U7uHtbh8Mn3V7M
lHK53Je//OW/+7u/IyLbtl966aWvfvWr4+PjFy9e9Pl8289PdB7rmFeJiHgpVNPUM9AzkFosfvoX
I11jg436VM+FV+eTii6GDkdPdQ0MhztOvjZPRKTFO0/2LulEvBiqae7p6etKHDs7n3nst8Qf7ug6
PN3RqxAR8aG6zr7+xmqaWzsaOtHX16j0Nkenl/Wq+p6R/gGl8eRk9bm+RupvPnp1mapODIz19Swe
a5vdYWiuEUaVcDS0MtbWNpoqpo2aqhCJbo07+Ihh9fTQaMtwV11iPT8EALiPx5zT/Ga89eXxB58G
AACwgz2XKVmWVVFR8a1vfSuTybAsy7Ks4ziWZX3ta1975513rl696pIs6aqu60REurI8PzKUaO2P
VvPjaZ0Pn7rYyE+2NfcmihmGosyOnk2pnY2yRKQSka4qiqLoRKRoUkrRirs7EVW1XJtsmm8+3pvc
8sSPqpaJkehiQm6IVt7sbzi90tTT1Rw5SLcWp2b0aPRm28lxIkGqax880xA5qN1anOztfn02TRSq
76xbGRpIExFf1T42FlsZH4hXnlqb0uUlaSU+MDS9nCGi5ZmhmfaxaLU4nlF1Etb24NU1fe0WXe0Q
QYqGiejUwJWwrKfiI729VxXiq10an1hYJT6UONPTEp5/Pbnz6AEAiIjo+vXrT3sIAAAA9+y5TMkw
jG984xuFQsGyLI/HwzCM4zi2bTuOU1dXd+XKFddppQ3i4YbWw5S6nNKJ+Or62MGV8bHElokYfflq
7+tERCIRSQ0jcw0bh1Ym2waWdCKi9MyFjqVbK9s/3fNSTWSl7dixFT4QvTTekO5tPDqdlmPnhnsk
ulk8pfKoNNR6tC0dqu8Z6e9LN7wyzseaw8sDxWHo6fG2ly4rFO6qP7W2IZSeHH3ttY0OqutrD6Ym
Uxl9ubd7emxgbK6biGhlqqN557ku9whytEai9OJY//kkX9N6vmd4QD/eloi4NE67J0uPIayenExI
fU3hyxeWkCoBwH1g+wEAANhr9lymZFlWXV1dPp93HEfTNIZhiMhxHIZhvvCFL2iatv2SyMDcwr1X
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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147583</attachid>
            <date>2012-06-14 07:30:45 -0700</date>
            <delta_ts>2012-06-14 08:07:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89101-20120614183044.patch</filename>
            <type>text/plain</type>
            <size>38148</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZiYTk3MWZhM2FlODUy
OTAwMmNiOWM3NjhkOTRkNjVhOWQxYTg5Ny4uNGQxMTVmMTY3NTUwNzk3OGI0NzMwMDFjY2MxZTZh
ZDZmYmM1ZDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA2LTE0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlZmFjdG9yIHNldHRpbmdzIHNjcmVlbiB0byBtb3ZlIHVzZXIgYWdlbnQgYW5kIGV4cGVy
aW1lbnRzIG91dCBvZiBnZW5lcmFsIHRhYi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg5MTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2VlIGltYWdlIGF0dGFjaGVkIHRvIHRoZSBidWcuCisKKyAgICAg
ICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
ZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUuc2VsZWN0VGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUuX3RhYlNlbGVjdGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUuc2V0IHdhc1Nob3duKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzVGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0
aW5nc1RhYi5wcm90b3R5cGUuX2FwcGVuZFNlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNldHRpbmdzVGFiLnByb3RvdHlwZS5fY3JlYXRlQ3VzdG9tU2V0dGluZyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuR2VuZXJpY1NldHRpbmdzVGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5H
ZW5lcmljU2V0dGluZ3NUYWIucHJvdG90eXBlLl9zaG93UGFpbnRSZWN0c0NoYW5nZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkdlbmVyaWNTZXR0aW5nc1RhYi5wcm90b3R5cGUuZ2V0IF91cGRh
dGVTY3JpcHREaXNhYmxlZENoZWNrYm94KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5HZW5lcmlj
U2V0dGluZ3NUYWIucHJvdG90eXBlLl9qYXZhU2NyaXB0RGlzYWJsZWRDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTZXR0aW5nc1RhYik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVXNlckFnZW50U2V0dGluZ3NUYWIucHJvdG90eXBlLl9jcmVhdGVVc2VyQWdlbnRTZWxl
Y3RSb3dFbGVtZW50LmdldCBjb25zdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVXNlckFnZW50
U2V0dGluZ3NUYWIucHJvdG90eXBlLl9jcmVhdGVVc2VyQWdlbnRTZWxlY3RSb3dFbGVtZW50LnRl
eHREb3VibGVDbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTZXR0aW5n
c1RhYi5wcm90b3R5cGUuX2NyZWF0ZVVzZXJBZ2VudFNlbGVjdFJvd0VsZW1lbnQudGV4dENoYW5n
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVzZXJBZ2VudFNldHRpbmdzVGFiLnByb3RvdHlw
ZS5fY3JlYXRlVXNlckFnZW50U2VsZWN0Um93RWxlbWVudC5zZXQgY2hlY2tib3hDbGlja2VkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2Ny
ZWF0ZURldmljZU1ldHJpY3NFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHBlcmlt
ZW50c1NldHRpbmdzVGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRp
bmdzVGFiLnByb3RvdHlwZS5fY3JlYXRlRXhwZXJpbWVudHNXYXJuaW5nU3Vic2VjdGlvbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2Ny
ZWF0ZUV4cGVyaW1lbnRDaGVja2JveC5saXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RXhwZXJpbWVudHNTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2NyZWF0ZUV4cGVyaW1lbnRDaGVja2Jv
eCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanM6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLmdldCBoZWFkZXJDb250ZW50c0VsZW1lbnQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3M6CisgICAgICAg
ICguc2V0dGluZ3MtdGFiLmhlbHAtY29udGFpbmVyKToKKyAgICAgICAgKC5zZXR0aW5ncy10YWIg
LmhlbHAtYmxvY2spOgorICAgICAgICAoLmhlbHAtY29udGVudCBmaWVsZHNldCk6CisgICAgICAg
ICgjc2V0dGluZ3Mtc2NyZWVuIC50YWJiZWQtcGFuZS1oZWFkZXItdGFicyk6CisgICAgICAgICgj
c2V0dGluZ3Mtc2NyZWVuIC50YWJiZWQtcGFuZS1oZWFkZXItdGFiKToKKwogMjAxMi0wNi0wOSAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBFcnJvcnMgd2hlbiBwZW5kaW5nIGNvbnNvbGUgbWVzc2FnZXMgYXJlIGF0dGFjaGVk
IHRvIEphdmFTY3JpcHRTb3VyY2VGcmFtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Vu
Z2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gu
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA5NmRiNTNmYWFlYWVlM2QwYTEwNWFkY2Rh
YTYxOGI1ZjQ4ZGEwMTYyLi5mNGQyZTNhYzllM2QzOGRkNDczNDE4ODBiY2U3Y2NlNmE5M2VlYTFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCkBAIC0xOTksNyArMTk5LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRXhwYW5kL2NvbGxhcHNl
Il0gPSAiRXhwYW5kL2NvbGxhcHNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkV4cGVjdGVkIENvbnRl
bnQgTGVuZ3RoIl0gPSAiRXhwZWN0ZWQgQ29udGVudCBMZW5ndGgiOwogbG9jYWxpemVkU3RyaW5n
c1siRXhwaXJlcyJdID0gIkV4cGlyZXMiOwogbG9jYWxpemVkU3RyaW5nc1siRmlsZSBzaXplIl0g
PSAiRmlsZSBzaXplIjsKLWxvY2FsaXplZFN0cmluZ3NbIkZpdCB3aW5kb3ciXSA9ICJGaXQgd2lu
ZG93IjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpdCBpbiB3aW5kb3ciXSA9ICJGaXQgaW4gd2luZG93
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkdvIHRvIHRoZSBwYW5lbCB0byB0aGUgbGVmdC9yaWdodCJd
ID0gIkdvIHRvIHRoZSBwYW5lbCB0byB0aGUgbGVmdC9yaWdodCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJHbyBiYWNrL2ZvcndhcmQgaW4gcGFuZWwgaGlzdG9yeSJdID0gIkdvIGJhY2svZm9yd2FyZCBp
biBwYW5lbCBoaXN0b3J5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbmlzaCBMb2FkaW5nIl0gPSAi
RmluaXNoIExvYWRpbmciOwpAQCAtNjA1LDggKzYwNSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlNl
YXJjaCBmaW5pc2hlZC4iXSA9ICJTZWFyY2ggZmluaXNoZWQuIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlNlYXJjaCBpbnRlcnJ1cHRlZC4iXSA9ICJTZWFyY2ggaW50ZXJydXB0ZWQuIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkFkZCB0byBXYXRjaCJdID0gIkFkZCB0byBXYXRjaCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBZGQgdG8gd2F0Y2giXSA9ICJBZGQgdG8gd2F0Y2giOwotbG9jYWxpemVkU3RyaW5nc1si
VGV4dCBlZGl0b3IiXSA9ICJUZXh0IGVkaXRvciI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJJbmRlbnQi
XSA9ICJJbmRlbnQiOworbG9jYWxpemVkU3RyaW5nc1siSW5kZW50YXRpb24iXSA9ICJJbmRlbnRh
dGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIyIHNwYWNlcyJdID0gIjIgc3BhY2VzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIjQgc3BhY2VzIl0gPSAiNCBzcGFjZXMiOwogbG9jYWxpemVkU3RyaW5nc1si
OCBzcGFjZXMiXSA9ICI4IHNwYWNlcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwppbmRleCA4NmExNDdiYTkzNWI2YTA1ZDIw
OTFmN2Q2YWYyMGNhZmI3NmE4ZjEwLi44YWNiYmJiN2FhNTk1ZTk4MWUwZmJkZjdkMTNlZDczYTQx
MTk5OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nl
dHRpbmdzU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3NTY3JlZW4uanMKQEAgLTQwLDEyMyArNDAsNDMgQEAgV2ViSW5zcGVjdG9yLlNldHRp
bmdzU2NyZWVuID0gZnVuY3Rpb24ob25IaWRlKQogCiAgICAgLyoqIEB0eXBlIHshZnVuY3Rpb24o
KX0gKi8KICAgICB0aGlzLl9vbkhpZGUgPSBvbkhpZGU7Ci19Ci0KLVdlYkluc3BlY3Rvci5TZXR0
aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7Ci0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHshV2Vi
SW5zcGVjdG9yLlZpZXd9Ci0gICAgICovCi0gICAgX2NyZWF0ZVNldHRpbmdzVGFiVmlldzogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlZpZXco
KTsKLQotICAgICAgICB2YXIgY29udGFpbmVyID0gdmlldy5lbGVtZW50OwotICAgICAgICBjb250
YWluZXIuaWQgPSAic2V0dGluZ3MiOwotICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gImhl
bHAtY29udGVudCBoZWxwLWNvbnRhaW5lciI7Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqICBA
cGFyYW0ge3N0cmluZ30gbmFtZQotICAgICAgICAgKiAgQHJldHVybiB7IUVsZW1lbnR9Ci0gICAg
ICAgICAqLwotICAgICAgICBmdW5jdGlvbiBhcHBlbmRTZWN0aW9uKG5hbWUpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciBibG9jayA9IGNvbnRhaW5lci5jcmVhdGVDaGlsZCgiZGl2IiwgImhl
bHAtYmxvY2siKTsKLSAgICAgICAgICAgIGJsb2NrLmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC1z
ZWN0aW9uLXRpdGxlIikudGV4dENvbnRlbnQgPSBuYW1lOwotICAgICAgICAgICAgcmV0dXJuIGJs
b2NrOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHAgPSBhcHBlbmRTZWN0aW9uKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiR2VuZXJhbCIpKTsKLSAgICAgICAgaWYgKFByZWZlcmVuY2VzLnNob3dE
b2NrVG9SaWdodCkKLSAgICAgICAgICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2ti
b3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9jayB0byByaWdodCIpLCBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuZG9ja1RvUmlnaHQpKTsKLSAgICAgICAgaWYgKFByZWZlcmVuY2VzLmV4
cG9zZURpc2FibGVDYWNoZSkKLSAgICAgICAgICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRl
Q2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGlzYWJsZSBjYWNoZSIpLCBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY2FjaGVEaXNhYmxlZCkpOwotICAgICAgICB2YXIgZGlzYWJs
ZUpTRWxlbWVudCA9IHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkRpc2FibGUgSmF2YVNjcmlwdCIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuamF2YVNj
cmlwdERpc2FibGVkKTsKLSAgICAgICAgcC5hcHBlbmRDaGlsZChkaXNhYmxlSlNFbGVtZW50KTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmphdmFTY3JpcHREaXNhYmxlZC5hZGRDaGFu
Z2VMaXN0ZW5lcih0aGlzLl9qYXZhU2NyaXB0RGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKLSAgICAg
ICAgdGhpcy5fZGlzYWJsZUpTQ2hlY2tib3ggPSBkaXNhYmxlSlNFbGVtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzBdOwotICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHREaXNhYmxl
ZENoZWNrYm94KCk7Ci0gICAgICAgIAotICAgICAgICBwID0gYXBwZW5kU2VjdGlvbihXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlJlbmRlcmluZyIpKTsKLSAgICAgICAgcC5hcHBlbmRDaGlsZCh0aGlz
Ll9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHBhaW50
IHJlY3RhbmdsZXMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dQYWludFJlY3RzKSk7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93UGFpbnRSZWN0cy5hZGRDaGFuZ2VMaXN0
ZW5lcih0aGlzLl9zaG93UGFpbnRSZWN0c0NoYW5nZWQsIHRoaXMpOwotCi0gICAgICAgIHAgPSBh
cHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWxlbWVudHMiKSk7Ci0gICAgICAg
IHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5V
SVN0cmluZygiV29yZCB3cmFwIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kb21Xb3JkV3JhcCkp
OwotCi0gICAgICAgIHAgPSBhcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3R5
bGVzIikpOwotICAgICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJhZGlvU2V0dGluZyhX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbG9yIGZvcm1hdCIpLCBbCi0gICAgICAgICAgICBbIFdl
Ykluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5Db2xvckZvcm1hdC5PcmlnaW5hbCwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJBcyBhdXRob3JlZCIpIF0sCi0gICAgICAgICAgICBbIFdlYkluc3Bl
Y3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5Db2xvckZvcm1hdC5IRVgsICJIRVg6ICNEQUMwREUiIF0s
Ci0gICAgICAgICAgICBbIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5Db2xvckZvcm1h
dC5SR0IsICJSR0I6IHJnYigxMjgsIDI1NSwgMjU1KSIgXSwKLSAgICAgICAgICAgIFsgV2ViSW5z
cGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLkNvbG9yRm9ybWF0LkhTTCwgIkhTTDogaHNsKDMwMCwg
ODAlLCA5MCUpIiBdIF0sIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jb2xvckZvcm1hdCkpOwotICAg
ICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNob3cgdXNlciBhZ2VudCBzdHlsZXMiKSwgV2ViSW5zcGVjdG9yLnNldHRp
bmdzLnNob3dVc2VyQWdlbnRTdHlsZXMpKTsKLQotICAgICAgICBwID0gYXBwZW5kU2VjdGlvbihX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRleHQgZWRpdG9yIikpOwotICAgICAgICBwLmFwcGVuZENo
aWxkKHRoaXMuX2NyZWF0ZVNlbGVjdFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbmRl
bnQiKSwgWwotICAgICAgICAgICAgICAgIFsgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIyIHNwYWNl
cyIpLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsLkluZGVudC5Ud29TcGFjZXMgXSwKLSAg
ICAgICAgICAgICAgICBbIFdlYkluc3BlY3Rvci5VSVN0cmluZygiNCBzcGFjZXMiKSwgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNb2RlbC5JbmRlbnQuRm91clNwYWNlcyBdLAotICAgICAgICAgICAg
ICAgIFsgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCI4IHNwYWNlcyIpLCBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvck1vZGVsLkluZGVudC5FaWdodFNwYWNlcyBdLAotICAgICAgICAgICAgICAgIFsgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJUYWIgY2hhcmFjdGVyIiksIFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9yTW9kZWwuSW5kZW50LlRhYkNoYXJhY3RlciBdCi0gICAgICAgICAgICBdLCBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MudGV4dEVkaXRvckluZGVudCkpOwotCi0gICAgICAgIHAgPSBhcHBlbmRTZWN0
aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiVXNlciBBZ2VudCIpKTsKLSAgICAgICAgcC5hcHBl
bmRDaGlsZCh0aGlzLl9jcmVhdGVVc2VyQWdlbnRDb250cm9sKCkpOwotICAgICAgICBpZiAoQ2Fw
YWJpbGl0aWVzLmNhbk92ZXJyaWRlRGV2aWNlTWV0cmljcykKLSAgICAgICAgICAgIHAuYXBwZW5k
Q2hpbGQodGhpcy5fY3JlYXRlRGV2aWNlTWV0cmljc0NvbnRyb2woKSk7Ci0gICAgICAgIHAuYXBw
ZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiRW11bGF0ZSB0b3VjaCBldmVudHMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmVtdWxhdGVU
b3VjaEV2ZW50cykpOwotCi0gICAgICAgIHAgPSBhcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5V
SVN0cmluZygiU2NyaXB0cyIpKTsKLSAgICAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVD
aGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHNjcmlwdCBmb2xkZXJz
IiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93U2NyaXB0Rm9sZGVycykpOwotICAgICAgICBw
LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNlYXJjaCBpbiBjb250ZW50IHNjcmlwdHMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdz
LnNlYXJjaEluQ29udGVudFNjcmlwdHMpKTsKLSAgICAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9j
cmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbmFibGUgc291cmNl
IG1hcHMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNvdXJjZU1hcHNFbmFibGVkKSk7Ci0KLSAg
ICAgICAgcCA9IGFwcGVuZFNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxlciIp
KTsKLSAgICAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IG9iamVjdHMnIGhpZGRlbiBwcm9wZXJ0aWVzIiksIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5zaG93SGVhcFNuYXBzaG90T2JqZWN0c0hpZGRlblByb3BlcnRp
ZXMpKTsKLQotICAgICAgICBwID0gYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNvbnNvbGUiKSk7Ci0gICAgICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hT
ZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9nIFhNTEh0dHBSZXF1ZXN0cyIpLCBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpKTsKLSAgICAgICAgcC5hcHBl
bmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJQcmVzZXJ2ZSBsb2cgdXBvbiBuYXZpZ2F0aW9uIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5w
cmVzZXJ2ZUNvbnNvbGVMb2cpKTsKLQotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4dGVuc2lv
blNlcnZlci5oYXNFeHRlbnNpb25zKCkpIHsKLSAgICAgICAgICAgIHZhciBoYW5kbGVyU2VsZWN0
b3IgPSBuZXcgV2ViSW5zcGVjdG9yLkhhbmRsZXJTZWxlY3RvcihXZWJJbnNwZWN0b3Iub3BlbkFu
Y2hvckxvY2F0aW9uUmVnaXN0cnkpOwotICAgICAgICAgICAgcCA9IGFwcGVuZFNlY3Rpb24oV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJFeHRlbnNpb25zIikpOwotICAgICAgICAgICAgcC5hcHBlbmRD
aGlsZCh0aGlzLl9jcmVhdGVDdXN0b21TZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3Bl
biBsaW5rcyBpbiIpLCBoYW5kbGVyU2VsZWN0b3IuZWxlbWVudCkpOwotICAgICAgICB9CiAKLSAg
ICAgICAgdmFyIGV4cGVyaW1lbnRzID0gV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Mu
ZXhwZXJpbWVudHM7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5n
cy5leHBlcmltZW50c0VuYWJsZWQgJiYgZXhwZXJpbWVudHMubGVuZ3RoKSB7Ci0gICAgICAgICAg
ICB2YXIgZXhwZXJpbWVudHNTZWN0aW9uID0gYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkV4cGVyaW1lbnRzIikpOwotICAgICAgICAgICAgZXhwZXJpbWVudHNTZWN0aW9uLmFw
cGVuZENoaWxkKHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnRzV2FybmluZ1N1YnNlY3Rpb24oKSk7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVyaW1lbnRzLmxlbmd0aDsgKytpKQot
ICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRzU2VjdGlvbi5hcHBlbmRDaGlsZCh0aGlzLl9jcmVh
dGVFeHBlcmltZW50Q2hlY2tib3goZXhwZXJpbWVudHNbaV0pKTsKLSAgICAgICAgfQorICAgIHRo
aXMuX3RhYmJlZFBhbmUgPSBuZXcgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUoKTsKKyAgICB0aGlz
Ll90YWJiZWRQYW5lLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGVscC13aW5kb3ctbWFpbiIpOwor
ICAgIHRoaXMuX3RhYmJlZFBhbmUuaGVhZGVyQ29udGVudHNFbGVtZW50Lmluc2VydEJlZm9yZSh0
aGlzLl9jcmVhdGVDbG9zZUJ1dHRvbigpLCB0aGlzLl90YWJiZWRQYW5lLmhlYWRlckNvbnRlbnRz
RWxlbWVudC5maXJzdENoaWxkKTsKKyAgICB0aGlzLl90YWJiZWRQYW5lLmFwcGVuZFRhYihXZWJJ
bnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4uVGFicy5HZW5lcmFsLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkdlbmVyYWwiKSwgbmV3IFdlYkluc3BlY3Rvci5HZW5lcmljU2V0dGluZ3NUYWIoKSk7Cisg
ICAgdGhpcy5fdGFiYmVkUGFuZS5hcHBlbmRUYWIoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVu
LlRhYnMuVXNlckFnZW50LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVzZXIgYWdlbnQiKSwgbmV3
IFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTZXR0aW5nc1RhYigpKTsKKyAgICBpZiAoV2ViSW5zcGVj
dG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MuZXhwZXJpbWVudHNFbmFibGVkKQorICAgICAgICB0aGlz
Ll90YWJiZWRQYW5lLmFwcGVuZFRhYihXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4uVGFicy5F
eHBlcmltZW50cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeHBlcmltZW50cyIpLCBuZXcgV2Vi
SW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3NUYWIoKSk7CisgICAgdGhpcy5fdGFiYmVkUGFu
ZS5hcHBlbmRUYWIoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLlRhYnMuU2hvcnRjdXRzLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3J0Y3V0cyIpLCBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRz
U2NyZWVuLmNyZWF0ZVNob3J0Y3V0c1RhYlZpZXcoKSk7CisKKyAgICB0aGlzLl9sYXN0U2VsZWN0
ZWRUYWJTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoImxhc3RT
ZWxlY3RlZFNldHRpbmdzVGFiIiwgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLlRhYnMuR2Vu
ZXJhbCk7CisgICAgdGhpcy5zZWxlY3RUYWIodGhpcy5fbGFzdFNlbGVjdGVkVGFiU2V0dGluZy5n
ZXQoKSk7CisgICAgdGhpcy5fdGFiYmVkUGFuZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5UYWJiZWRQYW5lLkV2ZW50VHlwZXMuVGFiU2VsZWN0ZWQsIHRoaXMuX3RhYlNlbGVjdGVkLCB0
aGlzKTsKK30KIAotICAgICAgICByZXR1cm4gdmlldzsKLSAgICB9LAorV2ViSW5zcGVjdG9yLlNl
dHRpbmdzU2NyZWVuLlRhYnMgPSB7CisgICAgR2VuZXJhbDogIkdlbmVyYWwiLAorICAgIFVzZXJB
Z2VudDogIlVzZXJBZ2VudCIsCisgICAgRXhwZXJpbWVudHM6ICJFeHBlcmltZW50cyIsCisgICAg
U2hvcnRjdXRzOiAiU2hvcnRjdXRzIgorfQogCitXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4u
cHJvdG90eXBlID0gewogICAgIC8qKgotICAgICAqIHJldHVybiB7IVdlYkluc3BlY3Rvci5TZXR0
aW5nc1NjcmVlblRhYmJlZFBhbmV9CisgICAgICogQHBhcmFtIHshc3RyaW5nfSB0YWJJZAogICAg
ICAqLwotICAgIF9nZXRPckNyZWF0ZVRhYmJlZFBhbmU6IGZ1bmN0aW9uKCkKKyAgICBzZWxlY3RU
YWI6IGZ1bmN0aW9uKHRhYklkKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3RhYmJlZFBhbmUp
Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmVkUGFuZTsKLQotICAgICAgICB2YXIgdGFi
YmVkUGFuZSA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW5UYWJiZWRQYW5lKHRoaXMu
X2NyZWF0ZUNsb3NlQnV0dG9uKCkpOwotICAgICAgICB0YWJiZWRQYW5lLmFwcGVuZFRhYihXZWJJ
bnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4uVGFicy5TZXR0aW5ncywgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJTZXR0aW5ncyIpLCB0aGlzLl9jcmVhdGVTZXR0aW5nc1RhYlZpZXcoKSk7Ci0gICAgICAg
IHRhYmJlZFBhbmUuYXBwZW5kVGFiKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5UYWJzLlNo
b3J0Y3V0cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJLZXlib2FyZCBTaG9ydGN1dHMiKSwgV2Vi
SW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5fY3JlYXRlU2hvcnRjdXRzVGFiVmlldygpKTsKLQot
ICAgICAgICB0aGlzLl90YWJiZWRQYW5lID0gdGFiYmVkUGFuZTsKLSAgICAgICAgcmV0dXJuIHRh
YmJlZFBhbmU7CisgICAgICAgIHRoaXMuX3RhYmJlZFBhbmUuc2VsZWN0VGFiKHRhYklkKTsKICAg
ICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHshc3RyaW5nfSB0YWJJZAorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fQogICAgICAqLwotICAgIHNlbGVjdFRhYjogZnVuY3Rp
b24odGFiSWQpCisgICAgX3RhYlNlbGVjdGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX2dldE9yQ3JlYXRlVGFiYmVkUGFuZSgpLnNlbGVjdFRhYih0YWJJZCk7CisgICAg
ICAgIHRoaXMuX2xhc3RTZWxlY3RlZFRhYlNldHRpbmcuc2V0KHRoaXMuX3RhYmJlZFBhbmUuc2Vs
ZWN0ZWRUYWJJZCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTY0LDcgKzg0LDcgQEAgV2ViSW5z
cGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB3YXNTaG93
bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fZ2V0T3JDcmVhdGVUYWJiZWRQYW5l
KCkuc2hvdyh0aGlzLmVsZW1lbnQpOworICAgICAgICB0aGlzLl90YWJiZWRQYW5lLnNob3codGhp
cy5lbGVtZW50KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLndh
c1Nob3duLmNhbGwodGhpcyk7CiAgICAgfSwKIApAQCAtMTg2LDI4ICsxMDYsNDEgQEAgV2ViSW5z
cGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMu
X29uSGlkZSgpOwogICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUud2ls
bEhpZGUuY2FsbCh0aGlzKTsKLSAgICB9LAorICAgIH0KK30KIAorV2ViSW5zcGVjdG9yLlNldHRp
bmdzU2NyZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5w
cm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVj
dG9yLlZpZXd9CisgKi8KK1dlYkluc3BlY3Rvci5TZXR0aW5nc1RhYiA9IGZ1bmN0aW9uKCkKK3sK
KyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAgIHRoaXMuZWxlbWVudC5jbGFz
c05hbWUgPSAic2V0dGluZ3MtdGFiIGhlbHAtY29udGVudCBoZWxwLWNvbnRhaW5lciI7Cit9CisK
K1dlYkluc3BlY3Rvci5TZXR0aW5nc1RhYi5wcm90b3R5cGUgPSB7CiAgICAgLyoqCi0gICAgICog
QHJldHVybiB7RWxlbWVudH0gZWxlbWVudAorICAgICAqICBAcGFyYW0ge3N0cmluZz19IG5hbWUK
KyAgICAgKiAgQHJldHVybiB7IUVsZW1lbnR9CiAgICAgICovCi0gICAgX2NyZWF0ZUV4cGVyaW1l
bnRzV2FybmluZ1N1YnNlY3Rpb246IGZ1bmN0aW9uKCkKKyAgICBfYXBwZW5kU2VjdGlvbjogZnVu
Y3Rpb24obmFtZSkKICAgICB7Ci0gICAgICAgIHZhciBzdWJzZWN0aW9uID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHZhciB3YXJuaW5nID0gc3Vic2VjdGlvbi5jcmVh
dGVDaGlsZCgic3BhbiIsICJzZXR0aW5ncy1leHBlcmltZW50cy13YXJuaW5nLXN1YnNlY3Rpb24t
d2FybmluZyIpOwotICAgICAgICB3YXJuaW5nLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJXQVJOSU5HOiIpOwotICAgICAgICBzdWJzZWN0aW9uLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOwotICAgICAgICB2YXIgbWVzc2FnZSA9IHN1YnNlY3Rp
b24uY3JlYXRlQ2hpbGQoInNwYW4iLCAic2V0dGluZ3MtZXhwZXJpbWVudHMtd2FybmluZy1zdWJz
ZWN0aW9uLW1lc3NhZ2UiKTsKLSAgICAgICAgbWVzc2FnZS50ZXh0Q29udGVudCA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiVGhlc2UgZXhwZXJpbWVudHMgY291bGQgYmUgZGFuZ2Vyb3VzIGFuZCBt
YXkgcmVxdWlyZSByZXN0YXJ0LiIpOwotICAgICAgICByZXR1cm4gc3Vic2VjdGlvbjsKKyAgICAg
ICAgdmFyIGJsb2NrID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC1ibG9j
ayIpOworICAgICAgICBpZiAobmFtZSkKKyAgICAgICAgICAgIGJsb2NrLmNyZWF0ZUNoaWxkKCJk
aXYiLCAiaGVscC1zZWN0aW9uLXRpdGxlIikudGV4dENvbnRlbnQgPSBuYW1lOworICAgICAgICBy
ZXR1cm4gYmxvY2s7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19
IG9taXRQYXJhZ3JhcGhFbGVtZW50CisgICAgICogQHBhcmFtIHtFbGVtZW50PX0gaW5wdXRFbGVt
ZW50CiAgICAgICovCi0gICAgX2NyZWF0ZUNoZWNrYm94U2V0dGluZzogZnVuY3Rpb24obmFtZSwg
c2V0dGluZywgb21pdFBhcmFncmFwaEVsZW1lbnQpCisgICAgX2NyZWF0ZUNoZWNrYm94U2V0dGlu
ZzogZnVuY3Rpb24obmFtZSwgc2V0dGluZywgb21pdFBhcmFncmFwaEVsZW1lbnQsIGlucHV0RWxl
bWVudCkKICAgICB7Ci0gICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlucHV0Iik7CisgICAgICAgIHZhciBpbnB1dCA9IGlucHV0RWxlbWVudCB8fCBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgICBpbnB1dC50eXBlID0gImNoZWNrYm94IjsK
ICAgICAgICAgaW5wdXQubmFtZSA9IG5hbWU7CiAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBzZXR0
aW5nLmdldCgpOwpAQCAtMjI5LDI2ICsxNjIsNiBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3Jl
ZW4ucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcDsKICAgICB9LAogCi0gICAgX2NyZWF0
ZUV4cGVyaW1lbnRDaGVja2JveDogZnVuY3Rpb24oZXhwZXJpbWVudCkKLSAgICB7Ci0gICAgICAg
IHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIGlu
cHV0LnR5cGUgPSAiY2hlY2tib3giOwotICAgICAgICBpbnB1dC5uYW1lID0gZXhwZXJpbWVudC5u
YW1lOwotICAgICAgICBpbnB1dC5jaGVja2VkID0gZXhwZXJpbWVudC5pc0VuYWJsZWQoKTsKLSAg
ICAgICAgZnVuY3Rpb24gbGlzdGVuZXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBleHBlcmlt
ZW50LnNldEVuYWJsZWQoaW5wdXQuY2hlY2tlZCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW5wdXQu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBsaXN0ZW5lciwgZmFsc2UpOwotCi0gICAgICAgIHZh
ciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgICAgICB2YXIgbGFiZWwgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwotICAgICAgICBsYWJlbC5hcHBlbmRDaGls
ZChpbnB1dCk7Ci0gICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZyhleHBlcmltZW50LnRpdGxlKSkpOwotICAgICAgICBw
LmFwcGVuZENoaWxkKGxhYmVsKTsKLSAgICAgICAgcmV0dXJuIHA7Ci0gICAgfSwKLQogICAgIF9j
cmVhdGVTZWxlY3RTZXR0aW5nOiBmdW5jdGlvbihuYW1lLCBvcHRpb25zLCBzZXR0aW5nKQogICAg
IHsKICAgICAgICAgdmFyIGZpZWxkc2V0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImZpZWxkc2V0Iik7CkBAIC0zMjIsOCArMjM1LDEyMyBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NT
Y3JlZW4ucHJvdG90eXBlID0gewogICAgICAgICBmaWVsZHNldEVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CiAgICAgICAgIHAuYXBwZW5kQ2hpbGQoZmllbGRzZXRFbGVtZW50KTsKICAgICAg
ICAgcmV0dXJuIHA7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuU2V0dGluZ3NUYWIucHJvdG90
eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKKworLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2V0dGluZ3NUYWJ9CisgKi8K
K1dlYkluc3BlY3Rvci5HZW5lcmljU2V0dGluZ3NUYWIgPSBmdW5jdGlvbigpCit7CisgICAgV2Vi
SW5zcGVjdG9yLlNldHRpbmdzVGFiLmNhbGwodGhpcyk7CisKKyAgICB2YXIgcCA9IHRoaXMuX2Fw
cGVuZFNlY3Rpb24oKTsKKyAgICBpZiAoUHJlZmVyZW5jZXMuc2hvd0RvY2tUb1JpZ2h0KQorICAg
ICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkRvY2sgdG8gcmlnaHQiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRvY2tU
b1JpZ2h0KSk7CisgICAgaWYgKFByZWZlcmVuY2VzLmV4cG9zZURpc2FibGVDYWNoZSkKKyAgICAg
ICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJEaXNhYmxlIGNhY2hlIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jYWNoZURp
c2FibGVkKSk7CisgICAgdmFyIGRpc2FibGVKU0VsZW1lbnQgPSB0aGlzLl9jcmVhdGVDaGVja2Jv
eFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEaXNhYmxlIEphdmFTY3JpcHQiKSwgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLmphdmFTY3JpcHREaXNhYmxlZCk7CisgICAgcC5hcHBlbmRDaGls
ZChkaXNhYmxlSlNFbGVtZW50KTsKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuamF2YVNjcmlw
dERpc2FibGVkLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX2phdmFTY3JpcHREaXNhYmxlZENoYW5n
ZWQsIHRoaXMpOworICAgIHRoaXMuX2Rpc2FibGVKU0NoZWNrYm94ID0gZGlzYWJsZUpTRWxlbWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKKyAgICB0aGlzLl91cGRhdGVTY3Jp
cHREaXNhYmxlZENoZWNrYm94KCk7CisgICAgCisgICAgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbGVtZW50cyIpKTsKKyAgICBwLmFwcGVuZENoaWxkKHRo
aXMuX2NyZWF0ZVJhZGlvU2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbG9yIGZvcm1h
dCIpLCBbCisgICAgICAgIFsgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLkNvbG9yRm9y
bWF0Lk9yaWdpbmFsLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFzIGF1dGhvcmVkIikgXSwKKyAg
ICAgICAgWyBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ29sb3JGb3JtYXQuSEVYLCAi
SEVYOiAjREFDMERFIiBdLAorICAgICAgICBbIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFu
ZS5Db2xvckZvcm1hdC5SR0IsICJSR0I6IHJnYigxMjgsIDI1NSwgMjU1KSIgXSwKKyAgICAgICAg
WyBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ29sb3JGb3JtYXQuSFNMLCAiSFNMOiBo
c2woMzAwLCA4MCUsIDkwJSkiIF0gXSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbG9yRm9ybWF0
KSk7CisgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTaG93IHVzZXIgYWdlbnQgc3R5bGVzIiksIFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5zaG93VXNlckFnZW50U3R5bGVzKSk7CisgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9j
cmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXb3JkIHdyYXAiKSwg
V2ViSW5zcGVjdG9yLnNldHRpbmdzLmRvbVdvcmRXcmFwKSk7CisKKyAgICBwID0gdGhpcy5fYXBw
ZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbmRlcmluZyIpKTsKKyAgICBwLmFw
cGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNob3cgcGFpbnQgcmVjdGFuZ2xlcyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1Bh
aW50UmVjdHMpKTsKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1BhaW50UmVjdHMuYWRk
Q2hhbmdlTGlzdGVuZXIodGhpcy5fc2hvd1BhaW50UmVjdHNDaGFuZ2VkLCB0aGlzKTsKKworICAg
IHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU291cmNlcyIp
KTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlNob3cgZm9sZGVycyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hv
d1NjcmlwdEZvbGRlcnMpKTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94
U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCBpbiBjb250ZW50IHNjcmlwdHMi
KSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNlYXJjaEluQ29udGVudFNjcmlwdHMpKTsKKyAgICBw
LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkVuYWJsZSBzb3VyY2UgbWFwcyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc291cmNl
TWFwc0VuYWJsZWQpKTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVNlbGVjdFNldHRp
bmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbmRlbnRhdGlvbiIpLCBbCisgICAgICAgICAgICBb
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiMiBzcGFjZXMiKSwgV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNb2RlbC5JbmRlbnQuVHdvU3BhY2VzIF0sCisgICAgICAgICAgICBbIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiNCBzcGFjZXMiKSwgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbC5JbmRlbnQu
Rm91clNwYWNlcyBdLAorICAgICAgICAgICAgWyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIjggc3Bh
Y2VzIiksIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwuSW5kZW50LkVpZ2h0U3BhY2VzIF0s
CisgICAgICAgICAgICBbIFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGFiIGNoYXJhY3RlciIpLCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsLkluZGVudC5UYWJDaGFyYWN0ZXIgXQorICAgICAg
ICBdLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudGV4dEVkaXRvckluZGVudCkpOworCisgICAgcCA9
IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxlciIpKTsK
KyAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNob3cgb2JqZWN0cycgaGlkZGVuIHByb3BlcnRpZXMiKSwgV2ViSW5zcGVj
dG9yLnNldHRpbmdzLnNob3dIZWFwU25hcHNob3RPYmplY3RzSGlkZGVuUHJvcGVydGllcykpOwor
CisgICAgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25z
b2xlIikpOworICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTG9nIFhNTEh0dHBSZXF1ZXN0cyIpLCBXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpKTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByZXNlcnZlIGxv
ZyB1cG9uIG5hdmlnYXRpb24iKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByZXNlcnZlQ29uc29s
ZUxvZykpOworCisgICAgaWYgKFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIuaGFzRXh0ZW5z
aW9ucygpKSB7CisgICAgICAgIHZhciBoYW5kbGVyU2VsZWN0b3IgPSBuZXcgV2ViSW5zcGVjdG9y
LkhhbmRsZXJTZWxlY3RvcihXZWJJbnNwZWN0b3Iub3BlbkFuY2hvckxvY2F0aW9uUmVnaXN0cnkp
OworICAgICAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkV4dGVuc2lvbnMiKSk7CisgICAgICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ3VzdG9t
U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9wZW4gbGlua3MgaW4iKSwgaGFuZGxlclNl
bGVjdG9yLmVsZW1lbnQpKTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5HZW5lcmljU2V0dGlu
Z3NUYWIucHJvdG90eXBlID0geworICAgIF9zaG93UGFpbnRSZWN0c0NoYW5nZWQ6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIFBhZ2VBZ2VudC5zZXRTaG93UGFpbnRSZWN0cyhXZWJJbnNwZWN0
b3Iuc2V0dGluZ3Muc2hvd1BhaW50UmVjdHMuZ2V0KCkpOwogICAgIH0sCiAKKyAgICBfdXBkYXRl
U2NyaXB0RGlzYWJsZWRDaGVja2JveDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZnVuY3Rp
b24gZXhlY3V0aW9uU3RhdHVzQ2FsbGJhY2soZXJyb3IsIHN0YXR1cykKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKGVycm9yIHx8ICFzdGF0dXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICAgICAgY2FzZSAiZm9yYmlk
ZGVuIjoKKyAgICAgICAgICAgICAgICB0aGlzLl9kaXNhYmxlSlNDaGVja2JveC5jaGVja2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9kaXNhYmxlSlNDaGVja2JveC5kaXNhYmxlZCA9
IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJkaXNhYmxl
ZCI6CisgICAgICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUpTQ2hlY2tib3guY2hlY2tlZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIHRoaXMuX2Rpc2FibGVKU0NoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFBh
Z2VBZ2VudC5nZXRTY3JpcHRFeGVjdXRpb25TdGF0dXMoZXhlY3V0aW9uU3RhdHVzQ2FsbGJhY2su
YmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIF9qYXZhU2NyaXB0RGlzYWJsZWRDaGFuZ2VkOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICAvLyBXZSBuZWVkIHRvIG1hbnVhbGx5IHVwZGF0ZSB0
aGUgY2hlY2tib3ggc3RhdGUsIHNpbmNlIGVuYWJsaW5nIEphdmFTY3JpcHQgaW4gdGhlIHBhZ2Ug
Y2FuIGFjdHVhbGx5IHVuY292ZXIgdGhlICJmb3JiaWRkZW4iIHN0YXRlLgorICAgICAgICBQYWdl
QWdlbnQuc2V0U2NyaXB0RXhlY3V0aW9uRGlzYWJsZWQoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmph
dmFTY3JpcHREaXNhYmxlZC5nZXQoKSwgdGhpcy5fdXBkYXRlU2NyaXB0RGlzYWJsZWRDaGVja2Jv
eC5iaW5kKHRoaXMpKTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5HZW5lcmljU2V0dGluZ3NU
YWIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TZXR0aW5nc1RhYi5wcm90b3R5
cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNl
dHRpbmdzVGFifQorICovCitXZWJJbnNwZWN0b3IuVXNlckFnZW50U2V0dGluZ3NUYWIgPSBmdW5j
dGlvbigpCit7CisgICAgV2ViSW5zcGVjdG9yLlNldHRpbmdzVGFiLmNhbGwodGhpcyk7CisKKyAg
ICB2YXIgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oKTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZVVzZXJBZ2VudENvbnRyb2woKSk7CisgICAgaWYgKENhcGFiaWxpdGllcy5jYW5PdmVy
cmlkZURldmljZU1ldHJpY3MpCisgICAgICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlRGV2
aWNlTWV0cmljc0NvbnRyb2woKSk7CisgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVj
a2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbXVsYXRlIHRvdWNoIGV2ZW50cyIp
LCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZW11bGF0ZVRvdWNoRXZlbnRzKSk7Cit9CisKK1dlYklu
c3BlY3Rvci5Vc2VyQWdlbnRTZXR0aW5nc1RhYi5wcm90b3R5cGUgPSB7CiAgICAgX2NyZWF0ZVVz
ZXJBZ2VudENvbnRyb2w6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciB1c2VyQWdlbnQg
PSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudXNlckFnZW50LmdldCgpOwpAQCAtMzMzLDI5ICszNjEs
MTIgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIGNoZWNrYm94RWxlbWVudCA9IGxhYmVsRWxlbWVudC5jcmVhdGVDaGlsZCgiaW5wdXQiKTsK
ICAgICAgICAgY2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICBjaGVj
a2JveEVsZW1lbnQuY2hlY2tlZCA9ICEhdXNlckFnZW50OwotICAgICAgICBjaGVja2JveEVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBjaGVja2JveENsaWNrZWQuYmluZCh0aGlzKSwg
ZmFsc2UpOwogICAgICAgICBsYWJlbEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIk92ZXJyaWRlIFVzZXIgQWdlbnQiKSk7Ci0KLSAgICAgICAgdmFyIHNlbGVjdFNl
Y3Rpb25FbGVtZW50OwotICAgICAgICBmdW5jdGlvbiBjaGVja2JveENsaWNrZWQoKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBpZiAoY2hlY2tib3hFbGVtZW50LmNoZWNrZWQpIHsKLSAgICAgICAg
ICAgICAgICBzZWxlY3RTZWN0aW9uRWxlbWVudCA9IHRoaXMuX2NyZWF0ZVVzZXJBZ2VudFNlbGVj
dFJvd0VsZW1lbnQoKTsKLSAgICAgICAgICAgICAgICBwLmFwcGVuZENoaWxkKHNlbGVjdFNlY3Rp
b25FbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNl
bGVjdFNlY3Rpb25FbGVtZW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIHAucmVtb3ZlQ2hpbGQo
c2VsZWN0U2VjdGlvbkVsZW1lbnQpOwotICAgICAgICAgICAgICAgICAgICBzZWxlY3RTZWN0aW9u
RWxlbWVudCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy51c2VyQWdlbnQuc2V0KCIiKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgIGNoZWNrYm94Q2xpY2tlZC5jYWxsKHRoaXMpOworICAgICAgICBwLmFw
cGVuZENoaWxkKHRoaXMuX2NyZWF0ZVVzZXJBZ2VudFNlbGVjdFJvd0VsZW1lbnQoY2hlY2tib3hF
bGVtZW50KSk7CiAgICAgICAgIHJldHVybiBwOwogICAgIH0sCiAKLSAgICBfY3JlYXRlVXNlckFn
ZW50U2VsZWN0Um93RWxlbWVudDogZnVuY3Rpb24oKQorICAgIF9jcmVhdGVVc2VyQWdlbnRTZWxl
Y3RSb3dFbGVtZW50OiBmdW5jdGlvbihjaGVja2JveEVsZW1lbnQpCiAgICAgewogICAgICAgICB2
YXIgdXNlckFnZW50ID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnVzZXJBZ2VudC5nZXQoKTsKIApA
QCAtMzkwLDc1ICs0MDEsODMgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgXTsKIAogICAgICAgICB2YXIgZmllbGRzZXRFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTsKLSAgICAgICAgdmFyIHNlbGVjdEVsZW1lbnQg
PSBmaWVsZHNldEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNlbGVjdCIpOwotICAgICAgICB2YXIgb3Ro
ZXJVc2VyQWdlbnRFbGVtZW50ID0gZmllbGRzZXRFbGVtZW50LmNyZWF0ZUNoaWxkKCJpbnB1dCIp
OwotICAgICAgICBvdGhlclVzZXJBZ2VudEVsZW1lbnQudmFsdWUgPSB1c2VyQWdlbnQ7Ci0gICAg
ICAgIG90aGVyVXNlckFnZW50RWxlbWVudC50aXRsZSA9IHVzZXJBZ2VudDsKKyAgICAgICAgdGhp
cy5fc2VsZWN0RWxlbWVudCA9IGZpZWxkc2V0RWxlbWVudC5jcmVhdGVDaGlsZCgic2VsZWN0Iik7
CisgICAgICAgIHRoaXMuX290aGVyVXNlckFnZW50RWxlbWVudCA9IGZpZWxkc2V0RWxlbWVudC5j
cmVhdGVDaGlsZCgiaW5wdXQiKTsKKyAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRFbGVtZW50
LnZhbHVlID0gdXNlckFnZW50OworICAgICAgICB0aGlzLl9vdGhlclVzZXJBZ2VudEVsZW1lbnQu
dGl0bGUgPSB1c2VyQWdlbnQ7CiAKICAgICAgICAgdmFyIHNlbGVjdGlvblJlc3RvcmVkID0gZmFs
c2U7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlckFnZW50cy5sZW5ndGg7ICsraSkg
ewogICAgICAgICAgICAgdmFyIGFnZW50ID0gdXNlckFnZW50c1tpXTsKICAgICAgICAgICAgIHZh
ciBvcHRpb24gPSBuZXcgT3B0aW9uKGFnZW50WzBdLCBhZ2VudFsxXSk7CiAgICAgICAgICAgICBv
cHRpb24uX21ldHJpY3MgPSBhZ2VudFsyXSA/IGFnZW50WzJdIDogIiI7Ci0gICAgICAgICAgICBz
ZWxlY3RFbGVtZW50LmFkZChvcHRpb24pOworICAgICAgICAgICAgdGhpcy5fc2VsZWN0RWxlbWVu
dC5hZGQob3B0aW9uKTsKICAgICAgICAgICAgIGlmICh1c2VyQWdlbnQgPT09IGFnZW50WzFdKSB7
Ci0gICAgICAgICAgICAgICAgc2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4ID0gaTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9zZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5kZXggPSBpOwogICAgICAg
ICAgICAgICAgIHNlbGVjdGlvblJlc3RvcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCiAgICAgICAgIGlmICghc2VsZWN0aW9uUmVzdG9yZWQpIHsKICAgICAgICAgICAgIGlm
ICghdXNlckFnZW50KQotICAgICAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRl
eCA9IDA7CisgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4
ID0gMDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNl
bGVjdGVkSW5kZXggPSB1c2VyQWdlbnRzLmxlbmd0aCAtIDE7CisgICAgICAgICAgICAgIHRoaXMu
X3NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleCA9IHVzZXJBZ2VudHMubGVuZ3RoIC0gMTsKICAg
ICAgICAgfQogCi0gICAgICAgIHNlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdl
Iiwgc2VsZWN0aW9uQ2hhbmdlZC5iaW5kKHRoaXMsIHRydWUpLCBmYWxzZSk7Ci0KLSAgICAgICAg
LyoqCi0gICAgICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzVXNlckdlc3R1cmUKLSAgICAgICAg
ICovCi0gICAgICAgIGZ1bmN0aW9uIHNlbGVjdGlvbkNoYW5nZWQoaXNVc2VyR2VzdHVyZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0RWxlbWVudC5vcHRpb25zW3Nl
bGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7Ci0gICAgICAgICAgICBpZiAodmFsdWUg
IT09ICJPdGhlciIpIHsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudXNl
ckFnZW50LnNldCh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgb3RoZXJVc2VyQWdlbnRFbGVtZW50
LnZhbHVlID0gdmFsdWU7Ci0gICAgICAgICAgICAgICAgb3RoZXJVc2VyQWdlbnRFbGVtZW50LnRp
dGxlID0gdmFsdWU7Ci0gICAgICAgICAgICAgICAgb3RoZXJVc2VyQWdlbnRFbGVtZW50LmRpc2Fi
bGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgb3RoZXJV
c2VyQWdlbnRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgb3RoZXJV
c2VyQWdlbnRFbGVtZW50LmZvY3VzKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlm
IChpc1VzZXJHZXN0dXJlICYmIENhcGFiaWxpdGllcy5jYW5PdmVycmlkZURldmljZU1ldHJpY3Mp
IHsKLSAgICAgICAgICAgICAgICB2YXIgbWV0cmljcyA9IHNlbGVjdEVsZW1lbnQub3B0aW9uc1tz
ZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5kZXhdLl9tZXRyaWNzOwotICAgICAgICAgICAgICAgIHRo
aXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9y
dC5EZXZpY2VNZXRyaWNzLnBhcnNlU2V0dGluZyhtZXRyaWNzKSwgZmFsc2UsIHRydWUpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIHRoaXMuX3NlbGVjdEVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5iaW5kKHRoaXMsIHRy
dWUpLCBmYWxzZSk7CiAKICAgICAgICAgZmllbGRzZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImRibGNsaWNrIiwgdGV4dERvdWJsZUNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgICAg
ICBvdGhlclVzZXJBZ2VudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRleHRDaGFu
Z2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCB0ZXh0Q2hhbmdlZC5iaW5kKHRoaXMpLCBmYWxz
ZSk7CiAKICAgICAgICAgZnVuY3Rpb24gdGV4dERvdWJsZUNsaWNrZWQoKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5kZXggPSB1c2VyQWdlbnRzLmxlbmd0
aCAtIDE7Ci0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkLmNhbGwodGhpcyk7CisgICAgICAg
ICAgICB0aGlzLl9zZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5kZXggPSB1c2VyQWdlbnRzLmxlbmd0
aCAtIDE7CisgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkKCk7CiAgICAgICAgIH0K
IAogICAgICAgICBmdW5jdGlvbiB0ZXh0Q2hhbmdlZCgpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5zZXR0aW5ncy51c2VyQWdlbnQuc2V0KG90aGVyVXNlckFnZW50RWxlbWVu
dC52YWx1ZSk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudXNlckFnZW50LnNl
dCh0aGlzLl9vdGhlclVzZXJBZ2VudEVsZW1lbnQudmFsdWUpOwogICAgICAgICB9CiAKLSAgICAg
ICAgc2VsZWN0aW9uQ2hhbmdlZC5jYWxsKHRoaXMpOworICAgICAgICBmdW5jdGlvbiBjaGVja2Jv
eENsaWNrZWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY2hlY2tib3hFbGVtZW50LmNo
ZWNrZWQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RFbGVtZW50LmRpc2FibGVkID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZCgpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RFbGVtZW50LmRpc2Fi
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9vdGhlclVzZXJBZ2VudEVsZW1lbnQu
ZGlzYWJsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy51
c2VyQWdlbnQuc2V0KCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjaGVj
a2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBjaGVja2JveENsaWNrZWQuYmlu
ZCh0aGlzKSwgZmFsc2UpOworCisgICAgICAgIGNoZWNrYm94Q2xpY2tlZC5jYWxsKHRoaXMpOwog
ICAgICAgICByZXR1cm4gZmllbGRzZXRFbGVtZW50OwogICAgIH0sCiAKLSAgICBfc2hvd1BhaW50
UmVjdHNDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFu
PX0gaXNVc2VyR2VzdHVyZQorICAgICAqLworICAgIF9zZWxlY3Rpb25DaGFuZ2VkOiBmdW5jdGlv
bihpc1VzZXJHZXN0dXJlKQogICAgIHsKLSAgICAgICAgUGFnZUFnZW50LnNldFNob3dQYWludFJl
Y3RzKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93UGFpbnRSZWN0cy5nZXQoKSk7CisgICAgICAg
IHZhciB2YWx1ZSA9IHRoaXMuX3NlbGVjdEVsZW1lbnQub3B0aW9uc1t0aGlzLl9zZWxlY3RFbGVt
ZW50LnNlbGVjdGVkSW5kZXhdLnZhbHVlOworICAgICAgICBpZiAodmFsdWUgIT09ICJPdGhlciIp
IHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy51c2VyQWdlbnQuc2V0KHZhbHVl
KTsKKyAgICAgICAgICAgIHRoaXMuX290aGVyVXNlckFnZW50RWxlbWVudC52YWx1ZSA9IHZhbHVl
OworICAgICAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRFbGVtZW50LnRpdGxlID0gdmFsdWU7
CisgICAgICAgICAgICB0aGlzLl9vdGhlclVzZXJBZ2VudEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVl
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRFbGVt
ZW50LmRpc2FibGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLl9vdGhlclVzZXJBZ2VudEVs
ZW1lbnQuZm9jdXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc1VzZXJHZXN0dXJlICYm
IENhcGFiaWxpdGllcy5jYW5PdmVycmlkZURldmljZU1ldHJpY3MpIHsKKyAgICAgICAgICAgIHZh
ciBtZXRyaWNzID0gdGhpcy5fc2VsZWN0RWxlbWVudC5vcHRpb25zW3RoaXMuX3NlbGVjdEVsZW1l
bnQuc2VsZWN0ZWRJbmRleF0uX21ldHJpY3M7CisgICAgICAgICAgICB0aGlzLl9zZXREZXZpY2VN
ZXRyaWNzT3ZlcnJpZGUoV2ViSW5zcGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQuRGV2aWNlTWV0cmlj
cy5wYXJzZVNldHRpbmcobWV0cmljcyksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgfQogICAgIH0s
CiAKICAgICBfdXBkYXRlU2NyaXB0RGlzYWJsZWRDaGVja2JveDogZnVuY3Rpb24oKQpAQCAtNDg1
LDEyICs1MDQsNiBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlID0gewog
ICAgICAgICBQYWdlQWdlbnQuZ2V0U2NyaXB0RXhlY3V0aW9uU3RhdHVzKGV4ZWN1dGlvblN0YXR1
c0NhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBfamF2YVNjcmlwdERpc2FibGVk
Q2hhbmdlZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8gV2UgbmVlZCB0byBtYW51YWxs
eSB1cGRhdGUgdGhlIGNoZWNrYm94IHN0YXRlLCBzaW5jZSBlbmFibGluZyBKYXZhU2NyaXB0IGlu
IHRoZSBwYWdlIGNhbiBhY3R1YWxseSB1bmNvdmVyIHRoZSAiZm9yYmlkZGVuIiBzdGF0ZS4KLSAg
ICAgICAgUGFnZUFnZW50LnNldFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkKFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5qYXZhU2NyaXB0RGlzYWJsZWQuZ2V0KCksIHRoaXMuX3VwZGF0ZVNjcmlwdERpc2Fi
bGVkQ2hlY2tib3guYmluZCh0aGlzKSk7Ci0gICAgfSwKLQogICAgIF9jcmVhdGVEZXZpY2VNZXRy
aWNzQ29udHJvbDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgY29uc3QgbWV0cmljc1NldHRp
bmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5nZXQoKTsKQEAgLTUxNywx
NSArNTMwLDIwIEBAIFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAK
ICAgICBfb25NZXRyaWNzQ2hlY2tib3hDbGlja2VkOiBmdW5jdGlvbigpCiAgICAgeworICAgICAg
ICB2YXIgY29udHJvbHNEaXNhYmxlZCA9ICF0aGlzLl9tZXRyaWNzQ2hlY2tib3hFbGVtZW50LmNo
ZWNrZWQ7CisgICAgICAgIHRoaXMuX3dpZHRoT3ZlcnJpZGVFbGVtZW50LmRpc2FibGVkID0gY29u
dHJvbHNEaXNhYmxlZDsKKyAgICAgICAgdGhpcy5faGVpZ2h0T3ZlcnJpZGVFbGVtZW50LmRpc2Fi
bGVkID0gY29udHJvbHNEaXNhYmxlZDsKKyAgICAgICAgdGhpcy5fZm9udFNjYWxlRmFjdG9yT3Zl
cnJpZGVFbGVtZW50LmRpc2FibGVkID0gY29udHJvbHNEaXNhYmxlZDsKKyAgICAgICAgdGhpcy5f
c3dhcERpbWVuc2lvbnNFbGVtZW50LmRpc2FibGVkID0gY29udHJvbHNEaXNhYmxlZDsKKyAgICAg
ICAgdGhpcy5fZml0V2luZG93Q2hlY2tib3hFbGVtZW50LmRpc2FibGVkID0gY29udHJvbHNEaXNh
YmxlZDsKKwogICAgICAgICBpZiAodGhpcy5fbWV0cmljc0NoZWNrYm94RWxlbWVudC5jaGVja2Vk
KSB7Ci0gICAgICAgICAgICB0aGlzLl9tZXRyaWNzU2VjdGlvbkVsZW1lbnQucmVtb3ZlU3R5bGVD
bGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB2YXIgbWV0cmljcyA9IFdlYkluc3BlY3Rvci5V
c2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3MucGFyc2VVc2VySW5wdXQodGhpcy5fd2lkdGhP
dmVycmlkZUVsZW1lbnQudmFsdWUsIHRoaXMuX2hlaWdodE92ZXJyaWRlRWxlbWVudC52YWx1ZSwg
dGhpcy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJpZGVFbGVtZW50LnZhbHVlKTsKICAgICAgICAgICAg
IGlmIChtZXRyaWNzICYmIG1ldHJpY3MuaXNWYWxpZCgpICYmIG1ldHJpY3Mud2lkdGggJiYgbWV0
cmljcy5oZWlnaHQpCiAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RGV2aWNlTWV0cmljc092ZXJy
aWRlKG1ldHJpY3MsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICAgICBpZiAoIXRoaXMuX3dpZHRo
T3ZlcnJpZGVFbGVtZW50LnZhbHVlKQogICAgICAgICAgICAgICAgIHRoaXMuX3dpZHRoT3ZlcnJp
ZGVFbGVtZW50LmZvY3VzKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9t
ZXRyaWNzU2VjdGlvbkVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAg
ICBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRldmljZU1ldHJpY3MuZ2V0KCkpCiAgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRldmljZU1ldHJpY3Muc2V0KCIiKTsKICAg
ICAgICAgfQpAQCAtNjEyLDEwICs2MzAsMTAgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVu
LnByb3RvdHlwZSA9IHsKICAgICAgICAgY2VsbEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIiBcdTAwRDcgIikpOyAvLyBNVUxUSVBMSUNBVElPTiBTSUdOLgogICAg
ICAgICB0aGlzLl9oZWlnaHRPdmVycmlkZUVsZW1lbnQgPSBjcmVhdGVJbnB1dC5jYWxsKHRoaXMs
IGNlbGxFbGVtZW50LCAibWV0cmljcy1vdmVycmlkZS1oZWlnaHQiLCBTdHJpbmcobWV0cmljcy5o
ZWlnaHQgfHwgc2NyZWVuLmhlaWdodCkpOwogICAgICAgICBjZWxsRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIFx1MjAxNCAiKSk7IC8vIEVNIERBU0guCi0gICAg
ICAgIHZhciBzd2FwRGltZW5zaW9uc0VsZW1lbnQgPSBjZWxsRWxlbWVudC5jcmVhdGVDaGlsZCgi
YnV0dG9uIik7Ci0gICAgICAgIHN3YXBEaW1lbnNpb25zRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiIFx1MjFDNCAiKSk7IC8vIFJJR0hUV0FSRFMgQVJST1cgT1ZF
UiBMRUZUV0FSRFMgQVJST1cuCi0gICAgICAgIHN3YXBEaW1lbnNpb25zRWxlbWVudC50aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3dhcCBkaW1lbnNpb25zIik7Ci0gICAgICAgIHN3YXBE
aW1lbnNpb25zRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHN3YXBEaW1lbnNpb25z
Q2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICAgIHRoaXMuX3N3YXBEaW1lbnNpb25z
RWxlbWVudCA9IGNlbGxFbGVtZW50LmNyZWF0ZUNoaWxkKCJidXR0b24iKTsKKyAgICAgICAgdGhp
cy5fc3dhcERpbWVuc2lvbnNFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIgXHUyMUM0ICIpKTsgLy8gUklHSFRXQVJEUyBBUlJPVyBPVkVSIExFRlRXQVJEUyBBUlJP
Vy4KKyAgICAgICAgdGhpcy5fc3dhcERpbWVuc2lvbnNFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTd2FwIGRpbWVuc2lvbnMiKTsKKyAgICAgICAgdGhpcy5fc3dhcERpbWVu
c2lvbnNFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgc3dhcERpbWVuc2lvbnNDbGlj
a2VkLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgICAgICByb3dFbGVtZW50ID0gdGFibGVFbGVt
ZW50LmNyZWF0ZUNoaWxkKCJ0ciIpOwogICAgICAgICBjZWxsRWxlbWVudCA9IHJvd0VsZW1lbnQu
Y3JlYXRlQ2hpbGQoInRkIik7CkBAIC02MjYsMzMgKzY0NCw2OSBAQCBXZWJJbnNwZWN0b3IuU2V0
dGluZ3NTY3JlZW4ucHJvdG90eXBlID0gewogICAgICAgICByb3dFbGVtZW50ID0gdGFibGVFbGVt
ZW50LmNyZWF0ZUNoaWxkKCJ0ciIpOwogICAgICAgICBjZWxsRWxlbWVudCA9IHJvd0VsZW1lbnQu
Y3JlYXRlQ2hpbGQoInRkIik7CiAgICAgICAgIGNlbGxFbGVtZW50LmNvbHNwYW4gPSAyOwotICAg
ICAgICBjZWxsRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmco
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaXQgd2luZG93IiksIFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5kZXZpY2VGaXRXaW5kb3csIHRydWUpKTsKKyAgICAgICAgdGhpcy5fZml0V2luZG93Q2hlY2ti
b3hFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgY2Vs
bEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiRml0IGluIHdpbmRvdyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGV2
aWNlRml0V2luZG93LCB0cnVlLCB0aGlzLl9maXRXaW5kb3dDaGVja2JveEVsZW1lbnQpKTsKIAog
ICAgICAgICByZXR1cm4gZmllbGRzZXRFbGVtZW50OwogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9y
LlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNj
cmVlbi5wcm90b3R5cGU7Ci0KLVdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5UYWJzID0gewot
ICAgIFNldHRpbmdzOiAiU2V0dGluZ3MiLAotICAgIFNob3J0Y3V0czogIlNob3J0Y3V0cyIKLX0K
K1dlYkluc3BlY3Rvci5Vc2VyQWdlbnRTZXR0aW5nc1RhYi5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLlNldHRpbmdzVGFiLnByb3RvdHlwZTsKIAogLyoqCiAgKiBAY29uc3RydWN0
b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZX0KLSAqIEBwYXJhbSB7IUVs
ZW1lbnR9IGNsb3NlQnV0dG9uCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNldHRpbmdzVGFi
fQogICovCi1XZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW5UYWJiZWRQYW5lID0gZnVuY3Rpb24o
Y2xvc2VCdXR0b24pCitXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5nc1RhYiA9IGZ1bmN0
aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5jYWxsKHRoaXMpOwotICAgIHRo
aXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoZWxwLXdpbmRvdy1tYWluIik7CisgICAgV2ViSW5z
cGVjdG9yLlNldHRpbmdzVGFiLmNhbGwodGhpcyk7CisKKyAgICB2YXIgZXhwZXJpbWVudHMgPSBX
ZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5leHBlcmltZW50czsKKyAgICBpZiAoZXhw
ZXJpbWVudHMubGVuZ3RoKSB7CisgICAgICAgIHZhciBleHBlcmltZW50c1NlY3Rpb24gPSB0aGlz
Ll9hcHBlbmRTZWN0aW9uKCk7CisgICAgICAgIGV4cGVyaW1lbnRzU2VjdGlvbi5hcHBlbmRDaGls
ZCh0aGlzLl9jcmVhdGVFeHBlcmltZW50c1dhcm5pbmdTdWJzZWN0aW9uKCkpOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGV4cGVyaW1lbnRzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
ZXhwZXJpbWVudHNTZWN0aW9uLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnRDaGVj
a2JveChleHBlcmltZW50c1tpXSkpOworICAgIH0KK30KIAotICAgIHRoaXMuX2hlYWRlckNvbnRl
bnRzRWxlbWVudC5pbnNlcnRCZWZvcmUoY2xvc2VCdXR0b24sIHRoaXMuX2hlYWRlckNvbnRlbnRz
RWxlbWVudC5maXJzdENoaWxkKTsKK1dlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdzVGFi
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fSBlbGVtZW50
CisgICAgICovCisgICAgX2NyZWF0ZUV4cGVyaW1lbnRzV2FybmluZ1N1YnNlY3Rpb246IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzdWJzZWN0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgICAgIHZhciB3YXJuaW5nID0gc3Vic2VjdGlvbi5jcmVhdGVDaGls
ZCgic3BhbiIsICJzZXR0aW5ncy1leHBlcmltZW50cy13YXJuaW5nLXN1YnNlY3Rpb24td2Fybmlu
ZyIpOworICAgICAgICB3YXJuaW5nLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJXQVJOSU5HOiIpOworICAgICAgICBzdWJzZWN0aW9uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCIgIikpOworICAgICAgICB2YXIgbWVzc2FnZSA9IHN1YnNlY3Rpb24uY3Jl
YXRlQ2hpbGQoInNwYW4iLCAic2V0dGluZ3MtZXhwZXJpbWVudHMtd2FybmluZy1zdWJzZWN0aW9u
LW1lc3NhZ2UiKTsKKyAgICAgICAgbWVzc2FnZS50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiVGhlc2UgZXhwZXJpbWVudHMgY291bGQgYmUgZGFuZ2Vyb3VzIGFuZCBtYXkgcmVx
dWlyZSByZXN0YXJ0LiIpOworICAgICAgICByZXR1cm4gc3Vic2VjdGlvbjsKKyAgICB9LAorCisg
ICAgX2NyZWF0ZUV4cGVyaW1lbnRDaGVja2JveDogZnVuY3Rpb24oZXhwZXJpbWVudCkKKyAgICB7
CisgICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cisg
ICAgICAgIGlucHV0LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICBpbnB1dC5uYW1lID0gZXhw
ZXJpbWVudC5uYW1lOworICAgICAgICBpbnB1dC5jaGVja2VkID0gZXhwZXJpbWVudC5pc0VuYWJs
ZWQoKTsKKyAgICAgICAgZnVuY3Rpb24gbGlzdGVuZXIoKQorICAgICAgICB7CisgICAgICAgICAg
ICBleHBlcmltZW50LnNldEVuYWJsZWQoaW5wdXQuY2hlY2tlZCk7CisgICAgICAgIH0KKyAgICAg
ICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBsaXN0ZW5lciwgZmFsc2UpOworCisg
ICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICB2YXIg
bGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOworICAgICAgICBsYWJlbC5h
cHBlbmRDaGlsZChpbnB1dCk7CisgICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZyhleHBlcmltZW50LnRpdGxlKSkpOwor
ICAgICAgICBwLmFwcGVuZENoaWxkKGxhYmVsKTsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfQog
fQogCi1XZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW5UYWJiZWRQYW5lLnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3Iu
RXhwZXJpbWVudHNTZXR0aW5nc1RhYi5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LlNldHRpbmdzVGFiLnByb3RvdHlwZTsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMK
aW5kZXggYmRjYzUzMmYwYWQ4OGY4ZTMzZjcwNWMxMDViNzJhZjFhMTZmN2M2NS4uODRkODUyZTU0
MGY4MTkwOTI0MTc3ZWRhOWI4ZTQ4OGY3MTg0ZjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanMKQEAgLTQ1LDcgKzQ1
LDcgQEAgV2ViSW5zcGVjdG9yLlNob3J0Y3V0c1NjcmVlbi5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHJldHVybiBzZWN0aW9uOwogICAgIH0sCiAKLSAgICBfY3JlYXRlU2hvcnRjdXRzVGFiVmlldzog
ZnVuY3Rpb24oKQorICAgIGNyZWF0ZVNob3J0Y3V0c1RhYlZpZXc6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIHZhciBvcmRlcmVkU2VjdGlvbnMgPSBbXTsKICAgICAgICAgZm9yICh2YXIgc2Vj
dGlvbiBpbiB0aGlzLl9zZWN0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGFiYmVkUGFuZS5qcwppbmRleCAwOWRjMjIwNTlkM2ZhMThjNGY1MWNkZDVjZDdl
YmUxOTcwZmJlN2U2Li4xOWYzNDI0M2QyNjIzNWY1NjZiODdlNmU4YTU3ZTFjMGE5ZmQxMDcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpz
CkBAIC0xMjUsNiArMTI1LDExIEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMuX3RhYnNIaXN0b3J5WzBdLmlkLCB1
c2VyR2VzdHVyZSk7CiAgICAgfSwKIAorICAgIGdldCBoZWFkZXJDb250ZW50c0VsZW1lbnQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckNvbnRlbnRzRWxlbWVudDsKKyAgICB9
LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGlkCiAgICAgICogQHBhcmFtIHti
b29sZWFuPX0gdXNlckdlc3R1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2hlbHBTY3JlZW4uY3NzCmluZGV4IDRkNmI1ODM0NjNiN2YxMTVmMTM3YjAxNDhkYWFk
YzQ2NmI0MDVmOGQuLjE0MjllODQzM2M1YjA2MDM5MzBlMzQzZTQ2NWJlZGM1MjA1NjlmMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5j
c3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNz
cwpAQCAtMTI2LDEyICsxMjYsMTIgQEAgYm9keS5wbGF0Zm9ybS1tYWMgLmhlbHAtYmxvY2sgewog
ICAgIHdpZHRoOiAzMzBweDsKIH0KIAotI3NldHRpbmdzLmhlbHAtY29udGFpbmVyIHsKLSAgICAt
d2Via2l0LWNvbHVtbi13aWR0aDogMjQwcHg7Cisuc2V0dGluZ3MtdGFiLmhlbHAtY29udGFpbmVy
IHsKKyAgICAtd2Via2l0LWNvbHVtbi13aWR0aDogNDEwcHg7CiB9CiAKLSNzZXR0aW5ncyAuaGVs
cC1ibG9jayB7Ci0gICAgd2lkdGg6IDI0MHB4OworLnNldHRpbmdzLXRhYiAuaGVscC1ibG9jayB7
CisgICAgd2lkdGg6IDQxMHB4OwogfQogCiAuaGVscC1saW5lIHsKQEAgLTE4NSw3ICsxODUsNyBA
QCBib2R5LnBsYXRmb3JtLW1hYyAuaGVscC1rZXkgewogCiAuaGVscC1jb250ZW50IGZpZWxkc2V0
IHsKICAgICBib3JkZXI6IG5vbmU7Ci0gICAgbWFyZ2luLWxlZnQ6IDlweDsKKyAgICBtYXJnaW4t
bGVmdDogN3B4OwogfQogCiAuaGVscC1jb250ZW50IGZpZWxkc2V0IHAgewpAQCAtMjU5LDcgKzI1
OSw3IEBAIGJvZHk6bm90KC5jb21wYWN0KSAjc2V0dGluZ3Mtc2NyZWVuIC50YWJiZWQtcGFuZSB7
CiB9CiAKICNzZXR0aW5ncy1zY3JlZW4gLnRhYmJlZC1wYW5lLWhlYWRlci10YWJzIHsKLSAgICBw
YWRkaW5nLXRvcDogOXB4OworICAgIHBhZGRpbmctdG9wOiA2cHg7CiB9CiAKICNzZXR0aW5ncy1z
Y3JlZW4gLnRhYmJlZC1wYW5lLWhlYWRlci10YWIgewpAQCAtMjY4LDkgKzI2OCw5IEBAIGJvZHk6
bm90KC5jb21wYWN0KSAjc2V0dGluZ3Mtc2NyZWVuIC50YWJiZWQtcGFuZSB7CiAgICAgdG9wOiAx
cHg7CiAgICAgdGV4dC1zaGFkb3c6IG5vbmU7CiAgICAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1
KTsKLSAgICBoZWlnaHQ6IDE5cHg7CisgICAgaGVpZ2h0OiAyMnB4OwogICAgIGZvbnQtc2l6ZTog
MTNweDsKLSAgICBwYWRkaW5nOiAwIDRweDsKKyAgICBwYWRkaW5nOiAxcHggMTBweDsKICAgICBt
YXJnaW46IDA7CiB9CiAK
</data>
<flag name="review"
          id="155107"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>147584</attachid>
            <date>2012-06-14 07:31:21 -0700</date>
            <delta_ts>2012-06-14 07:31:38 -0700</delta_ts>
            <desc>[SettingsScreen.js]</desc>
            <filename>SettingsScreen.js</filename>
            <type>application/javascript</type>
            <size>31623</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">LyoKICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiAqIG1ldDoKICoKICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgogKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCiAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogKiBkaXN0cmlidXRp
b24uCiAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAog
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCiAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogKi8KCi8qKgogKiBAY29uc3RydWN0b3IKICogQHBhcmFtIHsh
ZnVuY3Rpb24oKX0gb25IaWRlCiAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSGVscFNjcmVlbn0K
ICovCldlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1bmN0aW9uKG9uSGlkZSkKewogICAg
V2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4uY2FsbCh0aGlzKTsKICAgIHRoaXMuZWxlbWVudC5pZCA9
ICJzZXR0aW5ncy1zY3JlZW4iOwoKICAgIC8qKiBAdHlwZSB7IWZ1bmN0aW9uKCl9ICovCiAgICB0
aGlzLl9vbkhpZGUgPSBvbkhpZGU7CgogICAgdGhpcy5fdGFiYmVkUGFuZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuVGFiYmVkUGFuZSgpOwogICAgdGhpcy5fdGFiYmVkUGFuZS5lbGVtZW50LmFkZFN0eWxl
Q2xhc3MoImhlbHAtd2luZG93LW1haW4iKTsKICAgIHRoaXMuX3RhYmJlZFBhbmUuaGVhZGVyQ29u
dGVudHNFbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLl9jcmVhdGVDbG9zZUJ1dHRvbigpLCB0aGlz
Ll90YWJiZWRQYW5lLmhlYWRlckNvbnRlbnRzRWxlbWVudC5maXJzdENoaWxkKTsKICAgIHRoaXMu
X3RhYmJlZFBhbmUuYXBwZW5kVGFiKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5UYWJzLkdl
bmVyYWwsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiR2VuZXJhbCIpLCBuZXcgV2ViSW5zcGVjdG9y
LkdlbmVyaWNTZXR0aW5nc1RhYigpKTsKICAgIHRoaXMuX3RhYmJlZFBhbmUuYXBwZW5kVGFiKFdl
Ykluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5UYWJzLlVzZXJBZ2VudCwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJVc2VyIGFnZW50IiksIG5ldyBXZWJJbnNwZWN0b3IuVXNlckFnZW50U2V0dGluZ3NU
YWIoKSk7CiAgICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MuZXhwZXJpbWVu
dHNFbmFibGVkKQogICAgICAgIHRoaXMuX3RhYmJlZFBhbmUuYXBwZW5kVGFiKFdlYkluc3BlY3Rv
ci5TZXR0aW5nc1NjcmVlbi5UYWJzLkV4cGVyaW1lbnRzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkV4cGVyaW1lbnRzIiksIG5ldyBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5nc1RhYigp
KTsKICAgIHRoaXMuX3RhYmJlZFBhbmUuYXBwZW5kVGFiKFdlYkluc3BlY3Rvci5TZXR0aW5nc1Nj
cmVlbi5UYWJzLlNob3J0Y3V0cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG9ydGN1dHMiKSwg
V2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5jcmVhdGVTaG9ydGN1dHNUYWJWaWV3KCkpOwoK
ICAgIHRoaXMuX2xhc3RTZWxlY3RlZFRhYlNldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mu
Y3JlYXRlU2V0dGluZygibGFzdFNlbGVjdGVkU2V0dGluZ3NUYWIiLCBXZWJJbnNwZWN0b3IuU2V0
dGluZ3NTY3JlZW4uVGFicy5HZW5lcmFsKTsKICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMuX2xhc3RT
ZWxlY3RlZFRhYlNldHRpbmcuZ2V0KCkpOwogICAgdGhpcy5fdGFiYmVkUGFuZS5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLkV2ZW50VHlwZXMuVGFiU2VsZWN0ZWQsIHRo
aXMuX3RhYlNlbGVjdGVkLCB0aGlzKTsKfQoKV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLlRh
YnMgPSB7CiAgICBHZW5lcmFsOiAiR2VuZXJhbCIsCiAgICBVc2VyQWdlbnQ6ICJVc2VyQWdlbnQi
LAogICAgRXhwZXJpbWVudHM6ICJFeHBlcmltZW50cyIsCiAgICBTaG9ydGN1dHM6ICJTaG9ydGN1
dHMiCn0KCldlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAgICAvKioK
ICAgICAqIEBwYXJhbSB7IXN0cmluZ30gdGFiSWQKICAgICAqLwogICAgc2VsZWN0VGFiOiBmdW5j
dGlvbih0YWJJZCkKICAgIHsKICAgICAgICB0aGlzLl90YWJiZWRQYW5lLnNlbGVjdFRhYih0YWJJ
ZCk7CiAgICB9LAoKICAgIC8qKgogICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9CiAg
ICAgKi8KICAgIF90YWJTZWxlY3RlZDogZnVuY3Rpb24oZXZlbnQpCiAgICB7CiAgICAgICAgdGhp
cy5fbGFzdFNlbGVjdGVkVGFiU2V0dGluZy5zZXQodGhpcy5fdGFiYmVkUGFuZS5zZWxlY3RlZFRh
YklkKTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBAb3ZlcnJpZGUKICAgICAqLwogICAgd2FzU2hv
d246IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB0aGlzLl90YWJiZWRQYW5lLnNob3codGhpcy5l
bGVtZW50KTsKICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUud2FzU2hv
d24uY2FsbCh0aGlzKTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBAb3ZlcnJpZGUKICAgICAqLwog
ICAgaXNDbG9zaW5nS2V5OiBmdW5jdGlvbihrZXlDb2RlKQogICAgewogICAgICAgIHJldHVybiBb
CiAgICAgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuRW50ZXIuY29k
ZSwKICAgICAgICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5Fc2MuY29k
ZSwKICAgICAgICBdLmluZGV4T2Yoa2V5Q29kZSkgPj0gMDsKICAgIH0sCgogICAgLyoqCiAgICAg
KiBAb3ZlcnJpZGUKICAgICAqLwogICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgIHsKICAgICAg
ICB0aGlzLl9vbkhpZGUoKTsKICAgICAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5
cGUud2lsbEhpZGUuY2FsbCh0aGlzKTsKICAgIH0KfQoKV2ViSW5zcGVjdG9yLlNldHRpbmdzU2Ny
ZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5
cGU7CgovKioKICogQGNvbnN0cnVjdG9yCiAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30K
ICovCldlYkluc3BlY3Rvci5TZXR0aW5nc1RhYiA9IGZ1bmN0aW9uKCkKewogICAgV2ViSW5zcGVj
dG9yLlZpZXcuY2FsbCh0aGlzKTsKICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAic2V0dGlu
Z3MtdGFiIGhlbHAtY29udGVudCBoZWxwLWNvbnRhaW5lciI7Cn0KCldlYkluc3BlY3Rvci5TZXR0
aW5nc1RhYi5wcm90b3R5cGUgPSB7CiAgICAvKioKICAgICAqICBAcGFyYW0ge3N0cmluZz19IG5h
bWUKICAgICAqICBAcmV0dXJuIHshRWxlbWVudH0KICAgICAqLwogICAgX2FwcGVuZFNlY3Rpb246
IGZ1bmN0aW9uKG5hbWUpCiAgICB7CiAgICAgICAgdmFyIGJsb2NrID0gdGhpcy5lbGVtZW50LmNy
ZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC1ibG9jayIpOwogICAgICAgIGlmIChuYW1lKQogICAgICAg
ICAgICBibG9jay5jcmVhdGVDaGlsZCgiZGl2IiwgImhlbHAtc2VjdGlvbi10aXRsZSIpLnRleHRD
b250ZW50ID0gbmFtZTsKICAgICAgICByZXR1cm4gYmxvY2s7CiAgICB9LAoKICAgIC8qKgogICAg
ICogQHBhcmFtIHtib29sZWFuPX0gb21pdFBhcmFncmFwaEVsZW1lbnQKICAgICAqIEBwYXJhbSB7
RWxlbWVudD19IGlucHV0RWxlbWVudAogICAgICovCiAgICBfY3JlYXRlQ2hlY2tib3hTZXR0aW5n
OiBmdW5jdGlvbihuYW1lLCBzZXR0aW5nLCBvbWl0UGFyYWdyYXBoRWxlbWVudCwgaW5wdXRFbGVt
ZW50KQogICAgewogICAgICAgIHZhciBpbnB1dCA9IGlucHV0RWxlbWVudCB8fCBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgIGlucHV0LnR5cGUgPSAiY2hlY2tib3giOwog
ICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOwogICAgICAgIGlucHV0LmNoZWNrZWQgPSBzZXR0aW5n
LmdldCgpOwoKICAgICAgICBmdW5jdGlvbiBsaXN0ZW5lcigpCiAgICAgICAgewogICAgICAgICAg
ICBzZXR0aW5nLnNldChpbnB1dC5jaGVja2VkKTsKICAgICAgICB9CiAgICAgICAgaW5wdXQuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBsaXN0ZW5lciwgZmFsc2UpOwoKICAgICAgICB2YXIgbGFi
ZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgIGxhYmVsLmFwcGVu
ZENoaWxkKGlucHV0KTsKICAgICAgICBsYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShuYW1lKSk7CiAgICAgICAgaWYgKG9taXRQYXJhZ3JhcGhFbGVtZW50KQogICAgICAg
ICAgICByZXR1cm4gbGFiZWw7CgogICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgicCIpOwogICAgICAgIHAuYXBwZW5kQ2hpbGQobGFiZWwpOwogICAgICAgIHJldHVybiBwOwog
ICAgfSwKCiAgICBfY3JlYXRlU2VsZWN0U2V0dGluZzogZnVuY3Rpb24obmFtZSwgb3B0aW9ucywg
c2V0dGluZykKICAgIHsKICAgICAgICB2YXIgZmllbGRzZXRFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZmllbGRzZXQiKTsKICAgICAgICBmaWVsZHNldEVsZW1lbnQuY3JlYXRlQ2hp
bGQoImxhYmVsIikudGV4dENvbnRlbnQgPSBuYW1lOwoKICAgICAgICB2YXIgc2VsZWN0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7CiAgICAgICAgdmFyIHNldHRpbmdWYWx1ZSA9
IHNldHRpbmcuZ2V0KCk7CgogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5n
dGg7ICsraSkgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gb3B0aW9uc1tpXTsKICAgICAgICAg
ICAgc2VsZWN0LmFkZChuZXcgT3B0aW9uKG9wdGlvblswXSwgb3B0aW9uWzFdKSk7CiAgICAgICAg
ICAgIGlmIChzZXR0aW5nVmFsdWUgPT09IG9wdGlvblsxXSkKICAgICAgICAgICAgICAgIHNlbGVj
dC5zZWxlY3RlZEluZGV4ID0gaTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGNoYW5nZUxp
c3RlbmVyKGUpCiAgICAgICAgewogICAgICAgICAgICBzZXR0aW5nLnNldChlLnRhcmdldC52YWx1
ZSk7CiAgICAgICAgfQoKICAgICAgICBzZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwg
Y2hhbmdlTGlzdGVuZXIsIGZhbHNlKTsKICAgICAgICBmaWVsZHNldEVsZW1lbnQuYXBwZW5kQ2hp
bGQoc2VsZWN0KTsKCiAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7
CiAgICAgICAgcC5hcHBlbmRDaGlsZChmaWVsZHNldEVsZW1lbnQpOwogICAgICAgIHJldHVybiBw
OwogICAgfSwKCiAgICBfY3JlYXRlUmFkaW9TZXR0aW5nOiBmdW5jdGlvbihuYW1lLCBvcHRpb25z
LCBzZXR0aW5nKQogICAgewogICAgICAgIHZhciBwcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InAiKTsKICAgICAgICB2YXIgZmllbGRzZXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZmllbGRzZXQiKTsKICAgICAgICB2YXIgbGVnZW5kRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImxlZ2VuZCIpOwogICAgICAgIGxlZ2VuZEVsZW1lbnQudGV4dENvbnRlbnQgPSBu
YW1lOwogICAgICAgIGZpZWxkc2V0RWxlbWVudC5hcHBlbmRDaGlsZChsZWdlbmRFbGVtZW50KTsK
CiAgICAgICAgZnVuY3Rpb24gY2xpY2tMaXN0ZW5lcihlKQogICAgICAgIHsKICAgICAgICAgICAg
c2V0dGluZy5zZXQoZS50YXJnZXQudmFsdWUpOwogICAgICAgIH0KCiAgICAgICAgdmFyIHNldHRp
bmdWYWx1ZSA9IHNldHRpbmcuZ2V0KCk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRp
b25zLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgicCIpOwogICAgICAgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJsYWJlbCIpOwogICAgICAgICAgICBwLmFwcGVuZENoaWxkKGxhYmVsKTsKCiAgICAgICAgICAg
IHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICAgICAgICAg
IGlucHV0LnR5cGUgPSAicmFkaW8iOwogICAgICAgICAgICBpbnB1dC5uYW1lID0gc2V0dGluZy5u
YW1lOwogICAgICAgICAgICBpbnB1dC52YWx1ZSA9IG9wdGlvbnNbaV1bMF07CiAgICAgICAgICAg
IGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgY2xpY2tMaXN0ZW5lciwgZmFsc2UpOwog
ICAgICAgICAgICBpZiAoc2V0dGluZ1ZhbHVlID09IGlucHV0LnZhbHVlKQogICAgICAgICAgICAg
ICAgaW5wdXQuY2hlY2tlZCA9IHRydWU7CgogICAgICAgICAgICBsYWJlbC5hcHBlbmRDaGlsZChp
bnB1dCk7CiAgICAgICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG9wdGlvbnNbaV1bMV0pKTsKCiAgICAgICAgICAgIGZpZWxkc2V0RWxlbWVudC5hcHBlbmRD
aGlsZChwKTsKICAgICAgICB9CgogICAgICAgIHBwLmFwcGVuZENoaWxkKGZpZWxkc2V0RWxlbWVu
dCk7CiAgICAgICAgcmV0dXJuIHBwOwogICAgfSwKCiAgICBfY3JlYXRlQ3VzdG9tU2V0dGluZzog
ZnVuY3Rpb24obmFtZSwgZWxlbWVudCkKICAgIHsKICAgICAgICB2YXIgcCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInAiKTsKICAgICAgICB2YXIgZmllbGRzZXRFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTsKICAgICAgICBmaWVsZHNldEVsZW1lbnQuY3JlYXRl
Q2hpbGQoImxhYmVsIikudGV4dENvbnRlbnQgPSBuYW1lOwogICAgICAgIGZpZWxkc2V0RWxlbWVu
dC5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICBwLmFwcGVuZENoaWxkKGZpZWxkc2V0RWxl
bWVudCk7CiAgICAgICAgcmV0dXJuIHA7CiAgICB9Cn0KCldlYkluc3BlY3Rvci5TZXR0aW5nc1Rh
Yi5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwoKLyoq
CiAqIEBjb25zdHJ1Y3RvcgogKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNldHRpbmdzVGFifQog
Ki8KV2ViSW5zcGVjdG9yLkdlbmVyaWNTZXR0aW5nc1RhYiA9IGZ1bmN0aW9uKCkKewogICAgV2Vi
SW5zcGVjdG9yLlNldHRpbmdzVGFiLmNhbGwodGhpcyk7CgogICAgdmFyIHAgPSB0aGlzLl9hcHBl
bmRTZWN0aW9uKCk7CiAgICBpZiAoUHJlZmVyZW5jZXMuc2hvd0RvY2tUb1JpZ2h0KQogICAgICAg
IHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5V
SVN0cmluZygiRG9jayB0byByaWdodCIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZG9ja1RvUmln
aHQpKTsKICAgIGlmIChQcmVmZXJlbmNlcy5leHBvc2VEaXNhYmxlQ2FjaGUpCiAgICAgICAgcC5h
cHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJEaXNhYmxlIGNhY2hlIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jYWNoZURpc2FibGVk
KSk7CiAgICB2YXIgZGlzYWJsZUpTRWxlbWVudCA9IHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGlu
ZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRpc2FibGUgSmF2YVNjcmlwdCIpLCBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MuamF2YVNjcmlwdERpc2FibGVkKTsKICAgIHAuYXBwZW5kQ2hpbGQoZGlzYWJs
ZUpTRWxlbWVudCk7CiAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuamF2YVNjcmlwdERpc2FibGVk
LmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX2phdmFTY3JpcHREaXNhYmxlZENoYW5nZWQsIHRoaXMp
OwogICAgdGhpcy5fZGlzYWJsZUpTQ2hlY2tib3ggPSBkaXNhYmxlSlNFbGVtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwogICAgdGhpcy5fdXBkYXRlU2NyaXB0RGlzYWJsZWRD
aGVja2JveCgpOwogICAgCiAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkVsZW1lbnRzIikpOwogICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVSYWRp
b1NldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xvciBmb3JtYXQiKSwgWwogICAgICAg
IFsgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLkNvbG9yRm9ybWF0Lk9yaWdpbmFsLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFzIGF1dGhvcmVkIikgXSwKICAgICAgICBbIFdlYkluc3Bl
Y3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5Db2xvckZvcm1hdC5IRVgsICJIRVg6ICNEQUMwREUiIF0s
CiAgICAgICAgWyBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ29sb3JGb3JtYXQuUkdC
LCAiUkdCOiByZ2IoMTI4LCAyNTUsIDI1NSkiIF0sCiAgICAgICAgWyBXZWJJbnNwZWN0b3IuU3R5
bGVzU2lkZWJhclBhbmUuQ29sb3JGb3JtYXQuSFNMLCAiSFNMOiBoc2woMzAwLCA4MCUsIDkwJSki
IF0gXSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbG9yRm9ybWF0KSk7CiAgICBwLmFwcGVuZENo
aWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNo
b3cgdXNlciBhZ2VudCBzdHlsZXMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dVc2VyQWdl
bnRTdHlsZXMpKTsKICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5n
KFdlYkluc3BlY3Rvci5VSVN0cmluZygiV29yZCB3cmFwIiksIFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5kb21Xb3JkV3JhcCkpOwoKICAgIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUmVuZGVyaW5nIikpOwogICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVD
aGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHBhaW50IHJlY3Rhbmds
ZXMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dQYWludFJlY3RzKSk7CiAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3Muc2hvd1BhaW50UmVjdHMuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5fc2hv
d1BhaW50UmVjdHNDaGFuZ2VkLCB0aGlzKTsKCiAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvdXJjZXMiKSk7CiAgICBwLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgZm9sZGVy
cyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1NjcmlwdEZvbGRlcnMpKTsKICAgIHAuYXBw
ZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiU2VhcmNoIGluIGNvbnRlbnQgc2NyaXB0cyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2Vh
cmNoSW5Db250ZW50U2NyaXB0cykpOwogICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVj
a2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbmFibGUgc291cmNlIG1hcHMiKSwg
V2ViSW5zcGVjdG9yLnNldHRpbmdzLnNvdXJjZU1hcHNFbmFibGVkKSk7CiAgICBwLmFwcGVuZENo
aWxkKHRoaXMuX2NyZWF0ZVNlbGVjdFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbmRl
bnRhdGlvbiIpLCBbCiAgICAgICAgICAgIFsgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIyIHNwYWNl
cyIpLCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsLkluZGVudC5Ud29TcGFjZXMgXSwKICAg
ICAgICAgICAgWyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIjQgc3BhY2VzIiksIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yTW9kZWwuSW5kZW50LkZvdXJTcGFjZXMgXSwKICAgICAgICAgICAgWyBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIjggc3BhY2VzIiksIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9k
ZWwuSW5kZW50LkVpZ2h0U3BhY2VzIF0sCiAgICAgICAgICAgIFsgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJUYWIgY2hhcmFjdGVyIiksIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwuSW5kZW50
LlRhYkNoYXJhY3RlciBdCiAgICAgICAgXSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnRleHRFZGl0
b3JJbmRlbnQpKTsKCiAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlByb2ZpbGVyIikpOwogICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2Jv
eFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IG9iamVjdHMnIGhpZGRlbiBwcm9w
ZXJ0aWVzIiksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93SGVhcFNuYXBzaG90T2JqZWN0c0hp
ZGRlblByb3BlcnRpZXMpKTsKCiAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkNvbnNvbGUiKSk7CiAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNo
ZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvZyBYTUxIdHRwUmVxdWVzdHMi
KSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkKSk7CiAgICBwLmFw
cGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlByZXNlcnZlIGxvZyB1cG9uIG5hdmlnYXRpb24iKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdz
LnByZXNlcnZlQ29uc29sZUxvZykpOwoKICAgIGlmIChXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2Vy
dmVyLmhhc0V4dGVuc2lvbnMoKSkgewogICAgICAgIHZhciBoYW5kbGVyU2VsZWN0b3IgPSBuZXcg
V2ViSW5zcGVjdG9yLkhhbmRsZXJTZWxlY3RvcihXZWJJbnNwZWN0b3Iub3BlbkFuY2hvckxvY2F0
aW9uUmVnaXN0cnkpOwogICAgICAgIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiRXh0ZW5zaW9ucyIpKTsKICAgICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2Ny
ZWF0ZUN1c3RvbVNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGVuIGxpbmtzIGluIiks
IGhhbmRsZXJTZWxlY3Rvci5lbGVtZW50KSk7CiAgICB9Cn0KCldlYkluc3BlY3Rvci5HZW5lcmlj
U2V0dGluZ3NUYWIucHJvdG90eXBlID0gewogICAgX3Nob3dQYWludFJlY3RzQ2hhbmdlZDogZnVu
Y3Rpb24oKQogICAgewogICAgICAgIFBhZ2VBZ2VudC5zZXRTaG93UGFpbnRSZWN0cyhXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3Muc2hvd1BhaW50UmVjdHMuZ2V0KCkpOwogICAgfSwKCiAgICBfdXBkYXRl
U2NyaXB0RGlzYWJsZWRDaGVja2JveDogZnVuY3Rpb24oKQogICAgewogICAgICAgIGZ1bmN0aW9u
IGV4ZWN1dGlvblN0YXR1c0NhbGxiYWNrKGVycm9yLCBzdGF0dXMpCiAgICAgICAgewogICAgICAg
ICAgICBpZiAoZXJyb3IgfHwgIXN0YXR1cykKICAgICAgICAgICAgICAgIHJldHVybjsKCiAgICAg
ICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgICAgICAgIGNhc2UgImZvcmJpZGRlbiI6CiAg
ICAgICAgICAgICAgICB0aGlzLl9kaXNhYmxlSlNDaGVja2JveC5jaGVja2VkID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVKU0NoZWNrYm94LmRpc2FibGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhYmxlZCI6CiAgICAgICAg
ICAgICAgICB0aGlzLl9kaXNhYmxlSlNDaGVja2JveC5jaGVja2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdGhpcy5f
ZGlzYWJsZUpTQ2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFBhZ2VBZ2VudC5nZXRTY3JpcHRFeGVj
dXRpb25TdGF0dXMoZXhlY3V0aW9uU3RhdHVzQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICB9LAoK
ICAgIF9qYXZhU2NyaXB0RGlzYWJsZWRDaGFuZ2VkOiBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg
Ly8gV2UgbmVlZCB0byBtYW51YWxseSB1cGRhdGUgdGhlIGNoZWNrYm94IHN0YXRlLCBzaW5jZSBl
bmFibGluZyBKYXZhU2NyaXB0IGluIHRoZSBwYWdlIGNhbiBhY3R1YWxseSB1bmNvdmVyIHRoZSAi
Zm9yYmlkZGVuIiBzdGF0ZS4KICAgICAgICBQYWdlQWdlbnQuc2V0U2NyaXB0RXhlY3V0aW9uRGlz
YWJsZWQoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmphdmFTY3JpcHREaXNhYmxlZC5nZXQoKSwgdGhp
cy5fdXBkYXRlU2NyaXB0RGlzYWJsZWRDaGVja2JveC5iaW5kKHRoaXMpKTsKICAgIH0KfQoKV2Vi
SW5zcGVjdG9yLkdlbmVyaWNTZXR0aW5nc1RhYi5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLlNldHRpbmdzVGFiLnByb3RvdHlwZTsKCi8qKgogKiBAY29uc3RydWN0b3IKICogQGV4
dGVuZHMge1dlYkluc3BlY3Rvci5TZXR0aW5nc1RhYn0KICovCldlYkluc3BlY3Rvci5Vc2VyQWdl
bnRTZXR0aW5nc1RhYiA9IGZ1bmN0aW9uKCkKewogICAgV2ViSW5zcGVjdG9yLlNldHRpbmdzVGFi
LmNhbGwodGhpcyk7CgogICAgdmFyIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKCk7CiAgICBwLmFw
cGVuZENoaWxkKHRoaXMuX2NyZWF0ZVVzZXJBZ2VudENvbnRyb2woKSk7CiAgICBpZiAoQ2FwYWJp
bGl0aWVzLmNhbk92ZXJyaWRlRGV2aWNlTWV0cmljcykKICAgICAgICBwLmFwcGVuZENoaWxkKHRo
aXMuX2NyZWF0ZURldmljZU1ldHJpY3NDb250cm9sKCkpOwogICAgcC5hcHBlbmRDaGlsZCh0aGlz
Ll9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbXVsYXRlIHRv
dWNoIGV2ZW50cyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZW11bGF0ZVRvdWNoRXZlbnRzKSk7
Cn0KCldlYkluc3BlY3Rvci5Vc2VyQWdlbnRTZXR0aW5nc1RhYi5wcm90b3R5cGUgPSB7CiAgICBf
Y3JlYXRlVXNlckFnZW50Q29udHJvbDogZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciB1c2Vy
QWdlbnQgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudXNlckFnZW50LmdldCgpOwoKICAgICAgICB2
YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKICAgICAgICB2YXIgbGFiZWxFbGVt
ZW50ID0gcC5jcmVhdGVDaGlsZCgibGFiZWwiKTsKICAgICAgICB2YXIgY2hlY2tib3hFbGVtZW50
ID0gbGFiZWxFbGVtZW50LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOwogICAgICAgIGNoZWNrYm94RWxl
bWVudC50eXBlID0gImNoZWNrYm94IjsKICAgICAgICBjaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9
ICEhdXNlckFnZW50OwogICAgICAgIGxhYmVsRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiT3ZlcnJpZGUgVXNlciBBZ2VudCIpKTsKICAgICAgICBwLmFwcGVuZENo
aWxkKHRoaXMuX2NyZWF0ZVVzZXJBZ2VudFNlbGVjdFJvd0VsZW1lbnQoY2hlY2tib3hFbGVtZW50
KSk7CiAgICAgICAgcmV0dXJuIHA7CiAgICB9LAoKICAgIF9jcmVhdGVVc2VyQWdlbnRTZWxlY3RS
b3dFbGVtZW50OiBmdW5jdGlvbihjaGVja2JveEVsZW1lbnQpCiAgICB7CiAgICAgICAgdmFyIHVz
ZXJBZ2VudCA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy51c2VyQWdlbnQuZ2V0KCk7CgogICAgICAg
IC8vIFdoZW4gcHJlc2VudCwgdGhlIHRoaXJkIGVsZW1lbnQgbGlzdHMgZGV2aWNlIG1ldHJpY3Mg
c2VwYXJhdGVkIGJ5ICd4JzoKICAgICAgICAvLyAtIHNjcmVlbiB3aWR0aCwKICAgICAgICAvLyAt
IHNjcmVlbiBoZWlnaHQsCiAgICAgICAgLy8gLSBmb250IHNjYWxlIGZhY3Rvci4KICAgICAgICBj
b25zdCB1c2VyQWdlbnRzID0gWwogICAgICAgICAgICBbIkludGVybmV0IEV4cGxvcmVyIDkiLCAi
TW96aWxsYS81LjAgKGNvbXBhdGlibGU7IE1TSUUgOS4wOyBXaW5kb3dzIE5UIDYuMTsgVHJpZGVu
dC81LjApIl0sCiAgICAgICAgICAgIFsiSW50ZXJuZXQgRXhwbG9yZXIgOCIsICJNb3ppbGxhLzQu
MCAoY29tcGF0aWJsZTsgTVNJRSA4LjA7IFdpbmRvd3MgTlQgNi4wOyBUcmlkZW50LzQuMCkiXSwK
ICAgICAgICAgICAgWyJJbnRlcm5ldCBFeHBsb3JlciA3IiwgIk1vemlsbGEvNC4wIChjb21wYXRp
YmxlOyBNU0lFIDcuMDsgV2luZG93cyBOVCA2LjApIl0sCgogICAgICAgICAgICBbIkZpcmVmb3gg
NyBcdTIwMTQgV2luZG93cyIsICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IEludGVsIE1h
YyBPUyBYIDEwLjY7IHJ2OjcuMC4xKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzcuMC4xIl0sCiAg
ICAgICAgICAgIFsiRmlyZWZveCA3IFx1MjAxNCBNYWMiLCAiTW96aWxsYS81LjAgKE1hY2ludG9z
aDsgSW50ZWwgTWFjIE9TIFggMTAuNjsgcnY6Ny4wLjEpIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gv
Ny4wLjEiXSwKICAgICAgICAgICAgWyJGaXJlZm94IDQgXHUyMDE0IFdpbmRvd3MiLCAiTW96aWxs
YS81LjAgKFdpbmRvd3MgTlQgNi4xOyBydjoyLjAuMSkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80
LjAuMSJdLAogICAgICAgICAgICBbIkZpcmVmb3ggNCBcdTIwMTQgTWFjIiwgIk1vemlsbGEvNS4w
IChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjY7IHJ2OjIuMC4xKSBHZWNrby8yMDEwMDEw
MSBGaXJlZm94LzQuMC4xIl0sCgogICAgICAgICAgICBbImlQaG9uZSBcdTIwMTQgaU9TIDUiLCAi
TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyA1XzAgbGlrZSBNYWMgT1MgWCkgQXBw
bGVXZWJLaXQvNTM0LjQ2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjEgTW9iaWxlLzlB
MzM0IFNhZmFyaS83NTM0LjQ4LjMiLCAiNjQweDk2MHgxIl0sCiAgICAgICAgICAgIFsiaVBob25l
IFx1MjAxNCBpT1MgNCIsICJNb3ppbGxhLzUuMCAoaVBob25lOyBVOyBDUFUgaVBob25lIE9TIDRf
M18yIGxpa2UgTWFjIE9TIFg7IGVuLXVzKSBBcHBsZVdlYktpdC81MzMuMTcuOSAoS0hUTUwsIGxp
a2UgR2Vja28pIFZlcnNpb24vNS4wLjIgTW9iaWxlLzhINyBTYWZhcmkvNjUzMy4xOC41IiwgIjY0
MHg5NjB4MSJdLAogICAgICAgICAgICBbImlQYWQgXHUyMDE0IGlPUyA1IiwgIk1vemlsbGEvNS4w
IChpUGFkOyBDUFUgT1MgNV8wIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzUzNC40NiAoS0hU
TUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4xIE1vYmlsZS85QTMzNCBTYWZhcmkvNzUzNC40OC4z
IiwgIjEwMjR4NzY4eDEiXSwKICAgICAgICAgICAgWyJpUGFkIFx1MjAxNCBpT1MgNCIsICJNb3pp
bGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDRfM18yIGxpa2UgTWFjIE9TIFg7IGVuLXVzKSBBcHBsZVdl
YktpdC81MzMuMTcuOSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wLjIgTW9iaWxlLzhI
NyBTYWZhcmkvNjUzMy4xOC41IiwgIjEwMjR4NzY4eDEiXSwKCiAgICAgICAgICAgIFsiQW5kcm9p
ZCAyLjMgXHUyMDE0IE5leHVzIFMiLCAiTW96aWxsYS81LjAgKExpbnV4OyBVOyBBbmRyb2lkIDIu
My42OyBlbi11czsgTmV4dXMgUyBCdWlsZC9HUkszOUYpIEFwcGxlV2ViS2l0LzUzMy4xIChLSFRN
TCwgbGlrZSBHZWNrbykgVmVyc2lvbi80LjAgTW9iaWxlIFNhZmFyaS81MzMuMSIsICI0ODB4ODAw
eDEuMSJdLAogICAgICAgICAgICBbIkFuZHJvaWQgNC4wLjIgXHUyMDE0IEdhbGF4eSBOZXh1cyIs
ICJNb3ppbGxhLzUuMCAoTGludXg7IFU7IEFuZHJvaWQgNC4wLjI7IGVuLXVzOyBHYWxheHkgTmV4
dXMgQnVpbGQvSUNMNTNGKSBBcHBsZVdlYktpdC81MzQuMzAgKEtIVE1MLCBsaWtlIEdlY2tvKSBW
ZXJzaW9uLzQuMCBNb2JpbGUgU2FmYXJpLzUzNC4zMCIsICI3MjB4MTI4MHgxLjEiXSwKCiAgICAg
ICAgICAgIFsiQmxhY2tCZXJyeSBcdTIwMTQgUGxheUJvb2sgMi4xIiwgIk1vemlsbGEvNS4wIChQ
bGF5Qm9vazsgVTsgUklNIFRhYmxldCBPUyAyLjEuMDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzNi4y
KyAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNy4yLjEuMCBTYWZhcmkvNTM2LjIrIiwgIjEw
MjR4NjAweDEiXSwKICAgICAgICAgICAgWyJCbGFja0JlcnJ5IFx1MjAxNCA5OTAwIiwgIk1vemls
bGEvNS4wIChCbGFja0JlcnJ5OyBVOyBCbGFja0JlcnJ5IDk5MDA7IGVuLVVTKSBBcHBsZVdlYktp
dC81MzQuMTErIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi83LjAuMC4xODcgTW9iaWxlIFNh
ZmFyaS81MzQuMTErIiwgIjY0MHg0ODB4MSJdLAoKICAgICAgICAgICAgWyJNZWVHbyBcdTIwMTQg
Tm9raWEgTjkiLCAiTW96aWxsYS81LjAgKE1lZUdvOyBOb2tpYU45KSBBcHBsZVdlYktpdC81MzQu
MTMgKEtIVE1MLCBsaWtlIEdlY2tvKSBOb2tpYUJyb3dzZXIvOC41LjAgTW9iaWxlIFNhZmFyaS81
MzQuMTMiLCAiNDgweDg1NHgxIl0sCgogICAgICAgICAgICBbV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJPdGhlci4uLiIpLCAiT3RoZXIiXQogICAgICAgIF07CgogICAgICAgIHZhciBmaWVsZHNldEVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpOwogICAgICAgIHRoaXMu
X3NlbGVjdEVsZW1lbnQgPSBmaWVsZHNldEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNlbGVjdCIpOwog
ICAgICAgIHRoaXMuX290aGVyVXNlckFnZW50RWxlbWVudCA9IGZpZWxkc2V0RWxlbWVudC5jcmVh
dGVDaGlsZCgiaW5wdXQiKTsKICAgICAgICB0aGlzLl9vdGhlclVzZXJBZ2VudEVsZW1lbnQudmFs
dWUgPSB1c2VyQWdlbnQ7CiAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRFbGVtZW50LnRpdGxl
ID0gdXNlckFnZW50OwoKICAgICAgICB2YXIgc2VsZWN0aW9uUmVzdG9yZWQgPSBmYWxzZTsKICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVzZXJBZ2VudHMubGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgICAgdmFyIGFnZW50ID0gdXNlckFnZW50c1tpXTsKICAgICAgICAgICAgdmFyIG9wdGlvbiA9
IG5ldyBPcHRpb24oYWdlbnRbMF0sIGFnZW50WzFdKTsKICAgICAgICAgICAgb3B0aW9uLl9tZXRy
aWNzID0gYWdlbnRbMl0gPyBhZ2VudFsyXSA6ICIiOwogICAgICAgICAgICB0aGlzLl9zZWxlY3RF
bGVtZW50LmFkZChvcHRpb24pOwogICAgICAgICAgICBpZiAodXNlckFnZW50ID09PSBhZ2VudFsx
XSkgewogICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4ID0g
aTsKICAgICAgICAgICAgICAgIHNlbGVjdGlvblJlc3RvcmVkID0gdHJ1ZTsKICAgICAgICAgICAg
fQogICAgICAgIH0KCiAgICAgICAgaWYgKCFzZWxlY3Rpb25SZXN0b3JlZCkgewogICAgICAgICAg
ICBpZiAoIXVzZXJBZ2VudCkKICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEVsZW1lbnQuc2Vs
ZWN0ZWRJbmRleCA9IDA7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB0aGlzLl9zZWxl
Y3RFbGVtZW50LnNlbGVjdGVkSW5kZXggPSB1c2VyQWdlbnRzLmxlbmd0aCAtIDE7CiAgICAgICAg
fQoKICAgICAgICB0aGlzLl9zZWxlY3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs
IHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQuYmluZCh0aGlzLCB0cnVlKSwgZmFsc2UpOwoKICAgICAg
ICBmaWVsZHNldEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCB0ZXh0RG91Ymxl
Q2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCB0ZXh0Q2hhbmdlZC5iaW5kKHRoaXMpLCBm
YWxzZSk7CgogICAgICAgIGZ1bmN0aW9uIHRleHREb3VibGVDbGlja2VkKCkKICAgICAgICB7CiAg
ICAgICAgICAgIHRoaXMuX3NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleCA9IHVzZXJBZ2VudHMu
bGVuZ3RoIC0gMTsKICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZCgpOwogICAgICAg
IH0KCiAgICAgICAgZnVuY3Rpb24gdGV4dENoYW5nZWQoKQogICAgICAgIHsKICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnNldHRpbmdzLnVzZXJBZ2VudC5zZXQodGhpcy5fb3RoZXJVc2VyQWdlbnRF
bGVtZW50LnZhbHVlKTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGNoZWNrYm94Q2xpY2tl
ZCgpCiAgICAgICAgewogICAgICAgICAgICBpZiAoY2hlY2tib3hFbGVtZW50LmNoZWNrZWQpIHsK
ICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEVsZW1lbnQuZGlzYWJsZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQoKTsKICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwog
ICAgICAgICAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRFbGVtZW50LmRpc2FibGVkID0gdHJ1
ZTsKICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy51c2VyQWdlbnQuc2V0KCIi
KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjaGVja2JveEVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCBjaGVja2JveENsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwoK
ICAgICAgICBjaGVja2JveENsaWNrZWQuY2FsbCh0aGlzKTsKICAgICAgICByZXR1cm4gZmllbGRz
ZXRFbGVtZW50OwogICAgfSwKCiAgICAvKioKICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzVXNl
ckdlc3R1cmUKICAgICAqLwogICAgX3NlbGVjdGlvbkNoYW5nZWQ6IGZ1bmN0aW9uKGlzVXNlckdl
c3R1cmUpCiAgICB7CiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5fc2VsZWN0RWxlbWVudC5vcHRp
b25zW3RoaXMuX3NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICAgICAgaWYg
KHZhbHVlICE9PSAiT3RoZXIiKSB7CiAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy51
c2VyQWdlbnQuc2V0KHZhbHVlKTsKICAgICAgICAgICAgdGhpcy5fb3RoZXJVc2VyQWdlbnRFbGVt
ZW50LnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgIHRoaXMuX290aGVyVXNlckFnZW50RWxlbWVu
dC50aXRsZSA9IHZhbHVlOwogICAgICAgICAgICB0aGlzLl9vdGhlclVzZXJBZ2VudEVsZW1lbnQu
ZGlzYWJsZWQgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuX290aGVy
VXNlckFnZW50RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICB0aGlzLl9vdGhl
clVzZXJBZ2VudEVsZW1lbnQuZm9jdXMoKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc1VzZXJH
ZXN0dXJlICYmIENhcGFiaWxpdGllcy5jYW5PdmVycmlkZURldmljZU1ldHJpY3MpIHsKICAgICAg
ICAgICAgdmFyIG1ldHJpY3MgPSB0aGlzLl9zZWxlY3RFbGVtZW50Lm9wdGlvbnNbdGhpcy5fc2Vs
ZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4XS5fbWV0cmljczsKICAgICAgICAgICAgdGhpcy5fc2V0
RGV2aWNlTWV0cmljc092ZXJyaWRlKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmlj
ZU1ldHJpY3MucGFyc2VTZXR0aW5nKG1ldHJpY3MpLCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgfQog
ICAgfSwKCiAgICBfdXBkYXRlU2NyaXB0RGlzYWJsZWRDaGVja2JveDogZnVuY3Rpb24oKQogICAg
ewogICAgICAgIGZ1bmN0aW9uIGV4ZWN1dGlvblN0YXR1c0NhbGxiYWNrKGVycm9yLCBzdGF0dXMp
CiAgICAgICAgewogICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXN0YXR1cykKICAgICAgICAgICAg
ICAgIHJldHVybjsKCiAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgICAgICAgIGNh
c2UgImZvcmJpZGRlbiI6CiAgICAgICAgICAgICAgICB0aGlzLl9kaXNhYmxlSlNDaGVja2JveC5j
aGVja2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVKU0NoZWNrYm94LmRp
c2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJk
aXNhYmxlZCI6CiAgICAgICAgICAgICAgICB0aGlzLl9kaXNhYmxlSlNDaGVja2JveC5jaGVja2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUpTQ2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFBhZ2VB
Z2VudC5nZXRTY3JpcHRFeGVjdXRpb25TdGF0dXMoZXhlY3V0aW9uU3RhdHVzQ2FsbGJhY2suYmlu
ZCh0aGlzKSk7CiAgICB9LAoKICAgIF9jcmVhdGVEZXZpY2VNZXRyaWNzQ29udHJvbDogZnVuY3Rp
b24oKQogICAgewogICAgICAgIGNvbnN0IG1ldHJpY3NTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLmRldmljZU1ldHJpY3MuZ2V0KCk7CiAgICAgICAgdmFyIG1ldHJpY3MgPSBXZWJJbnNw
ZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzLnBhcnNlU2V0dGluZyhtZXRyaWNz
U2V0dGluZyk7CgogICAgICAgIGNvbnN0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7
CiAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50ID0gcC5jcmVhdGVDaGlsZCgibGFiZWwiKTsKICAg
ICAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBsYWJlbEVsZW1lbnQuY3JlYXRlQ2hpbGQoImlu
cHV0Iik7CiAgICAgICAgY2hlY2tib3hFbGVtZW50LmlkID0gIm1ldHJpY3Mtb3ZlcnJpZGUtY2hl
Y2tib3giOwogICAgICAgIGNoZWNrYm94RWxlbWVudC50eXBlID0gImNoZWNrYm94IjsKICAgICAg
ICBjaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9ICFtZXRyaWNzIHx8IChtZXRyaWNzLndpZHRoICYm
IG1ldHJpY3MuaGVpZ2h0ICYmIG1ldHJpY3MuZm9udFNjYWxlRmFjdG9yKTsKICAgICAgICBjaGVj
a2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9vbk1ldHJpY3NDaGVj
a2JveENsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgICAgIHRoaXMuX21ldHJpY3NDaGVj
a2JveEVsZW1lbnQgPSBjaGVja2JveEVsZW1lbnQ7CiAgICAgICAgbGFiZWxFbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3Zl
cnJpZGUgZGV2aWNlIG1ldHJpY3MiKSkpOwoKICAgICAgICBjb25zdCBtZXRyaWNzU2VjdGlvbkVs
ZW1lbnQgPSB0aGlzLl9jcmVhdGVEZXZpY2VNZXRyaWNzRWxlbWVudChtZXRyaWNzKTsKICAgICAg
ICBwLmFwcGVuZENoaWxkKG1ldHJpY3NTZWN0aW9uRWxlbWVudCk7CiAgICAgICAgdGhpcy5fbWV0
cmljc1NlY3Rpb25FbGVtZW50ID0gbWV0cmljc1NlY3Rpb25FbGVtZW50OwoKICAgICAgICB0aGlz
Ll9zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUobWV0cmljcywgZmFsc2UsIHRydWUpOwoKICAgICAg
ICByZXR1cm4gcDsKICAgIH0sCgogICAgX29uTWV0cmljc0NoZWNrYm94Q2xpY2tlZDogZnVuY3Rp
b24oKQogICAgewogICAgICAgIHZhciBjb250cm9sc0Rpc2FibGVkID0gIXRoaXMuX21ldHJpY3ND
aGVja2JveEVsZW1lbnQuY2hlY2tlZDsKICAgICAgICB0aGlzLl93aWR0aE92ZXJyaWRlRWxlbWVu
dC5kaXNhYmxlZCA9IGNvbnRyb2xzRGlzYWJsZWQ7CiAgICAgICAgdGhpcy5faGVpZ2h0T3ZlcnJp
ZGVFbGVtZW50LmRpc2FibGVkID0gY29udHJvbHNEaXNhYmxlZDsKICAgICAgICB0aGlzLl9mb250
U2NhbGVGYWN0b3JPdmVycmlkZUVsZW1lbnQuZGlzYWJsZWQgPSBjb250cm9sc0Rpc2FibGVkOwog
ICAgICAgIHRoaXMuX3N3YXBEaW1lbnNpb25zRWxlbWVudC5kaXNhYmxlZCA9IGNvbnRyb2xzRGlz
YWJsZWQ7CiAgICAgICAgdGhpcy5fZml0V2luZG93Q2hlY2tib3hFbGVtZW50LmRpc2FibGVkID0g
Y29udHJvbHNEaXNhYmxlZDsKCiAgICAgICAgaWYgKHRoaXMuX21ldHJpY3NDaGVja2JveEVsZW1l
bnQuY2hlY2tlZCkgewogICAgICAgICAgICB2YXIgbWV0cmljcyA9IFdlYkluc3BlY3Rvci5Vc2Vy
QWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3MucGFyc2VVc2VySW5wdXQodGhpcy5fd2lkdGhPdmVy
cmlkZUVsZW1lbnQudmFsdWUsIHRoaXMuX2hlaWdodE92ZXJyaWRlRWxlbWVudC52YWx1ZSwgdGhp
cy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJpZGVFbGVtZW50LnZhbHVlKTsKICAgICAgICAgICAgaWYg
KG1ldHJpY3MgJiYgbWV0cmljcy5pc1ZhbGlkKCkgJiYgbWV0cmljcy53aWR0aCAmJiBtZXRyaWNz
LmhlaWdodCkKICAgICAgICAgICAgICAgIHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZSht
ZXRyaWNzLCBmYWxzZSwgZmFsc2UpOwogICAgICAgICAgICBpZiAoIXRoaXMuX3dpZHRoT3ZlcnJp
ZGVFbGVtZW50LnZhbHVlKQogICAgICAgICAgICAgICAgdGhpcy5fd2lkdGhPdmVycmlkZUVsZW1l
bnQuZm9jdXMoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9y
LnNldHRpbmdzLmRldmljZU1ldHJpY3MuZ2V0KCkpCiAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5zZXQoIiIpOwogICAgICAgIH0KICAgIH0sCgogICAg
X2FwcGx5RGV2aWNlTWV0cmljc1VzZXJJbnB1dDogZnVuY3Rpb24oKQogICAgewogICAgICAgIHRo
aXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9y
dC5EZXZpY2VNZXRyaWNzLnBhcnNlVXNlcklucHV0KHRoaXMuX3dpZHRoT3ZlcnJpZGVFbGVtZW50
LnZhbHVlLnRyaW0oKSwgdGhpcy5faGVpZ2h0T3ZlcnJpZGVFbGVtZW50LnZhbHVlLnRyaW0oKSwg
dGhpcy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJpZGVFbGVtZW50LnZhbHVlLnRyaW0oKSksIHRydWUs
IGZhbHNlKTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBAcGFyYW0gez9XZWJJbnNwZWN0b3IuVXNl
ckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzfSBtZXRyaWNzCiAgICAgKiBAcGFyYW0ge2Jvb2xl
YW59IHVzZXJJbnB1dE1vZGlmaWVkCiAgICAgKi8KICAgIF9zZXREZXZpY2VNZXRyaWNzT3ZlcnJp
ZGU6IGZ1bmN0aW9uKG1ldHJpY3MsIHVzZXJJbnB1dE1vZGlmaWVkLCB1cGRhdGVDaGVja2JveCkK
ICAgIHsKICAgICAgICBmdW5jdGlvbiBzZXRWYWxpZChjb25kaXRpb24sIGVsZW1lbnQpCiAgICAg
ICAgewogICAgICAgICAgICBpZiAoY29uZGl0aW9uKQogICAgICAgICAgICAgICAgZWxlbWVudC5y
ZW1vdmVTdHlsZUNsYXNzKCJlcnJvci1pbnB1dCIpOwogICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImVycm9yLWlucHV0Iik7CiAgICAgICAgfQoK
ICAgICAgICBzZXRWYWxpZChtZXRyaWNzICYmIG1ldHJpY3MuaXNXaWR0aFZhbGlkKCksIHRoaXMu
X3dpZHRoT3ZlcnJpZGVFbGVtZW50KTsKICAgICAgICBzZXRWYWxpZChtZXRyaWNzICYmIG1ldHJp
Y3MuaXNIZWlnaHRWYWxpZCgpLCB0aGlzLl9oZWlnaHRPdmVycmlkZUVsZW1lbnQpOwogICAgICAg
IHNldFZhbGlkKG1ldHJpY3MgJiYgbWV0cmljcy5pc0ZvbnRTY2FsZUZhY3RvclZhbGlkKCksIHRo
aXMuX2ZvbnRTY2FsZUZhY3Rvck92ZXJyaWRlRWxlbWVudCk7CgogICAgICAgIGlmICghbWV0cmlj
cykKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICBpZiAoIXVzZXJJbnB1dE1vZGlmaWVkKSB7
CiAgICAgICAgICAgIHRoaXMuX3dpZHRoT3ZlcnJpZGVFbGVtZW50LnZhbHVlID0gbWV0cmljcy53
aWR0aFRvSW5wdXQoKTsKICAgICAgICAgICAgdGhpcy5faGVpZ2h0T3ZlcnJpZGVFbGVtZW50LnZh
bHVlID0gbWV0cmljcy5oZWlnaHRUb0lucHV0KCk7CiAgICAgICAgICAgIHRoaXMuX2ZvbnRTY2Fs
ZUZhY3Rvck92ZXJyaWRlRWxlbWVudC52YWx1ZSA9IG1ldHJpY3MuZm9udFNjYWxlRmFjdG9yVG9J
bnB1dCgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKG1ldHJpY3MuaXNWYWxpZCgpKSB7CiAgICAg
ICAgICAgIHZhciB2YWx1ZSA9IG1ldHJpY3MudG9TZXR0aW5nKCk7CiAgICAgICAgICAgIGlmICh2
YWx1ZSAhPT0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRldmljZU1ldHJpY3MuZ2V0KCkpCiAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5zZXQodmFsdWUp
OwogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMuX21ldHJpY3NDaGVja2JveEVsZW1lbnQgJiYg
dXBkYXRlQ2hlY2tib3gpIHsKICAgICAgICAgICAgdGhpcy5fbWV0cmljc0NoZWNrYm94RWxlbWVu
dC5jaGVja2VkID0gISFtZXRyaWNzLnRvU2V0dGluZygpOwogICAgICAgICAgICB0aGlzLl9vbk1l
dHJpY3NDaGVja2JveENsaWNrZWQoKTsKICAgICAgICB9CiAgICB9LAoKICAgIC8qKgogICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzfSBtZXRy
aWNzCiAgICAgKi8KICAgIF9jcmVhdGVEZXZpY2VNZXRyaWNzRWxlbWVudDogZnVuY3Rpb24obWV0
cmljcykKICAgIHsKICAgICAgICB2YXIgZmllbGRzZXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZmllbGRzZXQiKTsKICAgICAgICBmaWVsZHNldEVsZW1lbnQuaWQgPSAibWV0cmlj
cy1vdmVycmlkZS1zZWN0aW9uIjsKCiAgICAgICAgZnVuY3Rpb24gY3JlYXRlSW5wdXQocGFyZW50
RWxlbWVudCwgaWQsIGRlZmF1bHRUZXh0KQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGVsZW1l
bnQgPSBwYXJlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOwogICAgICAgICAgICBlbGVt
ZW50LmlkID0gaWQ7CiAgICAgICAgICAgIGVsZW1lbnQubWF4TGVuZ3RoID0gNjsKICAgICAgICAg
ICAgZWxlbWVudC5zdHlsZS53aWR0aCA9ICI0OHB4IjsKICAgICAgICAgICAgZWxlbWVudC52YWx1
ZSA9IGRlZmF1bHRUZXh0OwogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJs
dXIiLCB0aGlzLl9hcHBseURldmljZU1ldHJpY3NVc2VySW5wdXQuYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9u
IHN3YXBEaW1lbnNpb25zQ2xpY2tlZChldmVudCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciB3
aWR0aFZhbHVlID0gdGhpcy5fd2lkdGhPdmVycmlkZUVsZW1lbnQudmFsdWU7CiAgICAgICAgICAg
IHRoaXMuX3dpZHRoT3ZlcnJpZGVFbGVtZW50LnZhbHVlID0gdGhpcy5faGVpZ2h0T3ZlcnJpZGVF
bGVtZW50LnZhbHVlOwogICAgICAgICAgICB0aGlzLl9oZWlnaHRPdmVycmlkZUVsZW1lbnQudmFs
dWUgPSB3aWR0aFZhbHVlOwogICAgICAgICAgICB0aGlzLl9hcHBseURldmljZU1ldHJpY3NVc2Vy
SW5wdXQoKTsKICAgICAgICB9CgogICAgICAgIHZhciB0YWJsZUVsZW1lbnQgPSBmaWVsZHNldEVs
ZW1lbnQuY3JlYXRlQ2hpbGQoInRhYmxlIiwgIm5vd3JhcCIpOwoKICAgICAgICB2YXIgcm93RWxl
bWVudCA9IHRhYmxlRWxlbWVudC5jcmVhdGVDaGlsZCgidHIiKTsKICAgICAgICB2YXIgY2VsbEVs
ZW1lbnQgPSByb3dFbGVtZW50LmNyZWF0ZUNoaWxkKCJ0ZCIpOwogICAgICAgIGNlbGxFbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiU2NyZWVuIHJlc29sdXRpb246IikpKTsKICAgICAgICBjZWxsRWxlbWVudCA9IHJvd0VsZW1l
bnQuY3JlYXRlQ2hpbGQoInRkIik7CiAgICAgICAgdGhpcy5fd2lkdGhPdmVycmlkZUVsZW1lbnQg
PSBjcmVhdGVJbnB1dC5jYWxsKHRoaXMsIGNlbGxFbGVtZW50LCAibWV0cmljcy1vdmVycmlkZS13
aWR0aCIsIFN0cmluZyhtZXRyaWNzLndpZHRoIHx8IHNjcmVlbi53aWR0aCkpOwogICAgICAgIGNl
bGxFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgXHUwMEQ3ICIp
KTsgLy8gTVVMVElQTElDQVRJT04gU0lHTi4KICAgICAgICB0aGlzLl9oZWlnaHRPdmVycmlkZUVs
ZW1lbnQgPSBjcmVhdGVJbnB1dC5jYWxsKHRoaXMsIGNlbGxFbGVtZW50LCAibWV0cmljcy1vdmVy
cmlkZS1oZWlnaHQiLCBTdHJpbmcobWV0cmljcy5oZWlnaHQgfHwgc2NyZWVuLmhlaWdodCkpOwog
ICAgICAgIGNlbGxFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIg
XHUyMDE0ICIpKTsgLy8gRU0gREFTSC4KICAgICAgICB0aGlzLl9zd2FwRGltZW5zaW9uc0VsZW1l
bnQgPSBjZWxsRWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIik7CiAgICAgICAgdGhpcy5fc3dh
cERpbWVuc2lvbnNFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIg
XHUyMUM0ICIpKTsgLy8gUklHSFRXQVJEUyBBUlJPVyBPVkVSIExFRlRXQVJEUyBBUlJPVy4KICAg
ICAgICB0aGlzLl9zd2FwRGltZW5zaW9uc0VsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlN3YXAgZGltZW5zaW9ucyIpOwogICAgICAgIHRoaXMuX3N3YXBEaW1lbnNpb25zRWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHN3YXBEaW1lbnNpb25zQ2xpY2tlZC5iaW5k
KHRoaXMpLCBmYWxzZSk7CgogICAgICAgIHJvd0VsZW1lbnQgPSB0YWJsZUVsZW1lbnQuY3JlYXRl
Q2hpbGQoInRyIik7CiAgICAgICAgY2VsbEVsZW1lbnQgPSByb3dFbGVtZW50LmNyZWF0ZUNoaWxk
KCJ0ZCIpOwogICAgICAgIGNlbGxFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRm9udCBzY2FsZSBmYWN0b3I6IikpKTsKICAg
ICAgICBjZWxsRWxlbWVudCA9IHJvd0VsZW1lbnQuY3JlYXRlQ2hpbGQoInRkIik7CiAgICAgICAg
dGhpcy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJpZGVFbGVtZW50ID0gY3JlYXRlSW5wdXQuY2FsbCh0
aGlzLCBjZWxsRWxlbWVudCwgIm1ldHJpY3Mtb3ZlcnJpZGUtZm9udC1zY2FsZSIsIFN0cmluZyht
ZXRyaWNzLmZvbnRTY2FsZUZhY3RvciB8fCAxKSk7CgogICAgICAgIHJvd0VsZW1lbnQgPSB0YWJs
ZUVsZW1lbnQuY3JlYXRlQ2hpbGQoInRyIik7CiAgICAgICAgY2VsbEVsZW1lbnQgPSByb3dFbGVt
ZW50LmNyZWF0ZUNoaWxkKCJ0ZCIpOwogICAgICAgIGNlbGxFbGVtZW50LmNvbHNwYW4gPSAyOwog
ICAgICAgIHRoaXMuX2ZpdFdpbmRvd0NoZWNrYm94RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlucHV0Iik7CiAgICAgICAgY2VsbEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3Jl
YXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRml0IGluIHdpbmRvdyIp
LCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGV2aWNlRml0V2luZG93LCB0cnVlLCB0aGlzLl9maXRX
aW5kb3dDaGVja2JveEVsZW1lbnQpKTsKCiAgICAgICAgcmV0dXJuIGZpZWxkc2V0RWxlbWVudDsK
ICAgIH0KfQoKV2ViSW5zcGVjdG9yLlVzZXJBZ2VudFNldHRpbmdzVGFiLnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuU2V0dGluZ3NUYWIucHJvdG90eXBlOwoKLyoqCiAqIEBjb25z
dHJ1Y3RvcgogKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNldHRpbmdzVGFifQogKi8KV2ViSW5z
cGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3NUYWIgPSBmdW5jdGlvbigpCnsKICAgIFdlYkluc3Bl
Y3Rvci5TZXR0aW5nc1RhYi5jYWxsKHRoaXMpOwoKICAgIHZhciBleHBlcmltZW50cyA9IFdlYklu
c3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLmV4cGVyaW1lbnRzOwogICAgaWYgKGV4cGVyaW1l
bnRzLmxlbmd0aCkgewogICAgICAgIHZhciBleHBlcmltZW50c1NlY3Rpb24gPSB0aGlzLl9hcHBl
bmRTZWN0aW9uKCk7CiAgICAgICAgZXhwZXJpbWVudHNTZWN0aW9uLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZUV4cGVyaW1lbnRzV2FybmluZ1N1YnNlY3Rpb24oKSk7CiAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBleHBlcmltZW50cy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgZXhwZXJpbWVu
dHNTZWN0aW9uLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnRDaGVja2JveChleHBl
cmltZW50c1tpXSkpOwogICAgfQp9CgpXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5nc1Rh
Yi5wcm90b3R5cGUgPSB7CiAgICAvKioKICAgICAqIEByZXR1cm4ge0VsZW1lbnR9IGVsZW1lbnQK
ICAgICAqLwogICAgX2NyZWF0ZUV4cGVyaW1lbnRzV2FybmluZ1N1YnNlY3Rpb246IGZ1bmN0aW9u
KCkKICAgIHsKICAgICAgICB2YXIgc3Vic2VjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogICAgICAgIHZhciB3YXJuaW5nID0gc3Vic2VjdGlvbi5jcmVhdGVDaGlsZCgic3Bh
biIsICJzZXR0aW5ncy1leHBlcmltZW50cy13YXJuaW5nLXN1YnNlY3Rpb24td2FybmluZyIpOwog
ICAgICAgIHdhcm5pbmcudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldBUk5J
Tkc6Iik7CiAgICAgICAgc3Vic2VjdGlvbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiICIpKTsKICAgICAgICB2YXIgbWVzc2FnZSA9IHN1YnNlY3Rpb24uY3JlYXRlQ2hpbGQo
InNwYW4iLCAic2V0dGluZ3MtZXhwZXJpbWVudHMtd2FybmluZy1zdWJzZWN0aW9uLW1lc3NhZ2Ui
KTsKICAgICAgICBtZXNzYWdlLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJU
aGVzZSBleHBlcmltZW50cyBjb3VsZCBiZSBkYW5nZXJvdXMgYW5kIG1heSByZXF1aXJlIHJlc3Rh
cnQuIik7CiAgICAgICAgcmV0dXJuIHN1YnNlY3Rpb247CiAgICB9LAoKICAgIF9jcmVhdGVFeHBl
cmltZW50Q2hlY2tib3g6IGZ1bmN0aW9uKGV4cGVyaW1lbnQpCiAgICB7CiAgICAgICAgdmFyIGlu
cHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgICAgICBpbnB1dC50eXBl
ID0gImNoZWNrYm94IjsKICAgICAgICBpbnB1dC5uYW1lID0gZXhwZXJpbWVudC5uYW1lOwogICAg
ICAgIGlucHV0LmNoZWNrZWQgPSBleHBlcmltZW50LmlzRW5hYmxlZCgpOwogICAgICAgIGZ1bmN0
aW9uIGxpc3RlbmVyKCkKICAgICAgICB7CiAgICAgICAgICAgIGV4cGVyaW1lbnQuc2V0RW5hYmxl
ZChpbnB1dC5jaGVja2VkKTsKICAgICAgICB9CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBsaXN0ZW5lciwgZmFsc2UpOwoKICAgICAgICB2YXIgcCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInAiKTsKICAgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJsYWJlbCIpOwogICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICBs
YWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoZXhwZXJpbWVudC50aXRsZSkpKTsKICAgICAgICBwLmFwcGVuZENoaWxkKGxhYmVsKTsK
ICAgICAgICByZXR1cm4gcDsKICAgIH0KfQoKV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGlu
Z3NUYWIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TZXR0aW5nc1RhYi5wcm90
b3R5cGU7CgovKioKICogQGNvbnN0cnVjdG9yCiAqLwpXZWJJbnNwZWN0b3IuU2V0dGluZ3NDb250
cm9sbGVyID0gZnVuY3Rpb24oKQp7CiAgICB0aGlzLl9zdGF0dXNCYXJCdXR0b24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNldHRpbmdz
IiksICJzZXR0aW5ncy1zdGF0dXMtYmFyLWl0ZW0iKTs7CiAgICB0aGlzLl9zdGF0dXNCYXJCdXR0
b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9idXR0b25DbGlja2VkLCB0aGlzKTsK
CiAgICAvKiogQHR5cGUgez9XZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW59ICovCiAgICB0aGlz
Ll9zZXR0aW5nc1NjcmVlbjsKfQoKV2ViSW5zcGVjdG9yLlNldHRpbmdzQ29udHJvbGxlci5wcm90
b3R5cGUgPQp7CiAgICBnZXQgc3RhdHVzQmFySXRlbSgpCiAgICB7CiAgICAgICAgcmV0dXJuIHRo
aXMuX3N0YXR1c0JhckJ1dHRvbi5lbGVtZW50OwogICAgfSwKCiAgICBfYnV0dG9uQ2xpY2tlZDog
ZnVuY3Rpb24oKQogICAgewogICAgICAgIGlmICh0aGlzLl9zdGF0dXNCYXJCdXR0b24udG9nZ2xl
ZCkKICAgICAgICAgICAgdGhpcy5faGlkZVNldHRpbmdzU2NyZWVuKCk7CiAgICAgICAgZWxzZQog
ICAgICAgICAgICB0aGlzLnNob3dTZXR0aW5nc1NjcmVlbigpOwogICAgfSwKCiAgICBfb25IaWRl
U2V0dGluZ3NTY3JlZW46IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB0aGlzLl9zdGF0dXNCYXJC
dXR0b24udG9nZ2xlZCA9IGZhbHNlOwogICAgfSwKCiAgICAvKioKICAgICAqIEBwYXJhbSB7c3Ry
aW5nPX0gdGFiSWQKICAgICAqLwogICAgc2hvd1NldHRpbmdzU2NyZWVuOiBmdW5jdGlvbih0YWJJ
ZCkKICAgIHsKICAgICAgICBpZiAoIXRoaXMuX3NldHRpbmdzU2NyZWVuKQogICAgICAgICAgICB0
aGlzLl9zZXR0aW5nc1NjcmVlbiA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4odGhp
cy5fb25IaWRlU2V0dGluZ3NTY3JlZW4uYmluZCh0aGlzKSk7CgogICAgICAgIGlmICh0YWJJZCkK
ICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4uc2VsZWN0VGFiKHRhYklkKTsKCiAgICAg
ICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4uc2hvd01vZGFsKCk7CiAgICAgICAgdGhpcy5fc3RhdHVz
QmFyQnV0dG9uLnRvZ2dsZWQgPSB0cnVlOwogICAgfSwKCiAgICBfaGlkZVNldHRpbmdzU2NyZWVu
OiBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzU2NyZWVuKQogICAg
ICAgICAgICB0aGlzLl9zZXR0aW5nc1NjcmVlbi5oaWRlKCk7CiAgICB9Cn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>