[2.22]

\[ \boldsymbol{A}=\begin{pmatrix} 3 & 6 & -1\\ 6 & 9 & 4\\ -1 & 4 & 3 \end{pmatrix} \]

(a) - Спектрална декомпозиција

Матрицата е симетрична, затоа има 3 сопствени вредности. Карактеристичната равенка изгледа вака:

\[ |\boldsymbol{A}-\lambda\boldsymbol{I}|=\begin{vmatrix} 3-\lambda & 6 & -1\\ 6 & 9-\lambda & 4\\ -1 & 4 & 3-\lambda \end{vmatrix}=\\(3-\lambda)\begin{vmatrix} 9-\lambda & 4\\ 4 & 3-\lambda \end{vmatrix}-6\begin{vmatrix} 6 & 4\\ -1 & 3-\lambda \end{vmatrix}-\begin{vmatrix} 6 & 9-\lambda\\ -1 & 4 \end{vmatrix}=\\ (3-\lambda)[(9-\lambda)(3-\lambda)-16]-6[6(3-\lambda)+4]-(24+9-\lambda)=\\ (9-\lambda)(3-\lambda)^2-16(3-\lambda)-36(3-\lambda)-57+\lambda=\\ (9-\lambda)(9-6\lambda+\lambda^2)-52(3-\lambda)-57+\lambda=\\ (81-54\lambda+9\lambda^2-9\lambda+6\lambda^2-\lambda^3)-213+53\lambda=\\ -\lambda^3+15\lambda^2-10\lambda-132 \]

Корените на равенката се:

lambdas_a = polyroot(z=c(-132, -10, 15, -1))
print(lambdas_a)
[1]  3.935277+0i -2.476994+0i 13.541717-0i

За да ги најдеме сопствените вектори, потребно ни е да го решиме системот равенки:

\[ \begin{pmatrix} 3-\lambda & 6 & -1\\ 6 & 9-\lambda & 4\\ -1 & 4 & 3-\lambda \end{pmatrix}\begin{pmatrix} x_1\\ x_2\\ x_3 \end{pmatrix}=\begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} \]

Во овој систем знаеме дека едната равенка е вишок. Затоа, претпоставувајќи дека \(x_3=1\), додавајќи ја последната равенка на првите две и решавајќи го системот:

\[ \begin{pmatrix} (3-\lambda)-1 & (6)+4\\ (6)-1 & (9-\lambda)+4 \end{pmatrix}\begin{pmatrix} x_1\\ x_2 \end{pmatrix}=\begin{pmatrix} -[(-1) + (3 - \lambda)]\\ -[(4)+(3-\lambda)] \end{pmatrix} \]

го добиваме општото решение за сопствениот вектор за дадената \(\lambda\), кое го има следниов облик:

\[ \nu=\begin{pmatrix} x_1x_3\\ x_2x_3\\ x_3 \end{pmatrix} \]

а нормализираниот сопствен вектор го има обликот:

\[ |\nu|=\sqrt{(x_1x_3)^2+(x_2x_3)^2+x_3^2}\\ \hat\nu=\begin{pmatrix} \frac{x_1x_3}{|\nu|}\\ \frac{x_2x_3}{|\nu|}\\ \frac{x_3}{|\nu|} \end{pmatrix} \]

Системот ќе го решиме со помош на R.

solve_equations <- function(a, b) {
  a <- matrix(data=a, nrow=2, ncol=2, byrow=TRUE)
  b <- matrix(data=b, nrow=2, ncol=1, byrow=FALSE)
  sol <- solve(a, b)
  nu <- c(sol[1], sol[2], 1)
  nu_length <- sqrt(sum(nu ^ 2))
  return(nu / nu_length)
}

solve_a <- function(l) {
  a <- c(
    3 - l - 1, 6 + 4, 
    6 - 1, 9 - l + 4)
  b <- c(
    1 - (3 - l), 
    -4 - (3 - l)
  )
  return(solve_equations(a, b))
}

Сопствениoт вектор за \(\lambda_1\) со модул 1 e:

nu_1_a = solve_a(lambdas_a[1])
print(nu_1_a)
[1] -0.58020965+0i  0.04509354+0i  0.81321789+0i

Сопствениoт вектор за \(\lambda_2\) со модул 1 e:

nu_2_a = solve_a(lambdas_a[2])
print(nu_2_a)
[1]  0.6754275+0i -0.5313250+0i  0.5113622-0i

Сопствениoт вектор за \(\lambda_3\) со модул 1 e:

nu_3_a = solve_a(lambdas_a[3])
print(nu_3_a)
[1] 0.4551422-0i 0.8459671-0i 0.2778225+0i

Конечно ги добиваме \(C\) и \(D\) (оцде се користи %*% за множење матрици со цел да се провери дека \(CDC'\) е исто со почетната матрица):

C_a = matrix(
  data=as.numeric(c(nu_1_a, nu_2_a, nu_3_a)), 
  nrow=3, 
  ncol=3, 
  byrow=FALSE
)
imaginary parts discarded in coercion
D_a = diag(x=as.numeric(lambdas_a), nrow=3, ncol=3)
imaginary parts discarded in coercion
C_a %*% D_a %*% t(C_a)
     [,1] [,2] [,3]
[1,]    3    6   -1
[2,]    6    9    4
[3,]   -1    4    3

(b) - Спектрална декомпозиција на \(A^2\)

\(A^2\) го наоѓаме со помош на R:

A <- matrix(data=c(
  3, 6, -1,
  6, 9, 4,
  -1, 4, 3
), nrow=3, ncol=3, byrow=TRUE)
A %*% A
     [,1] [,2] [,3]
[1,]   46   68   18
[2,]   68  133   42
[3,]   18   42   26

Матрицата е симетрична, затоа има 3 сопствени вредности. Карактеристичната равенка изгледа вака:

\[ |\boldsymbol{A}-\lambda\boldsymbol{I}|= \begin{vmatrix} 46-\lambda & 68 & 18\\68 & 133-\lambda & 42\\18 & 42 & 26-\lambda \end{vmatrix}=\\ (46-\lambda)\begin{vmatrix}133-\lambda & 42\\42 & 26-\lambda\end{vmatrix} -68\begin{vmatrix}68 & 42\\18 & 26-\lambda\end{vmatrix} +18\begin{vmatrix}68 & 133-\lambda\\18 & 42\end{vmatrix}=\\ (46-\lambda)[(133-\lambda)(26-\lambda)-1764]-68[68(26-\lambda)-756]+18[2856-18(133-\lambda)]=\\ (46-\lambda)(1694-159\lambda+\lambda^2)-(68816-4624\lambda)+(8316+324\lambda)=\\ -\lambda^3+205\lambda^2-4060\lambda+17424 \]

Корените на равенката се:

lambdas_a2 = polyroot(z=c(17424, -4060, 205, -1))
print(lambdas_a2)
[1]   6.135498+0i  15.486403-0i 183.378098+0i

За да се најдат сопствените вектори ја користиме функцијата:

solve_a2 <- function(l) {
  a <- c(
    46 - l + 18, 68 + 42, 
    68 + 18, 133 - l + 42)
  b <- c(
    -18 - (26 - l), 
    -42 - (26 - l)
  )
  return(solve_equations(a, b))
}

Сопствениoт вектор за \(\lambda_1\) со модул 1 e:

nu_1_a2 = solve_a2(lambdas_a2[1])
print(nu_1_a2)
[1]  0.6754275+0i -0.5313250-0i  0.5113622-0i

Сопствениoт вектор за \(\lambda_2\) со модул 1 e:

nu_2_a2 = solve_a2(lambdas_a2[2])
print(nu_2_a2)
[1] -0.58020965-0i  0.04509354+0i  0.81321789-0i

Сопствениoт вектор за \(\lambda_3\) со модул 1 e:

nu_3_a2 = solve_a2(lambdas_a2[3])
print(nu_3_a2)
[1] 0.4551422+0i 0.8459671+0i 0.2778225-0i

Конечно ги добиваме \(C\) и \(D\) (оцде се користи %*% за множење матрици со цел да се провери дека \(CDC'\) е исто со почетната матрица):

C_a2 = matrix(
  data=as.numeric(c(nu_1_a2, nu_2_a2, nu_3_a2)), 
  nrow=3, 
  ncol=3, 
  byrow=FALSE
)
imaginary parts discarded in coercion
D_a2 = diag(x=as.numeric(lambdas_a2), nrow=3, ncol=3)
imaginary parts discarded in coercion
C_a2 %*% D_a2 %*% t(C_a2)
     [,1] [,2] [,3]
[1,]   46   68   18
[2,]   68  133   42
[3,]   18   42   26

Сега можеме да провериме дека \(D^2\) од под (а) и \(D\) од под (б) имаат исти вредности во дијагоналата:

D_a %*% D_a
        [,1]     [,2]     [,3]
[1,] 15.4864 0.000000   0.0000
[2,]  0.0000 6.135498   0.0000
[3,]  0.0000 0.000000 183.3781
D_a2
         [,1]    [,2]     [,3]
[1,] 6.135498  0.0000   0.0000
[2,] 0.000000 15.4864   0.0000
[3,] 0.000000  0.0000 183.3781

(c) - Спектрална декомпозиција на \(A^{-1}\)

\(A^2\) го наоѓаме со помош на R:

A <- matrix(data=c(
  3, 6, -1,
  6, 9, 4,
  -1, 4, 3
), nrow=3, ncol=3, byrow=TRUE)
solve(A)
            [,1]        [,2]        [,3]
[1,] -0.08333333  0.16666667 -0.25000000
[2,]  0.16666667 -0.06060606  0.13636364
[3,] -0.25000000  0.13636364  0.06818182

Матрицата е симетрична, затоа има 3 сопствени вредности. Карактеристичната равенка изгледа вака:

\[ |\boldsymbol{A}-\lambda\boldsymbol{I}|= \begin{vmatrix} -0.0833-\lambda & 0.1667 & -0.25\\ 0.1667 & 0.0606-\lambda & 0.1364\\ -0.25 & 0.1364 & 0.0682-\lambda \end{vmatrix}=\\ (-0.0833-\lambda)\begin{vmatrix}0.0606-\lambda & 0.1364\\0.1364 & 0.0682-\lambda\end{vmatrix} -0.1667\begin{vmatrix}0.1667 & 0.1364\\-0.25 & 0.0682-\lambda\end{vmatrix} -0.25\begin{vmatrix}0.1667 & 0.0606-\lambda\\-0.25 & 0.1364\end{vmatrix}=\\ (-0.0833-\lambda)[(0.0606-\lambda)(0.0682-\lambda)-0.0186] -0.1667[0.1667(0.0682-\lambda)+0.0341] -0.25[0.0227+0.25(0.0606-\lambda)]=\\ (-0.0833-\lambda)(-0.0145-0.1288\lambda+\lambda^2)-(0.0076-0.0278\lambda)-(0.0095-0.0625\lambda)=\\ -\lambda^3-0.7045\lambda^2+0.2121\lambda-0.005 \]

Корените на равенката се:

lambdas_ainv = polyroot(z=c(-0.005, 0.2121, -0.7045, -1))
print(lambdas_ainv)
[1]  0.02588024-0i  0.20626540+0i -0.93664564+0i

За да се најдат сопствените вектори ја користиме функцијата:

solve_ainv <- function(l) {
  a <- c(
    -0.0833 - l - 0.25, 0.1667 + 0.1364, 
    0.1667 - 0.25, 0.0606 - l + 0.1364)
  b <- c(
    0.25 - (0.0682 - l), 
    -0.1364 - (0.0682 - l)
  )
  return(solve_equations(a, b))
}

Сопствениoт вектор за \(\lambda_1\) со модул 1 e:

nu_1_ainv = solve_ainv(lambdas_ainv[1])
print(nu_1_ainv)
[1] -0.7092040-0i -0.6442526+0i  0.2863011+0i

Сопствениoт вектор за \(\lambda_2\) со модул 1 e:

nu_2_ainv = solve_ainv(lambdas_ainv[2])
print(nu_2_ainv)
[1] -0.09359219-0i  0.71733825-0i  0.69041027+0i

Сопствениoт вектор за \(\lambda_3\) со модул 1 e:

nu_3_ainv = solve_ainv(lambdas_ainv[3])
print(nu_3_ainv)
[1] -0.4424683+0i -0.6521770-0i  0.6155380+0i

Конечно ги добиваме \(C\) и \(D\) (овде се користи %*% за множење матрици со цел да се провери дека \(CDC'\) е исто со почетната матрица):

C_ainv = matrix(
  data=as.numeric(c(nu_1_ainv, nu_2_ainv, nu_3_ainv)), 
  nrow=3, 
  ncol=3, 
  byrow=FALSE
)
imaginary parts discarded in coercion
D_ainv = diag(x=as.numeric(lambdas_ainv), nrow=3, ncol=3)
imaginary parts discarded in coercion
C_ainv %*% D_ainv %*% t(C_ainv)
           [,1]       [,2]       [,3]
[1,] -0.1685510 -0.2723089  0.2365179
[2,] -0.2723089 -0.2815073  0.4733877
[3,]  0.2365179  0.4733877 -0.2544417

Има некоја грешка во множењата погоре, ама тешко е да се најде каде :)

[2.26]

Да се покаже дека \(A'A\) е симетрична (\(A\) e \(n \times p\)).

\[ A'A=\begin{pmatrix} a_{1,1} & \dots & a_{n,1}\\ \vdots & \ddots & \vdots \\ a_{1,p} & \dots & a_{n,p} \end{pmatrix}\begin{pmatrix} a_{1,1} & \dots & a_{1,p}\\ \vdots & \ddots & \vdots \\ a_{n,1} & \dots & a_{n,p} \end{pmatrix} \implies a_{i,j}=\sum_{t=1}^{n}a_{t,i}a_{t,j}=\sum_{t=1}^{n}a_{t,j}a_{t,i}=a_{j,i} \]

[2.27]

\(a, x_1, ..., x_n\) се \(p \times 1\)

\(A\) e \(p \times p\)

(a)

Да се покаже \(\sum_{i=1}^{n}a'x_i=a'\sum_{i=1}^{n}x_i\)

Важи поради дистрибутивното својство:

\[ a'\sum_{i=1}^{n}x_i=a'(x_1+\dots+x_n)=a'x_1+\dots+a'x_n=\sum_{i=1}^{n}a'x_i \]

(b)

Да се покаже \(\sum_{i=1}^{n}Ax_i=A\sum_{i=1}^{n}x_i\)

Небитно е што сега е \(A\) наместо \(a'\), пак важи дистрибутивното својство:

\[ А\sum_{i=1}^{n}x_i=А(x_1+\dots+x_n)=Аx_1+\dots+Аx_n=\sum_{i=1}^{n}Аx_i \]

(c)

Да се покаже \(\sum_{i=1}^{n}(a'x_i)^2=a'(\sum_{i=1}^{n}x_ix_i')a\)

Ќе го искорстиме фактот што \(a'x_i=x_i'a\) (бидејќи е скалар, а скаларот останува ист кога се транспонира).

\[ \sum_{i=1}^{n}(a'x_i)^2=\sum_{i=1}^{n}(a'x_i)(a'x_i)=\sum_{i=1}^{n}(a'x_i)(x_i'a)=\sum_{i=1}^{n}a'(x_ix_i')a=a'(\sum_{i=1}^{n}x_ix_i')a \]

(d)

Да се покаже \(\sum_{i=1}^{n}Ax_i(Ax_i)'=A(\sum_{i=1}^{n}x_ix_i')A'\)

Ќе го искористиме својството \((AB)'=B'A'\).

\[ \sum_{i=1}^{n}Ax_i(Ax_i)'=\sum_{i=1}^{n}Ax_ix_i'A'=A(\sum_{i=1}^{n}x_ix_i')A' \]

[2.28]

\(A=\begin{pmatrix}a_1\\a_2\end{pmatrix}\) е \(2 \times p\)

\(x\) e \(p \times 1\)

\(S\) e \(p \times p\)

(a)

Да се покаже \(Ax=\begin{pmatrix}a_1'x\\a_2'x\end{pmatrix}\)

\[ Ax= \begin{pmatrix}a_{1,1} & \dots & a_{1,p}\\a_{2,1} & \dots & a_{2,p}\end{pmatrix} \begin{pmatrix}x_1\\ \vdots \\ x_p\end{pmatrix}= \begin{pmatrix} \sum_{i=1}^{p}a_{1,i}x_i \\ \sum_{i=1}^{p}a_{2,i}x_i \end{pmatrix} =\begin{pmatrix}a_1'x\\a_2'x\end{pmatrix} \]

(b)

Да се покаже дека \(ASA'=\begin{pmatrix}a_1'Sa_1 & a_1'Sa_2\\a_2'Sa_1 & a_2'Sa_2\end{pmatrix}\)

\[ a_k'Sa_l=\begin{pmatrix}a_{k,1} & \dots & a_{k,p}\end{pmatrix}\begin{pmatrix} S_{1,1} & \dots & S_{1,p}\\ \vdots & \ddots & \vdots\\ S_{p,1} & \dots & S_{p,p} \end{pmatrix}\begin{pmatrix}a_{l,1} \\ \vdots \\ a_{l,p}\end{pmatrix}=\\ \begin{pmatrix}\sum_{i=1}^{p}a_{k,i}S_{i,1} & \dots & \sum_{i=1}^{p}a_{k,i}S_{i,p}\end{pmatrix}\begin{pmatrix}a_{l,1} \\ \vdots \\ a_{l,p}\end{pmatrix}=\sum_{j=1}^{p}\sum_{i=1}^{p}a_{k,i}S_{i,j}a_{l,j}\\ \implies \begin{matrix} a_1'Sa_1=\sum_{j=1}^{p}\sum_{i=1}^{p}a_{1,i}S_{i,j}a_{1,j}\\ a_1'Sa_2=\sum_{j=1}^{p}\sum_{i=1}^{p}a_{1,i}S_{i,j}a_{2,j}\\ a_2'Sa_1=\sum_{j=1}^{p}\sum_{i=1}^{p}a_{2,i}S_{i,j}a_{1,j}\\ a_2'Sa_2=\sum_{j=1}^{p}\sum_{i=1}^{p}a_{2,i}S_{i,j}a_{2,j} \end{matrix} \\ \implies ASA'= \begin{pmatrix}a_{1,1} & \dots & a_{1,p}\\a_{2,1} & \dots & a_{2,p}\end{pmatrix} \begin{pmatrix} S_{1,1} & \dots & S_{1,p}\\ \vdots & \ddots & \vdots\\ S_{p,1} & \dots & S_{p,p} \end{pmatrix} \begin{pmatrix} a_{1,1} & a_{2,1}\\ \vdots & \vdots\\ a_{1,p} & a_{2,p}\end{pmatrix}=\\ \begin{pmatrix} \sum_{i=1}^{p}a_{1,i}S_{i,1} & \dots & \sum_{i=1}^{p}a_{1,i}S_{i,p}\\ \sum_{i=1}^{p}a_{2,i}S_{i,1} & \dots & \sum_{i=1}^{p}a_{2,i}S_{i,p} \end{pmatrix}\begin{pmatrix} a_{1,1} & a_{2,1}\\ \vdots & \vdots\\ a_{1,p} & a_{2,p}\end{pmatrix}=\\ \begin{pmatrix} \sum_{j=1}^{p}\sum_{i=1}^{p}a_{1,i}S_{i,j}a_{1,j} & \sum_{j=1}^{p}\sum_{i=1}^{p}a_{1,i}S_{i,j}a_{2,j}\\ \sum_{j=1}^{p}\sum_{i=1}^{p}a_{2,i}S_{i,j}a_{1,j} & \sum_{j=1}^{p}\sum_{i=1}^{p}a_{2,i}S_{i,j}a_{2,j}\end{pmatrix}=\\ \begin{pmatrix}a_1'Sa_1 & a_1'Sa_2\\a_2'Sa_1 & a_2'Sa_2\end{pmatrix} \]

[2.29]

Редиците на \(A\) се \(a'_i\), a колоните \(a_{(j)}\).

(a)

Да се покаже дека \(A'A=\sum_{i=1}^{n}a_ia_i'\)

\[ A'A=\begin{pmatrix}a_1 & \dots & a_n\end{pmatrix}\begin{pmatrix}a'_1 \\ \dots \\ a'_n\end{pmatrix}=\sum_{i=1}^{n}a_ia_i' \]

(b)

Да се покаже дека \(AA'=\sum_{i=1}^{p}a_{(j)}a_{(j)}'\)

\[ AA'=\begin{pmatrix}a_{(1)} & \dots & a_{(j)}\end{pmatrix}\begin{pmatrix}a_{(1)} \\ \dots \\ a_{(j)}'\end{pmatrix}=\sum_{j=1}^{p}a_{(j)}a_{(j)}' \]

[2.30]

Да се покаже дека \((A')^{-1}=(A^{-1})'\)

\[ \begin{matrix}A'(A')^{-1}=I\\ A'(A^{-1})'=(A^{-1}A)'=I'=I\end{matrix}\implies (A')^{-1}=(A^{-1})' \]

[2.31]

Болдираните се матрици/вектори, другото се скалари.

Да се покаже дека

\[ \boldsymbol{A}=\begin{pmatrix}\boldsymbol{A_{11}} & \boldsymbol{a_{12}}\\\boldsymbol{a_{12}'} & a_{22}\end{pmatrix}\implies \begin{matrix} \boldsymbol{A^{-1}}=\frac{1}{b} \begin{pmatrix} b\boldsymbol{A_{11}^{-1}}+\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}} & -\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\\ -\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}} & 1 \end{pmatrix}\\ b=a_{22}-\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}} \end{matrix} \]

\[ \boldsymbol{A}\boldsymbol{A^{-1}}= \frac{1}{b} \begin{pmatrix} \boldsymbol{A_{11}} & \boldsymbol{a_{12}}\\ \boldsymbol{a_{12}'} & a_{22}\end{pmatrix} \begin{pmatrix} b\boldsymbol{A_{11}^{-1}}+\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}} & -\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\\ -\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}} & 1 \end{pmatrix}=\\ \frac{1}{b} \begin{pmatrix} \boldsymbol{A_{11}}(b\boldsymbol{A_{11}^{-1}}+\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}) - \boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}} & -\boldsymbol{A_{11}}\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}+\boldsymbol{a_{12}}\\ \boldsymbol{a_{12}'}(b\boldsymbol{A_{11}^{-1}}+\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}})-a_{22}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}} & -\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}+a_{22} \end{pmatrix}\\=\frac{1}{b}\begin{pmatrix}LU & RU\\LD & RD\end{pmatrix}\\ LU=\boldsymbol{A_{11}}(b\boldsymbol{A_{11}^{-1}}+\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}) - \boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}=\\ \boldsymbol{A_{11}}b\boldsymbol{A_{11}^{-1}}+\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}-\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}=b \\ RU=-\boldsymbol{A_{11}}\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}+\boldsymbol{a_{12}}=0\\ LD=\boldsymbol{a_{12}'}(b\boldsymbol{A_{11}^{-1}}+\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}})-a_{22}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}=\\ \boldsymbol{a_{12}'}b\boldsymbol{A_{11}^{-1}}+\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}-a_{22}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}=\\ \boldsymbol{a_{12}'}b\boldsymbol{A_{11}^{-1}}-(b-a_{22})\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}-a_{22}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}=\\ b\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}-b\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}+a_{22}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}-a_{22}\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}=0 \\RD=-\boldsymbol{a_{12}'}\boldsymbol{A_{11}^{-1}}\boldsymbol{a_{12}}+a_{22}=b\\ \implies \boldsymbol{A}\boldsymbol{A^{-1}}=\frac{1}{b}\begin{pmatrix}LU & RU\\LD & RD\end{pmatrix}==\frac{1}{b}\begin{pmatrix}b & 0\\0 & b\end{pmatrix}=\boldsymbol{I} \]

[2.32]

Да се покаже дека

\[ (B + cc')^{-1}=B^{-1}-\frac{B^{-1}cc'B^{-1}}{1+c'B^{-1}c} \]

\[ (B + cc')(B + cc')^{-1}=\\ (B + cc')(B^{-1}-\frac{B^{-1}cc'B^{-1}}{1+c'B^{-1}c})=\\ I-\frac{cc'B^{-1}}{1+c'B^{-1}c}+cc'B^{-1}-\frac{cc'B^{-1}cc'B^{-1}}{1+c'B^{-1}c}=\\ \frac {1+c'B^{-1}c-cc'B^{-1}+cc'B^{-1}+c'B^{-1}ccc'B^{-1}-cc'B^{-1}cc'B^{-1}} {1+c'B^{-1}c}=\\ \frac {1+c'B^{-1}c(1+cc'B^{-1}-cc'B^{-1})} {1+c'B^{-1}c}=I \]

[2.33]

Да се покаже дека \(|cA|=c^n|A|\)

\[ |cA|=|cIA|=|cI||A|=c^n|A| \]

[2.34]

Да се покаже дека \(|A^{-1}|=1/|A|\)

\[ |I|=|AA^{-1}|=|A||A^{-1}|=1 \implies |A^{-1}|=1/|A| \]

[2.35]

Да се покаже дека \(|B+cc'|=|B|(1+c'B^{-1}c)\)

\[ |B+cc'|=\frac{1}{|(B+cc')^{-1}|}=\frac{1}{|B^{-1}-\frac{B^{-1}cc'B^{-1}}{1+c'B^{-1}c}|}=\frac{|B|}{|1-\frac{cc'B^{-1}}{1+c'B^{-1}c}|}= \frac{|B|(1+c'B^{-1}c)}{|1+c'B^{-1}c-cc'B^{-1}|}\\ p=c'B^{-1}c \rightarrow скалар \implies pc=cp \implies\\ |B+cc'|=\frac{|B|(1+c'B^{-1}c)|c|}{|c+c'B^{-1}cc-cc'B^{-1}c|}=\frac{|B|(1+c'B^{-1}c)|c|}{|c+pc-cp|}=\frac{|B|(1+c'B^{-1}c)|c|}{|c|}=|B|(1+c'B^{-1}c) \]

[2.36]

Да се покаже дека \(tr(A'A)=tr(AA')=\sum_{ij}a_{ij}^2\)

\[ (A'A)_{jj}=\sum_i a_{ij}^2 \implies tr(A'A)=\sum_{ij}a_{ij}^2\\ (AA')_{jj}=\sum_i a_{ji}^2 \implies tr(A'A)=\sum_{ij}a_{ji}^2=\sum_{ij}a_{ij}^2 \]

[2.37]

Да се покаже дека \(C'C=I \implies CC'=I\)

\[ |C'C|=|C'||C|=|I|=1 \implies |C'| \neq 0, |C| \neq 0 \implies C'^{-1} постои \\ CC'=C'CC'C'^{-1}=II=I \]

[2.38]

Да се покаже дека \(AB\) и \(BA\) имаат исти сопствени вредности.

\[ ABx=\lambda x \implies (BA)Bx=\lambda (Bx) \]

Од ова следи дека \(\lambda\) е сопствена вредност и на \(AB\) и на \(BA\), а на сопствениот вектор \(x\) на \(AB\) соодветствува сопствениот вектор \(Bx\) на \(BA\).

[2.39]

\(A^{1/2}=CD^{1/2}C'\)

(a)

Да се покаже дека \((A^{1/2})^2=A\)

\[ (A^{1/2})^2=(CD^{1/2}C')^2=CD^{1/2}C'CD^{1/2}C' \]

Колоните на \(C\) се нормализирани и ортогонални помеѓу себе, па затоа важи дека \(CC'=I\), од што следи дека:

\[ (A^{1/2})^2=CD^{1/2}C'CD^{1/2}C'=CD^{1/2}D^{1/2}C'=\\ C\begin{pmatrix} \sqrt \lambda_1 & 0 & \dots & 0\\ 0 & \sqrt \lambda_2 & \dots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \dots & \sqrt \lambda_n \end{pmatrix}\begin{pmatrix} \sqrt \lambda_1 & 0 & \dots & 0\\ 0 & \sqrt \lambda_2 & \dots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \dots & \sqrt \lambda_n \end{pmatrix}C'=\\ C\begin{pmatrix} \lambda_1 & 0 & \dots & 0\\ 0 & \lambda_2 & \dots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \dots & \lambda_n \end{pmatrix}C'=CDC'=A \]

(b)

Да се покаже дека \(|A^{1/2}|^2=|A|\)

\[ |A^{1/2}|^2=|A^{1/2}A^{1/2}|=|A| \]

(c)

Да се покаже дека \(|A^{1/2}|=|A|^{1/2}\)

\[ |A|^{1/2}=(|A^{1/2}|^2)^{1/2}=|A^{1/2}| \]

LS0tDQp0aXRsZTogItCT0LvQsNCy0LAgMjogTWF0cml4IEFsZ2VicmEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIFsyLjIyXQ0KDQokJA0KXGJvbGRzeW1ib2x7QX09XGJlZ2lue3BtYXRyaXh9DQozICYgNiAmIC0xXFwNCjYgJiA5ICYgNFxcDQotMSAmIDQgJiAzDQpcZW5ke3BtYXRyaXh9DQokJA0KDQojIyMgKGEpIC0g0KHQv9C10LrRgtGA0LDQu9C90LAg0LTQtdC60L7QvNC/0L7Qt9C40YbQuNGY0LANCg0K0JzQsNGC0YDQuNGG0LDRgtCwINC1INGB0LjQvNC10YLRgNC40YfQvdCwLCDQt9Cw0YLQvtCwINC40LzQsCAzINGB0L7Qv9GB0YLQstC10L3QuCDQstGA0LXQtNC90L7RgdGC0LguINCa0LDRgNCw0LrRgtC10YDQuNGB0YLQuNGH0L3QsNGC0LAg0YDQsNCy0LXQvdC60LAg0LjQt9Cz0LvQtdC00LAg0LLQsNC60LA6DQoNCiQkDQp8XGJvbGRzeW1ib2x7QX0tXGxhbWJkYVxib2xkc3ltYm9se0l9fD1cYmVnaW57dm1hdHJpeH0NCjMtXGxhbWJkYSAmIDYgJiAtMVxcDQo2ICYgOS1cbGFtYmRhICYgNFxcDQotMSAmIDQgJiAzLVxsYW1iZGENClxlbmR7dm1hdHJpeH09XFwoMy1cbGFtYmRhKVxiZWdpbnt2bWF0cml4fQ0KOS1cbGFtYmRhICYgNFxcDQo0ICYgMy1cbGFtYmRhDQpcZW5ke3ZtYXRyaXh9LTZcYmVnaW57dm1hdHJpeH0NCjYgJiA0XFwNCi0xICYgMy1cbGFtYmRhDQpcZW5ke3ZtYXRyaXh9LVxiZWdpbnt2bWF0cml4fQ0KNiAmIDktXGxhbWJkYVxcDQotMSAmIDQNClxlbmR7dm1hdHJpeH09XFwNCigzLVxsYW1iZGEpWyg5LVxsYW1iZGEpKDMtXGxhbWJkYSktMTZdLTZbNigzLVxsYW1iZGEpKzRdLSgyNCs5LVxsYW1iZGEpPVxcDQooOS1cbGFtYmRhKSgzLVxsYW1iZGEpXjItMTYoMy1cbGFtYmRhKS0zNigzLVxsYW1iZGEpLTU3K1xsYW1iZGE9XFwNCig5LVxsYW1iZGEpKDktNlxsYW1iZGErXGxhbWJkYV4yKS01MigzLVxsYW1iZGEpLTU3K1xsYW1iZGE9XFwNCig4MS01NFxsYW1iZGErOVxsYW1iZGFeMi05XGxhbWJkYSs2XGxhbWJkYV4yLVxsYW1iZGFeMyktMjEzKzUzXGxhbWJkYT1cXA0KLVxsYW1iZGFeMysxNVxsYW1iZGFeMi0xMFxsYW1iZGEtMTMyDQokJA0KDQrQmtC+0YDQtdC90LjRgtC1INC90LAg0YDQsNCy0LXQvdC60LDRgtCwINGB0LU6DQoNCmBgYHtyfQ0KbGFtYmRhc19hID0gcG9seXJvb3Qoej1jKC0xMzIsIC0xMCwgMTUsIC0xKSkNCnByaW50KGxhbWJkYXNfYSkNCmBgYA0KDQrQl9CwINC00LAg0LPQuCDQvdCw0ZjQtNC10LzQtSDRgdC+0L/RgdGC0LLQtdC90LjRgtC1INCy0LXQutGC0L7RgNC4LCDQv9C+0YLRgNC10LHQvdC+INC90Lgg0LUg0LTQsCDQs9C+INGA0LXRiNC40LzQtSDRgdC40YHRgtC10LzQvtGCINGA0LDQstC10L3QutC4Og0KDQokJA0KXGJlZ2lue3BtYXRyaXh9DQozLVxsYW1iZGEgJiA2ICYgLTFcXA0KNiAmIDktXGxhbWJkYSAmIDRcXA0KLTEgJiA0ICYgMy1cbGFtYmRhDQpcZW5ke3BtYXRyaXh9XGJlZ2lue3BtYXRyaXh9DQp4XzFcXA0KeF8yXFwNCnhfMw0KXGVuZHtwbWF0cml4fT1cYmVnaW57cG1hdHJpeH0NCjBcXA0KMFxcDQowDQpcZW5ke3BtYXRyaXh9DQokJA0KDQrQktC+INC+0LLQvtGYINGB0LjRgdGC0LXQvCDQt9C90LDQtdC80LUg0LTQtdC60LAg0LXQtNC90LDRgtCwINGA0LDQstC10L3QutCwINC1INCy0LjRiNC+0LouINCX0LDRgtC+0LAsINC/0YDQtdGC0L/QvtGB0YLQsNCy0YPQstCw0ZjRnNC4INC00LXQutCwICR4XzM9MSQsINC00L7QtNCw0LLQsNGY0ZzQuCDRmNCwINC/0L7RgdC70LXQtNC90LDRgtCwINGA0LDQstC10L3QutCwINC90LAg0L/RgNCy0LjRgtC1INC00LLQtSDQuCDRgNC10YjQsNCy0LDRmNGc0Lgg0LPQviDRgdC40YHRgtC10LzQvtGCOg0KDQokJA0KXGJlZ2lue3BtYXRyaXh9DQooMy1cbGFtYmRhKS0xICYgKDYpKzRcXA0KKDYpLTEgJiAoOS1cbGFtYmRhKSs0DQpcZW5ke3BtYXRyaXh9XGJlZ2lue3BtYXRyaXh9DQp4XzFcXA0KeF8yDQpcZW5ke3BtYXRyaXh9PVxiZWdpbntwbWF0cml4fQ0KLVsoLTEpICsgKDMgLSBcbGFtYmRhKV1cXA0KLVsoNCkrKDMtXGxhbWJkYSldDQpcZW5ke3BtYXRyaXh9DQokJA0KDQrQs9C+INC00L7QsdC40LLQsNC80LUg0L7Qv9GI0YLQvtGC0L4g0YDQtdGI0LXQvdC40LUg0LfQsCDRgdC+0L/RgdGC0LLQtdC90LjQvtGCINCy0LXQutGC0L7RgCDQt9CwINC00LDQtNC10L3QsNGC0LAgJFxsYW1iZGEkLCDQutC+0LUg0LPQviDQuNC80LAg0YHQu9C10LTQvdC40L7QsiDQvtCx0LvQuNC6Og0KDQokJA0KXG51PVxiZWdpbntwbWF0cml4fQ0KeF8xeF8zXFwNCnhfMnhfM1xcDQp4XzMNClxlbmR7cG1hdHJpeH0NCiQkDQoNCtCwINC90L7RgNC80LDQu9C40LfQuNGA0LDQvdC40L7RgiDRgdC+0L/RgdGC0LLQtdC9INCy0LXQutGC0L7RgCDQs9C+INC40LzQsCDQvtCx0LvQuNC60L7RgjoNCg0KJCQNCnxcbnV8PVxzcXJ0eyh4XzF4XzMpXjIrKHhfMnhfMyleMit4XzNeMn1cXA0KXGhhdFxudT1cYmVnaW57cG1hdHJpeH0NClxmcmFje3hfMXhfM317fFxudXx9XFwNClxmcmFje3hfMnhfM317fFxudXx9XFwNClxmcmFje3hfM317fFxudXx9DQpcZW5ke3BtYXRyaXh9DQokJA0KDQrQodC40YHRgtC10LzQvtGCINGc0LUg0LPQviDRgNC10YjQuNC80LUg0YHQviDQv9C+0LzQvtGIINC90LAgUi4NCg0KYGBge3J9DQpzb2x2ZV9lcXVhdGlvbnMgPC0gZnVuY3Rpb24oYSwgYikgew0KICBhIDwtIG1hdHJpeChkYXRhPWEsIG5yb3c9MiwgbmNvbD0yLCBieXJvdz1UUlVFKQ0KICBiIDwtIG1hdHJpeChkYXRhPWIsIG5yb3c9MiwgbmNvbD0xLCBieXJvdz1GQUxTRSkNCiAgc29sIDwtIHNvbHZlKGEsIGIpDQogIG51IDwtIGMoc29sWzFdLCBzb2xbMl0sIDEpDQogIG51X2xlbmd0aCA8LSBzcXJ0KHN1bShudSBeIDIpKQ0KICByZXR1cm4obnUgLyBudV9sZW5ndGgpDQp9DQoNCnNvbHZlX2EgPC0gZnVuY3Rpb24obCkgew0KICBhIDwtIGMoDQogICAgMyAtIGwgLSAxLCA2ICsgNCwgDQogICAgNiAtIDEsIDkgLSBsICsgNCkNCiAgYiA8LSBjKA0KICAgIDEgLSAoMyAtIGwpLCANCiAgICAtNCAtICgzIC0gbCkNCiAgKQ0KICByZXR1cm4oc29sdmVfZXF1YXRpb25zKGEsIGIpKQ0KfQ0KYGBgDQoNCtCh0L7Qv9GB0YLQstC10L3QuG/RgiDQstC10LrRgtC+0YAg0LfQsCAkXGxhbWJkYV8xJCDRgdC+INC80L7QtNGD0LsgMSBlOg0KDQpgYGB7cn0NCm51XzFfYSA9IHNvbHZlX2EobGFtYmRhc19hWzFdKQ0KcHJpbnQobnVfMV9hKQ0KYGBgDQoNCtCh0L7Qv9GB0YLQstC10L3QuG/RgiDQstC10LrRgtC+0YAg0LfQsCAkXGxhbWJkYV8yJCDRgdC+INC80L7QtNGD0LsgMSBlOg0KDQpgYGB7cn0NCm51XzJfYSA9IHNvbHZlX2EobGFtYmRhc19hWzJdKQ0KcHJpbnQobnVfMl9hKQ0KYGBgDQoNCtCh0L7Qv9GB0YLQstC10L3QuG/RgiDQstC10LrRgtC+0YAg0LfQsCAkXGxhbWJkYV8zJCDRgdC+INC80L7QtNGD0LsgMSBlOg0KDQpgYGB7cn0NCm51XzNfYSA9IHNvbHZlX2EobGFtYmRhc19hWzNdKQ0KcHJpbnQobnVfM19hKQ0KYGBgDQoNCtCa0L7QvdC10YfQvdC+INCz0Lgg0LTQvtCx0LjQstCw0LzQtSAkQyQg0LggJEQkICjQvtGG0LTQtSDRgdC1INC60L7RgNC40YHRgtC4ICUqJSDQt9CwINC80L3QvtC20LXRmtC1INC80LDRgtGA0LjRhtC4INGB0L4g0YbQtdC7INC00LAg0YHQtSDQv9GA0L7QstC10YDQuCDQtNC10LrQsCAkQ0RDJyQg0LUg0LjRgdGC0L4g0YHQviDQv9C+0YfQtdGC0L3QsNGC0LAg0LzQsNGC0YDQuNGG0LApOg0KDQpgYGB7cn0NCkNfYSA9IG1hdHJpeCgNCiAgZGF0YT1hcy5udW1lcmljKGMobnVfMV9hLCBudV8yX2EsIG51XzNfYSkpLCANCiAgbnJvdz0zLCANCiAgbmNvbD0zLCANCiAgYnlyb3c9RkFMU0UNCikNCkRfYSA9IGRpYWcoeD1hcy5udW1lcmljKGxhbWJkYXNfYSksIG5yb3c9MywgbmNvbD0zKQ0KQ19hICUqJSBEX2EgJSolIHQoQ19hKQ0KYGBgDQoNCiMjIyAoYikgLSDQodC/0LXQutGC0YDQsNC70L3QsCDQtNC10LrQvtC80L/QvtC30LjRhtC40ZjQsCDQvdCwICRBXjIkDQoNCiRBXjIkINCz0L4g0L3QsNC+0ZPQsNC80LUg0YHQviDQv9C+0LzQvtGIINC90LAgUjoNCg0KYGBge3J9DQpBIDwtIG1hdHJpeChkYXRhPWMoDQogIDMsIDYsIC0xLA0KICA2LCA5LCA0LA0KICAtMSwgNCwgMw0KKSwgbnJvdz0zLCBuY29sPTMsIGJ5cm93PVRSVUUpDQpBICUqJSBBDQpgYGANCg0K0JzQsNGC0YDQuNGG0LDRgtCwINC1INGB0LjQvNC10YLRgNC40YfQvdCwLCDQt9Cw0YLQvtCwINC40LzQsCAzINGB0L7Qv9GB0YLQstC10L3QuCDQstGA0LXQtNC90L7RgdGC0LguINCa0LDRgNCw0LrRgtC10YDQuNGB0YLQuNGH0L3QsNGC0LAg0YDQsNCy0LXQvdC60LAg0LjQt9Cz0LvQtdC00LAg0LLQsNC60LA6DQoNCiQkDQp8XGJvbGRzeW1ib2x7QX0tXGxhbWJkYVxib2xkc3ltYm9se0l9fD0NClxiZWdpbnt2bWF0cml4fQ0KNDYtXGxhbWJkYSAmIDY4ICYgMThcXDY4ICYgMTMzLVxsYW1iZGEgJiA0MlxcMTggJiA0MiAmIDI2LVxsYW1iZGENClxlbmR7dm1hdHJpeH09XFwNCig0Ni1cbGFtYmRhKVxiZWdpbnt2bWF0cml4fTEzMy1cbGFtYmRhICYgNDJcXDQyICYgMjYtXGxhbWJkYVxlbmR7dm1hdHJpeH0NCi02OFxiZWdpbnt2bWF0cml4fTY4ICYgNDJcXDE4ICYgMjYtXGxhbWJkYVxlbmR7dm1hdHJpeH0NCisxOFxiZWdpbnt2bWF0cml4fTY4ICYgMTMzLVxsYW1iZGFcXDE4ICYgNDJcZW5ke3ZtYXRyaXh9PVxcDQooNDYtXGxhbWJkYSlbKDEzMy1cbGFtYmRhKSgyNi1cbGFtYmRhKS0xNzY0XS02OFs2OCgyNi1cbGFtYmRhKS03NTZdKzE4WzI4NTYtMTgoMTMzLVxsYW1iZGEpXT1cXA0KKDQ2LVxsYW1iZGEpKDE2OTQtMTU5XGxhbWJkYStcbGFtYmRhXjIpLSg2ODgxNi00NjI0XGxhbWJkYSkrKDgzMTYrMzI0XGxhbWJkYSk9XFwNCi1cbGFtYmRhXjMrMjA1XGxhbWJkYV4yLTQwNjBcbGFtYmRhKzE3NDI0DQokJA0KDQrQmtC+0YDQtdC90LjRgtC1INC90LAg0YDQsNCy0LXQvdC60LDRgtCwINGB0LU6DQoNCmBgYHtyfQ0KbGFtYmRhc19hMiA9IHBvbHlyb290KHo9YygxNzQyNCwgLTQwNjAsIDIwNSwgLTEpKQ0KcHJpbnQobGFtYmRhc19hMikNCmBgYA0KDQrQl9CwINC00LAg0YHQtSDQvdCw0ZjQtNCw0YIg0YHQvtC/0YHRgtCy0LXQvdC40YLQtSDQstC10LrRgtC+0YDQuCDRmNCwINC60L7RgNC40YHRgtC40LzQtSDRhNGD0L3QutGG0LjRmNCw0YLQsDoNCg0KYGBge3J9DQpzb2x2ZV9hMiA8LSBmdW5jdGlvbihsKSB7DQogIGEgPC0gYygNCiAgICA0NiAtIGwgKyAxOCwgNjggKyA0MiwgDQogICAgNjggKyAxOCwgMTMzIC0gbCArIDQyKQ0KICBiIDwtIGMoDQogICAgLTE4IC0gKDI2IC0gbCksIA0KICAgIC00MiAtICgyNiAtIGwpDQogICkNCiAgcmV0dXJuKHNvbHZlX2VxdWF0aW9ucyhhLCBiKSkNCn0NCmBgYA0KDQrQodC+0L/RgdGC0LLQtdC90Lhv0YIg0LLQtdC60YLQvtGAINC30LAgJFxsYW1iZGFfMSQg0YHQviDQvNC+0LTRg9C7IDEgZToNCg0KYGBge3J9DQpudV8xX2EyID0gc29sdmVfYTIobGFtYmRhc19hMlsxXSkNCnByaW50KG51XzFfYTIpDQpgYGANCg0K0KHQvtC/0YHRgtCy0LXQvdC4b9GCINCy0LXQutGC0L7RgCDQt9CwICRcbGFtYmRhXzIkINGB0L4g0LzQvtC00YPQuyAxIGU6DQoNCmBgYHtyfQ0KbnVfMl9hMiA9IHNvbHZlX2EyKGxhbWJkYXNfYTJbMl0pDQpwcmludChudV8yX2EyKQ0KYGBgDQoNCtCh0L7Qv9GB0YLQstC10L3QuG/RgiDQstC10LrRgtC+0YAg0LfQsCAkXGxhbWJkYV8zJCDRgdC+INC80L7QtNGD0LsgMSBlOg0KDQpgYGB7cn0NCm51XzNfYTIgPSBzb2x2ZV9hMihsYW1iZGFzX2EyWzNdKQ0KcHJpbnQobnVfM19hMikNCmBgYA0KDQrQmtC+0L3QtdGH0L3QviDQs9C4INC00L7QsdC40LLQsNC80LUgJEMkINC4ICREJCAo0L7RhtC00LUg0YHQtSDQutC+0YDQuNGB0YLQuCAlKiUg0LfQsCDQvNC90L7QttC10ZrQtSDQvNCw0YLRgNC40YbQuCDRgdC+INGG0LXQuyDQtNCwINGB0LUg0L/RgNC+0LLQtdGA0Lgg0LTQtdC60LAgJENEQyckINC1INC40YHRgtC+INGB0L4g0L/QvtGH0LXRgtC90LDRgtCwINC80LDRgtGA0LjRhtCwKToNCg0KYGBge3J9DQpDX2EyID0gbWF0cml4KA0KICBkYXRhPWFzLm51bWVyaWMoYyhudV8xX2EyLCBudV8yX2EyLCBudV8zX2EyKSksIA0KICBucm93PTMsIA0KICBuY29sPTMsIA0KICBieXJvdz1GQUxTRQ0KKQ0KRF9hMiA9IGRpYWcoeD1hcy5udW1lcmljKGxhbWJkYXNfYTIpLCBucm93PTMsIG5jb2w9MykNCkNfYTIgJSolIERfYTIgJSolIHQoQ19hMikNCmBgYA0KDQrQodC10LPQsCDQvNC+0LbQtdC80LUg0LTQsCDQv9GA0L7QstC10YDQuNC80LUg0LTQtdC60LAgJEReMiQg0L7QtCDQv9C+0LQgKNCwKSDQuCAkRCQg0L7QtCDQv9C+0LQgKNCxKSDQuNC80LDQsNGCINC40YHRgtC4INCy0YDQtdC00L3QvtGB0YLQuCDQstC+INC00LjRmNCw0LPQvtC90LDQu9Cw0YLQsDoNCg0KYGBge3J9DQpEX2EgJSolIERfYQ0KRF9hMg0KYGBgDQoNCiMjIyAoYykgLSDQodC/0LXQutGC0YDQsNC70L3QsCDQtNC10LrQvtC80L/QvtC30LjRhtC40ZjQsCDQvdCwICRBXnstMX0kDQoNCiRBXjIkINCz0L4g0L3QsNC+0ZPQsNC80LUg0YHQviDQv9C+0LzQvtGIINC90LAgUjoNCg0KYGBge3J9DQpBIDwtIG1hdHJpeChkYXRhPWMoDQogIDMsIDYsIC0xLA0KICA2LCA5LCA0LA0KICAtMSwgNCwgMw0KKSwgbnJvdz0zLCBuY29sPTMsIGJ5cm93PVRSVUUpDQpzb2x2ZShBKQ0KYGBgDQoNCtCc0LDRgtGA0LjRhtCw0YLQsCDQtSDRgdC40LzQtdGC0YDQuNGH0L3QsCwg0LfQsNGC0L7QsCDQuNC80LAgMyDRgdC+0L/RgdGC0LLQtdC90Lgg0LLRgNC10LTQvdC+0YHRgtC4LiDQmtCw0YDQsNC60YLQtdGA0LjRgdGC0LjRh9C90LDRgtCwINGA0LDQstC10L3QutCwINC40LfQs9C70LXQtNCwINCy0LDQutCwOg0KDQokJA0KfFxib2xkc3ltYm9se0F9LVxsYW1iZGFcYm9sZHN5bWJvbHtJfXw9DQpcYmVnaW57dm1hdHJpeH0NCi0wLjA4MzMtXGxhbWJkYSAmIDAuMTY2NyAmIC0wLjI1XFwNCjAuMTY2NyAmIDAuMDYwNi1cbGFtYmRhICYgMC4xMzY0XFwNCi0wLjI1ICYgMC4xMzY0ICYgMC4wNjgyLVxsYW1iZGENClxlbmR7dm1hdHJpeH09XFwNCigtMC4wODMzLVxsYW1iZGEpXGJlZ2lue3ZtYXRyaXh9MC4wNjA2LVxsYW1iZGEgJiAwLjEzNjRcXDAuMTM2NCAmIDAuMDY4Mi1cbGFtYmRhXGVuZHt2bWF0cml4fQ0KLTAuMTY2N1xiZWdpbnt2bWF0cml4fTAuMTY2NyAmIDAuMTM2NFxcLTAuMjUgJiAwLjA2ODItXGxhbWJkYVxlbmR7dm1hdHJpeH0NCi0wLjI1XGJlZ2lue3ZtYXRyaXh9MC4xNjY3ICYgMC4wNjA2LVxsYW1iZGFcXC0wLjI1ICYgMC4xMzY0XGVuZHt2bWF0cml4fT1cXA0KKC0wLjA4MzMtXGxhbWJkYSlbKDAuMDYwNi1cbGFtYmRhKSgwLjA2ODItXGxhbWJkYSktMC4wMTg2XQ0KLTAuMTY2N1swLjE2NjcoMC4wNjgyLVxsYW1iZGEpKzAuMDM0MV0NCi0wLjI1WzAuMDIyNyswLjI1KDAuMDYwNi1cbGFtYmRhKV09XFwNCigtMC4wODMzLVxsYW1iZGEpKC0wLjAxNDUtMC4xMjg4XGxhbWJkYStcbGFtYmRhXjIpLSgwLjAwNzYtMC4wMjc4XGxhbWJkYSktKDAuMDA5NS0wLjA2MjVcbGFtYmRhKT1cXA0KLVxsYW1iZGFeMy0wLjcwNDVcbGFtYmRhXjIrMC4yMTIxXGxhbWJkYS0wLjAwNQ0KJCQNCg0K0JrQvtGA0LXQvdC40YLQtSDQvdCwINGA0LDQstC10L3QutCw0YLQsCDRgdC1Og0KDQpgYGB7cn0NCmxhbWJkYXNfYWludiA9IHBvbHlyb290KHo9YygtMC4wMDUsIDAuMjEyMSwgLTAuNzA0NSwgLTEpKQ0KcHJpbnQobGFtYmRhc19haW52KQ0KYGBgDQoNCtCX0LAg0LTQsCDRgdC1INC90LDRmNC00LDRgiDRgdC+0L/RgdGC0LLQtdC90LjRgtC1INCy0LXQutGC0L7RgNC4INGY0LAg0LrQvtGA0LjRgdGC0LjQvNC1INGE0YPQvdC60YbQuNGY0LDRgtCwOg0KDQpgYGB7cn0NCnNvbHZlX2FpbnYgPC0gZnVuY3Rpb24obCkgew0KICBhIDwtIGMoDQogICAgLTAuMDgzMyAtIGwgLSAwLjI1LCAwLjE2NjcgKyAwLjEzNjQsIA0KICAgIDAuMTY2NyAtIDAuMjUsIDAuMDYwNiAtIGwgKyAwLjEzNjQpDQogIGIgPC0gYygNCiAgICAwLjI1IC0gKDAuMDY4MiAtIGwpLCANCiAgICAtMC4xMzY0IC0gKDAuMDY4MiAtIGwpDQogICkNCiAgcmV0dXJuKHNvbHZlX2VxdWF0aW9ucyhhLCBiKSkNCn0NCmBgYA0KDQrQodC+0L/RgdGC0LLQtdC90Lhv0YIg0LLQtdC60YLQvtGAINC30LAgJFxsYW1iZGFfMSQg0YHQviDQvNC+0LTRg9C7IDEgZToNCg0KYGBge3J9DQpudV8xX2FpbnYgPSBzb2x2ZV9haW52KGxhbWJkYXNfYWludlsxXSkNCnByaW50KG51XzFfYWludikNCmBgYA0KDQrQodC+0L/RgdGC0LLQtdC90Lhv0YIg0LLQtdC60YLQvtGAINC30LAgJFxsYW1iZGFfMiQg0YHQviDQvNC+0LTRg9C7IDEgZToNCg0KYGBge3J9DQpudV8yX2FpbnYgPSBzb2x2ZV9haW52KGxhbWJkYXNfYWludlsyXSkNCnByaW50KG51XzJfYWludikNCmBgYA0KDQrQodC+0L/RgdGC0LLQtdC90Lhv0YIg0LLQtdC60YLQvtGAINC30LAgJFxsYW1iZGFfMyQg0YHQviDQvNC+0LTRg9C7IDEgZToNCg0KYGBge3J9DQpudV8zX2FpbnYgPSBzb2x2ZV9haW52KGxhbWJkYXNfYWludlszXSkNCnByaW50KG51XzNfYWludikNCmBgYA0KDQrQmtC+0L3QtdGH0L3QviDQs9C4INC00L7QsdC40LLQsNC80LUgJEMkINC4ICREJCAo0L7QstC00LUg0YHQtSDQutC+0YDQuNGB0YLQuCAlKiUg0LfQsCDQvNC90L7QttC10ZrQtSDQvNCw0YLRgNC40YbQuCDRgdC+INGG0LXQuyDQtNCwINGB0LUg0L/RgNC+0LLQtdGA0Lgg0LTQtdC60LAgJENEQyckINC1INC40YHRgtC+INGB0L4g0L/QvtGH0LXRgtC90LDRgtCwINC80LDRgtGA0LjRhtCwKToNCg0KYGBge3J9DQpDX2FpbnYgPSBtYXRyaXgoDQogIGRhdGE9YXMubnVtZXJpYyhjKG51XzFfYWludiwgbnVfMl9haW52LCBudV8zX2FpbnYpKSwgDQogIG5yb3c9MywgDQogIG5jb2w9MywgDQogIGJ5cm93PUZBTFNFDQopDQpEX2FpbnYgPSBkaWFnKHg9YXMubnVtZXJpYyhsYW1iZGFzX2FpbnYpLCBucm93PTMsIG5jb2w9MykNCkNfYWludiAlKiUgRF9haW52ICUqJSB0KENfYWludikNCmBgYA0KDQrQmNC80LAg0L3QtdC60L7RmNCwINCz0YDQtdGI0LrQsCDQstC+INC80L3QvtC20LXRmtCw0YLQsCDQv9C+0LPQvtGA0LUsINCw0LzQsCDRgtC10YjQutC+INC1INC00LAg0YHQtSDQvdCw0ZjQtNC1INC60LDQtNC1IDopDQoNCiMgWzIuMjZdDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUg0LTQtdC60LAgJEEnQSQg0LUg0YHQuNC80LXRgtGA0LjRh9C90LAgKCRBJCBlICRuIFx0aW1lcyBwJCkuDQoNCiQkDQpBJ0E9XGJlZ2lue3BtYXRyaXh9DQphX3sxLDF9ICYgXGRvdHMgJiBhX3tuLDF9XFwNClx2ZG90cyAmIFxkZG90cyAgJiBcdmRvdHMgXFwNCmFfezEscH0gJiBcZG90cyAmIGFfe24scH0NClxlbmR7cG1hdHJpeH1cYmVnaW57cG1hdHJpeH0NCmFfezEsMX0gJiBcZG90cyAmIGFfezEscH1cXA0KXHZkb3RzICYgXGRkb3RzICAmIFx2ZG90cyBcXA0KYV97biwxfSAmIFxkb3RzICYgYV97bixwfQ0KXGVuZHtwbWF0cml4fSBcaW1wbGllcyBhX3tpLGp9PVxzdW1fe3Q9MX1ee259YV97dCxpfWFfe3Qsan09XHN1bV97dD0xfV57bn1hX3t0LGp9YV97dCxpfT1hX3tqLGl9DQokJA0KDQojIFsyLjI3XQ0KDQokYSwgeF8xLCAuLi4sIHhfbiQg0YHQtSAkcCBcdGltZXMgMSQNCg0KJEEkIGUgJHAgXHRpbWVzIHAkDQoNCiMjIyAoYSkNCg0K0JTQsCDRgdC1INC/0L7QutCw0LbQtSAkXHN1bV97aT0xfV57bn1hJ3hfaT1hJ1xzdW1fe2k9MX1ee259eF9pJA0KDQrQktCw0LbQuCDQv9C+0YDQsNC00Lgg0LTQuNGB0YLRgNC40LHRg9GC0LjQstC90L7RgtC+INGB0LLQvtGY0YHRgtCy0L46IA0KDQokJA0KYSdcc3VtX3tpPTF9XntufXhfaT1hJyh4XzErXGRvdHMreF9uKT1hJ3hfMStcZG90cythJ3hfbj1cc3VtX3tpPTF9XntufWEneF9pDQokJA0KDQojIyMgKGIpDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUgJFxzdW1fe2k9MX1ee259QXhfaT1BXHN1bV97aT0xfV57bn14X2kkDQoNCtCd0LXQsdC40YLQvdC+INC1INGI0YLQviDRgdC10LPQsCDQtSAkQSQg0L3QsNC80LXRgdGC0L4gJGEnJCwg0L/QsNC6INCy0LDQttC4INC00LjRgdGC0YDQuNCx0YPRgtC40LLQvdC+0YLQviDRgdCy0L7RmNGB0YLQstC+Og0KDQokJA0K0JBcc3VtX3tpPTF9XntufXhfaT3QkCh4XzErXGRvdHMreF9uKT3QkHhfMStcZG90cyvQkHhfbj1cc3VtX3tpPTF9XntufdCQeF9pDQokJA0KDQojIyMgKGMpDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUgJFxzdW1fe2k9MX1ee259KGEneF9pKV4yPWEnKFxzdW1fe2k9MX1ee259eF9peF9pJylhJA0KDQrQjNC1INCz0L4g0LjRgdC60L7RgNGB0YLQuNC80LUg0YTQsNC60YLQvtGCINGI0YLQviAkYSd4X2k9eF9pJ2EkICjQsdC40LTQtdGY0ZzQuCDQtSDRgdC60LDQu9Cw0YAsINCwINGB0LrQsNC70LDRgNC+0YIg0L7RgdGC0LDQvdGD0LLQsCDQuNGB0YIg0LrQvtCz0LAg0YHQtSDRgtGA0LDQvdGB0L/QvtC90LjRgNCwKS4NCg0KJCQNClxzdW1fe2k9MX1ee259KGEneF9pKV4yPVxzdW1fe2k9MX1ee259KGEneF9pKShhJ3hfaSk9XHN1bV97aT0xfV57bn0oYSd4X2kpKHhfaSdhKT1cc3VtX3tpPTF9XntufWEnKHhfaXhfaScpYT1hJyhcc3VtX3tpPTF9XntufXhfaXhfaScpYQ0KJCQNCg0KIyMjIChkKQ0KDQrQlNCwINGB0LUg0L/QvtC60LDQttC1ICRcc3VtX3tpPTF9XntufUF4X2koQXhfaSknPUEoXHN1bV97aT0xfV57bn14X2l4X2knKUEnJA0KDQrQjNC1INCz0L4g0LjRgdC60L7RgNC40YHRgtC40LzQtSDRgdCy0L7RmNGB0YLQstC+0YLQviAkKEFCKSc9QidBJyQuDQoNCiQkDQpcc3VtX3tpPTF9XntufUF4X2koQXhfaSknPVxzdW1fe2k9MX1ee259QXhfaXhfaSdBJz1BKFxzdW1fe2k9MX1ee259eF9peF9pJylBJw0KJCQNCg0KIyBbMi4yOF0NCg0KJEE9XGJlZ2lue3BtYXRyaXh9YV8xXFxhXzJcZW5ke3BtYXRyaXh9JCDQtSAkMiBcdGltZXMgcCQNCg0KJHgkIGUgJHAgXHRpbWVzIDEkDQoNCiRTJCBlICRwIFx0aW1lcyBwJA0KDQojIyMgKGEpDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUgJEF4PVxiZWdpbntwbWF0cml4fWFfMSd4XFxhXzIneFxlbmR7cG1hdHJpeH0kDQoNCiQkDQpBeD0NClxiZWdpbntwbWF0cml4fWFfezEsMX0gJiBcZG90cyAmIGFfezEscH1cXGFfezIsMX0gJiBcZG90cyAmIGFfezIscH1cZW5ke3BtYXRyaXh9DQpcYmVnaW57cG1hdHJpeH14XzFcXCBcdmRvdHMgXFwgeF9wXGVuZHtwbWF0cml4fT0NClxiZWdpbntwbWF0cml4fSBcc3VtX3tpPTF9XntwfWFfezEsaX14X2kgXFwgXHN1bV97aT0xfV57cH1hX3syLGl9eF9pIFxlbmR7cG1hdHJpeH0NCj1cYmVnaW57cG1hdHJpeH1hXzEneFxcYV8yJ3hcZW5ke3BtYXRyaXh9DQokJA0KDQojIyMgKGIpDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUg0LTQtdC60LAgJEFTQSc9XGJlZ2lue3BtYXRyaXh9YV8xJ1NhXzEgJiBhXzEnU2FfMlxcYV8yJ1NhXzEgJiBhXzInU2FfMlxlbmR7cG1hdHJpeH0kDQoNCiQkDQphX2snU2FfbD1cYmVnaW57cG1hdHJpeH1hX3trLDF9ICYgXGRvdHMgJiBhX3trLHB9XGVuZHtwbWF0cml4fVxiZWdpbntwbWF0cml4fQ0KU197MSwxfSAmIFxkb3RzICYgU197MSxwfVxcDQpcdmRvdHMgJiBcZGRvdHMgJiBcdmRvdHNcXA0KU197cCwxfSAmIFxkb3RzICYgU197cCxwfQ0KXGVuZHtwbWF0cml4fVxiZWdpbntwbWF0cml4fWFfe2wsMX0gXFwgXHZkb3RzIFxcIGFfe2wscH1cZW5ke3BtYXRyaXh9PVxcDQpcYmVnaW57cG1hdHJpeH1cc3VtX3tpPTF9XntwfWFfe2ssaX1TX3tpLDF9ICYgXGRvdHMgJiBcc3VtX3tpPTF9XntwfWFfe2ssaX1TX3tpLHB9XGVuZHtwbWF0cml4fVxiZWdpbntwbWF0cml4fWFfe2wsMX0gXFwgXHZkb3RzIFxcIGFfe2wscH1cZW5ke3BtYXRyaXh9PVxzdW1fe2o9MX1ee3B9XHN1bV97aT0xfV57cH1hX3trLGl9U197aSxqfWFfe2wsan1cXA0KXGltcGxpZXMgXGJlZ2lue21hdHJpeH0NCmFfMSdTYV8xPVxzdW1fe2o9MX1ee3B9XHN1bV97aT0xfV57cH1hX3sxLGl9U197aSxqfWFfezEsan1cXA0KYV8xJ1NhXzI9XHN1bV97aj0xfV57cH1cc3VtX3tpPTF9XntwfWFfezEsaX1TX3tpLGp9YV97MixqfVxcDQphXzInU2FfMT1cc3VtX3tqPTF9XntwfVxzdW1fe2k9MX1ee3B9YV97MixpfVNfe2ksan1hX3sxLGp9XFwNCmFfMidTYV8yPVxzdW1fe2o9MX1ee3B9XHN1bV97aT0xfV57cH1hX3syLGl9U197aSxqfWFfezIsan0NClxlbmR7bWF0cml4fQ0KXFwNClxpbXBsaWVzIEFTQSc9DQpcYmVnaW57cG1hdHJpeH1hX3sxLDF9ICYgXGRvdHMgJiBhX3sxLHB9XFxhX3syLDF9ICYgXGRvdHMgJiBhX3syLHB9XGVuZHtwbWF0cml4fQ0KXGJlZ2lue3BtYXRyaXh9DQpTX3sxLDF9ICYgXGRvdHMgJiBTX3sxLHB9XFwNClx2ZG90cyAmIFxkZG90cyAmIFx2ZG90c1xcDQpTX3twLDF9ICYgXGRvdHMgJiBTX3twLHB9DQpcZW5ke3BtYXRyaXh9DQpcYmVnaW57cG1hdHJpeH0NCmFfezEsMX0gJiBhX3syLDF9XFwNClx2ZG90cyAmIFx2ZG90c1xcDQphX3sxLHB9ICYgYV97MixwfVxlbmR7cG1hdHJpeH09XFwNClxiZWdpbntwbWF0cml4fQ0KXHN1bV97aT0xfV57cH1hX3sxLGl9U197aSwxfSAmIFxkb3RzICYgXHN1bV97aT0xfV57cH1hX3sxLGl9U197aSxwfVxcDQpcc3VtX3tpPTF9XntwfWFfezIsaX1TX3tpLDF9ICYgXGRvdHMgJiBcc3VtX3tpPTF9XntwfWFfezIsaX1TX3tpLHB9DQpcZW5ke3BtYXRyaXh9XGJlZ2lue3BtYXRyaXh9DQphX3sxLDF9ICYgYV97MiwxfVxcDQpcdmRvdHMgJiBcdmRvdHNcXA0KYV97MSxwfSAmIGFfezIscH1cZW5ke3BtYXRyaXh9PVxcDQpcYmVnaW57cG1hdHJpeH0NClxzdW1fe2o9MX1ee3B9XHN1bV97aT0xfV57cH1hX3sxLGl9U197aSxqfWFfezEsan0gJiBcc3VtX3tqPTF9XntwfVxzdW1fe2k9MX1ee3B9YV97MSxpfVNfe2ksan1hX3syLGp9XFwNClxzdW1fe2o9MX1ee3B9XHN1bV97aT0xfV57cH1hX3syLGl9U197aSxqfWFfezEsan0gJiBcc3VtX3tqPTF9XntwfVxzdW1fe2k9MX1ee3B9YV97MixpfVNfe2ksan1hX3syLGp9XGVuZHtwbWF0cml4fT1cXA0KXGJlZ2lue3BtYXRyaXh9YV8xJ1NhXzEgJiBhXzEnU2FfMlxcYV8yJ1NhXzEgJiBhXzInU2FfMlxlbmR7cG1hdHJpeH0NCiQkDQoNCiMgWzIuMjldDQoNCtCg0LXQtNC40YbQuNGC0LUg0L3QsCAkQSQg0YHQtSAkYSdfaSQsIGEg0LrQvtC70L7QvdC40YLQtSAkYV97KGopfSQuDQoNCiMjIyAoYSkNCg0K0JTQsCDRgdC1INC/0L7QutCw0LbQtSDQtNC10LrQsCAkQSdBPVxzdW1fe2k9MX1ee259YV9pYV9pJyQNCg0KJCQNCkEnQT1cYmVnaW57cG1hdHJpeH1hXzEgJiBcZG90cyAmIGFfblxlbmR7cG1hdHJpeH1cYmVnaW57cG1hdHJpeH1hJ18xIFxcIFxkb3RzIFxcIGEnX25cZW5ke3BtYXRyaXh9PVxzdW1fe2k9MX1ee259YV9pYV9pJw0KJCQNCg0KIyMjIChiKQ0KDQrQlNCwINGB0LUg0L/QvtC60LDQttC1INC00LXQutCwICRBQSc9XHN1bV97aT0xfV57cH1hX3soail9YV97KGopfSckDQoNCiQkDQpBQSc9XGJlZ2lue3BtYXRyaXh9YV97KDEpfSAmIFxkb3RzICYgYV97KGopfVxlbmR7cG1hdHJpeH1cYmVnaW57cG1hdHJpeH1hX3soMSl9IFxcIFxkb3RzIFxcIGFfeyhqKX0nXGVuZHtwbWF0cml4fT1cc3VtX3tqPTF9XntwfWFfeyhqKX1hX3soail9Jw0KJCQNCg0KIyBbMi4zMF0NCg0K0JTQsCDRgdC1INC/0L7QutCw0LbQtSDQtNC10LrQsCAkKEEnKV57LTF9PShBXnstMX0pJyQNCg0KJCQNClxiZWdpbnttYXRyaXh9QScoQScpXnstMX09SVxcDQpBJyhBXnstMX0pJz0oQV57LTF9QSknPUknPUlcZW5ke21hdHJpeH1caW1wbGllcyAoQScpXnstMX09KEFeey0xfSknDQokJA0KDQoNCiMgWzIuMzFdDQoNCtCR0L7Qu9C00LjRgNCw0L3QuNGC0LUg0YHQtSDQvNCw0YLRgNC40YbQuC/QstC10LrRgtC+0YDQuCwg0LTRgNGD0LPQvtGC0L4g0YHQtSDRgdC60LDQu9Cw0YDQuC4NCg0K0JTQsCDRgdC1INC/0L7QutCw0LbQtSDQtNC10LrQsA0KDQokJA0KXGJvbGRzeW1ib2x7QX09XGJlZ2lue3BtYXRyaXh9XGJvbGRzeW1ib2x7QV97MTF9fSAmIFxib2xkc3ltYm9se2FfezEyfX1cXFxib2xkc3ltYm9se2FfezEyfSd9ICYgYV97MjJ9XGVuZHtwbWF0cml4fVxpbXBsaWVzDQpcYmVnaW57bWF0cml4fQ0KXGJvbGRzeW1ib2x7QV57LTF9fT1cZnJhY3sxfXtifQ0KXGJlZ2lue3BtYXRyaXh9DQpiXGJvbGRzeW1ib2x7QV97MTF9XnstMX19K1xib2xkc3ltYm9se0FfezExfV57LTF9fVxib2xkc3ltYm9se2FfezEyfX1cYm9sZHN5bWJvbHthX3sxMn0nfVxib2xkc3ltYm9se0FfezExfV57LTF9fSAmIC1cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19XFwNCi1cYm9sZHN5bWJvbHthX3sxMn0nfVxib2xkc3ltYm9se0FfezExfV57LTF9fSAmIDENClxlbmR7cG1hdHJpeH1cXA0KYj1hX3syMn0tXGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19DQpcZW5ke21hdHJpeH0NCiQkDQoNCiQkDQpcYm9sZHN5bWJvbHtBfVxib2xkc3ltYm9se0Feey0xfX09DQpcZnJhY3sxfXtifQ0KXGJlZ2lue3BtYXRyaXh9DQpcYm9sZHN5bWJvbHtBX3sxMX19ICYgXGJvbGRzeW1ib2x7YV97MTJ9fVxcDQpcYm9sZHN5bWJvbHthX3sxMn0nfSAmIGFfezIyfVxlbmR7cG1hdHJpeH0NClxiZWdpbntwbWF0cml4fQ0KYlxib2xkc3ltYm9se0FfezExfV57LTF9fStcYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0gJiANCi1cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19XFwNCi1cYm9sZHN5bWJvbHthX3sxMn0nfVxib2xkc3ltYm9se0FfezExfV57LTF9fSAmIDENClxlbmR7cG1hdHJpeH09XFwNClxmcmFjezF9e2J9DQpcYmVnaW57cG1hdHJpeH0NClxib2xkc3ltYm9se0FfezExfX0oYlxib2xkc3ltYm9se0FfezExfV57LTF9fStcYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0pIC0gXGJvbGRzeW1ib2x7YV97MTJ9fVxib2xkc3ltYm9se2FfezEyfSd9XGJvbGRzeW1ib2x7QV97MTF9XnstMX19ICYNCi1cYm9sZHN5bWJvbHtBX3sxMX19XGJvbGRzeW1ib2x7QV97MTF9XnstMX19XGJvbGRzeW1ib2x7YV97MTJ9fStcYm9sZHN5bWJvbHthX3sxMn19XFwNClxib2xkc3ltYm9se2FfezEyfSd9KGJcYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0rXGJvbGRzeW1ib2x7QV97MTF9XnstMX19XGJvbGRzeW1ib2x7YV97MTJ9fVxib2xkc3ltYm9se2FfezEyfSd9XGJvbGRzeW1ib2x7QV97MTF9XnstMX19KS1hX3syMn1cYm9sZHN5bWJvbHthX3sxMn0nfVxib2xkc3ltYm9se0FfezExfV57LTF9fSAmDQotXGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19K2FfezIyfQ0KXGVuZHtwbWF0cml4fVxcPVxmcmFjezF9e2J9XGJlZ2lue3BtYXRyaXh9TFUgJiBSVVxcTEQgJiBSRFxlbmR7cG1hdHJpeH1cXA0KTFU9XGJvbGRzeW1ib2x7QV97MTF9fShiXGJvbGRzeW1ib2x7QV97MTF9XnstMX19K1xib2xkc3ltYm9se0FfezExfV57LTF9fVxib2xkc3ltYm9se2FfezEyfX1cYm9sZHN5bWJvbHthX3sxMn0nfVxib2xkc3ltYm9se0FfezExfV57LTF9fSkgLSBcYm9sZHN5bWJvbHthX3sxMn19XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX09XFwNClxib2xkc3ltYm9se0FfezExfX1iXGJvbGRzeW1ib2x7QV97MTF9XnstMX19K1xib2xkc3ltYm9se2FfezEyfX1cYm9sZHN5bWJvbHthX3sxMn0nfVxib2xkc3ltYm9se0FfezExfV57LTF9fS1cYm9sZHN5bWJvbHthX3sxMn19XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX09Yg0KXFwNClJVPS1cYm9sZHN5bWJvbHtBX3sxMX19XGJvbGRzeW1ib2x7QV97MTF9XnstMX19XGJvbGRzeW1ib2x7YV97MTJ9fStcYm9sZHN5bWJvbHthX3sxMn19PTBcXA0KTEQ9XGJvbGRzeW1ib2x7YV97MTJ9J30oYlxib2xkc3ltYm9se0FfezExfV57LTF9fStcYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0pLWFfezIyfVxib2xkc3ltYm9se2FfezEyfSd9XGJvbGRzeW1ib2x7QV97MTF9XnstMX19PVxcDQpcYm9sZHN5bWJvbHthX3sxMn0nfWJcYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0rXGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0tYV97MjJ9XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX09XFwNClxib2xkc3ltYm9se2FfezEyfSd9Ylxib2xkc3ltYm9se0FfezExfV57LTF9fS0oYi1hX3syMn0pXGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0tYV97MjJ9XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX09XFwNCmJcYm9sZHN5bWJvbHthX3sxMn0nfVxib2xkc3ltYm9se0FfezExfV57LTF9fS1iXGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0rYV97MjJ9XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX0tYV97MjJ9XGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX09MA0KXFxSRD0tXGJvbGRzeW1ib2x7YV97MTJ9J31cYm9sZHN5bWJvbHtBX3sxMX1eey0xfX1cYm9sZHN5bWJvbHthX3sxMn19K2FfezIyfT1iXFwNClxpbXBsaWVzIFxib2xkc3ltYm9se0F9XGJvbGRzeW1ib2x7QV57LTF9fT1cZnJhY3sxfXtifVxiZWdpbntwbWF0cml4fUxVICYgUlVcXExEICYgUkRcZW5ke3BtYXRyaXh9PT1cZnJhY3sxfXtifVxiZWdpbntwbWF0cml4fWIgJiAwXFwwICYgYlxlbmR7cG1hdHJpeH09XGJvbGRzeW1ib2x7SX0NCiQkDQoNCiMgWzIuMzJdDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUg0LTQtdC60LANCg0KJCQNCihCICsgY2MnKV57LTF9PUJeey0xfS1cZnJhY3tCXnstMX1jYydCXnstMX19ezErYydCXnstMX1jfQ0KJCQNCg0KJCQNCihCICsgY2MnKShCICsgY2MnKV57LTF9PVxcDQooQiArIGNjJykoQl57LTF9LVxmcmFje0Jeey0xfWNjJ0Jeey0xfX17MStjJ0Jeey0xfWN9KT1cXA0KSS1cZnJhY3tjYydCXnstMX19ezErYydCXnstMX1jfStjYydCXnstMX0tXGZyYWN7Y2MnQl57LTF9Y2MnQl57LTF9fXsxK2MnQl57LTF9Y309XFwNClxmcmFjDQp7MStjJ0Jeey0xfWMtY2MnQl57LTF9K2NjJ0Jeey0xfStjJ0Jeey0xfWNjYydCXnstMX0tY2MnQl57LTF9Y2MnQl57LTF9fQ0KezErYydCXnstMX1jfT1cXA0KXGZyYWMNCnsxK2MnQl57LTF9YygxK2NjJ0Jeey0xfS1jYydCXnstMX0pfQ0KezErYydCXnstMX1jfT1JDQokJA0KDQojIFsyLjMzXQ0KDQrQlNCwINGB0LUg0L/QvtC60LDQttC1INC00LXQutCwICR8Y0F8PWNebnxBfCQNCg0KJCQNCnxjQXw9fGNJQXw9fGNJfHxBfD1jXm58QXwNCiQkDQoNCiMgWzIuMzRdDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUg0LTQtdC60LAgJHxBXnstMX18PTEvfEF8JA0KDQokJA0KfEl8PXxBQV57LTF9fD18QXx8QV57LTF9fD0xIFxpbXBsaWVzIHxBXnstMX18PTEvfEF8DQokJA0KDQojIFsyLjM1XQ0KDQrQlNCwINGB0LUg0L/QvtC60LDQttC1INC00LXQutCwICR8QitjYyd8PXxCfCgxK2MnQl57LTF9YykkDQoNCiQkDQp8QitjYyd8PVxmcmFjezF9e3woQitjYycpXnstMX18fT1cZnJhY3sxfXt8Ql57LTF9LVxmcmFje0Jeey0xfWNjJ0Jeey0xfX17MStjJ0Jeey0xfWN9fH09XGZyYWN7fEJ8fXt8MS1cZnJhY3tjYydCXnstMX19ezErYydCXnstMX1jfXx9PQ0KXGZyYWN7fEJ8KDErYydCXnstMX1jKX17fDErYydCXnstMX1jLWNjJ0Jeey0xfXx9XFwNCnA9YydCXnstMX1jIFxyaWdodGFycm93INGB0LrQsNC70LDRgCBcaW1wbGllcyBwYz1jcCBcaW1wbGllc1xcDQp8QitjYyd8PVxmcmFje3xCfCgxK2MnQl57LTF9Yyl8Y3x9e3xjK2MnQl57LTF9Y2MtY2MnQl57LTF9Y3x9PVxmcmFje3xCfCgxK2MnQl57LTF9Yyl8Y3x9e3xjK3BjLWNwfH09XGZyYWN7fEJ8KDErYydCXnstMX1jKXxjfH17fGN8fT18QnwoMStjJ0Jeey0xfWMpDQokJA0KDQojIFsyLjM2XQ0KDQrQlNCwINGB0LUg0L/QvtC60LDQttC1INC00LXQutCwICR0cihBJ0EpPXRyKEFBJyk9XHN1bV97aWp9YV97aWp9XjIkDQoNCiQkDQooQSdBKV97amp9PVxzdW1faSBhX3tpan1eMiBcaW1wbGllcyB0cihBJ0EpPVxzdW1fe2lqfWFfe2lqfV4yXFwNCihBQScpX3tqan09XHN1bV9pIGFfe2ppfV4yIFxpbXBsaWVzIHRyKEEnQSk9XHN1bV97aWp9YV97aml9XjI9XHN1bV97aWp9YV97aWp9XjINCiQkDQoNCiMgWzIuMzddDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUg0LTQtdC60LAgJEMnQz1JIFxpbXBsaWVzIENDJz1JJA0KDQokJA0KfEMnQ3w9fEMnfHxDfD18SXw9MSBcaW1wbGllcyB8Qyd8IFxuZXEgMCwgfEN8IFxuZXEgMCBcaW1wbGllcyBDJ157LTF9INC/0L7RgdGC0L7QuCBcXA0KQ0MnPUMnQ0MnQydeey0xfT1JST1JDQokJA0KDQojIFsyLjM4XQ0KDQrQlNCwINGB0LUg0L/QvtC60LDQttC1INC00LXQutCwICRBQiQg0LggJEJBJCDQuNC80LDQsNGCINC40YHRgtC4INGB0L7Qv9GB0YLQstC10L3QuCDQstGA0LXQtNC90L7RgdGC0LguDQoNCiQkDQpBQng9XGxhbWJkYSB4IFxpbXBsaWVzIChCQSlCeD1cbGFtYmRhIChCeCkNCiQkDQoNCtCe0LQg0L7QstCwINGB0LvQtdC00Lgg0LTQtdC60LAgJFxsYW1iZGEkINC1INGB0L7Qv9GB0YLQstC10L3QsCDQstGA0LXQtNC90L7RgdGCINC4INC90LAgJEFCJCDQuCDQvdCwICRCQSQsINCwINC90LAg0YHQvtC/0YHRgtCy0LXQvdC40L7RgiDQstC10LrRgtC+0YAgJHgkINC90LAgJEFCJCDRgdC+0L7QtNCy0LXRgtGB0YLQstGD0LLQsCDRgdC+0L/RgdGC0LLQtdC90LjQvtGCINCy0LXQutGC0L7RgCAkQngkINC90LAgJEJBJC4NCg0KIyBbMi4zOV0NCg0KJEFeezEvMn09Q0ReezEvMn1DJyQNCg0KIyMjIChhKQ0KDQrQlNCwINGB0LUg0L/QvtC60LDQttC1INC00LXQutCwICQoQV57MS8yfSleMj1BJA0KDQokJA0KKEFeezEvMn0pXjI9KENEXnsxLzJ9QycpXjI9Q0ReezEvMn1DJ0NEXnsxLzJ9QycNCiQkDQoNCtCa0L7Qu9C+0L3QuNGC0LUg0L3QsCAkQyQg0YHQtSDQvdC+0YDQvNCw0LvQuNC30LjRgNCw0L3QuCDQuCDQvtGA0YLQvtCz0L7QvdCw0LvQvdC4INC/0L7QvNC10ZPRgyDRgdC10LHQtSwg0L/QsCDQt9Cw0YLQvtCwINCy0LDQttC4INC00LXQutCwICRDQyc9SSQsINC+0LQg0YjRgtC+INGB0LvQtdC00Lgg0LTQtdC60LA6DQoNCiQkDQooQV57MS8yfSleMj1DRF57MS8yfUMnQ0ReezEvMn1DJz1DRF57MS8yfUReezEvMn1DJz1cXA0KQ1xiZWdpbntwbWF0cml4fQ0KXHNxcnQgXGxhbWJkYV8xICYgMCAmIFxkb3RzICYgMFxcDQowICYgXHNxcnQgXGxhbWJkYV8yICYgXGRvdHMgJiAwXFwNClx2ZG90cyAmIFx2ZG90cyAmIFxkZG90cyAmIFx2ZG90c1xcDQowICYgMCAmIFxkb3RzICYgXHNxcnQgXGxhbWJkYV9uDQpcZW5ke3BtYXRyaXh9XGJlZ2lue3BtYXRyaXh9DQpcc3FydCBcbGFtYmRhXzEgJiAwICYgXGRvdHMgJiAwXFwNCjAgJiBcc3FydCBcbGFtYmRhXzIgJiBcZG90cyAmIDBcXA0KXHZkb3RzICYgXHZkb3RzICYgXGRkb3RzICYgXHZkb3RzXFwNCjAgJiAwICYgXGRvdHMgJiBcc3FydCBcbGFtYmRhX24NClxlbmR7cG1hdHJpeH1DJz1cXA0KQ1xiZWdpbntwbWF0cml4fQ0KXGxhbWJkYV8xICYgMCAmIFxkb3RzICYgMFxcDQowICYgXGxhbWJkYV8yICYgXGRvdHMgJiAwXFwNClx2ZG90cyAmIFx2ZG90cyAmIFxkZG90cyAmIFx2ZG90c1xcDQowICYgMCAmIFxkb3RzICYgXGxhbWJkYV9uDQpcZW5ke3BtYXRyaXh9Qyc9Q0RDJz1BDQokJA0KDQojIyMgKGIpDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUg0LTQtdC60LAgJHxBXnsxLzJ9fF4yPXxBfCQNCg0KJCQNCnxBXnsxLzJ9fF4yPXxBXnsxLzJ9QV57MS8yfXw9fEF8DQokJA0KDQojIyMgKGMpDQoNCtCU0LAg0YHQtSDQv9C+0LrQsNC20LUg0LTQtdC60LAgJHxBXnsxLzJ9fD18QXxeezEvMn0kDQoNCiQkDQp8QXxeezEvMn09KHxBXnsxLzJ9fF4yKV57MS8yfT18QV57MS8yfXwNCiQkDQo=