using System;
using System.Runtime.InteropServices;
class CodeIQ2549{
static bufsiz=32;
[DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)]static extern write(x:int,y:string,z:int):int;
[DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)]static extern fopen(x
:string
,y
:string
):IntPtr
; [DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)]static extern fflush(x
:IntPtr
):int; [DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)]static extern puts(x
:string
):int; [DllImport
("msvcrt",CallingConvention
=CallingConvention.
Cdecl)]static extern system(x
:string
):int;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_init(a:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_clear(a:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_out_str(a:IntPtr,b:int,c:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_set(a:IntPtr,b:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_set_str(a:IntPtr,b:string,c:int):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_set_si(a:IntPtr,b:long):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_cmp_si(a:IntPtr,b:long):int;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_get_si(a:IntPtr):long;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_abs(a:IntPtr,b:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_add(a:IntPtr,b:IntPtr,c:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_add_ui(a:IntPtr,b:IntPtr,c:long):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_mul(a:IntPtr,b:IntPtr,c:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_mul_si(a:IntPtr,b:IntPtr,c:long):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_mul_ui(a:IntPtr,b:IntPtr,c:long):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_sub(a:IntPtr,b:IntPtr,c:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_sub_ui(a:IntPtr,b:IntPtr,c:long):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_ui_sub(a:IntPtr,b:long,c:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_tdiv_q(a:IntPtr,b:IntPtr,c:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_tdiv_r(a:IntPtr,b:IntPtr,c:IntPtr):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_tdiv_q_ui(a:IntPtr,b:IntPtr,c:long):void;
[DllImport("/usr/lib/libgmp.so.3",CallingConvention=CallingConvention.Cdecl)]static extern __gmpz_tdiv_r_ui(a:IntPtr,b:IntPtr,c:long):void;
static mul(a1:IntPtr,b1:IntPtr,c1:IntPtr,d1:IntPtr,a2:IntPtr,b2:IntPtr,c2:IntPtr,d2:IntPtr):void{
def a0=Marshal.AllocHGlobal(bufsiz);__gmpz_init(a0);
def b0=Marshal.AllocHGlobal(bufsiz);__gmpz_init(b0);
def c0=Marshal.AllocHGlobal(bufsiz);__gmpz_init(c0);
def d0=Marshal.AllocHGlobal(bufsiz);__gmpz_init(d0);
def t=Marshal.AllocHGlobal(bufsiz);__gmpz_init(t);
def u=Marshal.AllocHGlobal(bufsiz);__gmpz_init(u);
__gmpz_mul(t,a1,a2);
__gmpz_mul(u,b1,c2);
__gmpz_add(a0,t,u);
__gmpz_mul(t,a1,b2);
__gmpz_mul(u,b1,d2);
__gmpz_add(b0,t,u);
__gmpz_mul(t,c1,a2);
__gmpz_mul(u,d1,c2);
__gmpz_add(c0,t,u);
__gmpz_mul(t,c1,b2);
__gmpz_mul(u,d1,d2);
__gmpz_add(d0,t,u);
__gmpz_set(a1,a0);
__gmpz_set(b1,b0);
__gmpz_set(c1,c0);
__gmpz_set(d1,d0);
__gmpz_clear(a0);Marshal.FreeHGlobal(a0);
__gmpz_clear(b0);Marshal.FreeHGlobal(b0);
__gmpz_clear(c0);Marshal.FreeHGlobal(c0);
__gmpz_clear(d0);Marshal.FreeHGlobal(d0);
__gmpz_clear(t);Marshal.FreeHGlobal(t);
__gmpz_clear(u);Marshal.FreeHGlobal(u);
}
static Main():void{
def stdout
=fopen("/dev/stdout","w");
def a1=Marshal.AllocHGlobal(bufsiz);__gmpz_init(a1);
def b1=Marshal.AllocHGlobal(bufsiz);__gmpz_init(b1);
def c1=Marshal.AllocHGlobal(bufsiz);__gmpz_init(c1);
def d1=Marshal.AllocHGlobal(bufsiz);__gmpz_init(d1);
def a2=Marshal.AllocHGlobal(bufsiz);__gmpz_init(a2);
def b2=Marshal.AllocHGlobal(bufsiz);__gmpz_init(b2);
def c2=Marshal.AllocHGlobal(bufsiz);__gmpz_init(c2);
def d2=Marshal.AllocHGlobal(bufsiz);__gmpz_init(d2);
__gmpz_set_si(a1,1);
__gmpz_set_si(b1,0);
__gmpz_set_si(c1,0);
__gmpz_set_si(d1,1);
__gmpz_set_si(a2,1);
__gmpz_set_si(b2,1);
__gmpz_set_si(c2,1);
__gmpz_set_si(d2,0);
mutable N=int.Parse(Console.ReadLine());
N=(N+3)/2*2;
for(;N>0;N>>=1){
when((N&1)>0)mul(a1,b1,c1,d1,a2,b2,c2,d2);
mul(a2,b2,c2,d2,a2,b2,c2,d2);
}
__gmpz_sub_ui(c1,c1,1);
__gmpz_out_str(stdout,10,c1);
__gmpz_clear(a1);Marshal.FreeHGlobal(a1);
__gmpz_clear(b1);Marshal.FreeHGlobal(b1);
__gmpz_clear(c1);Marshal.FreeHGlobal(c1);
__gmpz_clear(d1);Marshal.FreeHGlobal(d1);
__gmpz_clear(a2);Marshal.FreeHGlobal(a2);
__gmpz_clear(b2);Marshal.FreeHGlobal(b2);
__gmpz_clear(c2);Marshal.FreeHGlobal(c2);
__gmpz_clear(d2);Marshal.FreeHGlobal(d2);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CgpjbGFzcyBDb2RlSVEyNTQ5ewoJc3RhdGljIGJ1ZnNpej0zMjsKCglbRGxsSW1wb3J0KCJtc3ZjcnQiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIHdyaXRlKHg6aW50LHk6c3RyaW5nLHo6aW50KTppbnQ7CglbRGxsSW1wb3J0KCJtc3ZjcnQiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIGZvcGVuKHg6c3RyaW5nLHk6c3RyaW5nKTpJbnRQdHI7CglbRGxsSW1wb3J0KCJtc3ZjcnQiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIGZmbHVzaCh4OkludFB0cik6aW50OwoJW0RsbEltcG9ydCgibXN2Y3J0IixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCldc3RhdGljIGV4dGVybiBwdXRzKHg6c3RyaW5nKTppbnQ7CglbRGxsSW1wb3J0KCJtc3ZjcnQiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIHN5c3RlbSh4OnN0cmluZyk6aW50OwoKW0RsbEltcG9ydCgiL3Vzci9saWIvbGliZ21wLnNvLjMiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIF9fZ21wel9pbml0KGE6SW50UHRyKTp2b2lkOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X2NsZWFyKGE6SW50UHRyKTp2b2lkOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X291dF9zdHIoYTpJbnRQdHIsYjppbnQsYzpJbnRQdHIpOnZvaWQ7CltEbGxJbXBvcnQoIi91c3IvbGliL2xpYmdtcC5zby4zIixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCldc3RhdGljIGV4dGVybiBfX2dtcHpfc2V0KGE6SW50UHRyLGI6SW50UHRyKTp2b2lkOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X3NldF9zdHIoYTpJbnRQdHIsYjpzdHJpbmcsYzppbnQpOnZvaWQ7CltEbGxJbXBvcnQoIi91c3IvbGliL2xpYmdtcC5zby4zIixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCldc3RhdGljIGV4dGVybiBfX2dtcHpfc2V0X3NpKGE6SW50UHRyLGI6bG9uZyk6dm9pZDsKW0RsbEltcG9ydCgiL3Vzci9saWIvbGliZ21wLnNvLjMiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIF9fZ21wel9jbXBfc2koYTpJbnRQdHIsYjpsb25nKTppbnQ7CltEbGxJbXBvcnQoIi91c3IvbGliL2xpYmdtcC5zby4zIixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCldc3RhdGljIGV4dGVybiBfX2dtcHpfZ2V0X3NpKGE6SW50UHRyKTpsb25nOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X2FicyhhOkludFB0cixiOkludFB0cik6dm9pZDsKW0RsbEltcG9ydCgiL3Vzci9saWIvbGliZ21wLnNvLjMiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIF9fZ21wel9hZGQoYTpJbnRQdHIsYjpJbnRQdHIsYzpJbnRQdHIpOnZvaWQ7CltEbGxJbXBvcnQoIi91c3IvbGliL2xpYmdtcC5zby4zIixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCldc3RhdGljIGV4dGVybiBfX2dtcHpfYWRkX3VpKGE6SW50UHRyLGI6SW50UHRyLGM6bG9uZyk6dm9pZDsKW0RsbEltcG9ydCgiL3Vzci9saWIvbGliZ21wLnNvLjMiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIF9fZ21wel9tdWwoYTpJbnRQdHIsYjpJbnRQdHIsYzpJbnRQdHIpOnZvaWQ7CltEbGxJbXBvcnQoIi91c3IvbGliL2xpYmdtcC5zby4zIixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCldc3RhdGljIGV4dGVybiBfX2dtcHpfbXVsX3NpKGE6SW50UHRyLGI6SW50UHRyLGM6bG9uZyk6dm9pZDsKW0RsbEltcG9ydCgiL3Vzci9saWIvbGliZ21wLnNvLjMiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIF9fZ21wel9tdWxfdWkoYTpJbnRQdHIsYjpJbnRQdHIsYzpsb25nKTp2b2lkOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X3N1YihhOkludFB0cixiOkludFB0cixjOkludFB0cik6dm9pZDsKW0RsbEltcG9ydCgiL3Vzci9saWIvbGliZ21wLnNvLjMiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIF9fZ21wel9zdWJfdWkoYTpJbnRQdHIsYjpJbnRQdHIsYzpsb25nKTp2b2lkOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X3VpX3N1YihhOkludFB0cixiOmxvbmcsYzpJbnRQdHIpOnZvaWQ7CltEbGxJbXBvcnQoIi91c3IvbGliL2xpYmdtcC5zby4zIixDYWxsaW5nQ29udmVudGlvbj1DYWxsaW5nQ29udmVudGlvbi5DZGVjbCldc3RhdGljIGV4dGVybiBfX2dtcHpfdGRpdl9xKGE6SW50UHRyLGI6SW50UHRyLGM6SW50UHRyKTp2b2lkOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X3RkaXZfcihhOkludFB0cixiOkludFB0cixjOkludFB0cik6dm9pZDsKW0RsbEltcG9ydCgiL3Vzci9saWIvbGliZ21wLnNvLjMiLENhbGxpbmdDb252ZW50aW9uPUNhbGxpbmdDb252ZW50aW9uLkNkZWNsKV1zdGF0aWMgZXh0ZXJuIF9fZ21wel90ZGl2X3FfdWkoYTpJbnRQdHIsYjpJbnRQdHIsYzpsb25nKTp2b2lkOwpbRGxsSW1wb3J0KCIvdXNyL2xpYi9saWJnbXAuc28uMyIsQ2FsbGluZ0NvbnZlbnRpb249Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXXN0YXRpYyBleHRlcm4gX19nbXB6X3RkaXZfcl91aShhOkludFB0cixiOkludFB0cixjOmxvbmcpOnZvaWQ7CgoJc3RhdGljIG11bChhMTpJbnRQdHIsYjE6SW50UHRyLGMxOkludFB0cixkMTpJbnRQdHIsYTI6SW50UHRyLGIyOkludFB0cixjMjpJbnRQdHIsZDI6SW50UHRyKTp2b2lkewoJCWRlZiBhMD1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopO19fZ21wel9pbml0KGEwKTsKCQlkZWYgYjA9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KTtfX2dtcHpfaW5pdChiMCk7CgkJZGVmIGMwPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeik7X19nbXB6X2luaXQoYzApOwoJCWRlZiBkMD1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopO19fZ21wel9pbml0KGQwKTsKCQlkZWYgdD1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopO19fZ21wel9pbml0KHQpOwoJCWRlZiB1PU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeik7X19nbXB6X2luaXQodSk7CgoJCV9fZ21wel9tdWwodCxhMSxhMik7CgkJX19nbXB6X211bCh1LGIxLGMyKTsKCQlfX2dtcHpfYWRkKGEwLHQsdSk7CgkJX19nbXB6X211bCh0LGExLGIyKTsKCQlfX2dtcHpfbXVsKHUsYjEsZDIpOwoJCV9fZ21wel9hZGQoYjAsdCx1KTsKCQlfX2dtcHpfbXVsKHQsYzEsYTIpOwoJCV9fZ21wel9tdWwodSxkMSxjMik7CgkJX19nbXB6X2FkZChjMCx0LHUpOwoJCV9fZ21wel9tdWwodCxjMSxiMik7CgkJX19nbXB6X211bCh1LGQxLGQyKTsKCQlfX2dtcHpfYWRkKGQwLHQsdSk7CgoJCV9fZ21wel9zZXQoYTEsYTApOwoJCV9fZ21wel9zZXQoYjEsYjApOwoJCV9fZ21wel9zZXQoYzEsYzApOwoJCV9fZ21wel9zZXQoZDEsZDApOwoKCQlfX2dtcHpfY2xlYXIoYTApO01hcnNoYWwuRnJlZUhHbG9iYWwoYTApOwoJCV9fZ21wel9jbGVhcihiMCk7TWFyc2hhbC5GcmVlSEdsb2JhbChiMCk7CgkJX19nbXB6X2NsZWFyKGMwKTtNYXJzaGFsLkZyZWVIR2xvYmFsKGMwKTsKCQlfX2dtcHpfY2xlYXIoZDApO01hcnNoYWwuRnJlZUhHbG9iYWwoZDApOwoJCV9fZ21wel9jbGVhcih0KTtNYXJzaGFsLkZyZWVIR2xvYmFsKHQpOwoJCV9fZ21wel9jbGVhcih1KTtNYXJzaGFsLkZyZWVIR2xvYmFsKHUpOwoJfQoKCXN0YXRpYyBNYWluKCk6dm9pZHsKCQlkZWYgc3Rkb3V0PWZvcGVuKCIvZGV2L3N0ZG91dCIsInciKTsKCgkJZGVmIGExPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeik7X19nbXB6X2luaXQoYTEpOwoJCWRlZiBiMT1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopO19fZ21wel9pbml0KGIxKTsKCQlkZWYgYzE9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KTtfX2dtcHpfaW5pdChjMSk7CgkJZGVmIGQxPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeik7X19nbXB6X2luaXQoZDEpOwoJCWRlZiBhMj1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopO19fZ21wel9pbml0KGEyKTsKCQlkZWYgYjI9TWFyc2hhbC5BbGxvY0hHbG9iYWwoYnVmc2l6KTtfX2dtcHpfaW5pdChiMik7CgkJZGVmIGMyPU1hcnNoYWwuQWxsb2NIR2xvYmFsKGJ1ZnNpeik7X19nbXB6X2luaXQoYzIpOwoJCWRlZiBkMj1NYXJzaGFsLkFsbG9jSEdsb2JhbChidWZzaXopO19fZ21wel9pbml0KGQyKTsKCgkJX19nbXB6X3NldF9zaShhMSwxKTsKCQlfX2dtcHpfc2V0X3NpKGIxLDApOwoJCV9fZ21wel9zZXRfc2koYzEsMCk7CgkJX19nbXB6X3NldF9zaShkMSwxKTsKCQlfX2dtcHpfc2V0X3NpKGEyLDEpOwoJCV9fZ21wel9zZXRfc2koYjIsMSk7CgkJX19nbXB6X3NldF9zaShjMiwxKTsKCQlfX2dtcHpfc2V0X3NpKGQyLDApOwoKCQltdXRhYmxlIE49aW50LlBhcnNlKENvbnNvbGUuUmVhZExpbmUoKSk7CgkJTj0oTiszKS8yKjI7CgkJZm9yKDtOPjA7Tj4+PTEpewoJCQl3aGVuKChOJjEpPjApbXVsKGExLGIxLGMxLGQxLGEyLGIyLGMyLGQyKTsKCQkJbXVsKGEyLGIyLGMyLGQyLGEyLGIyLGMyLGQyKTsKCQl9CgkJX19nbXB6X3N1Yl91aShjMSxjMSwxKTsKCQlfX2dtcHpfb3V0X3N0cihzdGRvdXQsMTAsYzEpOwoJCWZmbHVzaChzdGRvdXQpOwoJCXB1dHMoIiIpOwoJCWZmbHVzaChzdGRvdXQpOwoKCQlfX2dtcHpfY2xlYXIoYTEpO01hcnNoYWwuRnJlZUhHbG9iYWwoYTEpOwoJCV9fZ21wel9jbGVhcihiMSk7TWFyc2hhbC5GcmVlSEdsb2JhbChiMSk7CgkJX19nbXB6X2NsZWFyKGMxKTtNYXJzaGFsLkZyZWVIR2xvYmFsKGMxKTsKCQlfX2dtcHpfY2xlYXIoZDEpO01hcnNoYWwuRnJlZUhHbG9iYWwoZDEpOwoJCV9fZ21wel9jbGVhcihhMik7TWFyc2hhbC5GcmVlSEdsb2JhbChhMik7CgkJX19nbXB6X2NsZWFyKGIyKTtNYXJzaGFsLkZyZWVIR2xvYmFsKGIyKTsKCQlfX2dtcHpfY2xlYXIoYzIpO01hcnNoYWwuRnJlZUhHbG9iYWwoYzIpOwoJCV9fZ21wel9jbGVhcihkMik7TWFyc2hhbC5GcmVlSEdsb2JhbChkMik7Cgl9Cn0=