text:
\section{Introduction}

In this work we study the problem of regulating a dynamical system perturbed by disturbance. Restating \cite{goel2020regret}, the standard $\mathcal{H}_2$ and $\mathcal{H}_\infty$ control approaches for this problem are designed for a specific performance objective: (i) {\it the expected cost for random disturbance drawn from a specific distribution in the $\mathcal{H}_2$ case} and (ii) {\it the worst-case cost for adversarial disturbance in the $\mathcal{H}_{\infty}$ case}. These approaches can be poor if the disturbance belongs to a different class \cite{goel2020regret}.

This naturally leads to the question whether the control can be dynamically adjusted to achieve desirable performance for any disturbance realization. Recently, this problem has been studied in online control from the point of view of regret minimization \cite{agarwal2019online, hazan2020nonstochastic, foster2020logarithmic}. In this framework, for a dynamically evolving system with state $x_t$, the online control policy $\pi = \{\pi_t\}_{1 \leq t \leq T}$ is chosen so as to minimize the regret
\begin{equation}
R^\Pi_T = \left(\sum_{t=1}^T c_t(x_t, \pi_t(\{w_l\}_{1 \leq l\leq t}) - \inf_{\pi \in \Pi}\sum_{t=1}^T c_t(x_t, \pi(w))\right), \ w = \{w_t\}_{1 \leq t \leq T} \nonumber
\end{equation}

In contrast, \cite{goel2020regret} approach this problem from the point of view minimizing the {\it dynamic regret}. The key difference is that the regret is defined against the best sequence of control actions in hindsight, not specific to a certain class of policies. The consideration of this regret is important from two perspectives: (i) the comparison is not restricted to a certain class of policies but is against the global optimal dynamic sequence of actions, (ii) as stated in \cite{goel2020regret} the online controller designed for this regret is more flexible, i.e., can respond to any type of disturbance, whereas linear feedback controllers can only be effective against either stochastic disturbance or adversarial disturbance. The dynamic regret is defined as follows:
\begin{equation}
R^d_T = \sum_{t=1}^T c_t(x_t, \pi_t(\{w_l\}_{1 \leq l\leq t}) - \inf_{\{u_t\}_{1 \leq t \leq T}}\sum_{t=1}^T c_t(x_t, u_t(w)), \ w = \{ w_t\}_{1 \leq t \leq T} \nonumber
\end{equation}

In \cite{goel2020regret}, the authors derive the regret sub-optimal controller from the point of view of the dynamic regret for a known sequence of time-varying quadratic cost functions $c_t(.,.)$ for a known time-varying linear dynamical system. They show that for a specified attenuation $\gamma$ the regret sub-optimal controller satisfies
\begin{equation}
 R^d_T \leq \gamma \sum_{t=1}^T \norm{w_t}^2_2, \nonumber
\end{equation}
provided such a controller exists for the specified $\gamma$. While these settings study the performance with respect to a class of control policies, they do not provide guarantees for the actual performance: {\it the absolute attenuation of the cost of the system by the online adaptive controller in response to the disturbance}. The central problem we study in this work is {\it online guarantees for this problem of attenuation}. The attenuation is a harder notion of performance than dynamic regret because the bound on the attenuation gives a bound on the ratio of the dynamic regret and the total energy in the disturbance, defined as $\sum_{t=1}^T \norm{w_t}^2_2$, but not vice-versa. We study the setting where the controller may not have complete knowledge of the sequence of cost functions, and the system. Hence, the controller has to learn online to attenuate the cost of the system. The question is {\it how much the online adaptive controller can attenuate the total cost? At what rate does the total cost converge to this attenuation level with $T$?} To answer these questions, we study the deviation of the controller's cost for a sequence of cost functions, $\{c_t(.,.), t = 1,2,...\}$, of the state of the system $x_t$ and the control input $u_t$, with respect to an attenuation $\gamma$:
\begin{equation}
R^p_T(\gamma) = \left(\sum_{t=1}^T c_t(x_t, u_t) - \gamma \sum_{t=1}^T \norm{w_t}^2\right)_+. \nonumber
\end{equation}
The metric as stated is a function of $\gamma$ because for the same sequence of control actions the deviation of the cumulative cost from the second term will depend on $\gamma$. We state the \textit{online robust problem} as follows:
\begin{equation}
\textit{1. What is the achievable} \ R^p_T(\gamma)? \hspace{2em} \textit{2. What is the smallest} \ \gamma \ \text{s.t.} \ R^p_T \ \text{is sub-linear?} \nonumber
\end{equation}
The smallest $\gamma$ gives the maximum achievable {\it attenuation} and the corresponding $R^p_T(\gamma)$ quantifies the {\it convergence rate} to this attenuation: $R^p_T(\gamma)/T$. This is the central question we study in this work. The problem we study is a harder notion of performance than dynamic regret because the bound on the cost derived from $R^p_t$ is a bound on the dynamic regret and not vice versa.

In this work we present algorithms and guarantees for the questions posed above. We consider a setting similar to \cite{agarwal2019online}. The system the system is a general {\it non-linear dynamical system} perturbed by disturbance. The sequence of cost functions and the disturbances are adversarial and the disturbance at any time is bounded. We make minimal assumptions on the cost functions. We assume that they are continuous functions such that are lower bounded by $\underline{\alpha}\sigma(x)$, where $\sigma(.)$ is a general non-negative function. We assume that the desired trajectory is given by $\sigma(x) = 0$. Most distinctly, the cost functions need not be convex.

We present our guarantees for the achievable attenuation for the condition that the optimal cost-to-go function for the horizon $M$ at time $t$ is upper bounded by $\overline{\alpha}\sigma(x_t) + \overline{\gamma} \sum_{k=0}^{M-1} \norm{w_{t+k}}^2_2$. This assumption for the upper bound has two terms: (i) the first term is the contribution of the initial state to the optimal cost-to-go for the period $M$ from $t$ and (ii) the second term is the contribution of the disturbance over the period $M$. The factor $\overline{\gamma}$ is the maximum achievable attenuation. We note that the optimal cost-to-go for horizon $M$ for strongly convex quadratic cost functions for linear dynamical systems trivially satisfies such an upper bound. Hence, the setting we present is sufficiently general. This assumption does not in anyway restrict the problem and is a necessary assumption because the problem we address in this work has a solution only if a finite attenuation is achievable.

\subsection{Contribution}

The online controller we propose and analyse is a Receding Horizon Controller (RHC) which has preview of the cost functions for a short horizon $M$ at time $t$. In a typical RHC setting, the controller optimizes the cost-to-go for a certain horizon and applies the first element of the computed optimal control sequence as the control input. This is then repeated at every time step. The RHC approach to control is a well established technique in control. The primary advantage of the RHC approach is that the optimization carried out at every step can incorporate any type of control input, system state and output constraints, and cost functions \cite{ mayne2000constrained, morari1999model, borrelli2017predictive}. The RHC controller we propose optimizes the cost-to-go for the short horizon $M$ to compute the control input for time $t$. It then applies the first element of the computed optimal control sequence for the horizon $M$ as the control input. This is repeated at every time step. We analyse the performance of RHC over a duration $T \gg M$.

First, we present the setting where the system is known. We present: (i) the performance guarantee for the Receding Horizon Controller (RHC) when the controller has preview of the disturbance $w_k$ for the horizon $M$, i.e., for $t \leq k \leq t+M-1$, and (ii) present the performance guarantee when the controller does not have any preview of the disturbance. For the first case we show that RHC achieves $R^p_T(\gamma) = O(1)$ when $\gamma \geq \gamma_c$ and the horizon length $M > \overline{\alpha}^2/\underline{\alpha}^2+1$. We show that the achievable attenuation in this case is nearly optimal that is $\gamma_c = \mathcal{O}(\overline{\gamma})$. For the second case, when the preview of the disturbance is not available we guarantee that the overall cost is bounded by $\sim 2\overline{\gamma}MT\max_{w\in \mathcal{W}} \norm{w}^2_2 + \mathcal{O}(1)$. Hence, in this case we guarantee that achievable attenuation is nearly $\mathcal{O}(\overline{\gamma})$ of the maximum energy in the disturbance.

We then present the setting where the system is unknown and the disturbance preview is available. We present analysis for systems that are Bounded Input Bounded Stable (BIBO) and the cost functions are convex. We assume that the state transition function is parameterized and that only the parameter is unknown.
We propose a generic online control framework that operates in two phases: the estimation phase followed by the control phase. The estimation phase runs for a period of $N$ time steps, at the end of which the online controller calculates an estimate $\hat{\theta}$ of $\theta$. In the control phase, the controller is the RHC that optimizes the cost-to-go for the estimated system. We present performance analysis for a black-box estimation procedure with accuracy given by: $\norm{\hat{\theta} -\theta}_2 \leq g(N)$, a bounded and decreasing function of $N$. We show that the overall online controller achieves $R^p_T(\gamma) = \mathcal{O}(N) + \mathcal{O}(1) + \mathcal{O}((T-N)g(N))$ when $\gamma \geq \gamma_c$ and the horizon length $M$ exceeds the same threshold as before. For linear systems, we trivially recover the results for the known system case since the estimation is trivial when the disturbance preview is available and the system is controllable. The framework we present provides a direct characterization to evaluate the various estimation approaches.

\subsection{Notations}

For a sequence (of vectors/function) $\{a_{t}, 1 \leq t \leq T\}$, we denote $a_{1:t} = \{a_{\tau}, 1 \leq \tau \leq t\}$. For a matrix $M$, we denote its transpose by $M^\top$. We denote the maximum eigenvalue of a matrix $M$ by $\lambda_{\text{max}}(M)$. The two norm of a vector is denoted by $\norm{.}_2$. When two matrices $M_1$ and $M_2$ are related by $M_1 \geq M_2$ then it implies that $M_1 - M_2$ is positive semi-definite. Similarly, when $M_1 > M_2$ it implies that $M_1 - M_2$ is positive definite. We denote $\mathbb{R}^n$ as the $n-$dimensional euclidean space and $\mathbb{R}_{\geq 0}$ as the positive part of the real line.

\section{Preliminaries}

We consider the control of a general non-linear dynamical system with disturbances in dynamics:
\begin{equation}
x_{t+1} = f(x_t,u_t,w_t;\theta),
\label{eq:stateequation}
\end{equation}
where $f$ is a continuous function, $x_{t} (\in \mathbb{R}^n$) is the system state, $u_t (\in \mathbb{R}^m)$ is the control input, $w_t (\in \mathbb{R}^n$) is the disturbance, the parameter $\theta$ could known or unknown. We make the assumption that the controller observes the full state.

We consider the setting where a fixed horizon preview of the future cost functions and disturbances are available to the algorithm at each time step $t$. In particular, the control input $u_{t}$ is computed as $u_{t} = \pi_{t}(x_{1:t}, u_{1:t-1},w_{1:t+M_{w}-1}, c_{1:t+M_{c}-1})$, where $M_{w}$ and $M_{c}$ are fixed horizon lengths and $\pi_{t}$ is the control policy at time $t$. The goal of the agent is to select a control policy $\pi = \pi_{1:T}$ in order to minimize the cumulative cost with respect to an attenuation $\gamma$. This can be formulated as the following optimization problem
\begin{align}
    \label{eq:basic-problem-1}
    & R^p_T(\gamma) = J(\pi; w_{1:T}, c_{1:T}) -\gamma \sum_{t=1}^T \norm{w_t}^2_2 :=   \sum^{T}_{t = 1} c_{t}(x_{t},u_{t}) -\gamma \sum_{t=1}^T \norm{w_t}^2_2 ,~~\text{where,} \nonumber \\
    & ~~u_{t} = \pi_{t}(x_{1:t}, u_{1:t-1},w_{1:t+M_w-1}, c_{1:t+M_c-1}).
\end{align}
Our goal is to characterize the optimal $R^p_T(\gamma)$ and the maximum achievable attenuation.

The assumptions used throughout this paper are as follows:
\begin{assumption} (Disturbance)
{\it the disturbance $w_t \in \mathcal{W}$, where $\mathcal{W}$ is compact and $\norm{w_t}_2 \leq w_c$. The disturbance $w_t$ is adversarial for all $t$.}
\label{ass:noise}
\end{assumption}

\begin{assumption} (Cost Function)
{\it The function $c_t$ is Lipschitz continuous for all $t$, with a uniform Lipschitz constant $\alpha_c$ for all $t$ and there exists a constant $\underline{\alpha} > 0$ such that $c_t(x,u) \geq \underline{\alpha}\sigma(x) \geq 0$. The cost function $c_t(.,.)$ is adversarial for all $t$.}
\label{ass:stagecost}
\end{assumption}
The $\sigma(x)$ function could be any non-negative function. The assumption that the cost functions are Lipschitz continuous is a standard assumption \cite{li2019online, simchowitz2020improper}.

\section{Related Works}

The control of dynamical systems with uncertainties such as modeling errors, parametric uncertainty, and disturbances is a central challenge in control theory and so has been extensively studied. There is vast literature in the field of control on control synthesis for systems with such uncertainties. The {\it robust control} literature studies the problem of feedback control design for stability and performance guarantees with modeling uncertainty and disturbances; see \cite{skogestad2007multivariable}. The {\it adaptive control} literature studies the control of systems with parametric uncertainty; see \cite{sastry2011adaptive, ioannou2012robust, aastrom2013adaptive}.

{\it Online Control}: The field of online adaptive control is a widely studied topic. \cite{abbasi2011regret} studied the online Linear Quadratic Regulator (LQR) problem with unknown system and stochastic disturbances.
The authors propose an adaptive algorithm that achieves $\sqrt{T}$ regret w.r.t the best linear control policy, which is the optimal policy. \cite{dean2018regret} propose an efficient algorithm for the same problem that achieves a regret of $\mathcal{O}(T^{2/3})$. \cite{cohen2019learning} and \cite{mania2019certainty} improved on this result by providing an efficient run-time algorithm with a regret guarantee of $\mathcal{O}(\sqrt{T})$ for the same problem. Mania et al. \cite{mania2019certainty} also establish $\mathcal{O}(\sqrt{T})$-regret for the partially observed Linear Quadratic Gaussian (LQG) setting. Recently, \cite{simchowitz2020naive} showed that $\mathcal{O}(\sqrt{T})$ is the optimal regret for the online LQR problem. \cite{cohen2018online} provide an $\mathcal{O}(\sqrt{T})$ algorithm for a variant of the online LQR where the system is known and noise is stochastic but the controller cost function is an adversarially chosen quadratic function.

\cite{agarwal2019online} consider the control of a known linear dynamic system with additive adversarial disturbance and an adversarial Lipschitz controller cost function. The controller they propose is a Disturbance Response Controller (DRC). They show that the the learning algorithm achieves $\mathcal{O}(\sqrt{T})$-regret with respect to the best DRC in hindsight. In a subsequent work \cite{agarwal2019logarithmic} show that a poly logarithmic regret is achievable for strongly convex controller cost and well conditioned stochastic disturbances. \cite{hazan2020nonstochastic} consider the same setting when the system is unknown and present an $\mathcal{O}(T^{2/3})$-regret algorithm. Recently, \cite{simchowitz2020improper} generalized these results to provide similar regret guarantees for the same setting with partial observation for both known and unknown systems.

{\it Receding Horizon control}: Many receding horizon control based methods have been proposed for managing disturbances and uncertainties in the system dynamics. For example, some works handle disturbances or uncertainties by robust or chance constraints \cite{langson2004robust,goulart2006optimization,limon2010robust, tempo2012randomized, goulart2016robust}. Adaptive RHC techniques that adapt online when the system model is unknown have also been proposed \cite{fukushima2007adaptive, adetola2009adaptive, aswani2013provably,tanaskovic2019adaptive, bujarbaruah2019adaptive}. These methods primarily focus on constraint satisfaction, stability and in some cases performance improvement using the adapted models. In contrast to these works, we consider non-asymptotic performance of an online robust adaptive RHC. There are considerable amount of papers that provide performance analysis of RHC under both time-invariant costs \cite{angeli2011average, grune2014asymptotic, grune2015non} and time varying costs \cite{ferramosca2010economic, angeli2016theoretical, ferramosca2014economic, grune2017closed}. However, most of these studies focus on asymptotic performance.

\section{Online Learning Robust Controller: Algorithms}

In this section, we present the online control algorithms for the setting where $M_c = M_w = M \ll T$. We present separate algorithms for the case where the system and the case where the system is unknown. The detailed discussion for the case where the disturbance is not accessible is deferred to the appendix.

\subsection{System is known}

In this setting, we assume that the system dynamics is not parameterized by $\theta$. we assume that the algorithm has a fixed horizon preview of the future cost functions and disturbances. In particular, at each time $t$, algorithm has access to $c_{t:t+M-1}$ and $w_{t:t+M-1}$, in addition to the history of observation until $t$. We use a receding horizon control approach that minimizes the cost-to-go for a horizon $M$ with the previewed disturbances and cost functions. In particular, to find the control input $u_{t}$ at each time step $t$, the algorithm solves the following optimization problem:
\begin{equation}
\underset{\tilde{u}_{t:t+M-1}}{\inf} \sum_{j = t}^{t+M-1} c_j(\tilde{x}_j, \tilde{u}_j) \ \text{s.t.} \ \tilde{x}_{j+1} = f(\tilde{x}_j, \tilde{u}_j, w_j), \ \tilde{x}_t = x_t, \ \tilde{u}_j \in \mathcal{U}.
\label{eq:cont-opt-distaccess}
\end{equation}
where $\mathcal{U}$ is a compact set. Given that $f,c_j$ are continuous functions the solution to the above optimization exists. Please see proof of Lemma \ref{lem:Lipschitz} for a detailed argument. We denote the solution of this optimization by $\text{MPC}^t(W_{t:t^e})$. The control input $u_t$ is set as the first element of the sequence $\text{MPC}^t(W_{t:t^e})$. We succinctly denote the control input by $\kappa_M(x_t)$. The overall online control algorithm is given in Algorithm \ref{alg:online-control-distaccess}.

\begin{algorithm}[]
\begin{algorithmic}[1]
\STATE \textbf{Input}: $M$
\FOR{t = 1,...,T}
\STATE Observe $x_t$, $\{c_j(.,.)\}_{t \leq j \leq t+M-1}$, $w_{t:t+M-1}$
\STATE Solve the optimiziation Eq. \eqref{eq:cont-opt-distaccess} to obtain $\tilde{u}_{t:t+M-1}$
\STATE Apply $\tilde{u}_t$ as the control input $u_t$
\ENDFOR
\end{algorithmic}
\caption{Online Learning Robust Control (Known System with Disturbance Preview)}
\label{alg:online-control-distaccess}
\end{algorithm}

\subsubsection{Discussion}

RHC algorithms are in general complex because of the explicit optimization that is carried out at every time step. The complexity could arise from the system models being too complicated to be directly used for prediction and sometimes the constraints in the problem. If the optimization is convex and the system is linear then the optimization can be solved efficiently via primal-dual interior point frameworks \cite{wright2019efficient}. Complex nonlinear RHC optimization such as Eq. \eqref{eq:cont-opt-distaccess} could be solved efficiently via online linearization of the nonlinear model. Such approaches have been shown to be empirically very effective for a wide range nonlinear control applications \cite{lawrynczuk2014computationally}.

\subsection{Online Control Framework for Unknown System}

For the unknown system case, we assume the system dynamics is parametrized by an unknown parameter $\theta$, i.e.,
\begin{equation}
x_{t+1} = f(x_t,u_t,w_t;\theta). \nonumber
\end{equation}
The online controller we propose operates in two phases: (i) {\it estimation phase}, and (ii) {\it control phase}. The estimation phase runs for a duration of $N$ time steps. We assume that the estimation algorithm is such that at the end of the estimation phase the estimated parameter $\hat{\theta}$ is such that $\norm{\hat{\theta}-\theta}_2 \leq g(N)$, a bounded and decreasing function of $N$. In the discussion below, we comment on the estimation procedures for specific instances of the system. In this work we present the performance analysis of the online controller without restricting the analysis to a specific estimation procedure. The performance guarantee is presented in terms of the accuracy of a given estimation algorithm $g(N)$. Thus, the analysis we present can be extended to any estimation procedure.

In the control phase, the controller is the online receding horizon controller similar to the known system case. At each instant, the controller optimizes the cost-to-go for the horizon $M$ for the realized disturbance for the estimated system:
\begin{equation}
\underset{\tilde{u}_{t:t+M-1}}{\inf} \sum_{j = t}^{t+M-1} c_j(\tilde{x}_j, \tilde{u}_j) \ \text{s.t.} \ \tilde{x}_{j+1} = f(x_t,u_t,w_t;\hat{\theta}), \ \tilde{x}_{t} = x_t, \ \tilde{u}_j \in \mathcal{U}.
\label{eq:cont-opt-distaccess-unknown}
\end{equation}
We later argue that the solution to this optimization exists. Please see proof of Lemma \ref{lem:Lipschitz} for a detailed argument. We denote the solution of this optimization by $\text{MPC}^t(w_{t:t+M-1};\hat{\theta})$. The control input $u_t$ is set as the first element of $\text{MPC}^t(w_{t:t+M-1};\hat{\theta})$. We succinctly denote the control input by $\kappa_M(x_t;\hat{\theta})$.

\subsubsection{Discussion}

In this work, we do not specify the estimation algorithm, rather we present a general framework and performance guarantee for a given black-box estimation procedure whose accuracy is characterized by $g(N)$, where $N$ is the duration of the estimation phase.

The estimation procedure is trivially simple when the system is a linear controllable system. In this case, the system matrices can be estimated accurately in finite time by generating a sequence of control inputs that is persistently exciting over a finite interval (see \cite{moore1983persistence} for definition of persistence of excitation) and using least-squares to compute the estimate of the system matrices. In this case $N = O(1)$ and $g(N) = 0$. Hence, the online controller will be able to achieve the same performance as in the known system case.

The estimation can also be simpler when the nonlinear system is linear in parameters \cite{lehrer2010parameter}, i.e., dynamics of the form $x_{k+1} = x_k + f(x_k,u_k) + g(x_k,u_k)\theta$. Under certain conditions on $g(x_k,u_k)$, an estimator can be designed to estimate $\theta$ in finite time \cite{lehrer2010parameter}. We note that a condition similar to persistence of excitation is required in this case too.

Nonlinear systems are in general complex to estimate. A typical approach to estimate nonlinear systems is via the Koopman operator \cite{chen2018sample,mezic2020koopman}. The Koopman operator essentially specifies the transition in a lifted observable space. The Koopman operator can be approximately represented as a point in a linear vector space. The only disadvantage is that this representation requires a suitable set of basis functions to be known. Given this representation, linear estimation via least-squares can be applied to estimate the Koopman operator approximately \cite{chen2018sample}.

The general version of the online control algorithm for the unknown system case is shown in Algorithm \ref{alg:online-control-distaccess}.

\begin{algorithm}[]
\begin{algorithmic}[1]
\STATE \textbf{Input}: $N$, $M$
\STATE Initialize: $\hat{\theta} = 0
\FOR{t = 1,...,T}
\STATE Observe $x_t$, $\{c_j(.,.)\}_{t \leq j \leq t+M-1}$, $w_{t:t+m-1}$
\IF{$t < N$}
\STATE Apply control for estimation phase
\ELSE
\IF{$t == N$}
\STATE $\hat{\theta} \leftarrow$ estimation$(\mathcal{D})$, $\mathcal{D} = \{\{x_{k+1},x_k,u_k,w_k\}, {1 \leq k \leq N-1}\}$
\ENDIF
\STATE Solve the optimiziation Eq. \eqref{eq:cont-opt-distaccess-unknown} to obtain $\tilde{u}_{t:t+M-1}$
\STATE Apply $\tilde{u}_t$ as the control input $u_t$
\ENDIF
\ENDFOR
\end{algorithmic}
\caption{Online Learning Robust Control (Unknown System with Disturbance Preview)}
\label{alg:online-control-distaccess}
\end{algorithm}

\section{Analysis and Results}

In this section we present the performance analysis for the online controllers presented above. We first present the case where the system is known and then analyze the unknown case.

\subsection{Analysis for Known System Case}

We define $V^t_M(x_t, w_{t:t+M-1})$ as the optimal value function of the optimization problem given in Eq. \ref{eq:cont-opt-distaccess}. Hence, $V^t_M(x_t, w_{t:t+M-1})$ is given by
\begin{align}
& V^t_M(x_t, w_{t:t+M-1}) = J^t_M(x_t, \tilde{u}_{t:t+M-1}, W_{t:t+M-1}), \nonumber \\
& J^t_M(x_t, \tilde{u}_{t:t+M-1}, w_{t:t+M-1}) =  \sum_{j = t}^{t+M-1} c_j(\tilde{x}_j, \tilde{u}_j) \ \text{s.t.} \ \tilde{x}_{j+1} = f(\tilde{x}_j, \tilde{u}_j, w_j),\  \tilde{x}_t = x_t. \nonumber
\end{align}

We note that this function exists and is continuous given that the solution to the optimization exists and is continuous (see Proof of Lemma \ref{lem:Lipschitz} for a more detailed argument). In the next lemma, we characterize the incremental change of the value of this function as the system evolves. We present this characterization for the class of systems that satisfies $V^t_M(x_t) \leq \overline{\alpha}\sigma(x_t) + \overline{\gamma} \sum_{k = t}^{t^e-1}\norm{w_k}^2_2$. This represents a sufficiently general class of systems. It includes the strongly convex quadratic cost functions for linear dynamical systems. As stated in the introduction, the first term in the bound represents the contribution to the cost by the initial state $x_t$ and the second term is the bound to the cost for the deviation effected by the disturbances. Here $\overline{\gamma}$ is the maximum achievable attenuation for this system.
\begin{lemma}
Suppose $t^e = t+M-1$, $w_{t:t^e}$ is accessible. Then there exists constants $\underline{\alpha}_V, \Gamma^{\gamma}_V > 0$ and $\Gamma_V$ such that for each $M \geq 2$ and $x_t \in \mathbb{R}^n$, for the closed-loop system $x_{t+1} = f(x_t, \kappa_M(x_t), w_t)$, $V^t_M(x_t,W_{t:t^e}) \geq \underline{\alpha}_V\sigma(x_t)$ and
\[
V^{t+1}_M(x_{t+1},W_{t+1:t^e+1}) - V^t_M(x_t,W_{t:t^e}) \leq \Gamma_V \sigma(x_t) + \Gamma^{\gamma}_V \sum_{k=t}^{t^e} \norm{w_k}^2_2,\]
where $\underline{\alpha}_V = \underline{\alpha}$, $\Gamma_V = \left(\frac{\overline{\alpha}^2}{\underline{\alpha}(M-1)}-\underline{\alpha}\right), \ \Gamma^{\gamma}_V = \overline{\gamma}\left(\frac{\overline{\alpha}}{\underline{\alpha}(M-1)}+1\right)$.
\label{lem:Lyapunov-existence}
\end{lemma}

Please see the Appendix for the proof. The result states that the change in the value of the optimal cost-to-go when the system evolves from $t$ to $t+1$ is bounded by (i) the cost of the initial state $x_t$ and (ii) some constant times the total energy of the disturbances for the duration $M$ starting from $t$. Next we use the above lemma to characterize an upper bound on the per step cost incurred by the online controller.
\begin{lemma}
Under the conditions of Lemma \ref{lem:Lyapunov-existence}, suppose, $b = \overline{\gamma}\left(\frac{\underline{\alpha}}{\overline{\alpha}} + 1\right)$, $H \geq M$, $t_H = t+H$. Then, for $M > \overline{\alpha}^2/\underline{\alpha}^2 + 1$, and any $a$, s.t. $1 > a \geq 1 - \tilde{\epsilon}/\overline{\alpha}, 0 < \tilde{\epsilon} < \underline{\alpha} - \frac{\overline{\alpha}^2}{(M-1)\underline{\alpha}}$, the per-step cost of the closed-loop system $x_{t+1} = f(x_t, \kappa_M(x_t), w_t)$ at $t_H$ satisfies
\begin{equation}
c_{t+H}(x_{t_H},\kappa_M(x_{t_H})) \leq M_\lambda e^{-\lambda H}\sigma(x_t) + \sum_{j=t}^{t_H+M-2} M_{w,j} \norm{w_j}^2_2, \ \text{where}, \nonumber
\end{equation}
$M_\lambda = \overline{\alpha}, \ \lambda = -\ln{a}, \ M_{w,j} =  \left(ba^{H-M}/(1-a)+a^H\overline{\gamma}\right), \ \text{when} \ t \leq j \leq t^e, M_{w,j} = b/(1-a)a^{t_H-j-1}, \ \text{when} \ t^e+1 \leq j \leq t_H-1, \ M_{w,j} = b/(1-a), \text{when} \ t_H \leq j \leq t_H+M-2$.
\label{lem:cost-bound}
\end{lemma}

Please see the Appendix for the proof. The results imply that the cost at a time $t+H$ is bounded by two terms: (i) the contribution of the cost from the initial state $x_t$ that is exponentially decaying with $H$ and (ii) the contribution from the disturbances seen by the system so far. From the form of the coefficients $M_{w,j}$ it is clear that the online controller exponentially diminishes the contribution of the disturbances from earlier times. In the next theorem we characterize the performance of the online controller.
\begin{theorem}
Under the conditions of Lemma \ref{lem:Lyapunov-existence}, Then, for $T \geq M+1$, $M > \overline{\alpha}^2/\underline{\alpha}^2 + 1$, and any $a$ s.t. $1 > a \geq 1 - \tilde{\epsilon}/\overline{\alpha}, 0 < \tilde{\epsilon} < \underline{\alpha} - \frac{\overline{\alpha}^2}{(M-1)\underline{\alpha}}$, the total cost incurred by the closed-loop system $x_{t+1} = f(x_t, \kappa_M(x_t), w_t)$ satisfies
\begin{equation}
\sum_{t=1}^{T} c_{t}(x_{t},\kappa_M(x_{t})) - \gamma \sum_{t=1}^T \norm{w_t}^2_2 \leq \mathcal{O}(1), \ \gamma \geq \gamma_c \nonumber
\end{equation}
where $\gamma_c = \frac{b\left((M-1)(1-a)+1\right)}{(1-a)^2}$.
\label{thm:cost-regret}
\end{theorem}

Please see the Appendix for the proof. It follows from the result that the achievable attenuation by the RHC approach is $\gamma_c$. We find that the performance worsens with horizon length $M$. The scaling of the performance with $M$ can be understood by the following observation. When the prediction horizon $M$ is almost the duration $T$ we see that the sequence of control computed by RHC algorithm over the duration $T$ is sub-optimal to the control sequence computed via the optimization of RHC at the initial time for the duration $M$; unless the horizon of the RHC optimization is itself reduced moving forward in time. Hence the sequence of control computed by RHC is below par and can degrade the performance provided the horizon is fixed. Given the bounds on $a$ we can choose $a$ and $M$ such that $2\left(1+\frac{\underline{\alpha}}{\overline{\alpha}}\right)\left(\frac{\tilde{\gamma}\overline{\alpha}^2}{\underline{\alpha}^2} +\tilde{\gamma}^2\right) \overline{\gamma} \gtrapprox \gamma_c \geq 2\overline{\gamma}$, where $\tilde{\gamma} = \frac{\ceil{\frac{\overline{\alpha}^2}{\underline{\alpha}^2}}\underline{\alpha}}{\overline{\alpha}\left(\frac{\underline{\alpha}^2}{\overline{\alpha}^2}\ceil{\frac{\overline{\alpha}^2}{\underline{\alpha}^2}}-1\right)}$. This means that the RHC approach cannot beat $2\overline{\gamma}$ and that $\gamma_c = \mathcal{O}(\overline{\gamma})$.

\subsection{Analysis for Unknown System Case}

Here, we present the performance analysis for a black-box estimation procedure with accuracy $\norm{\hat{\theta}-\theta}_F \leq g(N)$. Let
\begin{align}
& V^t_M(x_t, w_{t:t+M-1};\hat{\theta}) = J^t_M(x_t, \tilde{u}_{t:t+M-1}, w_{t:t+M-1};\hat{\theta}), \nonumber \\
& J^t_M(x_t, \tilde{u}_{t:t+M-1}, w_{t:t+M-1}) =  \sum_{j = t}^{t+M-1} c_j(\tilde{x}_j, \tilde{u}_j) \ \text{s.t.} \ \tilde{x}_{j+1} = f(\tilde{x}_j, \tilde{u}_j, w_j; \hat{\theta}),\  \tilde{x}_t = x_t. \nonumber
\end{align}

Let $U$ and $\tilde{U}$ be two control sequence of length $M$. Define
\begin{equation}
J^t_{1,M}(x_t,U,\tilde{U},w_{t:t^e};\theta) = J^t_M(x_t,U,W_{t:t^e};\theta)- J^t_M(x_t,\tilde{U},w_{t:t^e};\theta). \nonumber
\end{equation}

We argue in Lemma \ref{lem:Lipschitz} that the solution to the RHC optimization $\text{MPC}^t(w_{t:t^e};\hat{\theta})$ exists. Hence the function $V^t_M(x_t, w_{t:t^e};\hat{\theta})$ is well defined.
\begin{definition}
We say that a function $f_1:\mathbb{R}^p\times \mathbb{R}^p \times \mathbb{R}^q \rightarrow \mathbb{R}$, $f_1 \in \mathcal{L}^{\alpha,\beta}$ provided $f_1(s,\tilde{s},\lambda) - f_1(s,\tilde{s},\tilde{\lambda}) \leq c\norm{s-\tilde{s}}^\alpha_2\norm{\lambda-\tilde{\lambda}}^\beta_2$.
\end{definition}

We make the following additional assumptions on the system and the cost functions. These assumptions are required to establish Lipschitz continuity of the solution $\text{MPC}^t(w_{t:t^e};\hat{\theta})$. This is the key additional step that is required to extend the analysis technique applied to the known system case.
\begin{assumption} (System)
(i) The system given by $x_{t+1} = f(x_t,u_t,w_t;\theta)$ is Bounded Input Bounded Output (BIBO) stable; (ii) the condition $\sigma(x) = 0$ is bounded trajectory; (iii) the estimation accuracy $g(N)$ can be guaranteed by bounded excitation; (iv) $\theta \in \Theta$, a compact set and $\norm{\theta}_2 \leq S$, and $f$ is continuous for all $\theta \in \Theta$; (v) the function $f(x_t,u_t,w_t;\theta)$ is Lipschitz, i.e., $f(x'_t,u'_t,w_t;\theta) - f(x_t,u_t,w_t;\theta) \leq \alpha_f\norm{\theta}_2\left(\norm{x'_t-x_t}_2 + \norm{u'_t-u_t}_2\right)$ (trivially includes linear systems); (vi) the cost function $c_t(.,.)$ is convex in both arguments and strongly convex in the second argument (includes LQR); (vii) $J^t_{1,M} = f_1 \in \mathcal{L}^{1,1}$ wherein $s = U, \tilde{s} = \tilde{U}, \lambda = \theta, \tilde{\lambda} = \tilde{\theta}$; (viii) $\hat{\theta} \in \Theta$.
\label{ass:sys}
\end{assumption}

The assumption that the estimation accuracy $g(N)$ can be guaranteed by bounded excitation is trivially satisfiable for linear controllable systems. The assumption that the system is BIBO is required to ensure that the total cost incurred during the estimation phase scales only linearly with $N$.
\begin{lemma}
Under Assumption \ref{ass:sys}, it holds that
\begin{equation}
V^t_M(.,.;\hat{\theta}) - V^t_M(.,.;\theta) \leq \alpha_V\norm{\hat{\theta}-\theta}_2, \ \kappa_M(x_t;\hat{\theta}) - \kappa_M(x_t;\theta) \leq \alpha_\kappa \norm{\hat{\theta}-\theta}_2. \nonumber
\end{equation}
\label{lem:Lipschitz}
\end{lemma}

To establish this result we draw from results on Lipschitz continuity of solutions to parametric optimization \cite{quincampoix2008parameterized}. Please see the Appendix for the detailed proof. In the next lemma, we characterize the incremental change of the value of the function $V^t_M(.,.;\hat{\theta})$ in the control phase as the closed loop system evolves from $t$ to $t+1$. We establish these results for the same class of systems assumed for the known system case, i.e., systems for which $V^t_M(x_t, W_{t:t^e};\theta) \leq \overline{\alpha}\sigma(x_t) + \overline{\gamma} \sum_{k=t}^{t^e-1} \norm{w_k}^2_2$ and additionally Assumption \ref{ass:sys}.
\begin{lemma}
Suppose Assumptions \ref{ass:noise}, \ref{ass:stagecost} \ref{ass:sys} hold. Suppose $t^e = t_M-1$, $W_{t:t^e}$ is accessible. Then there exists constants $\underline{\alpha}_V, \Gamma^{\gamma}_V > 0$ and $\Gamma_V$ such that for each $M \geq 2$ and $x_t \in \mathbb{R}^n$, for the closed-loop system $x_{t+1} = f(x_t, \kappa_M(x_t;\hat{\theta}), w_t)$ in the control phase satisfies $V^t_M(x_t,W_{t:t^e};\hat{\theta}) \geq \underline{\alpha}_V\sigma(x_t)$ and
\[
V^{t+1}_M(x_{t+1},W_{t+1:t^e+1};\hat{\theta}) - V^t_M(x_t,W_{t:t^e};\hat{\theta}) \leq \Gamma_V \sigma(x_t) + \Gamma^{\gamma}_V \sum_{k=t}^{t^e} \norm{w_k}^2_2 +\Gamma^\theta_V \norm{\hat{\theta}-\theta}_2,\]
where $\Gamma^\theta_V = \left(2\alpha_V+ \alpha_c\tilde{\alpha}_f \alpha_\kappa(M-1)\left(\frac{\overline{\alpha}}{\underline{\alpha}(M-1)}+1\right)\right)$, $\underline{\alpha}_V, \Gamma_V, \Gamma^{\gamma}_V$ are the same as in Lemma \ref{lem:Lyapunov-existence} and $\tilde{\alpha}_f = \max_{0\leq k \leq M-2} \alpha^{k+1}_fS^{k+1}$.
\label{lem:Lyapunov-existence-unknownsystem}
\end{lemma}

Please see the Appendix for the Proof. We note that the first two terms in the bound are the same as in the known system case. The last term arises from the error in the parameter estimate $\hat{\theta}$. Next we use the above lemma to characterize an upper bound on the per step cost incurred by the online controller in the control phase.
\begin{lemma}
Under the conditions of Lemma \ref{lem:Lyapunov-existence-unknownsystem}, suppose $b = \overline{\gamma}\left(\frac{\underline{\alpha}}{\overline{\alpha}} + 1\right)$, $H \geq M$, $t_H = t+H$. Then,  $M > \overline{\alpha}^2/\underline{\alpha}^2 + 1$, and any $a$, s.t. $1 > a \geq 1 - \tilde{\epsilon}/\overline{\alpha}, 0 < \tilde{\epsilon} < \underline{\alpha} - \frac{\overline{\alpha}^2}{(M-1)\underline{\alpha}}$, the per-step cost for the closed-loop system $x_{t+1} = f(x_t, \kappa_M(x_t;\hat{\theta}), w_t)$ at $t_H$ in the control phase satisfies
\begin{equation}
c_{t+H}(x_{t_H},\kappa_M(x_{t_H};\hat{\theta})) \leq M_\lambda e^{-\lambda H}\sigma(x_t) + \sum_{j=t}^{t_H+M-2} M_{w,j} \norm{w_j}^2_2 + M_{\theta}\norm{\hat{\theta}-\theta}_2, \ \text{where}, \nonumber
\end{equation}
$M_\lambda = \overline{\alpha}, \ \lambda = -\ln{a}, \ M_{w,j} =  \left(ba^{H-M}/(1-a)+a^H\overline{\gamma}\right), \ \text{when} \ t \leq j \leq t^e, M_{w,j} = \frac{b}/(1-a)a^{t_H-j-1}, \ \text{when} \ t^e+1 \leq j \leq t_H-1, \ M_{w,j} = b/(1-a), \ \text{when} \ t_H \leq j \leq t_H+M-2$, $M_\theta = \left( c(1-a^H)(1-a) +a^H \alpha_V\right)$, where $c = \left(\alpha_V\left(2+\frac{\tilde{\epsilon}}{\overline{\alpha}}\right)+ \alpha_c\tilde{\alpha}_f(M-1)\left(\frac{\underline{\alpha}-\tilde{\epsilon}}{\overline{\alpha}} + 1\right)\right)$.
\label{lem:cost-bound-unknownsystem}
\end{lemma}

Please see the Appendix for the proof. We note that the per-step cost in the control phase in this case is bounded by three terms; the first two terms are the same as before while the additional third term arises from the error in the parameter estimate $\hat{\theta}$. In the next theorem we characterize the performance of the online controller.
\begin{theorem}
Suppose the conditions of Lemma \ref{lem:Lyapunov-existence-unknownsystem}. Then, for $T \geq M+1$, $M > \overline{\alpha}^2/\underline{\alpha}^2 + 1$, and any $a$ s.t. $1 > a \geq 1 - \tilde{\epsilon}/\overline{\alpha}, 0 < \tilde{\epsilon} < \underline{\alpha} - \frac{\overline{\alpha}^2}{(M-1)\underline{\alpha}}$, the total cost incurred by the closed-loop system $x_{t+1} = f(x_t, \kappa_M(x_t;\hat{\theta}), w_t)$ satisfies
\begin{equation}
\sum_{t=1}^{T} c_{t}(x_{t},\kappa_M(x_{t})) - \gamma \sum_{t=1}^T \norm{w_t}^2_2 \leq \mathcal{O}(N) + \mathcal{O}(1) + \mathcal{O}((T-N+1)g(N)), \ \gamma \geq \gamma_c \nonumber
\end{equation}
where $\gamma_c = \frac{b\left((M-1)(1-a)+1\right)}{(1-a)^2}$.
\label{thm:cost-regret-unknownsystem}
\end{theorem}
{\em Proof}: By Assumption \ref{ass:sys} that the system is BIBO and the accuracy $g(N)$ can be guaranteed by bounded excitation it follows that the cost for the estimation phase is bounded by $\gamma \sum_{t=1}^{N-1} \norm{w_t}^2_2 + \mathcal{O}(N)$. Then from Lemma \ref{lem:cost-bound-unknownsystem}, the fact that $\norm{\hat{\theta} -\theta}_2 \leq g(N)$, following steps similar to proof of Theorem \ref{thm:cost-regret} it follows that the bound for the cost for the control phase is $\gamma \sum_{t=N}^{T} \norm{w_t}^2_2 + \mathcal{O}(1) + \mathcal{O}((T-N+1)g(N))$. Combining the two observations the result follows $\blacksquare$

The result presented characterizes the achievable performance by the RHC approach for a given black-box estimation procedure. If $N = \mathcal{O}(1), g(N)=0$, as is the case with linear controllable systems, we recover the results for the known system case, where the RHC approach achieves the attenuation $\gamma_c$. Similarly, for nonlinear systems linear in unknown parameters, as argued earlier, $N = \mathcal{O}(1), g(N)=0$, and so the RHC approach will achieve the attenuation $\gamma_c$ in this case too. For a general estimation procedure for which $g(N) = \mathcal{O}(1/\sqrt{N})$, the optimal duration for the estimation phase is $N = \mathcal{O}(T^{2/3})$ and $R^p_T \leq \mathcal{O}(T^{2/3})$.

\bibliographystyle{plain}

redpajama_set_name: RedPajamaArXiv


Lee Taylor - ZineWiki - the history and culture of zines, independent media and the small press.
Lee Taylor is a zine editor from the UK.
Lee Taylor is the creator of the zines Larry and The Routes We Wander, as well as co-creator of The Screever.
This page was last modified on 1 September 2012, at 17:15.


Someone asked me: "Is Werralux tightly connected with the Werra camera?"
Both products are tightly connected to the VEB Carl Zeiss Jena. After the riots of the 17th of June 1953 the party leaders decided to increase the production of high value consumer goods to keep up with West-German standards. Carl Zeiss Jena commited itself to develop a middle class camera and produce it in large figures to fulfill the demand of the GDR population. For that purpose Zeiss Jena incorporated an existing factory in Eisfeld and modernized it in order to produce that camera called "Werra". Just about the same thing happened with the VEB Feingerätewerk Weimar, which was founded on the 1st of July 1950 and was incorporated into Zeiss Jena by about 1953 to produce light meters and subminiature film projectors.
The "Werralux" was first shown on Leipzig Spring Fair 1956 (cp. Bild und Ton, 4/56, p. 97) and produced in various designs during the following years. The name "WERRAlux" indicates that originally it was meant as an affordable exposure meter for the first version Werra camera. This assumption gets it's logic explanation by the fact that Eisfeld - where the camera was made - lies at the river WERRA, Weimar - where the light meter was made - does not. But this light meter was of course also bought by owners of other cameras. So in spring 1960 the "Werralux" was replaced by a more advanced model (cp. Bild und Ton, 3/60, p. 88). Casually the name was changed to "Weimarlux", which finally refered more to its producer. Meanwhile the Feingerätewerk Weimar had left Carl Zeiss Jena and later became part of the enormous watch making enterprise VEB Uhrenkombinat Ruhla. But they kept making Weimarlux hand meters until the last days of GDR.
This is a quite rare selenium meter made by "Volkseigener Betrieb Elektro-Apparate-Werke Josef Wissarionowitsch Stalin, Berlin-Treptow (EAW)". These light meters were also made as part of a consumer-goods-programme after the 17th of June 1953 to lower the resentments of the GDR population. It is still working and astonishingly accurate.
This light meter was shown first at Leipzig Autumn Fair 1954 (cp. Bild und Ton, 9/54, p. 257). But "shown first" is just half of the truth. This Excelsior Junior is just a redesigned version of a model that was already available in the second half of the 1930s. As a result of that the whole handling principle of this instrument seems very outdated. After every measurement you have to align the indicated light value to the sensitivity of the film you are using. This requires quite a lot of concentration and threatens to overburden a photo-amateur easily. The Zeiss-meter shown at the same fair prooved that there were already much better solutions for a modern light meter. Only the in comparison low price of the Excelsior legitimated its existence. After much more modern meters like the Iris or Werralux were launched, the factory of Rudolf Kiesewetter in Leipzig stopped the production of photographic meters in the early 1960s.


Since one group of people is predicting the Rapture will happen tomorrow, I thought maybe I should share the lyrics to a song I wrote a couple years ago. I mean no disrespect. This is based on an actual true story that actually happened to me.
And the silence that met him felt lethal.
And he knew that it was the rapture.
We were just across the street talking to Lloyd Tabb.
And of course it was.
And of course it still is.
On a personal level, I believe in The Rapture, but given that Jesus Himself said He didn't know when it was going to happen, and given that the Bible clearly and repeatedly says not to try and figure it out, I find it really distasteful when people do this kind of thing. And of course as you can see above, it really traumatized me.


Looking for new replacement windows in Harrison Township, Michigan? Stop the search! Call Hansons and discover all the beautiful new replacement windows we carry for homeowners in your area, and marvel at the cheapest prices anywhere. Hansons offers a wide array of styles, shapes and sizes, such as bay, bow, single hung, double hung, casement and more. In fact, no one in the Harrison Township area can match Hansons when it comes to new windows. Since 1988, we've been satisfying homeowners in your area with brand new replacement windows. That's 25 years of happy customers! Thousands of people in and around Harrison Township have improved their home's resale value with new replacement windows that keep their houses warm in the winter and refreshingly cool in the summer, resulting in lower energy bills, year round.
You know that "dream look" that you've always wanted for your home? Hansons will help you realize that dream look with our high quality, low priced replacement windows. And you won't have to worry about cost, because Hansons will never be undersold. There's also financing and we can get you affordable monthly payments (to qualified buyers).
Give us a call today and we'll get you started on your dream home right away! It all starts with a free in-home consultation by one of our trained windows experts. The time is right to upgrade your Harrison Township home with gorgeous new replacement windows from Hansons.
Vinyl is a plastic at the end of the day and if the vinyl windows you buy are not built to withstand the weather conditions you'll be right back where you started.
Our special-formula vinyl never needs to be painted, puttied or sealed.
Homeowners from Harrison Township to Detroit have been using Hansons Windows because our windows are the highest quality and are sold at the lowest prices.
Open, screen panels let in the sunshine and breeze while blocking out mosquitoes and other outdoor annoyances.


The current position of DIAMOND DESTINY is in Philippine Sea with coordinates 33.87769° / 138.92906° as reported on 2018-06-07 17:38 by AIS. The vessel's current speed is 13.5 Knots and is heading at the port of KR YOS.
The current position of DIAMOND DESTINY is detected by our AIS receivers and we are not responsible for the reliability of the data. The last position was recorded while the vessels was in Coverage by Ais receivers.


Tom Corless was at the Trolley Car Cafe soft opening today and took a ton of great pictures! On the corner of Hollywood and Sunset at Disney's Hollywood Studios, the location officially opens on Tuesday, but today guests are able to enter by obtaining a voucher. Entry is via the patio on Hollywood Blvd., with the exit through the side door onto Sunset Blvd.
The menu is a standard Starbucks menu.
The interior theming is spectacular!
The utensil dispensers even have a Trolley Car Cafe logo.
Not only does the interior look great, the food does too!
These are the vouchers you need to get in for the soft opening. They are handing them out at random on Hollywood Blvd.
The Trolley Car Cafe has several different logos, all of which seem well done.
Curious if they added outdoor seating "around back"?
they won't be adding seating. there's nowhere to even add seating. As far as Epcot goes, you can sit at Electric Umbrella after getting your drinks or eat outside if there's seating available. i don't know why it wouldn't feel like disney.
Villains in Vogue and Sweet Spells are still open. If you are headed up Hollywood Blvd from the main entrance, the Trolley Car Cafe on your right as you reach Sunset Blvd.


I did not expect to love this show. After the first episode I just can't stop watching it.
This show slowly grew on me. At first it felt like any normal CIA/FBI tv show but after episodes 10, it's started to get interested. I want to know more.
John Stamos still looks good after all these years and now he is a grandfather.
I am not sure about this new show. I enjoyed watching the first few episodes but after awhile it felt a little bit the same like the rest. I probably should give it a break and continue watching it after watching other tv shows.
I came late to the Big Bang Theory world but I am catching up with the show on iflix. I am on season 8 now and loving it. It feels like friends but so much better.


It started off as what seemed to be a fairly normal rainy Monday on August 20th. We went to Tina's NST and Logan failed his NST. He heart rate would decel really low after big movements. We headed down to OB triage for futher testing. We were there for about 2 1/2 hours for heart monitoring and a ultrasound. We were sure at about 2:40pm that we were going home soon. When the Doc came into the room he said he was a bit concerned by the fact that at the end of every contraction Tina was having, Logan's heart rate was was decel'ing. He felt that he was doing something to his umbilical cord and even though things should be fine there was always the chance of it being wrapped around his neck and with Tina in early labor he didn't want to take any chances. So he said to us want to go meet your baby? Of course we said yes So this was now 2:45pm. Then all of a sudden our room got super busy and we were rather confused because we figured it would be a few hours before it went down but then a nurse says oh you don't know they are aiming for a 3:00 start . So they are flying around getting Tina totally prepped for the OR. She was on her way walking to the OR at 3:10. At 3:45pm Logan was born and we found out that he had his head lodged into Tina's pelvis and they had to use forceps to get him out and also found his cord wrapped around his neck. Thank goodness They decided to take him right then!!! Logan was 8lbs 2ozs and was 20 3/4 inches long, with his head off the charts at 37 cms (average size is 32 cm). Logan is a great baby and is already a huge joy to our family. Maddie and Allie love their new little brother and enjoy spending time holding him. Tina is doing well, her BP did go up a bit afterwards but is evening out already. Joel still has a week off from work before it's back to the grind. Another big thing happening in our household is Maddie starts kindergarten next week. Not sure is more excited Maddie or Tina :) We pray that God is continuing to Bless each and everyone of you as he is blessing us.


i. Prime Minister Narendra Modi inaugurated 16th International Energy Forum Ministerial Meeting in New Delhi. It is the largest gathering of Ministers from energy consuming, producing and transit countries.
ii. Hosted by India and co-hosted by China and Korea, the meeting aims to focus on how global shifts, transition policies and new technologies influence market stability and future investment in the energy sector.
· China Capital- Beijing, Currency- Renminbi, President- Xi Jinping.
i. The tenth edition of a biennial exhibition of weapons and military hardware - DefExpo India- 2018 has begun at Kancheepuram in Tamil Nadu. The four-day long defence expo was formally inaugurated by Prime Minister Narendra Modi.
ii. Indigenously developed military helicopters, aircraft, missiles and rockets, capabilities to manufacture submarines, frigates and corvettes would be showcased at the event.
i. India and World Expo 2020 signed participants contract for India's pavilion in the prestigious World Expo 2020 held once in 5 years.
ii. The contract provides for the setting up of India pavilion at Expo 2020 on an extra large plot (about one acre) in the 'Opportunity' segment.
i. President Ram Nath Kovind has asked Indian Diaspora in Zambia to become the partner in India's growth and asked them to take advantage of Overseas Citizen of India, OCI programme.
ii. Four MOUs were signed between the two countries which include, the establishment of Entrepreneurship Development Institute in Zambia, taxation, visa exemption on diplomatic passports and judicial cooperation. This is the first time in three decades that a President of India is undertaking a state visit to Zambia.
· Zambia Capital- Lusaka, Currency- Zambian kwacha, President of Zambia- Edgar Chagwa Lungu.
i. Jammu and Kashmir Bank has launched a special financing scheme named 'Add-on Working Capital GST' to help the state industry cope with the delay in reimbursement of GST under special tax relief.
ii. The scheme was launched by J&K Finance Minister Syed Altaf Bukhari.
· The Chairman and CEO J&K Bank is Parvez Ahmed.
i. Balram Bhargava has been appointed the new Director General of the Indian Council of Medical Research (ICMR) and Secretary of the Department of Health Research.
ii. Bhargava, currently a senior consultant cardiologist at the All India Institute of Medical Science, will carry out this role until 2021. He will succeed Soumya Swaminathan.
i. Former UN Secretary-General Ban Ki-moon has been elected chairman of 'Boao Forum for Asia' (BFA). He has replaced former Japanese Prime Minister Yasuo Fukuda.
ii. Founded in 2001, the BFA is a non-governmental and non-profit international organisation committed to promoting regional economic integration and bringing Asian countries closer to their development goals.
i. Rishad Premji, Board member of Wipro Ltd. has been appointed as the Chairman of the National Association of Software and Services Companies (NASSCOM) for 2018-19.
ii. He succeeds Raman Roy, Chairman and Managing Director, who served as Chairman of NASSCOM for the year 2017-18. NASSCOM also appointed Keshav Murugesh as the Vice Chairman for 2018-19.
· Debjani Ghosh has been recently appointed the new president of Nasscom.
i. Indian shooter Shreyasi Singh won the women's double trap gold in a shoot-off after scoring 96 points to take India's gold medal tally at the 21st Commonwealth Games 2018 to 12.
ii. This was her second CWG medal after having claimed a silver at the 2014 Glasgow Games. Another Indian shooter Varsha Varman finished fourth in the event, scoring 86 points.
i. Indian shooter Om Prakash Mitharval settled for the bronze medal in the men's 50m pistol event at the 21st Commonwealth Games at Gold Coast, Australia.
ii. Host nation Australia's Daniel Repacholi bagged the gold medal in the event with a Games record 227.2 while Shakil Ahmed of Bangladesh won the silver.


Here's what to expect on the DVD for this Michael Cera/Kat Dennings teen comedy.
Here's your first look at the new comedy starring Michael Cera and Kat Dennings.
Plus a load of other casting news.
Plus other exciting casting news!
Based on the novel by Rachel Cohn and David Levithan, the story revolves around two bridge-and-tunnel teenagers, nursing broken hearts, who fall in love during one sleepless night in New York while searching for their favorite band's unannounced show.


The LGBT Resource Center offers a library of more than 500 books, DVDs and videos related to gender, sexual orientation and the LGBT community. The materials are available for checkout to UNF students, faculty and staff for up to two weeks for books and one week for DVDs and videos.
If you are a student researching gender or sexuality for a course at UNF, please feel free to visit the LGBT Resource Center and the staff will be happy to help you locate appropriate resources.
Donations of new and used books and DVDs relating to gender and sexual orientation are welcome. If you would like to donate resources, please contact the LGBT Resource Center at unflgbt@unf.edu or (904) 620-4720.


text:
Q: Перенос проекта из папки user/source/repos в другую Есть проект Windows Forms, скопировал его из дефолтной repos в папку на рабочем столе, при открытии скопированного проекта страница, где должен отображаться макет WindowsForms(конструктор), пишется ошибка:

Файл "E:\Users\mikkel\source\repos\WindowsFormsApp1\WindowsFormsApp1\Form1.cs" не поддерживает синтаксический анализ кода или его автоматическое создание, поскольку он не включен в проект с поддержкой кода.

Только что обратил внимание, что в ошибке указан старый путь к проекту, хотя Form1.cs также присутствует в скопированной папке. При открытии того же проекта из дефолтной repos такой ошибки не возникает.
Еще я заметил, что в коде программы никак не выделяется метод InitializeComponent();, хотя должен быть желтым.
Код класса Form1.cs:
using System;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click_1(object sender, EventArgs e)
    {
        if (textBox3.Text != "" && textBox4.Text != "" && textBox5.Text != "")

        {
            CellPhone phone = new CellPhone();
            phone.Manufacturer = textBox3.Text;
            phone.Model = textBox4.Text;
            phone.IsOld = checkBox1.Checked ? true : false;
            try
            {
                phone.Number = Convert.ToInt32(textBox5.Text);
                textBox2.Text +=  $"Производитель: {phone.Manufacturer} " + Environment.NewLine + $"Модель:  {phone.Model}" + Environment.NewLine + $"Б / У:   {phone.IsOld}" + Environment.NewLine + $"Количество:  {phone.Number}" + Environment.NewLine;
            }
            catch { MessageBox.Show("Кол-во указывается только цифрами."); }
        }
        else MessageBox.Show("Не все поля заполнены!");
    }
}
public class CellPhone
{
    public string Manufacturer;
    public string Model;
    public int Number;
    public bool IsOld;
    public CellPhone(string manufacturer, string model, int number, bool isOld)
    {
        Manufacturer = manufacturer;
        Model = model;
        Number = number;
        IsOld = isOld;
    }
    public CellPhone()
    {
        Manufacturer = "unknown manufacturer";
        Model = "unknown model";
        Number = 0;
        IsOld = false;
        }
    }
}

Мне кажется где то нужно указать новый путь до класса Form1, но я не знаю где это делается.

A: Решение проблемы нашел в создании нового проекта уже в нужной папке и копированием дизайн файла и файла класса form1 в исходники

redpajama_set_name: RedPajamaStackExchange


Resort Township supervisor Bill Fedus wound up in hot water Tuesday for opening East Park earlier than its official Tuesday, May 1, opening day.
During Tuesday's township board meeting, parks and recreation board member Robert Gulledge asked how the park got opened earlier than it should have, and challenged Fedus' action when Fedus admitted he had unlocked the park gate that sits off of U.S. 31 because of the nice weather that came Easter weekend.
"The board made the decision (to keep the gate locked until May 1)," Gulledge said. "Maybe we don't need the board (if someone else can open the gate)."
Last April, urged by Township resident Bill Brown to open the park earlier, the board debated at length whether to do so, but then decided to stick with its May 1 opening.
Fedus, newly elected to his supervisor's post, missed last year's debate and didn't know the park's opening day had been a controversial issue.
Fedus Tuesday said he saw numerous cars parked in front of the gate Easter weekend and tried to reach township clerk Lucy Eppler and Gulledge, who was on vacation, to get the key to the gate.
"Numerous people asked me, 'What's the deal with the gate, why don't you open the park?'" Fedus said in a telephone interview Wednesday. "I couldn't get a good reason for the park being closed. I just heard, 'That's the rule.' But the park is paid for out of taxpayer dollars."
Failing to find a key, Fedus said he went to the gate and "picked the lock."
"I took it upon myself," Fedus said. "Maybe I was out of order, but I was willing to take charge."
Gulledge said the park's May 1 opening day was mentioned at the April 3 board meeting, but no one questioned it at that time.
Trustee Tom Walenta, who resigned Tuesday, said the township should stick with its pre-set opening date.
Added treasurer Marv Veurink: "These people (park commissioners) work hard. We need to support them. Otherwise, we should do away with the parks' commission."
While the parks are now open and the issue moot, Fedus said the township should revisit the question before the controversy arises once again next spring.
In a previous meeting of the parks and recreation board, the question arose as to why East Park is even closed in the winter.
The board cited concerns about someone getting stuck there and getting hurt.
At Tuesday's meeting, Holly Jakeway said water in the park restrooms is not turned on until May 1.
If the park is not officially open, then the township doesn't know if all the pre-opening tasks have been done, such as the water turned on, Veurink said.
Also, he said an earlier opening could open the township to liability issues if something goes wrong.
Veurink then added: "If somebody else takes authority, they could be opening themselves up to personal liability."
As he did last April, Brown once again urged the township to open the township parks on Little Traverse Bay off U.S. 31 open before May 1.
"It's a travesty of justice to have the gate locked up," Brown said.


text:
Q: Unable to instantiate VaultConfigDataLoader I'm trying to configure Spring Cloud Vault in my Spring Boot application (v. 2.4.2). I'm using Spring Cloud v. 2020.0.5 (which, according to the Release train, should be fine).
C:\Tools\jdk1.8.0_92\bin\java.exe -Dspring.profiles.active=DEV,local -javaagent:C:\Apps\IC\idealC-2021.1.2\lib\idea_rt.jar=52879:C:\Apps\IC\idealC-2021.1.2\bin -Dfile.encoding=UTF-8 -classpath C:\Tools\jdk1.8.0_92\jre\lib\charsets.jar;C:\Tools\jdk1.8.0_92\jre\lib\deploy.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\access-bridge-64.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\cldrdata.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\dnsns.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\jaccess.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\jfxrt.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\localedata.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\nashorn.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\sunec.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\sunjce_provider.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\sunmscapi.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\sunpkcs11.jar;C:\Tools\jdk1.8.0_92\jre\lib\ext\zipfs.jar;C:\Tools\jdk1.8.0_92\jre\lib\javaws.jar;C:\Tools\jdk1.8.0_92\jre\lib\jce.jar;C:\Tools\jdk1.8.0_92\jre\lib\jfr.jar;C:\Tools\jdk1.8.0_92\jre\lib\jfxswt.jar;C:\Tools\jdk1.8.0_92\jre\lib\jsse.jar;C:\Tools\jdk1.8.0_92\jre\lib\management-agent.jar;C:\Tools\jdk1.8.0_92\jre\lib\plugin.jar;C:\Tools\jdk1.8.0_92\jre\lib\resources.jar;C:\Tools\jdk1.8.0_92\jre\lib\rt.jar;C:\repositories\org\apache\cxf\cxf-spring-boot-starter-jaxws\3.4.5\cxf-spring-boot-starter-jaxws-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-spring-boot-autoconfigure\3.4.5\cxf-spring-boot-autoconfigure-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-rt-transports-http\3.4.5\cxf-rt-transports-http-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-core\3.4.5\cxf-core-3.4.5.jar;C:\repositories\com\fasterxml\woodstox\woodstox-core\6.2.6\woodstox-core-6.2.6.jar;C:\repositories\org\codehaus\woodstox\stax2-api\4.2.1\stax2-api-4.2.1.jar;C:\repositories\org\apache\ws\xmlschema\xmlschema-core\2.2.5\xmlschema-core-2.2.5.jar;C:\repositories\org\apache\cxf\cxf-rt-frontend-jaxws\3.4.5\cxf-rt-frontend-jaxws-3.4.5.jar;C:\repositories\xml-resolver\xml-resolver\1.2\xml-resolver-1.2.jar;C:\repositories\org\ow2\asm\asm\9.2\asm-9.2.jar;C:\repositories\org\apache\cxf\cxf-rt-bindings-soap\3.4.5\cxf-rt-bindings-soap-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-rt-wsdl\3.4.5\cxf-rt-wsdl-3.4.5.jar;C:\repositories\wsdl4j\wsdl4j\1.6.3\wsdl4j-1.6.3.jar;C:\repositories\org\apache\cxf\cxf-rt-databinding-jaxb\3.4.5\cxf-rt-databinding-jaxb-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-rt-bindings-xml\3.4.5\cxf-rt-bindings-xml-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-rt-frontend-simple\3.4.5\cxf-rt-frontend-simple-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-rt-ws-addr\3.4.5\cxf-rt-ws-addr-3.4.5.jar;C:\repositories\org\apache\cxf\cxf-rt-ws-policy\3.4.5\cxf-rt-ws-policy-3.4.5.jar;C:\repositories\org\apache\neethi\neethi\3.1.1\neethi-3.1.1.jar;C:\repositories\org\apache\cxf\cxf-rt-features-metrics\3.4.5\cxf-rt-features-metrics-3.4.5.jar;C:\repositories\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\repositories\org\springframework\boot\spring-boot-starter\2.4.2\spring-boot-starter-2.4.2.jar;C:\repositories\org\springframework\boot\spring-boot-starter-logging\2.4.2\spring-boot-starter-logging-2.4.2.jar;C:\repositories\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\repositories\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\repositories\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;C:\repositories\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;C:\repositories\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;C:\repositories\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\repositories\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;C:\repositories\org\apache\commons\commons-lang3\3.0\commons-lang3-3.0.jar;C:\repositories\javax\xml\bind\jaxb-api\2.1\jaxb-api-2.1.jar;C:\repositories\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;C:\repositories\javax\activation\activation\1.1\activation-1.1.jar;C:\repositories\com\sun\xml\bind\jaxb-impl\2.1.13\jaxb-impl-2.1.13.jar;C:\repositories\org\springframework\security\spring-security-core\5.4.2\spring-security-core-5.4.2.jar;C:\repositories\org\springframework\spring-aop\5.3.3\spring-aop-5.3.3.jar;C:\repositories\org\springframework\spring-expression\5.3.3\spring-expression-5.3.3.jar;C:\repositories\org\springframework\spring-context\5.3.3\spring-context-5.3.3.jar;C:\repositories\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\repositories\org\springframework\spring-web\5.3.3\spring-web-5.3.3.jar;C:\repositories\org\springframework\security\spring-security-config\5.4.2\spring-security-config-5.4.2.jar;C:\repositories\org\springframework\security\spring-security-web\5.4.2\spring-security-web-5.4.2.jar;C:\repositories\org\springframework\boot\spring-boot-starter-web\2.4.2\spring-boot-starter-web-2.4.2.jar;C:\repositories\org\springframework\boot\spring-boot-starter-json\2.4.2\spring-boot-starter-json-2.4.2.jar;C:\repositories\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;C:\repositories\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;C:\repositories\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;C:\repositories\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;C:\repositories\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;C:\repositories\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;C:\repositories\org\springframework\boot\spring-boot-starter-tomcat\2.4.2\spring-boot-starter-tomcat-2.4.2.jar;C:\repositories\org\apache\tomcat\embed\tomcat-embed-core\9.0.41\tomcat-embed-core-9.0.41.jar;C:\repositories\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.41\tomcat-embed-websocket-9.0.41.jar;C:\repositories\org\springframework\spring-webmvc\5.3.3\spring-webmvc-5.3.3.jar;C:\repositories\org\springframework\boot\spring-boot-starter-validation\2.4.2\spring-boot-starter-validation-2.4.2.jar;C:\repositories\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;C:\repositories\org\hibernate\validator\hibernate-validator\6.1.7.Final\hibernate-validator-6.1.7.Final.jar;C:\repositories\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;C:\repositories\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\repositories\org\springframework\boot\spring-boot-starter-data-jpa\2.4.2\spring-boot-starter-data-jpa-2.4.2.jar;C:\repositories\org\springframework\boot\spring-boot-starter-aop\2.4.2\spring-boot-starter-aop-2.4.2.jar;C:\repositories\org\aspectj\aspectjweaver\1.9.6\aspectjweaver-1.9.6.jar;C:\repositories\org\springframework\boot\spring-boot-starter-jdbc\2.4.2\spring-boot-starter-jdbc-2.4.2.jar;C:\repositories\com\zaxxer\HikariCP\3.4.5\HikariCP-3.4.5.jar;C:\repositories\org\springframework\spring-jdbc\5.3.3\spring-jdbc-5.3.3.jar;C:\repositories\jakarta\transaction\jakarta.transaction-api\1.3.3\jakarta.transaction-api-1.3.3.jar;C:\repositories\jakarta\persistence\jakarta.persistence-api\2.2.3\jakarta.persistence-api-2.2.3.jar;C:\repositories\org\hibernate\hibernate-core\5.4.27.Final\hibernate-core-5.4.27.Final.jar;C:\repositories\org\javassist\javassist\3.27.0-GA\javassist-3.27.0-GA.jar;C:\repositories\net\bytebuddy\byte-buddy\1.10.19\byte-buddy-1.10.19.jar;C:\repositories\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\repositories\org\jboss\jandex\2.1.3.Final\jandex-2.1.3.Final.jar;C:\repositories\org\dom4j\dom4j\2.1.3\dom4j-2.1.3.jar;C:\repositories\org\hibernate\common\hibernate-commons-annotations\5.1.2.Final\hibernate-commons-annotations-5.1.2.Final.jar;C:\repositories\org\glassfish\jaxb\jaxb-runtime\2.3.3\jaxb-runtime-2.3.3.jar;C:\repositories\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;C:\repositories\org\glassfish\jaxb\txw2\2.3.3\txw2-2.3.3.jar;C:\repositories\com\sun\istack\istack-commons-runtime\3.0.11\istack-commons-runtime-3.0.11.jar;C:\repositories\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\repositories\org\springframework\data\spring-data-jpa\2.4.3\spring-data-jpa-2.4.3.jar;C:\repositories\org\springframework\data\spring-data-commons\2.4.3\spring-data-commons-2.4.3.jar;C:\repositories\org\springframework\spring-orm\5.3.3\spring-orm-5.3.3.jar;C:\repositories\org\springframework\spring-tx\5.3.3\spring-tx-5.3.3.jar;C:\repositories\org\springframework\spring-aspects\5.3.3\spring-aspects-5.3.3.jar;C:\repositories\org\springframework\cloud\spring-cloud-starter-vault-config\3.0.5\spring-cloud-starter-vault-config-3.0.5.jar;C:\repositories\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\repositories\org\apache\httpcomponents\httpcore\4.4.14\httpcore-4.4.14.jar;C:\repositories\org\springframework\cloud\spring-cloud-starter\3.0.5\spring-cloud-starter-3.0.5.jar;C:\repositories\org\springframework\cloud\spring-cloud-context\3.0.5\spring-cloud-context-3.0.5.jar;C:\repositories\org\springframework\security\spring-security-crypto\5.4.2\spring-security-crypto-5.4.2.jar;C:\repositories\org\springframework\cloud\spring-cloud-commons\3.0.5\spring-cloud-commons-3.0.5.jar;C:\repositories\org\springframework\security\spring-security-rsa\1.0.10.RELEASE\spring-security-rsa-1.0.10.RELEASE.jar;C:\repositories\org\springframework\cloud\spring-cloud-vault-config\3.0.5\spring-cloud-vault-config-3.0.5.jar;C:\repositories\org\springframework\vault\spring-vault-core\2.3.2\spring-vault-core-2.3.2.jar;C:\repositories\com\ibm\mq\mq-jms-spring-boot-starter\2.4.2\mq-jms-spring-boot-starter-2.4.2.jar;C:\repositories\com\ibm\mq\com.ibm.mq.allclient\9.2.1.0\com.ibm.mq.allclient-9.2.1.0.jar;C:\repositories\org\bouncycastle\bcprov-jdk15on\1.66\bcprov-jdk15on-1.66.jar;C:\repositories\org\bouncycastle\bcpkix-jdk15on\1.66\bcpkix-jdk15on-1.66.jar;C:\repositories\javax\jms\javax.jms-api\2.0.1\javax.jms-api-2.0.1.jar;C:\repositories\org\json\json\20080701\json-20080701.jar;C:\repositories\org\springframework\spring-core\5.3.3\spring-core-5.3.3.jar;C:\repositories\org\springframework\spring-jcl\5.3.3\spring-jcl-5.3.3.jar;C:\repositories\org\springframework\spring-beans\5.3.3\spring-beans-5.3.3.jar;C:\repositories\org\springframework\spring-jms\5.3.3\spring-jms-5.3.3.jar;C:\repositories\org\springframework\spring-messaging\5.3.3\spring-messaging-5.3.3.jar;C:\repositories\org\messaginghub\pooled-jms\1.2.1\pooled-jms-1.2.1.jar;C:\repositories\org\apache\geronimo\specs\geronimo-jms_2.0_spec\1.0-alpha-2\geronimo-jms_2.0_spec-1.0-alpha-2.jar;C:\repositories\org\apache\commons\commons-pool2\2.9.0\commons-pool2-2.9.0.jar;C:\repositories\org\springframework\boot\spring-boot\2.4.2\spring-boot-2.4.2.jar;C:\repositories\org\springframework\boot\spring-boot-autoconfigure\2.4.2\spring-boot-autoconfigure-2.4.2.jar;C:\repositories\net\sf\dozer\dozer\5.5.1\dozer-5.5.1.jar;C:\repositories\commons-beanutils\commons-beanutils\1.8.0\commons-beanutils-1.8.0.jar;C:\repositories\org\slf4j\jcl-over-slf4j\1.7.30\jcl-over-slf4j-1.7.30.jar;C:\repositories\commons-io\commons-io\1.3.2\commons-io-1.3.2.jar;C:\repositories\commons-configuration\commons-configuration\1.10\commons-configuration-1.10.jar;C:\repositories\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\repositories\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\repositories\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\repositories\stax\stax\1.2.0\stax-1.2.0.jar;C:\repositories\com\ibm\mq\mqjms\7.0.1.7\mqjms-7.0.1.7.jar;C:\repositories\com\ibm\mq\dhbcore\7.0.1.7\dhbcore-7.0.1.7.jar;C:\repositories\com\ibm\mq\jmqi\7.0.1.7\jmqi-7.0.1.7.jar;C:\repositories\com\google\guava\guava\13.0-rc2\guava-13.0-rc2.jar;C:\repositories\com\oracle\jdbc\ojdbc8\12.2.0.1.0\ojdbc8-12.2.0.1.0.jar;C:\repositories\com\oracle\jdbc\ucp\12.2.0.1\ucp-12.2.0.1.jar;C:\repositories\net\sf\ehcache\ehcache-core\2.3.1\ehcache-core-2.3.1.jar com.example.ExampleServApplication
17:00:24.235 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalArgumentException: Unable to instantiate org.springframework.boot.context.config.ConfigDataLoader [org.springframework.cloud.vault.config.VaultConfigDataLoader]
                at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:103)
                at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:90)
                at org.springframework.boot.context.config.ConfigDataLoaders.<init>(ConfigDataLoaders.java:75)
                at org.springframework.boot.context.config.ConfigDataLoaders.<init>(ConfigDataLoaders.java:56)
                at org.springframework.boot.context.config.ConfigDataEnvironment.<init>(ConfigDataEnvironment.java:155)
                at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.getConfigDataEnvironment(ConfigDataEnvironmentPostProcessor.java:108)
                at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:97)
                at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:89)
                at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:100)
                at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:86)
                at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
                at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
                at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
                at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
                at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
                at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)
                at java.util.ArrayList.forEach(ArrayList.java:1249)
                at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
                at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
                at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)
                at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:362)
                at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
                at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:144)
                at com.example.ExampleServApplication.main(ExampleServApplication.java:29)
Caused by: java.lang.IllegalAccessException: Unable to find suitable constructor
                at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:118)
                at org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:100)
                ... 23 common frames omitted

Any idea what might be wrong ? Am I missing some dependencies ?

A: I found the problem. It seems that these particular set of versions is incompatible (even though the release train says otherwise):

*

*spring-boot 2.4.2

*spring-cloud 2020.0.5

The problem is that the class ConfigDataLoaders supports DeferredLogFactory injection only in spring-boot 2.4.3:
https://github.com/spring-projects/spring-boot/commit/1def245a2cb7f5aa520531059956c3c3794625d7
On the other hand, starting with Spring Cloud 3.0.2, VaultConfigDataLoader has a new constructor accepting a DeferredLogFactory:
https://github.com/spring-cloud/spring-cloud-vault/commit/a9fd88c3b768a1f6e485851423dd8f62afae71ba
So, either use Spring Boot 2.4.2 and Spring Cloud 3.0.1 (or lower) or use Spring Boot 2.4.3 and Spring Cloud 3.0.2+.
I hope this investigation will save somebody some time, as it took me about half a day..


text:
in: Articles without Wikidata item, Born in 1976, Bill Masterton Trophy winners,
Canadian ice hockey players
Colorado Avalanche players
Djurgårdens IF Hockey players
Florida Panthers players
Hart Trophy winners
Hull Olympiques alumni
Lake Erie Monsters players
Minnesota Wild players
Montreal Canadiens draft picks
Montreal Canadiens players
National Hockey League All-Stars
National Hockey League goaltenders who have scored in a game
Quebec Citadelles players
St-Jean Lynx alumni
Vezina Trophy winners
Washington Capitals players
José Théodore
Theodore as a member of the Washington Capitals.
Position Goaltender
Catches Right
Weight 5 ft 11 in (1.80 m)
F. Teams Florida Panthers
Djurgården
Born (1976-09-13)September 13, 1976,
Laval, QC, CAN
NHL Draft 44th overall, 1994
Pro Career 1995 – present
José Théodore (French pronunciation approximated as /ˈteɪ.ədɔr/ TAY-ə-dor, English /ˈθiː.ədɔər/ THEE-ə-dohr; born September 13, 1976) is a French Canadian professional ice hockey goaltender currently playing for the Florida Panthers of the National Hockey League (NHL). Théodore played major junior in the Quebec Major Junior Hockey League (QMJHL), where he won a President's Cup as QMJHL champions and competed in the Memorial Cup with the Hull Olympiques in 1995. He won both the Ford Cup as the top defensive player and Guy Lafleur Trophy as playoff MVP in 1995 and is a two-time QMJHL Second Team All-Star. Drafted 44th overall by the Montreal Canadiens in 1994, Théodore played eight seasons in Montreal, where he won the Vezina and Hart trophies, both in 2002. In 2006, he was traded to the Colorado Avalanche, where he played two full seasons. Internationally, Théodore has won a gold with Team Canada at the 1996 World Junior Championships, winning the tournament's Best Goaltender award. He also started for Team Canada at the 2001 World Championships and was a backup for the 2004 World Cup.
1 Playing career
1.1 QMJHL career (1992–1996)
1.2 Early NHL career (1996–1999)
1.3 Rise to prominence (1999–2004)
1.4 Post-lockout (2005–present)
2 International play
4 Career statistics
4.1 Regular season
4.2 Playoffs
5.1 QMJHL
5.2 NHL
Playing career[]
QMJHL career (1992–1996)[]
Théodore played major junior in the QMJHL for five seasons with the St-Jean Lynx and Hull Olympiques. At 16 years old, he began his major junior rookie season in 1992–93, splitting goaltending duties with Jean-Pascal Lemelin.[1] He assumed the starting position the following season in 1993–94, recording a 3.61 goals against average (GAA) with a 20-29-6 record. Théodore was drafted that off-season by the Montreal Canadiens 44th overall in the 1994 NHL Entry Draft.
He returned to the Lynx upon his draft in 1994–95, but was traded early in the season to the Hull Olympiques. In 43 games with his new team in the regular season, Théodore posted a 2.97 GAA with a 27-14-1 record to be awarded the Ford Cup as the top defensive player and be named to the QMJHL Second All-Star Team. Théodore went on to lead the Olympiques to the President's Cup as QMJHL champions, winning the Guy Lafleur Trophy as playoff MVP. Earning a berth in the 1995 Memorial Cup, the Olympiques, however, finished in last place.
Following the 1995 major junior playoffs, Théodore made his professional debut, being assigned to the American Hockey League (AHL) where he played one game for the Fredericton Canadiens, Montreal's minor league affiliate, in the 1995 Calder Cup playoffs.
Théodore played his fourth and final QMJHL season with the Olympiques in 1995–96. Although he was named to his second consecutive Second All-Star Team, the Olympiques failed to defend their QMJHL title and lost in the first round of the playoffs.
Early NHL career (1996–1999)[]
Théodore spent his first three seasons with the Canadiens organization splitting time in the NHL and the American Hockey League (AHL), with Montreal's minor league affiliate, the Fredericton Canadiens. He made his Stanley Cup playoffs debut in 1997, winning a 4–3 triple overtime game against the New Jersey Devils, making 56 saves.[2] The following year, he appeared in 3 playoff games for the Canadiens against the Buffalo Sabres despite not playing in any regular season games for them that campaign.
Rise to prominence (1999–2004)[]
Théodore became a full-time NHLer in 1999–2000, sharing starts with Jeff Hackett. In his first full NHL season, Théodore posted a 23-25-7 record with a 2.40 goals against average (GAA) and .914 save percentage, along with 3 shutouts. He assumed the starting role over Hackett the following season in 2000–01 and went 20-29-5 in 59 games. During a game on January 2, 2001, Théodore became the sixth goaltender to directly score a goal when he attempted to clear the puck from the defensive zone against the New York Islanders and scored into the empty net, which was vacated by John Vanbiesbrouck for the extra attacker. He became the first NHL goalie to directly score a goal and record a shutout in the same game as the Canadiens beat the Islanders 3–0 . But he was the second goaltender to be credited with a goal and a shutout in the same game, after Damian Rhodes, who was credited with a goal in a 6–0 win on January 2, 1999.
Théodore emerged as a world-class goalie in 2001–02, when he turned in a Vezina and Hart Memorial Trophy-winning performance with a 30-24-10 record, 2.11 GAA and .931 save percentage. He led the Canadiens into the playoffs as the eighth and final seed in the Eastern Conference and was a pivotal factor in upsetting the top-ranked Boston Bruins in the first round. He became an immediate fan favorite in the city of Montreal. The Canadiens were, however, eliminated by the Carolina Hurricanes the following round in six games.
Théodore was unable to match his previous season's performance in 2002–03 and ended the season with significantly lower statistics (2.90 GAA and .909 save percentage) to go with a losing record that saw the Canadiens unable to make the playoffs. He bounced back in 2003–04 with a GAA of 2.34 and save percentage of .919. During the season, he participated with the Canadiens in the 2003 Heritage Classic, the NHL's first ever outdoor hockey game. The game was held at Commonwealth Stadium versus the Edmonton Oilers, a game which Montreal won 4-3. Playing in sub-zero temperatures, Théodore famously wore a toque over his goalie helmet. He ended the season with a second 30-win campaign, helping the Canadiens qualify for the 2004 playoffs as the seventh seed. They upset the Boston Bruins for the second time in three years in a seven-game opening series, before being eliminated by the top-seeded, eventual Stanley Cup champion Tampa Bay Lightning in four.
Due to the 2004–05 NHL lockout, Théodore went overseas to play for Djurgården of the Swedish Elitserien.
Post-lockout (2005–present)[]
When NHL play resumed in 2005–06, it was revealed on February 9, 2006, that he failed a random drug test conducted prior the 2006 Winter Olympics. The failed test was later revealed to be caused by a prescription hair loss medication Propecia, which Théodore had been taking legally for 8 years. Propecia contains the drug finasteride, which can be used as a masking agent for the performance enhancing drug nandrolone among weight-trainers and bodybuilders, but it is not a performance enhancing drug in itself. Théodore did not face any punishment from the NHL as he had applied and received approval for a therapeutic use exception.[3] Théodore did, however, receive a two-year suspension from international play.[4]
José Théodore with the Washington Capitals in 2009–10.
In addition to the drug controversy, Théodore's play with the Canadiens was marked by a significant drop and he was being outperformed by backup Cristobal Huet. Consequently, he was dealt at the trade deadline to the Colorado Avalanche on March 8, 2006, in exchange for Swiss goaltender David Aebischer.[5] At the time of the trade, Théodore was on the injured reserve; he strained his Achilles tendon after slipping on the winter ice outside his home. He came off the IR with enough time to play in the last five regular season Avalanche games. His 3.04 GAA with the Avalanche combined with his 3.46 rating earned from his previous play with the Canadiens marked the worst GAA of his career. He was nonetheless designated the starting goalie for the playoffs over Peter Budaj, playing in 9 games over the first 2 rounds before the Avalanche were eliminated.
Théodore's play did not see much improvement the following season, in 2006–07, as he lost the starting role to Budaj with a 13-15-1 record, 3.26 GAA and .891 save percentage. He saw a resurgence in 2007–08, however, and resumed the starting role with a 2.40 GAA and .910 save percentage. He parted ways with the Avalanche in the off-season and signed a two-year, $9 million contract with the Washington Capitals on July 1, 2008.[6] He replaced long-time Capitals starter Olaf Kolzig and the previous season's acquisition (as well as former Canadiens teammate), Cristobal Huet, who had both departed in free agency. Joining a team that featured young talents Alexander Semin, Nicklas Backstrom, Mike Green and, primarily, Alexander Ovechkin, Théodore helped lead the Capitals to a division title and entered the 2009 playoffs as the second seed. However, after allowing 4 goals in a game one loss to the New York Rangers in the opening round, he was pulled in favor of backup Semyon Varlamov.[7] In 2010 he had a 30-7-7 record and tied a Capitals franchise record for consecutive wins (10) and ended the season on a 20-0-4 streak. He started the playoffs but was pulled in Game 2 and replaced again by Varlamov and did not play any more games as the Capitals were eliminated in seven games by the Montreal Canadiens.[8] Theodore won the Bill Masterton Memorial Trophy in 2010.
On October 1, 2010, he signed a one-year deal worth $1.1M with the Minnesota Wild. He earned his 250th career victory on January 2, 2011, with a 6-5 overtime victory against the Phoenix Coyotes.
Theodore signed a two-year/$3 million contract with the Florida Panthers on July 1, 2011.[9]
International play[]
Medal record
Competitor for Canada
Gold 1996
Théodore played for Team Canada at the 1996 World Junior Championships in Boston during his fourth major junior season. He posted a 4-0-0 record with a 1.50 GAA to earn Best Goaltender and Tournament All-Star honours, en route to Canada's fourth straight gold medal at the tournament.
He made his debut for Canada's men's team in the 2001 World Championship. He recorded two shutouts and a 1.63 GAA, but Canada was defeated in the quarterfinals by the United States. In 2004, he played backup for Team Canada at the World Cup, seeing Canada defeat Finland in the final to capture the championship.
Personal life[]
His father, Theodore (Ted) Theodore, is of Bulgarian descent,[10][11] while his mother is of Spanish descent.[12] On December 15, 2004, his father and half-brother pleaded guilty to charges of loansharking and possession of a restricted weapon.[13] In February 2005, the 71-year-old Ted Théodore was given a $30,000 fine, but no jail time.
Théodore has one child, Romy (born March 22, 2006), with his wife Stéphanie Cloutier. Cloutier gave birth to their second child, Chace (born premature) in the summer of 2009, however, on August 20, 2009, the Washington Capitals and Théodore's sister-in-law reported that his two-month old son, Chace passed away.[14]
Théodore founded Saves for Kids, a charity to benefit the Neonatal intensive-care unit at Children's National Medical Center in Washington, D.C.[15]
Career statistics[]
Regular season[]
T/OTL
1992–93 St-Jean Lynx QMJHL 34 12 16 2 1776 112 0 3.78 0 0 .876
1993–94 St-Jean Lynx QMJHL 57 20 29 6 3225 194 0 3.61 0 0 —
1994–95 St-Jean Lynx QMJHL 15 5 8 1 900 194 0 4.80 0 0 —
1994–95 Hull Olympiques QMJHL 43 27 14 1 2448 121 5 2.97 0 0 —
1995–96 Montreal Canadiens NHL 1 0 0 0 9 1 0 6.67 0 0 .500
1996–97 Fredericton Canadiens AHL 26 12 12 0 1469 87 0 3.55 0 1 .902
1996–97 Montreal Canadiens NHL 16 5 6 2 821 53 0 3.87 0 0 .896
1997–98 Fredericton Canadiens AHL 53 20 23 8 3053 145 2 2.85 0 2 .918
1998–99 Montreal Canadiens NHL 18 4 12 0 913 50 1 3.29 0 0 .877
1999–00 Montreal Canadiens NHL 30 12 13 2 1655 58 5 2.10 0 0 .919
2000–01 Quebec Citadelles AHL 3 3 0 0 180 9 0 3.00 0 0 .886
2000–01 Montreal Canadiens NHL 59 20 29 5 3298 141 2 2.57 1 0 .909
2001–02 Montreal Canadiens NHL 67 30 24 10 3864 136 7 2.11 0 2 .931
2004–05 Djurgården SEL 17 — — — 1024 42 0 2.46 0 0 .916
2005–06 Colorado Avalanche NHL 5 1 3 0 296 15 0 3.04 0 0 .887
2006–07 Colorado Avalanche NHL 33 13 15 0 1748 95 0 3.26 0 0 .891
2007–08 Colorado Avalanche NHL 53 28 21 0 3028 123 3 2.44 0 2 .910
2007–08 Lake Erie Monsters AHL 1 0 1 0 60 3 0 3.02 0 0 .875
2008–09 Washington Capitals NHL 57 32 17 5 3287 157 2 2.87 0 3 .900
2009–10 Washington Capitals NHL 47 30 7 7 2586 121 1 2.81 0 2 .911
2010–11 Minnesota Wild NHL 32 15 11 3 1793 81 1 2.71 0 0 .916
NHL totals
AHL totals
QMJHL totals
Playoffs[]
1992–93 St-Jean Lynx QMJHL 3 0 2 175 11 0 3.77 —
1994–95 Fredericton Canadiens AHL 1 0 1 60 3 0 3.00 .897
1994–95 Hull Olympiques QMJHL 21 15 6 1263 59 1 2.80 —
1995–96 Hull Olympiques QMJHL 5 2 3 299 20 0 4.01 .889
1996–97 Montreal Canadiens NHL 2 1 1 168 7 0 2.50 .939
1997–98 Fredericton Canadiens AHL 4 1 3 237 100 0 3.29 .901
1998–99 Fredericton Canadiens AHL 13 2 5 693 35 1 3.03 .926
2001–02 Montreal Canadiens NHL 12 6 6 686 35 0 3.06 .915
2004–05 Djurgården SEL 11 — — 728 27 0 2.23 .922
2005–06 Colorado Avalanche NHL 9 4 5 573 29 0 3.03 .902
2008–09 Washington Capitals NHL 2 0 1 97 6 0 3.71 .818
International[]
1996 Canada WJC 4 4 0 0 240 6 0 1.50
2001 Canada WCh 8 5 3 0 478 13 2 1.63
Junior int'l totals
Senior int'l totals
Awards[]
QMJHL[]
Named to the Second All-Star Team in 1995 and 1996.
Won the Ford Cup as top defensive player in 1995.
Won the Guy Lafleur Trophy as playoff MVP in 1995.
Won the President's Cup with the Hull Olympiques in 1995.
NHL[]
Named NHL Player of the Week for November 22–28, 1999. (shared with Jeremy Roenick)
Won the Vezina Trophy in 2002.
Won the Hart Memorial Trophy in 2002.
Won the Roger Crozier Saving Grace Award in 2002.
Named to the Second All-Star Team in 2002.
Played in the NHL All-Star Game in 2004.
Won the Bill Masterton Memorial Trophy in 2010.
Won a World Junior Championships gold medal with Team Canada in 1996.
Named to the World Junior Championship All-Star Team in 1996.
Named the World Junior Championships' Best Goaltender in 1996.
List of Colorado Avalanche players
List of Montreal Canadiens players
List of goaltenders who have scored a goal in an NHL game
↑ 1992-93 St-Jean Lynx [QMJHL]. Hockeydb.com. Retrieved on 2009-08-21.
↑ Jose Theodore (1995-present). HockeyGoalies. Retrieved on 2009-04-20.
↑ TSN.ca (2006-02-10). Theodore's hair tonic causes positive test. TSN.ca. Archived from the original on 2007-09-29. Retrieved on 2006-10-28.
↑ Diligent Media Corporation (2006-03-18). Canadian star Theodore slapped with 2-year ban. Diligent Media Corporation. Retrieved on 2006-10-28.
↑ Habs acquire Aebischer from Colorado. canadiens.nhl.com (2006-03-08). Retrieved on 2009-03-28.
↑ 2008 UFA Signings. TSN (2008-07-20). Retrieved on 2008-11-10.
↑ Benching in game two surprises Theodore. Washington Post (2009-04-20). Retrieved on 2009-04-21.
↑ Jose Theodore's Game 2 benching. Washington Post (2010-04-17). Retrieved on 2010-09-28.
↑ TSN Free Agent Tracker. The Sports Network. Retrieved on 1 July 2011.
↑ Yaneff, Jon (2008-06-25). Macedonian heritage alive through Stamkos and NHL brass. King Sentinel. Retrieved on 12 October 2010.
↑ Georgi Danevski: Confessions of the Heart. OMNI (2010). Retrieved on 12 October 2010.
↑ How Many Times Has The Shoe Been On The Other Foot?. Retrieved on 2009-10-24.
↑ Ted Nicholas Theodore. Geocities.com (2009-03-20). Archived from the original on 2009-10-26. Retrieved on 2009-11-10.
↑ Goaltender Theodore's two-month-old son passes away. The Sports Network (2009-08-20). Retrieved on 2009-08-20.
↑ Theodore's Saves for Kids. Washington Capitals (2010-03-20). Retrieved on 2010-04-29.
José Théodore's NHL player profile
José Théodore's career stats at The Internet Hockey Database
José Théodore at TSN.ca
José Théodore's biography at Legends of Hockey
Dominik Hašek Winner of the Vezina Trophy
2002 Succeeded by
Joe Sakic Winner of the Hart Trophy
Peter Forsberg
Marty Turco Winner of the Crozier Award
Marty Turco
Steve Sullivan Bill Masterton Memorial Trophy
Ian Laperrière
This page uses content from Wikipedia. The original article was at José Théodore. The list of authors can be seen in the page history. As with Ice Hockey Wiki, the text of Wikipedia is available under the Creative Commons Attribution-Share Alike License 3.0 (Unported) (CC-BY-SA).
Articles without Wikidata item
Bill Masterton Trophy winners

redpajama_set_name: RedPajamaCommonCrawl


Jaw, Impact, and Cone Crushers for rock, concrete, and more. ... double roll crusher, 3 X 10 double deck screen, 2 1/2" top deck and 1" bottom deck, ... Jaw crushers, Impact crushers, and Cone crushers for rock, concrete, stone, glass and more. ..... is a small crusher designed to be hand fed or loaded with a mini-excavator.
This unit separates oversized rock from the smaller stone. ... secondary crushing (although impact crushers are sometimes used), which typically ... Oversize material from the top deck of the sizing screen is fed to the tertiary crusher. ..... Frank Ward & Company, A Report of Particulate Source Sampling Performed for Franklin.
Nov 26, 2014 ... The 10"x16" jaw crusher was used to crush these ... ... one of our customers who cuts granite blocks for monuments and other decorative stone.
stone crusher and mining company from Stone Crusher Machine Usa ... Crushing Crusher plant manufacturer of Caiman Machinery Company is good at stone mining ... Used Small Stone Crusher For Sale In Usa. used stone crusher machine and ... is Toei ... Used rock crushers for aggregate and mining . cone crusher and .
The 1″ X 2″ 911MPEJAC12 Small Rock Crusher is designed to finely crush rock and stone like aggregates or your favourite ore type (gold, silver, copper, etc.) ... This small jaw crusher and its miniature opening gape of 25 mm X 50 mm, can easily adjust by hand. ... Categories: Jaw Crushers, Rock Crushing Equipment.
Find here Stone Crusher suppliers, manufacturers, wholesalers, traders with ... Stone Crusher and Screening Plant : Star Trace offers turnkey solutions for .... Crusher, Vertical Impact Shaft Crusher, Stone/Rock Crusher and Many More. ... Stone Crusher is the widely used as primary crusher machine for crushing process.
mini rock crusher for sale canada_mini rock crusher price canada ... price australia; marble crusher for sale in san mar Best small stone crusher for sale/mini stone crusher for sale . ... Jaw Crusher For Sale & Rental New & Used Jaw Crushers.