Question 1
The null hypotheses of Table 3.4 is: the advertising costs of TV, radio and newspaper have no significant influence of sales.
The p-values show that TV and radio have significant influence on sales, while newspaper does not.
Question 2
For KNN classifier, the response variable is qualitative, while for KNN regression method, the response variable is quantitative, the formula is described in p105: \[ \hat f(x_0) = \frac 1 K \sum_{x_i\in \mathcal N_0} y_i\] where \(\mathcal N_0\) is the set of the K nearest points of \(x_0\).
Question 3
3a
The answer iii is right. Take \(\beta_i\) into the regression equation, we get: \[
\because \text{$x_1$ and $x_2$ is constant} \\
\begin{align}
y & = 50 + 20x_1 + 0.07x_2 + 35x_3 + 0.01x_1 x_2 -10x_1 x_3 \\
& = C + (35 - 10x_1) x_3
\end{align} \\
\therefore \begin{cases}
y \mid_{x_3=1} \lt y \mid_{x_3=0}, & \text{if $x_1 \gt 3.5$} \\
y \mid_{x_3=1} \gt y \mid_{x_3=0}, & \text{if $x_1 \lt 3.5$}
\end{cases}
\] So when GPA is above 3.5, males (\(x_3 = 0\)) earn higher than females (\(x_3 =1\)).
3b
Take \(x_1 = 4.0, x_2 = 110, x_3 = 1\) into equation (1), we get: \(y = 137.1\)
3c
False. The coefficient has nothing to do with the interaction effect. The p-value of the interaction term determines its significance.
Question 4
4a
The training RSS of cubic regression is lower than that of linear regression, because it could make a tighter fit against data that matched with a wider irreducible error (\(Var(\epsilon)\)).
4b
The test RSS of cubic regression is larger than that of linear regression, because the overfitting of the training set makes the prediction accuracy declines.
4c
The same reason with (a).
4d
There’s not enough information to tell. It depends on how non-linear between \(X\) and \(Y\).
Question 5
Let \[ \sum_{j=1}^n x_j^2 = C\] So we have \[
\begin{align}
\hat y_i & = \hat\beta x_i = \sum_{k=1}^n a_k y_k \\
& = \sum_{k=1}^n \frac{x_i}C x_k y_k \\
\therefore a_k & = \frac{x_i x_k}C \\
& = \frac{x_i x_k}{\sum_{j=1}^n x^2_j}
\end{align}
\] Here \(k = i'\), and \(a_k\) is the function of \(i\), which means \(a_k\) changes according to \(i\).
Question 6
Given equation (3.2) and (3.4), we know the linear regression line equation is \(y = \bar y - \hat \beta_1 \bar x + \hat \beta_1 x\). So when \(x = \bar x\), \(y = \bar y\), which means point \((\bar x, \bar y)\) is on he line.
Question 7
For n observations \((x_i, y_i), i=1..n\), let:
\[\begin{equation}\begin{aligned}
ss_{xx} &\equiv \sum_{i=1}^n (x_i - \bar x)^2 \\
&= \sum_{i=1}^n x_i^2 - 2 \bar x \sum_{i=1}^n x_i + \sum_{i=1}^n \bar x^2 \\
&= \sum_{i=1}^n x_i^2 - 2n\bar x^2 + n \bar x^2 \\
&= \sum_{i=1}^n x_i^2 - n\bar x^2
\end{aligned}\end{equation} \tag{1}\label{eq1}
\] Substitute \(x\) with \(y\), we get: \[
ss_{yy} \equiv \sum_{i=1}^n (y_i - \bar y)^2 = \sum_{i=1}^n y_i^2 - n\bar y^2 \tag{2}\label{eq2}
\] And: \[\begin{equation}\begin{aligned}
ss_{xy} &\equiv \sum_{i=1}^n (x_i - \bar x) (y_i - \bar y) \\
&= \sum_{i=1}^n (x_i y_i - \bar x y_i - x_i \bar y + \bar x \bar y) \\
&= \sum_{i=1}^n x_i y_i - n \bar x \bar y - n \bar x \bar y + n \bar x \bar y \\
&= \sum_{i=1}^n x_i y_i - n\bar x\bar y
\end{aligned}\end{equation} \tag{3}\label{eq3}
\] For correlation between \(X\) and \(Y\), also denoted as \(Cor(X, Y)\): \[
r \equiv \frac{\sum_{i=1}^n(x_i - \bar x)(y_i - \bar y)}
{\sqrt{\sum_{i=1}^n(x_i - \bar x)^2} \sqrt{\sum_{i=1}^n(y_i - \bar y)^2}}
= \frac{ss_{xy}}{\sqrt{ss_{xx}ss_{yy}}} \tag{4} \label{eq4}
\] Here \(\bar x = \frac{\sum_{i=1}^n x_i}n, \bar y = \frac{\sum_{i=1}^n y_i}n\). See Correlation Coefficient and Least Squares Fitting for detailed reasonings.
For the target regression function \(y = a + bx\), \(a\) and \(b\) should be the value that make \(RSS\) get its minimum, where \[
RSS \equiv \sum_{i=1}^n(y_i - \hat y_i)^2
= \sum_{i=1}^n [y_i - (a + b x_i)]^2 \tag{5}\label{eq5}
\] So we have: \[
\frac{\partial (RSS)}{\partial a} = -2 \sum_{i=1}^n [y_i - (a + b x_i)] = 0 \\
\frac{\partial (RSS)}{\partial b} = -2 \sum_{i=1}^n [y_i - (a + b x_i)] x_i = 0
\] These lead to: \[\begin{align}
na + b\sum_{i=1}^n x_i = \sum_{i=1}^n y_i \tag{6} \label{eq6}\\
a \sum_{i=1}^n x_i + b \sum_{i=1}^n x_i^2 = \sum_{i=1}^n x_i y_i \tag{7}\label{eq7}
\end{align}\]
Eq\(\eqref{eq7}\) can be written as: \[
an \bar x + b \sum_{i=1}^n x_i^2 = \sum_{i=1}^n x_i y_i \tag{8}\label{eq8}
\] From eq\(\eqref{eq6}\) we have: \[a = \bar y - b \bar x \tag{9}\label{eq9}\] Take eq\(\eqref{eq1}, \eqref{eq3}, \eqref{eq9}\) into eq\(\eqref{eq8}\), we get: \[
(\bar y - b \bar x) n \bar x + b \sum_{i=1}^n x_i^2 = \sum_{i=1}^n x_i y_i \\
n \bar x \bar y - bn \bar x^2 + b \sum_{i=1}^n x_i^2 = \sum_{i=1}^n x_i y_i \\
(\sum_{i=1}^n x_i^2 - n \bar x^2) b = \sum_{i=1}^n x_i y_i - n \bar x \bar y \\
\therefore b = \frac{\sum_{i=1}^n x_i y_i - n \bar x \bar y}{\sum_{i=1}^n x_i^2 - n \bar x^2}
= \frac{ss_{xy}}{ss_{xx}} \tag{10}\label{eq10}
\] Take eq\(\eqref{eq9}, \eqref{eq10}\) into eq\(\eqref{eq5}\), we get: \[\begin{equation}\begin{aligned}
RSS &= \sum_{i=1}^n [y_i - (a + b x_i)]^2 \\
&= \sum_{i=1}^n (y_i - \bar y + b \bar x - b x_i)^2 \\
&= \sum_{i=1}^n [(y_i - \bar y) - b (x_i - \bar x)]^2 \\
&= \sum_{i=1}^n (y_i - \bar y)^2 + b^2 \sum_{i=1}^n (x_i - \bar x)^2 -2b \sum_{i=1}^n (x_i - \bar x) (y_i - \bar y) \\
&= ss_{yy} + b^2 ss_{xx} -2bss_{xy} \\
&= ss_{yy} + \frac{ss_{xy}^2}{xx_{xx}^2}ss_{xx} -2 \frac{ss_{xy}}{ss_{xx}}ss_{xy} \\
&= ss_{yy} - \frac{ss_{xy}^2}{ss_{xx}}
\end{aligned}\end{equation} \tag{11}\label{eq11}
\]
Take eq\(\eqref{eq11}\) into equation (3.17) on page 70, we have: \[
R^2 = \frac{TSS - RSS}{TSS}
= \frac{ss_{yy} - ss_{yy} + \frac{ss_{xy}^2}{ss_{xx}}}{ss_{yy}}
= \frac{ss_{xy}^2}{ss_{xx} ss_{yy}}
\] With eq\(\eqref{eq4}\), we get \(R^2 = Cor(X, Y)^2\).
Here \(RSS\), \(R^2\), \(TSS\) and \(Cor(X, Y)\) is defined in Equation (3.16) ~ (3.18). \(ss\), \(r\) is defined in Correlation Coefficient and Least Squares Fitting.
Other references:
LS0tCnRpdGxlOiAiQ29uY2VwdHVhbCBFeGVyY2lzZXMgb2YgQ2hhcHRlciAzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojIFF1ZXN0aW9uIDEKClRoZSBudWxsIGh5cG90aGVzZXMgb2YgVGFibGUgMy40IGlzOiB0aGUgYWR2ZXJ0aXNpbmcgY29zdHMgb2YgVFYsIHJhZGlvIGFuZCBuZXdzcGFwZXIgaGF2ZSBubyBzaWduaWZpY2FudCBpbmZsdWVuY2Ugb2Ygc2FsZXMuCgpUaGUgcC12YWx1ZXMgc2hvdyB0aGF0IFRWIGFuZCByYWRpbyBoYXZlIHNpZ25pZmljYW50IGluZmx1ZW5jZSBvbiBzYWxlcywgd2hpbGUgbmV3c3BhcGVyIGRvZXMgbm90LgoKIyBRdWVzdGlvbiAyCgpGb3IgS05OIGNsYXNzaWZpZXIsIHRoZSByZXNwb25zZSB2YXJpYWJsZSBpcyBxdWFsaXRhdGl2ZSwgd2hpbGUgZm9yIEtOTiByZWdyZXNzaW9uIG1ldGhvZCwgdGhlIHJlc3BvbnNlIHZhcmlhYmxlIGlzIHF1YW50aXRhdGl2ZSwgdGhlIGZvcm11bGEgaXMgZGVzY3JpYmVkIGluIHAxMDU6CiQkIFxoYXQgZih4XzApID0gXGZyYWMgMSBLIFxzdW1fe3hfaVxpbiBcbWF0aGNhbCBOXzB9IHlfaSQkCndoZXJlICRcbWF0aGNhbCBOXzAkIGlzIHRoZSBzZXQgb2YgdGhlIEsgbmVhcmVzdCBwb2ludHMgb2YgJHhfMCQuCgojIFF1ZXN0aW9uIDMKCiMjIDNhCgpUaGUgYW5zd2VyICppaWkqIGlzIHJpZ2h0LiBUYWtlICRcYmV0YV9pJCBpbnRvIHRoZSByZWdyZXNzaW9uIGVxdWF0aW9uLCB3ZSBnZXQ6CiQkClxiZWNhdXNlIFx0ZXh0eyR4XzEkIGFuZCAkeF8yJCBpcyBjb25zdGFudH0gXFwKXGJlZ2lue2FsaWdufQp5ICYgPSA1MCArIDIweF8xICsgMC4wN3hfMiArIDM1eF8zICsgMC4wMXhfMSB4XzIgLTEweF8xIHhfMyBcXAogICYgPSBDICsgKDM1IC0gMTB4XzEpIHhfMwpcZW5ke2FsaWdufSBcXApcdGhlcmVmb3JlIFxiZWdpbntjYXNlc30KeSBcbWlkX3t4XzM9MX0gXGx0IHkgXG1pZF97eF8zPTB9LCAmIFx0ZXh0e2lmICR4XzEgXGd0IDMuNSR9IFxcCnkgXG1pZF97eF8zPTF9IFxndCB5IFxtaWRfe3hfMz0wfSwgJiBcdGV4dHtpZiAkeF8xIFxsdCAzLjUkfQpcZW5ke2Nhc2VzfQokJApTbyB3aGVuIEdQQSBpcyBhYm92ZSAzLjUsIG1hbGVzICgkeF8zID0gMCQpIGVhcm4gaGlnaGVyIHRoYW4gZmVtYWxlcyAoJHhfMyA9MSQpLgoKIyMgM2IKVGFrZSAkeF8xID0gNC4wLCB4XzIgPSAxMTAsICB4XzMgPSAxJCBpbnRvIGVxdWF0aW9uICgxKSwgd2UgZ2V0OiAkeSA9IDEzNy4xJAoKIyMgM2MKRmFsc2UuIFRoZSBjb2VmZmljaWVudCBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBpbnRlcmFjdGlvbiBlZmZlY3QuIFRoZSAqcC12YWx1ZSogb2YgdGhlIGludGVyYWN0aW9uIHRlcm0gZGV0ZXJtaW5lcyBpdHMgc2lnbmlmaWNhbmNlLgoKIyBRdWVzdGlvbiA0CiMjIDRhClRoZSB0cmFpbmluZyBSU1Mgb2YgY3ViaWMgcmVncmVzc2lvbiBpcyBsb3dlciB0aGFuIHRoYXQgb2YgbGluZWFyIHJlZ3Jlc3Npb24sIGJlY2F1c2UgaXQgY291bGQgbWFrZSBhIHRpZ2h0ZXIgZml0IGFnYWluc3QgZGF0YSB0aGF0IG1hdGNoZWQgd2l0aCBhIHdpZGVyIGlycmVkdWNpYmxlIGVycm9yICgkVmFyKFxlcHNpbG9uKSQpLgoKIyMgNGIKVGhlIHRlc3QgUlNTIG9mIGN1YmljIHJlZ3Jlc3Npb24gaXMgbGFyZ2VyIHRoYW4gdGhhdCBvZiBsaW5lYXIgcmVncmVzc2lvbiwgYmVjYXVzZSB0aGUgb3ZlcmZpdHRpbmcgb2YgdGhlIHRyYWluaW5nIHNldCBtYWtlcyB0aGUgcHJlZGljdGlvbiBhY2N1cmFjeSBkZWNsaW5lcy4KCiMjIDRjClRoZSBzYW1lIHJlYXNvbiB3aXRoIChhKS4KCiMjIDRkClRoZXJlJ3Mgbm90IGVub3VnaCBpbmZvcm1hdGlvbiB0byB0ZWxsLiBJdCBkZXBlbmRzIG9uIGhvdyBub24tbGluZWFyIGJldHdlZW4gJFgkIGFuZCAkWSQuCgojIFF1ZXN0aW9uIDUKCkxldCAkJCBcc3VtX3tqPTF9Xm4geF9qXjIgPSBDJCQKU28gd2UgaGF2ZSAkJApcYmVnaW57YWxpZ259ClxoYXQgeV9pICYgPSBcaGF0XGJldGEgeF9pID0gXHN1bV97az0xfV5uIGFfayB5X2sgXFwKJiA9IFxzdW1fe2s9MX1ebiBcZnJhY3t4X2l9QyB4X2sgeV9rIFxcClx0aGVyZWZvcmUgYV9rICYgPSBcZnJhY3t4X2kgeF9rfUMgXFwKJiA9IFxmcmFje3hfaSB4X2t9e1xzdW1fe2o9MX1ebiB4XjJfan0KXGVuZHthbGlnbn0KJCQKSGVyZSAkayA9IGknJCwgYW5kICRhX2skIGlzIHRoZSBmdW5jdGlvbiBvZiAkaSQsIHdoaWNoIG1lYW5zICRhX2skIGNoYW5nZXMgYWNjb3JkaW5nIHRvICRpJC4KCiMgUXVlc3Rpb24gNgoKR2l2ZW4gZXF1YXRpb24gKDMuMikgYW5kICgzLjQpLCB3ZSBrbm93IHRoZSBsaW5lYXIgcmVncmVzc2lvbiBsaW5lIGVxdWF0aW9uIGlzICR5ID0gXGJhciB5IC0gXGhhdCBcYmV0YV8xIFxiYXIgeCArIFxoYXQgXGJldGFfMSB4JC4KU28gd2hlbiAkeCA9IFxiYXIgeCQsICR5ID0gXGJhciB5JCwgd2hpY2ggbWVhbnMgcG9pbnQgJChcYmFyIHgsIFxiYXIgeSkkIGlzIG9uIGhlIGxpbmUuCgojIFF1ZXN0aW9uIDcKCkZvciAqbiogb2JzZXJ2YXRpb25zICQoeF9pLCB5X2kpLCBpPTEuLm4kLCBsZXQ6CgokJFxiZWdpbntlcXVhdGlvbn1cYmVnaW57YWxpZ25lZH0Kc3Nfe3h4fSAmXGVxdWl2IFxzdW1fe2k9MX1ebiAoeF9pIC0gXGJhciB4KV4yIFxcCiY9IFxzdW1fe2k9MX1ebiB4X2leMiAtIDIgXGJhciB4IFxzdW1fe2k9MX1ebiB4X2kgKyBcc3VtX3tpPTF9Xm4gXGJhciB4XjIgXFwKJj0gXHN1bV97aT0xfV5uIHhfaV4yIC0gMm5cYmFyIHheMiArIG4gXGJhciB4XjIgXFwKJj0gXHN1bV97aT0xfV5uIHhfaV4yIC0gblxiYXIgeF4yClxlbmR7YWxpZ25lZH1cZW5ke2VxdWF0aW9ufSBcdGFnezF9XGxhYmVse2VxMX0KJCQKU3Vic3RpdHV0ZSAkeCQgd2l0aCAkeSQsIHdlIGdldDoKJCQKc3Nfe3l5fSBcZXF1aXYgXHN1bV97aT0xfV5uICh5X2kgLSBcYmFyIHkpXjIgPSBcc3VtX3tpPTF9Xm4geV9pXjIgLSBuXGJhciB5XjIgXHRhZ3syfVxsYWJlbHtlcTJ9CiQkCkFuZDoKJCRcYmVnaW57ZXF1YXRpb259XGJlZ2lue2FsaWduZWR9CnNzX3t4eX0gJlxlcXVpdiBcc3VtX3tpPTF9Xm4gKHhfaSAtIFxiYXIgeCkgKHlfaSAtIFxiYXIgeSkgXFwKJj0gXHN1bV97aT0xfV5uICh4X2kgeV9pIC0gXGJhciB4IHlfaSAtIHhfaSBcYmFyIHkgKyBcYmFyIHggXGJhciB5KSBcXAomPSBcc3VtX3tpPTF9Xm4geF9pIHlfaSAtIG4gXGJhciB4IFxiYXIgeSAtIG4gXGJhciB4IFxiYXIgeSArIG4gXGJhciB4IFxiYXIgeSBcXAomPSBcc3VtX3tpPTF9Xm4geF9pIHlfaSAtIG5cYmFyIHhcYmFyIHkKXGVuZHthbGlnbmVkfVxlbmR7ZXF1YXRpb259IFx0YWd7M31cbGFiZWx7ZXEzfQokJApGb3IgY29ycmVsYXRpb24gYmV0d2VlbiAkWCQgYW5kICRZJCwgYWxzbyBkZW5vdGVkIGFzICRDb3IoWCwgWSkkOgokJApyIFxlcXVpdiBcZnJhY3tcc3VtX3tpPTF9Xm4oeF9pIC0gXGJhciB4KSh5X2kgLSBcYmFyIHkpfQp7XHNxcnR7XHN1bV97aT0xfV5uKHhfaSAtIFxiYXIgeCleMn0gXHNxcnR7XHN1bV97aT0xfV5uKHlfaSAtIFxiYXIgeSleMn19Cj0gXGZyYWN7c3Nfe3h5fX17XHNxcnR7c3Nfe3h4fXNzX3t5eX19fSBcdGFnezR9IFxsYWJlbHtlcTR9CiQkCkhlcmUgJFxiYXIgeCA9IFxmcmFje1xzdW1fe2k9MX1ebiB4X2l9biwgXGJhciB5ID0gXGZyYWN7XHN1bV97aT0xfV5uIHlfaX1uJC4KU2VlIFtDb3JyZWxhdGlvbiBDb2VmZmljaWVudF1bY29yY29lZl0gYW5kIFtMZWFzdCBTcXVhcmVzIEZpdHRpbmddW2xzZl0gZm9yIGRldGFpbGVkIHJlYXNvbmluZ3MuCgpGb3IgdGhlIHRhcmdldCByZWdyZXNzaW9uIGZ1bmN0aW9uICR5ID0gYSArIGJ4JCwgJGEkIGFuZCAkYiQgc2hvdWxkIGJlIHRoZSB2YWx1ZSB0aGF0IG1ha2UgJFJTUyQgZ2V0IGl0cyBtaW5pbXVtLCB3aGVyZQokJApSU1MgXGVxdWl2IFxzdW1fe2k9MX1ebih5X2kgLSBcaGF0IHlfaSleMgo9IFxzdW1fe2k9MX1ebiBbeV9pIC0gKGEgKyBiIHhfaSldXjIgXHRhZ3s1fVxsYWJlbHtlcTV9CiQkClNvIHdlIGhhdmU6CiQkClxmcmFje1xwYXJ0aWFsIChSU1MpfXtccGFydGlhbCBhfSA9IC0yIFxzdW1fe2k9MX1ebiBbeV9pIC0gKGEgKyBiIHhfaSldID0gMCBcXApcZnJhY3tccGFydGlhbCAoUlNTKX17XHBhcnRpYWwgYn0gPSAtMiBcc3VtX3tpPTF9Xm4gW3lfaSAtIChhICsgYiB4X2kpXSB4X2kgPSAwCiQkClRoZXNlIGxlYWQgdG86CiQkXGJlZ2lue2FsaWdufQpuYSArIGJcc3VtX3tpPTF9Xm4geF9pID0gXHN1bV97aT0xfV5uIHlfaSBcdGFnezZ9IFxsYWJlbHtlcTZ9XFwKYSBcc3VtX3tpPTF9Xm4geF9pICsgYiBcc3VtX3tpPTF9Xm4geF9pXjIgPSBcc3VtX3tpPTF9Xm4geF9pIHlfaSBcdGFnezd9XGxhYmVse2VxN30KXGVuZHthbGlnbn0kJAoKRXEkXGVxcmVme2VxN30kIGNhbiBiZSB3cml0dGVuIGFzOgokJAphbiBcYmFyIHggKyBiIFxzdW1fe2k9MX1ebiB4X2leMiA9IFxzdW1fe2k9MX1ebiB4X2kgeV9pIFx0YWd7OH1cbGFiZWx7ZXE4fQokJApGcm9tIGVxJFxlcXJlZntlcTZ9JCB3ZSBoYXZlOgokJGEgPSBcYmFyIHkgLSBiIFxiYXIgeCBcdGFnezl9XGxhYmVse2VxOX0kJApUYWtlIGVxJFxlcXJlZntlcTF9LCBcZXFyZWZ7ZXEzfSwgXGVxcmVme2VxOX0kIGludG8gZXEkXGVxcmVme2VxOH0kLCB3ZSBnZXQ6CiQkCihcYmFyIHkgLSBiIFxiYXIgeCkgbiBcYmFyIHggKyBiIFxzdW1fe2k9MX1ebiB4X2leMiA9IFxzdW1fe2k9MX1ebiB4X2kgeV9pIFxcCm4gXGJhciB4IFxiYXIgeSAtIGJuIFxiYXIgeF4yICsgYiBcc3VtX3tpPTF9Xm4geF9pXjIgPSBcc3VtX3tpPTF9Xm4geF9pIHlfaSBcXAooXHN1bV97aT0xfV5uIHhfaV4yIC0gbiBcYmFyIHheMikgYiA9IFxzdW1fe2k9MX1ebiB4X2kgeV9pIC0gbiBcYmFyIHggXGJhciB5IFxcClx0aGVyZWZvcmUgYiA9IFxmcmFje1xzdW1fe2k9MX1ebiB4X2kgeV9pIC0gbiBcYmFyIHggXGJhciB5fXtcc3VtX3tpPTF9Xm4geF9pXjIgLSBuIFxiYXIgeF4yfQo9IFxmcmFje3NzX3t4eX19e3NzX3t4eH19IFx0YWd7MTB9XGxhYmVse2VxMTB9CiQkClRha2UgZXEkXGVxcmVme2VxOX0sIFxlcXJlZntlcTEwfSQgaW50byBlcSRcZXFyZWZ7ZXE1fSQsIHdlIGdldDoKJCRcYmVnaW57ZXF1YXRpb259XGJlZ2lue2FsaWduZWR9ClJTUyAmPSBcc3VtX3tpPTF9Xm4gW3lfaSAtIChhICsgYiB4X2kpXV4yIFxcCiY9IFxzdW1fe2k9MX1ebiAoeV9pIC0gXGJhciB5ICsgYiBcYmFyIHggLSBiIHhfaSleMiBcXAomPSBcc3VtX3tpPTF9Xm4gWyh5X2kgLSBcYmFyIHkpIC0gYiAoeF9pIC0gXGJhciB4KV1eMiBcXAomPSBcc3VtX3tpPTF9Xm4gKHlfaSAtIFxiYXIgeSleMiArIGJeMiBcc3VtX3tpPTF9Xm4gKHhfaSAtIFxiYXIgeCleMiAtMmIgXHN1bV97aT0xfV5uICh4X2kgLSBcYmFyIHgpICh5X2kgLSBcYmFyIHkpIFxcCiY9IHNzX3t5eX0gKyBiXjIgc3Nfe3h4fSAtMmJzc197eHl9IFxcCiY9IHNzX3t5eX0gKyBcZnJhY3tzc197eHl9XjJ9e3h4X3t4eH1eMn1zc197eHh9IC0yIFxmcmFje3NzX3t4eX19e3NzX3t4eH19c3Nfe3h5fSBcXAomPSBzc197eXl9IC0gXGZyYWN7c3Nfe3h5fV4yfXtzc197eHh9fQpcZW5ke2FsaWduZWR9XGVuZHtlcXVhdGlvbn0gXHRhZ3sxMX1cbGFiZWx7ZXExMX0KJCQKClRha2UgZXEkXGVxcmVme2VxMTF9JCBpbnRvIGVxdWF0aW9uICgzLjE3KSBvbiBwYWdlIDcwLCB3ZSBoYXZlOgokJApSXjIgPSBcZnJhY3tUU1MgLSBSU1N9e1RTU30KPSBcZnJhY3tzc197eXl9IC0gc3Nfe3l5fSArIFxmcmFje3NzX3t4eX1eMn17c3Nfe3h4fX19e3NzX3t5eX19Cj0gXGZyYWN7c3Nfe3h5fV4yfXtzc197eHh9IHNzX3t5eX19CiQkCldpdGggZXEkXGVxcmVme2VxNH0kLCB3ZSBnZXQgJFJeMiA9IENvcihYLCBZKV4yJC4KCkhlcmUgJFJTUyQsICRSXjIkLCAkVFNTJCBhbmQgJENvcihYLCBZKSQgaXMgZGVmaW5lZCBpbiBFcXVhdGlvbiAoMy4xNikgfiAoMy4xOCkuCiRzcyQsICRyJCBpcyBkZWZpbmVkIGluIFtDb3JyZWxhdGlvbiBDb2VmZmljaWVudF1bY29yY29lZl0gYW5kIFtMZWFzdCBTcXVhcmVzIEZpdHRpbmddW2xzZl0uCgpbY29yY29lZl06IGh0dHA6Ly9tYXRod29ybGQud29sZnJhbS5jb20vQ29ycmVsYXRpb25Db2VmZmljaWVudC5odG1sCltsc2ZdOiBodHRwOi8vbWF0aHdvcmxkLndvbGZyYW0uY29tL0xlYXN0U3F1YXJlc0ZpdHRpbmcuaHRtbAoKCk90aGVyIHJlZmVyZW5jZXM6CgoqIFtSZWxhdGlvbnNoaXAgYmV0d2VlbiBSMiBhbmQgY29ycmVsYXRpb24gY29lZmZpY2llbnRdKGh0dHBzOi8vc3RhdHMuc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzgzMzQ3L3JlbGF0aW9uc2hpcC1iZXR3ZWVuLXIyLWFuZC1jb3JyZWxhdGlvbi1jb2VmZmljaWVudCkK