template<typename A>
struct T1
{
template<typename B>
struct T2{};
};
template<typename A>
class C
{
T1<A> t;
};
template<typename A>
using U1=decltype(C<A>::t);
template<typename A, typename B>
using U2=typename U1<A>::template T2<B>;
int main()
{
}
dGVtcGxhdGU8dHlwZW5hbWUgQT4Kc3RydWN0IFQxCnsKICAgdGVtcGxhdGU8dHlwZW5hbWUgQj4KICAgc3RydWN0IFQye307Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBBPgpjbGFzcyBDCnsKICAgVDE8QT4gdDsKfTsKCnRlbXBsYXRlPHR5cGVuYW1lIEE+CnVzaW5nIFUxPWRlY2x0eXBlKEM8QT46OnQpOwoKdGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQj4KdXNpbmcgVTI9dHlwZW5hbWUgVTE8QT46OnRlbXBsYXRlIFQyPEI+OwoKaW50IG1haW4oKQp7Cn0K