npm i uint256s
var uint256 = requre("uint256").uint256;
// Inline test similar to the js function
function TestUint256AdHoc() {
let g = new uint256(0);
console.log(g.toString());
g.decrement();
console.log('g--', g.toString());
g.decrement();
console.log('g--', g.toString());
g.increment();
console.log('g++', g.toString());
g.increment();
console.log('g++', g.toString());
g.increment();
console.log('g++', g.toString());
g.increment();
console.log('g++', g.toString());
let a = new uint256(7);
console.log('a=7', a.toString());
let b = new uint256();
console.log('b undefined', b.toString());
let c = 3;
a = new uint256(c);
a.pn.writeUInt32LE(15, 12);
console.log(a.toString());
a = new uint256(5);
a.pn.writeUInt32LE(15, 12);
console.log(a.toString());
b = new uint256(1);
b.leftShift(52);
console.log(b.toString(), '<<');
a.bitwiseOr(b);
a.bitwiseXor(0x500);
console.log('a', a.toString());
a = a.clone();
a.bitwiseOr(new uint256(0x1000));
console.log('a', a.toString());
console.log('b', b.toString());
a = new uint256(0xfffffffe);
a.pn.writeUInt32LE(9, 16);
console.log(a.toString());
a.increment();
console.log(a.toString());
a.increment();
console.log(a.toString());
a.increment();
console.log(a.toString());
a.increment();
console.log(a.toString());
a.decrement();
console.log(a.toString());
a.decrement();
console.log(a.toString());
a.decrement();
console.log(a.toString());
let d = a.clone();
a.decrement();
console.log(d.toString());
console.log(a.toString());
d = a.clone();
console.log(d.toString());
let neg = a.clone();
neg.not();
console.log(neg.toString());
let e = new uint256("0xABCDEF123abcdef12345678909832180000011111111");
console.log(e.toString());
let x1 = new uint256("0xABCDEF123abcdef12345678909832180000011111111");
let x2 = new uint256();
for (let i = 0; i < 270; i += 4) {
x2 = x1.clone();
x2.leftShift(i);
console.log(x2.toString());
}
for (let i = 0; i < 270; i += 4) {
x2 = x1.clone();
x2.rightShift(i);
console.log(x2.toString());
}
for (let i = 0; i < 250; i++) {
let k = new uint256();
k.not();
k.rightShift(i);
console.log(k.toString(), "k1");
}
for (let i = 0; i < 250; i++) {
let k = new uint256();
k.not();
k.leftShift(i);
console.log(k.toString(), "k2");
}
}
// Run the test
TestUint256AdHoc();
0000000000000000000000000000000000000000000000000000000000000000 g-- ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff g-- fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe g++ ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff g++ 0000000000000000000000000000000000000000000000000000000000000000 g++ 0000000000000000000000000000000000000000000000000000000000000001 g++ 0000000000000000000000000000000000000000000000000000000000000002 a=7 0000000000000000000000000000000000000000000000000000000000000007 b undefined 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000f000000000000000000000003 000000000000000000000000000000000000000f000000000000000000000005 0000000000000000000000000000000000000000000000000010000000000000 << a 000000000000000000000000000000000000000f000000000010000000000505 a 000000000000000000000000000000000000000f000000000010000000001505 b 0000000000000000000000000000000000000000000000000010000000000000 00000000000000000000000000000009000000000000000000000000fffffffe 00000000000000000000000000000009000000000000000000000000ffffffff 0000000000000000000000000000000900000000000000000000000100000000 0000000000000000000000000000000900000000000000000000000100000001 0000000000000000000000000000000900000000000000000000000100000002 0000000000000000000000000000000900000000000000000000000100000001 0000000000000000000000000000000900000000000000000000000100000000 00000000000000000000000000000009000000000000000000000000ffffffff 00000000000000000000000000000009000000000000000000000000ffffffff 00000000000000000000000000000009000000000000000000000000fffffffe 00000000000000000000000000000009000000000000000000000000fffffffe fffffffffffffffffffffffffffffff6ffffffffffffffffffffffff00000001 00000000000000000000abcdef123abcdef12345678909832180000011111111 00000000000000000000abcdef123abcdef12345678909832180000011111111 0000000000000000000abcdef123abcdef123456789098321800000111111110 000000000000000000abcdef123abcdef1234567890983218000001111111100 00000000000000000abcdef123abcdef12345678909832180000011111111000 0000000000000000abcdef123abcdef123456789098321800000111111110000 000000000000000abcdef123abcdef1234567890983218000001111111100000 00000000000000abcdef123abcdef12345678909832180000011111111000000 0000000000000abcdef123abcdef123456789098321800000111111110000000 000000000000abcdef123abcdef1234567890983218000001111111100000000 00000000000abcdef123abcdef12345678909832180000011111111000000000 0000000000abcdef123abcdef123456789098321800000111111110000000000 000000000abcdef123abcdef1234567890983218000001111111100000000000 00000000abcdef123abcdef12345678909832180000011111111000000000000 0000000abcdef123abcdef123456789098321800000111111110000000000000 000000abcdef123abcdef1234567890983218000001111111100000000000000 00000abcdef123abcdef12345678909832180000011111111000000000000000 0000abcdef123abcdef123456789098321800000111111110000000000000000 000abcdef123abcdef1234567890983218000001111111100000000000000000 00abcdef123abcdef12345678909832180000011111111000000000000000000 0abcdef123abcdef123456789098321800000111111110000000000000000000 abcdef123abcdef1234567890983218000001111111100000000000000000000 bcdef123abcdef12345678909832180000011111111000000000000000000000 cdef123abcdef123456789098321800000111111110000000000000000000000 def123abcdef1234567890983218000001111111100000000000000000000000 ef123abcdef12345678909832180000011111111000000000000000000000000 f123abcdef123456789098321800000111111110000000000000000000000000 123abcdef1234567890983218000001111111100000000000000000000000000 23abcdef12345678909832180000011111111000000000000000000000000000 3abcdef123456789098321800000111111110000000000000000000000000000 abcdef1234567890983218000001111111100000000000000000000000000000 bcdef12345678909832180000011111111000000000000000000000000000000 cdef123456789098321800000111111110000000000000000000000000000000 def1234567890983218000001111111100000000000000000000000000000000 ef12345678909832180000011111111000000000000000000000000000000000 f123456789098321800000111111110000000000000000000000000000000000 1234567890983218000001111111100000000000000000000000000000000000 2345678909832180000011111111000000000000000000000000000000000000 3456789098321800000111111110000000000000000000000000000000000000 4567890983218000001111111100000000000000000000000000000000000000 5678909832180000011111111000000000000000000000000000000000000000 6789098321800000111111110000000000000000000000000000000000000000 7890983218000001111111100000000000000000000000000000000000000000 8909832180000011111111000000000000000000000000000000000000000000 9098321800000111111110000000000000000000000000000000000000000000 0983218000001111111100000000000000000000000000000000000000000000 9832180000011111111000000000000000000000000000000000000000000000 8321800000111111110000000000000000000000000000000000000000000000 3218000001111111100000000000000000000000000000000000000000000000 2180000011111111000000000000000000000000000000000000000000000000 1800000111111110000000000000000000000000000000000000000000000000 8000001111111100000000000000000000000000000000000000000000000000 0000011111111000000000000000000000000000000000000000000000000000 0000111111110000000000000000000000000000000000000000000000000000 0001111111100000000000000000000000000000000000000000000000000000 0011111111000000000000000000000000000000000000000000000000000000 0111111110000000000000000000000000000000000000000000000000000000 1111111100000000000000000000000000000000000000000000000000000000 1111111000000000000000000000000000000000000000000000000000000000 1111110000000000000000000000000000000000000000000000000000000000 1111100000000000000000000000000000000000000000000000000000000000 1111000000000000000000000000000000000000000000000000000000000000 1110000000000000000000000000000000000000000000000000000000000000 1100000000000000000000000000000000000000000000000000000000000000 1000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000abcdef123abcdef12345678909832180000011111111 000000000000000000000abcdef123abcdef1234567890983218000001111111 0000000000000000000000abcdef123abcdef123456789098321800000111111 00000000000000000000000abcdef123abcdef12345678909832180000011111 000000000000000000000000abcdef123abcdef1234567890983218000001111 0000000000000000000000000abcdef123abcdef123456789098321800000111 00000000000000000000000000abcdef123abcdef12345678909832180000011 000000000000000000000000000abcdef123abcdef1234567890983218000001 0000000000000000000000000000abcdef123abcdef123456789098321800000 00000000000000000000000000000abcdef123abcdef12345678909832180000 000000000000000000000000000000abcdef123abcdef1234567890983218000 0000000000000000000000000000000abcdef123abcdef123456789098321800 00000000000000000000000000000000abcdef123abcdef12345678909832180 000000000000000000000000000000000abcdef123abcdef1234567890983218 0000000000000000000000000000000000abcdef123abcdef123456789098321 00000000000000000000000000000000000abcdef123abcdef12345678909832 000000000000000000000000000000000000abcdef123abcdef1234567890983 0000000000000000000000000000000000000abcdef123abcdef123456789098 00000000000000000000000000000000000000abcdef123abcdef12345678909 000000000000000000000000000000000000000abcdef123abcdef1234567890 0000000000000000000000000000000000000000abcdef123abcdef123456789 00000000000000000000000000000000000000000abcdef123abcdef12345678 000000000000000000000000000000000000000000abcdef123abcdef1234567 0000000000000000000000000000000000000000000abcdef123abcdef123456 00000000000000000000000000000000000000000000abcdef123abcdef12345 000000000000000000000000000000000000000000000abcdef123abcdef1234 0000000000000000000000000000000000000000000000abcdef123abcdef123 00000000000000000000000000000000000000000000000abcdef123abcdef12 000000000000000000000000000000000000000000000000abcdef123abcdef1 0000000000000000000000000000000000000000000000000abcdef123abcdef 00000000000000000000000000000000000000000000000000abcdef123abcde 000000000000000000000000000000000000000000000000000abcdef123abcd 0000000000000000000000000000000000000000000000000000abcdef123abc 00000000000000000000000000000000000000000000000000000abcdef123ab 000000000000000000000000000000000000000000000000000000abcdef123a 0000000000000000000000000000000000000000000000000000000abcdef123 00000000000000000000000000000000000000000000000000000000abcdef12 000000000000000000000000000000000000000000000000000000000abcdef1 0000000000000000000000000000000000000000000000000000000000abcdef 00000000000000000000000000000000000000000000000000000000000abcde 000000000000000000000000000000000000000000000000000000000000abcd 0000000000000000000000000000000000000000000000000000000000000abc 00000000000000000000000000000000000000000000000000000000000000ab 000000000000000000000000000000000000000000000000000000000000000a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000003fffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000003fffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000001fffffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000fffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000007fffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000003fffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000001fffffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000007ffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000003ffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000007fffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000003fffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000001fffffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000000fffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000007ffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000003ffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000001ffffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000007fffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000003fffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000001fffffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000000fffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000000007ffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000000003ffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000000001ffffffffffffffffffffffffffffffffffffffffffffff k1 000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000007fffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000003fffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000001fffffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000000fffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000000007ffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000000003ffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000000001ffffffffffffffffffffffffffffffffffffffffffff k1 00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff k1 000000000000000000007fffffffffffffffffffffffffffffffffffffffffff k1 000000000000000000003fffffffffffffffffffffffffffffffffffffffffff k1 000000000000000000001fffffffffffffffffffffffffffffffffffffffffff k1 000000000000000000000fffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000000007ffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000000003ffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000000001ffffffffffffffffffffffffffffffffffffffffff k1 0000000000000000000000ffffffffffffffffffffffffffffffffffffffffff k1 00000000000000000000007fffffffffffffffffffffffffffffffffffffffff k1 00000000000000000000003fffffffffffffffffffffffffffffffffffffffff k1 00000000000000000000001fffffffffffffffffffffffffffffffffffffffff k1 00000000000000000000000fffffffffffffffffffffffffffffffffffffffff k1 000000000000000000000007ffffffffffffffffffffffffffffffffffffffff k1 000000000000000000000003ffffffffffffffffffffffffffffffffffffffff k1 000000000000000000000001ffffffffffffffffffffffffffffffffffffffff k1 000000000000000000000000ffffffffffffffffffffffffffffffffffffffff k1 0000000000000000000000007fffffffffffffffffffffffffffffffffffffff k1 0000000000000000000000003fffffffffffffffffffffffffffffffffffffff k1 0000000000000000000000001fffffffffffffffffffffffffffffffffffffff k1 0000000000000000000000000fffffffffffffffffffffffffffffffffffffff k1 00000000000000000000000007ffffffffffffffffffffffffffffffffffffff k1 00000000000000000000000003ffffffffffffffffffffffffffffffffffffff k1 00000000000000000000000001ffffffffffffffffffffffffffffffffffffff k1 00000000000000000000000000ffffffffffffffffffffffffffffffffffffff k1 000000000000000000000000007fffffffffffffffffffffffffffffffffffff k1 000000000000000000000000003fffffffffffffffffffffffffffffffffffff k1 000000000000000000000000001fffffffffffffffffffffffffffffffffffff k1 000000000000000000000000000fffffffffffffffffffffffffffffffffffff k1 0000000000000000000000000007ffffffffffffffffffffffffffffffffffff k1 0000000000000000000000000003ffffffffffffffffffffffffffffffffffff k1 0000000000000000000000000001ffffffffffffffffffffffffffffffffffff k1 0000000000000000000000000000ffffffffffffffffffffffffffffffffffff k1 00000000000000000000000000007fffffffffffffffffffffffffffffffffff k1 00000000000000000000000000003fffffffffffffffffffffffffffffffffff k1 00000000000000000000000000001fffffffffffffffffffffffffffffffffff k1 00000000000000000000000000000fffffffffffffffffffffffffffffffffff k1 000000000000000000000000000007ffffffffffffffffffffffffffffffffff k1 000000000000000000000000000003ffffffffffffffffffffffffffffffffff k1 000000000000000000000000000001ffffffffffffffffffffffffffffffffff k1 000000000000000000000000000000ffffffffffffffffffffffffffffffffff k1 0000000000000000000000000000007fffffffffffffffffffffffffffffffff k1 0000000000000000000000000000003fffffffffffffffffffffffffffffffff k1 0000000000000000000000000000001fffffffffffffffffffffffffffffffff k1 0000000000000000000000000000000fffffffffffffffffffffffffffffffff k1 00000000000000000000000000000007ffffffffffffffffffffffffffffffff k1 00000000000000000000000000000003ffffffffffffffffffffffffffffffff k1 00000000000000000000000000000001ffffffffffffffffffffffffffffffff k1 00000000000000000000000000000000ffffffffffffffffffffffffffffffff k1 000000000000000000000000000000007fffffffffffffffffffffffffffffff k1 000000000000000000000000000000003fffffffffffffffffffffffffffffff k1 000000000000000000000000000000001fffffffffffffffffffffffffffffff k1 000000000000000000000000000000000fffffffffffffffffffffffffffffff k1 0000000000000000000000000000000007ffffffffffffffffffffffffffffff k1 0000000000000000000000000000000003ffffffffffffffffffffffffffffff k1 0000000000000000000000000000000001ffffffffffffffffffffffffffffff k1 0000000000000000000000000000000000ffffffffffffffffffffffffffffff k1 00000000000000000000000000000000007fffffffffffffffffffffffffffff k1 00000000000000000000000000000000003fffffffffffffffffffffffffffff k1 00000000000000000000000000000000001fffffffffffffffffffffffffffff k1 00000000000000000000000000000000000fffffffffffffffffffffffffffff k1 000000000000000000000000000000000007ffffffffffffffffffffffffffff k1 000000000000000000000000000000000003ffffffffffffffffffffffffffff k1 000000000000000000000000000000000001ffffffffffffffffffffffffffff k1 000000000000000000000000000000000000ffffffffffffffffffffffffffff k1 0000000000000000000000000000000000007fffffffffffffffffffffffffff k1 0000000000000000000000000000000000003fffffffffffffffffffffffffff k1 0000000000000000000000000000000000001fffffffffffffffffffffffffff k1 0000000000000000000000000000000000000fffffffffffffffffffffffffff k1 00000000000000000000000000000000000007ffffffffffffffffffffffffff k1 00000000000000000000000000000000000003ffffffffffffffffffffffffff k1 00000000000000000000000000000000000001ffffffffffffffffffffffffff k1 00000000000000000000000000000000000000ffffffffffffffffffffffffff k1 000000000000000000000000000000000000007fffffffffffffffffffffffff k1 000000000000000000000000000000000000003fffffffffffffffffffffffff k1 000000000000000000000000000000000000001fffffffffffffffffffffffff k1 000000000000000000000000000000000000000fffffffffffffffffffffffff k1 0000000000000000000000000000000000000007ffffffffffffffffffffffff k1 0000000000000000000000000000000000000003ffffffffffffffffffffffff k1 0000000000000000000000000000000000000001ffffffffffffffffffffffff k1 0000000000000000000000000000000000000000ffffffffffffffffffffffff k1 00000000000000000000000000000000000000007fffffffffffffffffffffff k1 00000000000000000000000000000000000000003fffffffffffffffffffffff k1 00000000000000000000000000000000000000001fffffffffffffffffffffff k1 00000000000000000000000000000000000000000fffffffffffffffffffffff k1 000000000000000000000000000000000000000007ffffffffffffffffffffff k1 000000000000000000000000000000000000000003ffffffffffffffffffffff k1 000000000000000000000000000000000000000001ffffffffffffffffffffff k1 000000000000000000000000000000000000000000ffffffffffffffffffffff k1 0000000000000000000000000000000000000000007fffffffffffffffffffff k1 0000000000000000000000000000000000000000003fffffffffffffffffffff k1 0000000000000000000000000000000000000000001fffffffffffffffffffff k1 0000000000000000000000000000000000000000000fffffffffffffffffffff k1 00000000000000000000000000000000000000000007ffffffffffffffffffff k1 00000000000000000000000000000000000000000003ffffffffffffffffffff k1 00000000000000000000000000000000000000000001ffffffffffffffffffff k1 00000000000000000000000000000000000000000000ffffffffffffffffffff k1 000000000000000000000000000000000000000000007fffffffffffffffffff k1 000000000000000000000000000000000000000000003fffffffffffffffffff k1 000000000000000000000000000000000000000000001fffffffffffffffffff k1 000000000000000000000000000000000000000000000fffffffffffffffffff k1 0000000000000000000000000000000000000000000007ffffffffffffffffff k1 0000000000000000000000000000000000000000000003ffffffffffffffffff k1 0000000000000000000000000000000000000000000001ffffffffffffffffff k1 0000000000000000000000000000000000000000000000ffffffffffffffffff k1 00000000000000000000000000000000000000000000007fffffffffffffffff k1 00000000000000000000000000000000000000000000003fffffffffffffffff k1 00000000000000000000000000000000000000000000001fffffffffffffffff k1 00000000000000000000000000000000000000000000000fffffffffffffffff k1 000000000000000000000000000000000000000000000007ffffffffffffffff k1 000000000000000000000000000000000000000000000003ffffffffffffffff k1 000000000000000000000000000000000000000000000001ffffffffffffffff k1 000000000000000000000000000000000000000000000000ffffffffffffffff k1 0000000000000000000000000000000000000000000000007fffffffffffffff k1 0000000000000000000000000000000000000000000000003fffffffffffffff k1 0000000000000000000000000000000000000000000000001fffffffffffffff k1 0000000000000000000000000000000000000000000000000fffffffffffffff k1 00000000000000000000000000000000000000000000000007ffffffffffffff k1 00000000000000000000000000000000000000000000000003ffffffffffffff k1 00000000000000000000000000000000000000000000000001ffffffffffffff k1 00000000000000000000000000000000000000000000000000ffffffffffffff k1 000000000000000000000000000000000000000000000000007fffffffffffff k1 000000000000000000000000000000000000000000000000003fffffffffffff k1 000000000000000000000000000000000000000000000000001fffffffffffff k1 000000000000000000000000000000000000000000000000000fffffffffffff k1 0000000000000000000000000000000000000000000000000007ffffffffffff k1 0000000000000000000000000000000000000000000000000003ffffffffffff k1 0000000000000000000000000000000000000000000000000001ffffffffffff k1 0000000000000000000000000000000000000000000000000000ffffffffffff k1 00000000000000000000000000000000000000000000000000007fffffffffff k1 00000000000000000000000000000000000000000000000000003fffffffffff k1 00000000000000000000000000000000000000000000000000001fffffffffff k1 00000000000000000000000000000000000000000000000000000fffffffffff k1 000000000000000000000000000000000000000000000000000007ffffffffff k1 000000000000000000000000000000000000000000000000000003ffffffffff k1 000000000000000000000000000000000000000000000000000001ffffffffff k1 000000000000000000000000000000000000000000000000000000ffffffffff k1 0000000000000000000000000000000000000000000000000000007fffffffff k1 0000000000000000000000000000000000000000000000000000003fffffffff k1 0000000000000000000000000000000000000000000000000000001fffffffff k1 0000000000000000000000000000000000000000000000000000000fffffffff k1 00000000000000000000000000000000000000000000000000000007ffffffff k1 00000000000000000000000000000000000000000000000000000003ffffffff k1 00000000000000000000000000000000000000000000000000000001ffffffff k1 00000000000000000000000000000000000000000000000000000000ffffffff k1 000000000000000000000000000000000000000000000000000000007fffffff k1 000000000000000000000000000000000000000000000000000000003fffffff k1 000000000000000000000000000000000000000000000000000000001fffffff k1 000000000000000000000000000000000000000000000000000000000fffffff k1 0000000000000000000000000000000000000000000000000000000007ffffff k1 0000000000000000000000000000000000000000000000000000000003ffffff k1 0000000000000000000000000000000000000000000000000000000001ffffff k1 0000000000000000000000000000000000000000000000000000000000ffffff k1 00000000000000000000000000000000000000000000000000000000007fffff k1 00000000000000000000000000000000000000000000000000000000003fffff k1 00000000000000000000000000000000000000000000000000000000001fffff k1 00000000000000000000000000000000000000000000000000000000000fffff k1 000000000000000000000000000000000000000000000000000000000007ffff k1 000000000000000000000000000000000000000000000000000000000003ffff k1 000000000000000000000000000000000000000000000000000000000001ffff k1 000000000000000000000000000000000000000000000000000000000000ffff k1 0000000000000000000000000000000000000000000000000000000000007fff k1 0000000000000000000000000000000000000000000000000000000000003fff k1 0000000000000000000000000000000000000000000000000000000000001fff k1 0000000000000000000000000000000000000000000000000000000000000fff k1 00000000000000000000000000000000000000000000000000000000000007ff k1 00000000000000000000000000000000000000000000000000000000000003ff k1 00000000000000000000000000000000000000000000000000000000000001ff k1 00000000000000000000000000000000000000000000000000000000000000ff k1 000000000000000000000000000000000000000000000000000000000000007f k1 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffff800000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffff800000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffffc000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffff800000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffffc000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffffc0000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffff80000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffff800000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffe000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffffc000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffff8000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffff80000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffe00000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffffc00000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffff800000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffff000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffe000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffffc000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffff8000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffe0000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffffc0000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffff80000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffff00000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffe00000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffffc00000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffff800000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffe000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffffc000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffff8000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffff0000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffe0000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffffc0000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffff80000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffff00000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffe00000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffffc00000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffff800000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffff000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffe000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffffc000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffff8000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffff0000000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffe0000000000000000000000000000 k2 fffffffffffffffffffffffffffffffffffc0000000000000000000000000000 k2 fffffffffffffffffffffffffffffffffff80000000000000000000000000000 k2 fffffffffffffffffffffffffffffffffff00000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffe00000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffffc00000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffff800000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffff000000000000000000000000000000 k2 fffffffffffffffffffffffffffffffffe000000000000000000000000000000 k2 fffffffffffffffffffffffffffffffffc000000000000000000000000000000 k2 fffffffffffffffffffffffffffffffff8000000000000000000000000000000 k2 fffffffffffffffffffffffffffffffff0000000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffe0000000000000000000000000000000 k2 ffffffffffffffffffffffffffffffffc0000000000000000000000000000000 k2 ffffffffffffffffffffffffffffffff80000000000000000000000000000000 k2 ffffffffffffffffffffffffffffffff00000000000000000000000000000000 k2 fffffffffffffffffffffffffffffffe00000000000000000000000000000000 k2 fffffffffffffffffffffffffffffffc00000000000000000000000000000000 k2 fffffffffffffffffffffffffffffff800000000000000000000000000000000 k2 fffffffffffffffffffffffffffffff000000000000000000000000000000000 k2 ffffffffffffffffffffffffffffffe000000000000000000000000000000000 k2 ffffffffffffffffffffffffffffffc000000000000000000000000000000000 k2 ffffffffffffffffffffffffffffff8000000000000000000000000000000000 k2 ffffffffffffffffffffffffffffff0000000000000000000000000000000000 k2 fffffffffffffffffffffffffffffe0000000000000000000000000000000000 k2 fffffffffffffffffffffffffffffc0000000000000000000000000000000000 k2 fffffffffffffffffffffffffffff80000000000000000000000000000000000 k2 fffffffffffffffffffffffffffff00000000000000000000000000000000000 k2 ffffffffffffffffffffffffffffe00000000000000000000000000000000000 k2 ffffffffffffffffffffffffffffc00000000000000000000000000000000000 k2 ffffffffffffffffffffffffffff800000000000000000000000000000000000 k2 ffffffffffffffffffffffffffff000000000000000000000000000000000000 k2 fffffffffffffffffffffffffffe000000000000000000000000000000000000 k2 fffffffffffffffffffffffffffc000000000000000000000000000000000000 k2 fffffffffffffffffffffffffff8000000000000000000000000000000000000 k2 fffffffffffffffffffffffffff0000000000000000000000000000000000000 k2 ffffffffffffffffffffffffffe0000000000000000000000000000000000000 k2 ffffffffffffffffffffffffffc0000000000000000000000000000000000000 k2 ffffffffffffffffffffffffff80000000000000000000000000000000000000 k2 ffffffffffffffffffffffffff00000000000000000000000000000000000000 k2 fffffffffffffffffffffffffe00000000000000000000000000000000000000 k2 fffffffffffffffffffffffffc00000000000000000000000000000000000000 k2 fffffffffffffffffffffffff800000000000000000000000000000000000000 k2 fffffffffffffffffffffffff000000000000000000000000000000000000000 k2 ffffffffffffffffffffffffe000000000000000000000000000000000000000 k2 ffffffffffffffffffffffffc000000000000000000000000000000000000000 k2 ffffffffffffffffffffffff8000000000000000000000000000000000000000 k2 ffffffffffffffffffffffff0000000000000000000000000000000000000000 k2 fffffffffffffffffffffffe0000000000000000000000000000000000000000 k2 fffffffffffffffffffffffc0000000000000000000000000000000000000000 k2 fffffffffffffffffffffff80000000000000000000000000000000000000000 k2 fffffffffffffffffffffff00000000000000000000000000000000000000000 k2 ffffffffffffffffffffffe00000000000000000000000000000000000000000 k2 ffffffffffffffffffffffc00000000000000000000000000000000000000000 k2 ffffffffffffffffffffff800000000000000000000000000000000000000000 k2 ffffffffffffffffffffff000000000000000000000000000000000000000000 k2 fffffffffffffffffffffe000000000000000000000000000000000000000000 k2 fffffffffffffffffffffc000000000000000000000000000000000000000000 k2 fffffffffffffffffffff8000000000000000000000000000000000000000000 k2 fffffffffffffffffffff0000000000000000000000000000000000000000000 k2 ffffffffffffffffffffe0000000000000000000000000000000000000000000 k2 ffffffffffffffffffffc0000000000000000000000000000000000000000000 k2 ffffffffffffffffffff80000000000000000000000000000000000000000000 k2 ffffffffffffffffffff00000000000000000000000000000000000000000000 k2 fffffffffffffffffffe00000000000000000000000000000000000000000000 k2 fffffffffffffffffffc00000000000000000000000000000000000000000000 k2 fffffffffffffffffff800000000000000000000000000000000000000000000 k2 fffffffffffffffffff000000000000000000000000000000000000000000000 k2 ffffffffffffffffffe000000000000000000000000000000000000000000000 k2 ffffffffffffffffffc000000000000000000000000000000000000000000000 k2 ffffffffffffffffff8000000000000000000000000000000000000000000000 k2 ffffffffffffffffff0000000000000000000000000000000000000000000000 k2 fffffffffffffffffe0000000000000000000000000000000000000000000000 k2 fffffffffffffffffc0000000000000000000000000000000000000000000000 k2 fffffffffffffffff80000000000000000000000000000000000000000000000 k2 fffffffffffffffff00000000000000000000000000000000000000000000000 k2 ffffffffffffffffe00000000000000000000000000000000000000000000000 k2 ffffffffffffffffc00000000000000000000000000000000000000000000000 k2 ffffffffffffffff800000000000000000000000000000000000000000000000 k2 ffffffffffffffff000000000000000000000000000000000000000000000000 k2 fffffffffffffffe000000000000000000000000000000000000000000000000 k2 fffffffffffffffc000000000000000000000000000000000000000000000000 k2 fffffffffffffff8000000000000000000000000000000000000000000000000 k2 fffffffffffffff0000000000000000000000000000000000000000000000000 k2 ffffffffffffffe0000000000000000000000000000000000000000000000000 k2 ffffffffffffffc0000000000000000000000000000000000000000000000000 k2 ffffffffffffff80000000000000000000000000000000000000000000000000 k2 ffffffffffffff00000000000000000000000000000000000000000000000000 k2 fffffffffffffe00000000000000000000000000000000000000000000000000 k2 fffffffffffffc00000000000000000000000000000000000000000000000000 k2 fffffffffffff800000000000000000000000000000000000000000000000000 k2 fffffffffffff000000000000000000000000000000000000000000000000000 k2 ffffffffffffe000000000000000000000000000000000000000000000000000 k2 ffffffffffffc000000000000000000000000000000000000000000000000000 k2 ffffffffffff8000000000000000000000000000000000000000000000000000 k2 ffffffffffff0000000000000000000000000000000000000000000000000000 k2 fffffffffffe0000000000000000000000000000000000000000000000000000 k2 fffffffffffc0000000000000000000000000000000000000000000000000000 k2 fffffffffff80000000000000000000000000000000000000000000000000000 k2 fffffffffff00000000000000000000000000000000000000000000000000000 k2 ffffffffffe00000000000000000000000000000000000000000000000000000 k2 ffffffffffc00000000000000000000000000000000000000000000000000000 k2 ffffffffff800000000000000000000000000000000000000000000000000000 k2 ffffffffff000000000000000000000000000000000000000000000000000000 k2 fffffffffe000000000000000000000000000000000000000000000000000000 k2 fffffffffc000000000000000000000000000000000000000000000000000000 k2 fffffffff8000000000000000000000000000000000000000000000000000000 k2 fffffffff0000000000000000000000000000000000000000000000000000000 k2 ffffffffe0000000000000000000000000000000000000000000000000000000 k2 ffffffffc0000000000000000000000000000000000000000000000000000000 k2 ffffffff80000000000000000000000000000000000000000000000000000000 k2 ffffffff00000000000000000000000000000000000000000000000000000000 k2 fffffffe00000000000000000000000000000000000000000000000000000000 k2 fffffffc00000000000000000000000000000000000000000000000000000000 k2 fffffff800000000000000000000000000000000000000000000000000000000 k2 fffffff000000000000000000000000000000000000000000000000000000000 k2 ffffffe000000000000000000000000000000000000000000000000000000000 k2 ffffffc000000000000000000000000000000000000000000000000000000000 k2 ffffff8000000000000000000000000000000000000000000000000000000000 k2 ffffff0000000000000000000000000000000000000000000000000000000000 k2 fffffe0000000000000000000000000000000000000000000000000000000000 k2 fffffc0000000000000000000000000000000000000000000000000000000000 k2 fffff80000000000000000000000000000000000000000000000000000000000 k2 fffff00000000000000000000000000000000000000000000000000000000000 k2 ffffe00000000000000000000000000000000000000000000000000000000000 k2 ffffc00000000000000000000000000000000000000000000000000000000000 k2 ffff800000000000000000000000000000000000000000000000000000000000 k2 ffff000000000000000000000000000000000000000000000000000000000000 k2 fffe000000000000000000000000000000000000000000000000000000000000 k2 fffc000000000000000000000000000000000000000000000000000000000000 k2 fff8000000000000000000000000000000000000000000000000000000000000 k2 fff0000000000000000000000000000000000000000000000000000000000000 k2 ffe0000000000000000000000000000000000000000000000000000000000000 k2 ffc0000000000000000000000000000000000000000000000000000000000000 k2 ff80000000000000000000000000000000000000000000000000000000000000 k2 ff00000000000000000000000000000000000000000000000000000000000000 k2 fe00000000000000000000000000000000000000000000000000000000000000 k2
var uint160 = require("uint160").uint160;
// Inline test similar to the js function
function TestUint160AdHoc() {
let g = new uint160(0);
console.log(g.toString());
g.decrement();
console.log('g--', g.toString());
g.decrement();
console.log('g--', g.toString());
g.increment();
console.log('g++', g.toString());
g.increment();
console.log('g++', g.toString());
let a = new uint160(7);
console.log('a=7', a.toString());
let b = new uint160();
console.log('b undefined', b.toString());
let c = 3;
a = new uint160(c);
a.pn.writeUInt32LE(15, 12);
console.log(a.toString());
a = new uint160(5);
a.pn.writeUInt32LE(15, 12);
console.log(a.toString());
b = new uint160(1);
b.leftShift(52);
console.log(b.toString(), '<<');
a.bitwiseOr(b);
a.bitwiseXor(0x500);
console.log('a', a.toString());
a = a.clone();
a.bitwiseOr(new uint160(0x1000));
console.log('a', a.toString());
console.log('b', b.toString());
a = new uint160(0xfffffffe);
a.pn.writeUInt32LE(9, 16);
console.log(a.toString());
a.increment();
console.log(a.toString());
a.increment();
console.log(a.toString());
let d = a.clone();
a.decrement();
console.log(d.toString());
console.log(a.toString());
d = a.clone();
console.log(d.toString());
let neg = a.clone();
neg.not();
console.log(neg.toString());
let e = new uint160("0xABCDEF123abcdef12345678909832180000011111111");
console.log(e.toString());
let x1 = new uint160("0xABCDEF123abcdef12345678909832180000011111111");
let x2 = new uint160();
for (let i = 0; i < 270; i += 4) {
x2 = x1.clone();
x2.leftShift(i);
console.log(x2.toString());
}
for (let i = 0; i < 270; i += 4) {
x2 = x1.clone();
x2.rightShift(i);
console.log(x2.toString());
}
for (let i = 0; i < 250; i++) {
let k = new uint160();
k.not();
k.rightShift(i);
console.log(k.toString(), "k1");
}
for (let i = 0; i < 250; i++) {
let k = new uint160();
k.not();
k.leftShift(i);
console.log(k.toString(), "k2");
}
}
// Run the test
TestUint160AdHoc();
0000000000000000000000000000000000000000 g-- ffffffffffffffffffffffffffffffffffffffff g-- fffffffffffffffffffffffffffffffffffffffe g++ ffffffffffffffffffffffffffffffffffffffff g++ 0000000000000000000000000000000000000000 a=7 0000000000000000000000000000000000000007 b undefined 0000000000000000000000000000000000000000 000000000000000f000000000000000000000003 000000000000000f000000000000000000000005 0000000000000000000000000010000000000000 << a 000000000000000f000000000010000000000505 a 000000000000000f000000000010000000001505 b 0000000000000000000000000010000000000000 00000009000000000000000000000000fffffffe 00000009000000000000000000000000ffffffff 0000000900000000000000000000000100000000 0000000900000000000000000000000100000000 00000009000000000000000000000000ffffffff 00000009000000000000000000000000ffffffff fffffff6ffffffffffffffffffffffff00000000 abcdef123abcdef12345678909832180000011111111 ef123abcdef12345678909832180000011111111 f123abcdef123456789098321800000111111110 123abcdef1234567890983218000001111111100 23abcdef12345678909832180000011111111000 3abcdef123456789098321800000111111110000 abcdef1234567890983218000001111111100000 bcdef12345678909832180000011111111000000 cdef123456789098321800000111111110000000 def1234567890983218000001111111100000000 ef12345678909832180000011111111000000000 f123456789098321800000111111110000000000 1234567890983218000001111111100000000000 2345678909832180000011111111000000000000 3456789098321800000111111110000000000000 4567890983218000001111111100000000000000 5678909832180000011111111000000000000000 6789098321800000111111110000000000000000 7890983218000001111111100000000000000000 8909832180000011111111000000000000000000 9098321800000111111110000000000000000000 0983218000001111111100000000000000000000 9832180000011111111000000000000000000000 8321800000111111110000000000000000000000 3218000001111111100000000000000000000000 2180000011111111000000000000000000000000 1800000111111110000000000000000000000000 8000001111111100000000000000000000000000 0000011111111000000000000000000000000000 0000111111110000000000000000000000000000 0001111111100000000000000000000000000000 0011111111000000000000000000000000000000 0111111110000000000000000000000000000000 1111111100000000000000000000000000000000 1111111000000000000000000000000000000000 1111110000000000000000000000000000000000 1111100000000000000000000000000000000000 1111000000000000000000000000000000000000 1110000000000000000000000000000000000000 1100000000000000000000000000000000000000 1000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 ef123abcdef12345678909832180000011111111 0ef123abcdef1234567890983218000001111111 00ef123abcdef123456789098321800000111111 000ef123abcdef12345678909832180000011111 0000ef123abcdef1234567890983218000001111 00000ef123abcdef123456789098321800000111 000000ef123abcdef12345678909832180000011 0000000ef123abcdef1234567890983218000001 00000000ef123abcdef123456789098321800000 000000000ef123abcdef12345678909832180000 0000000000ef123abcdef1234567890983218000 00000000000ef123abcdef123456789098321800 000000000000ef123abcdef12345678909832180 0000000000000ef123abcdef1234567890983218 00000000000000ef123abcdef123456789098321 000000000000000ef123abcdef12345678909832 0000000000000000ef123abcdef1234567890983 00000000000000000ef123abcdef123456789098 000000000000000000ef123abcdef12345678909 0000000000000000000ef123abcdef1234567890 00000000000000000000ef123abcdef123456789 000000000000000000000ef123abcdef12345678 0000000000000000000000ef123abcdef1234567 00000000000000000000000ef123abcdef123456 000000000000000000000000ef123abcdef12345 0000000000000000000000000ef123abcdef1234 00000000000000000000000000ef123abcdef123 000000000000000000000000000ef123abcdef12 0000000000000000000000000000ef123abcdef1 00000000000000000000000000000ef123abcdef 000000000000000000000000000000ef123abcde 0000000000000000000000000000000ef123abcd 00000000000000000000000000000000ef123abc 000000000000000000000000000000000ef123ab 0000000000000000000000000000000000ef123a 00000000000000000000000000000000000ef123 000000000000000000000000000000000000ef12 0000000000000000000000000000000000000ef1 00000000000000000000000000000000000000ef 000000000000000000000000000000000000000e 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 ffffffffffffffffffffffffffffffffffffffff k1 7fffffffffffffffffffffffffffffffffffffff k1 3fffffffffffffffffffffffffffffffffffffff k1 1fffffffffffffffffffffffffffffffffffffff k1 0fffffffffffffffffffffffffffffffffffffff k1 07ffffffffffffffffffffffffffffffffffffff k1 03ffffffffffffffffffffffffffffffffffffff k1 01ffffffffffffffffffffffffffffffffffffff k1 00ffffffffffffffffffffffffffffffffffffff k1 007fffffffffffffffffffffffffffffffffffff k1 003fffffffffffffffffffffffffffffffffffff k1 001fffffffffffffffffffffffffffffffffffff k1 000fffffffffffffffffffffffffffffffffffff k1 0007ffffffffffffffffffffffffffffffffffff k1 0003ffffffffffffffffffffffffffffffffffff k1 0001ffffffffffffffffffffffffffffffffffff k1 0000ffffffffffffffffffffffffffffffffffff k1 00007fffffffffffffffffffffffffffffffffff k1 00003fffffffffffffffffffffffffffffffffff k1 00001fffffffffffffffffffffffffffffffffff k1 00000fffffffffffffffffffffffffffffffffff k1 000007ffffffffffffffffffffffffffffffffff k1 000003ffffffffffffffffffffffffffffffffff k1 000001ffffffffffffffffffffffffffffffffff k1 000000ffffffffffffffffffffffffffffffffff k1 0000007fffffffffffffffffffffffffffffffff k1 0000003fffffffffffffffffffffffffffffffff k1 0000001fffffffffffffffffffffffffffffffff k1 0000000fffffffffffffffffffffffffffffffff k1 00000007ffffffffffffffffffffffffffffffff k1 00000003ffffffffffffffffffffffffffffffff k1 00000001ffffffffffffffffffffffffffffffff k1 00000000ffffffffffffffffffffffffffffffff k1 000000007fffffffffffffffffffffffffffffff k1 000000003fffffffffffffffffffffffffffffff k1 000000001fffffffffffffffffffffffffffffff k1 000000000fffffffffffffffffffffffffffffff k1 0000000007ffffffffffffffffffffffffffffff k1 0000000003ffffffffffffffffffffffffffffff k1 0000000001ffffffffffffffffffffffffffffff k1 0000000000ffffffffffffffffffffffffffffff k1 00000000007fffffffffffffffffffffffffffff k1 00000000003fffffffffffffffffffffffffffff k1 00000000001fffffffffffffffffffffffffffff k1 00000000000fffffffffffffffffffffffffffff k1 000000000007ffffffffffffffffffffffffffff k1 000000000003ffffffffffffffffffffffffffff k1 000000000001ffffffffffffffffffffffffffff k1 000000000000ffffffffffffffffffffffffffff k1 0000000000007fffffffffffffffffffffffffff k1 0000000000003fffffffffffffffffffffffffff k1 0000000000001fffffffffffffffffffffffffff k1 0000000000000fffffffffffffffffffffffffff k1 00000000000007ffffffffffffffffffffffffff k1 00000000000003ffffffffffffffffffffffffff k1 00000000000001ffffffffffffffffffffffffff k1 00000000000000ffffffffffffffffffffffffff k1 000000000000007fffffffffffffffffffffffff k1 000000000000003fffffffffffffffffffffffff k1 000000000000001fffffffffffffffffffffffff k1 000000000000000fffffffffffffffffffffffff k1 0000000000000007ffffffffffffffffffffffff k1 0000000000000003ffffffffffffffffffffffff k1 0000000000000001ffffffffffffffffffffffff k1 0000000000000000ffffffffffffffffffffffff k1 00000000000000007fffffffffffffffffffffff k1 00000000000000003fffffffffffffffffffffff k1 00000000000000001fffffffffffffffffffffff k1 00000000000000000fffffffffffffffffffffff k1 000000000000000007ffffffffffffffffffffff k1 000000000000000003ffffffffffffffffffffff k1 000000000000000001ffffffffffffffffffffff k1 000000000000000000ffffffffffffffffffffff k1 0000000000000000007fffffffffffffffffffff k1 0000000000000000003fffffffffffffffffffff k1 0000000000000000001fffffffffffffffffffff k1 0000000000000000000fffffffffffffffffffff k1 00000000000000000007ffffffffffffffffffff k1 00000000000000000003ffffffffffffffffffff k1 00000000000000000001ffffffffffffffffffff k1 00000000000000000000ffffffffffffffffffff k1 000000000000000000007fffffffffffffffffff k1 000000000000000000003fffffffffffffffffff k1 000000000000000000001fffffffffffffffffff k1 000000000000000000000fffffffffffffffffff k1 0000000000000000000007ffffffffffffffffff k1 0000000000000000000003ffffffffffffffffff k1 0000000000000000000001ffffffffffffffffff k1 0000000000000000000000ffffffffffffffffff k1 00000000000000000000007fffffffffffffffff k1 00000000000000000000003fffffffffffffffff k1 00000000000000000000001fffffffffffffffff k1 00000000000000000000000fffffffffffffffff k1 000000000000000000000007ffffffffffffffff k1 000000000000000000000003ffffffffffffffff k1 000000000000000000000001ffffffffffffffff k1 000000000000000000000000ffffffffffffffff k1 0000000000000000000000007fffffffffffffff k1 0000000000000000000000003fffffffffffffff k1 0000000000000000000000001fffffffffffffff k1 0000000000000000000000000fffffffffffffff k1 00000000000000000000000007ffffffffffffff k1 00000000000000000000000003ffffffffffffff k1 00000000000000000000000001ffffffffffffff k1 00000000000000000000000000ffffffffffffff k1 000000000000000000000000007fffffffffffff k1 000000000000000000000000003fffffffffffff k1 000000000000000000000000001fffffffffffff k1 000000000000000000000000000fffffffffffff k1 0000000000000000000000000007ffffffffffff k1 0000000000000000000000000003ffffffffffff k1 0000000000000000000000000001ffffffffffff k1 0000000000000000000000000000ffffffffffff k1 00000000000000000000000000007fffffffffff k1 00000000000000000000000000003fffffffffff k1 00000000000000000000000000001fffffffffff k1 00000000000000000000000000000fffffffffff k1 000000000000000000000000000007ffffffffff k1 000000000000000000000000000003ffffffffff k1 000000000000000000000000000001ffffffffff k1 000000000000000000000000000000ffffffffff k1 0000000000000000000000000000007fffffffff k1 0000000000000000000000000000003fffffffff k1 0000000000000000000000000000001fffffffff k1 0000000000000000000000000000000fffffffff k1 00000000000000000000000000000007ffffffff k1 00000000000000000000000000000003ffffffff k1 00000000000000000000000000000001ffffffff k1 00000000000000000000000000000000ffffffff k1 000000000000000000000000000000007fffffff k1 000000000000000000000000000000003fffffff k1 000000000000000000000000000000001fffffff k1 000000000000000000000000000000000fffffff k1 0000000000000000000000000000000007ffffff k1 0000000000000000000000000000000003ffffff k1 0000000000000000000000000000000001ffffff k1 0000000000000000000000000000000000ffffff k1 00000000000000000000000000000000007fffff k1 00000000000000000000000000000000003fffff k1 00000000000000000000000000000000001fffff k1 00000000000000000000000000000000000fffff k1 000000000000000000000000000000000007ffff k1 000000000000000000000000000000000003ffff k1 000000000000000000000000000000000001ffff k1 000000000000000000000000000000000000ffff k1 0000000000000000000000000000000000007fff k1 0000000000000000000000000000000000003fff k1 0000000000000000000000000000000000001fff k1 0000000000000000000000000000000000000fff k1 00000000000000000000000000000000000007ff k1 00000000000000000000000000000000000003ff k1 00000000000000000000000000000000000001ff k1 00000000000000000000000000000000000000ff k1 000000000000000000000000000000000000007f k1 000000000000000000000000000000000000003f k1 000000000000000000000000000000000000001f k1 000000000000000000000000000000000000000f k1 0000000000000000000000000000000000000007 k1 0000000000000000000000000000000000000003 k1 0000000000000000000000000000000000000001 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 0000000000000000000000000000000000000000 k1 ffffffffffffffffffffffffffffffffffffffff k2 fffffffffffffffffffffffffffffffffffffffe k2 fffffffffffffffffffffffffffffffffffffffc k2 fffffffffffffffffffffffffffffffffffffff8 k2 fffffffffffffffffffffffffffffffffffffff0 k2 ffffffffffffffffffffffffffffffffffffffe0 k2 ffffffffffffffffffffffffffffffffffffffc0 k2 ffffffffffffffffffffffffffffffffffffff80 k2 ffffffffffffffffffffffffffffffffffffff00 k2 fffffffffffffffffffffffffffffffffffffe00 k2 fffffffffffffffffffffffffffffffffffffc00 k2 fffffffffffffffffffffffffffffffffffff800 k2 fffffffffffffffffffffffffffffffffffff000 k2 ffffffffffffffffffffffffffffffffffffe000 k2 ffffffffffffffffffffffffffffffffffffc000 k2 ffffffffffffffffffffffffffffffffffff8000 k2 ffffffffffffffffffffffffffffffffffff0000 k2 fffffffffffffffffffffffffffffffffffe0000 k2 fffffffffffffffffffffffffffffffffffc0000 k2 fffffffffffffffffffffffffffffffffff80000 k2 fffffffffffffffffffffffffffffffffff00000 k2 ffffffffffffffffffffffffffffffffffe00000 k2 ffffffffffffffffffffffffffffffffffc00000 k2 ffffffffffffffffffffffffffffffffff800000 k2 ffffffffffffffffffffffffffffffffff000000 k2 fffffffffffffffffffffffffffffffffe000000 k2 fffffffffffffffffffffffffffffffffc000000 k2 fffffffffffffffffffffffffffffffff8000000 k2 fffffffffffffffffffffffffffffffff0000000 k2 ffffffffffffffffffffffffffffffffe0000000 k2 ffffffffffffffffffffffffffffffffc0000000 k2 ffffffffffffffffffffffffffffffff80000000 k2 ffffffffffffffffffffffffffffffff00000000 k2 fffffffffffffffffffffffffffffffe00000000 k2 fffffffffffffffffffffffffffffffc00000000 k2 fffffffffffffffffffffffffffffff800000000 k2 fffffffffffffffffffffffffffffff000000000 k2 ffffffffffffffffffffffffffffffe000000000 k2 ffffffffffffffffffffffffffffffc000000000 k2 ffffffffffffffffffffffffffffff8000000000 k2 ffffffffffffffffffffffffffffff0000000000 k2 fffffffffffffffffffffffffffffe0000000000 k2 fffffffffffffffffffffffffffffc0000000000 k2 fffffffffffffffffffffffffffff80000000000 k2 fffffffffffffffffffffffffffff00000000000 k2 ffffffffffffffffffffffffffffe00000000000 k2 ffffffffffffffffffffffffffffc00000000000 k2 ffffffffffffffffffffffffffff800000000000 k2 ffffffffffffffffffffffffffff000000000000 k2 fffffffffffffffffffffffffffe000000000000 k2 fffffffffffffffffffffffffffc000000000000 k2 fffffffffffffffffffffffffff8000000000000 k2 fffffffffffffffffffffffffff0000000000000 k2 ffffffffffffffffffffffffffe0000000000000 k2 ffffffffffffffffffffffffffc0000000000000 k2 ffffffffffffffffffffffffff80000000000000 k2 ffffffffffffffffffffffffff00000000000000 k2 fffffffffffffffffffffffffe00000000000000 k2 fffffffffffffffffffffffffc00000000000000 k2 fffffffffffffffffffffffff800000000000000 k2 fffffffffffffffffffffffff000000000000000 k2 ffffffffffffffffffffffffe000000000000000 k2 ffffffffffffffffffffffffc000000000000000 k2 ffffffffffffffffffffffff8000000000000000 k2 ffffffffffffffffffffffff0000000000000000 k2 fffffffffffffffffffffffe0000000000000000 k2 fffffffffffffffffffffffc0000000000000000 k2 fffffffffffffffffffffff80000000000000000 k2 fffffffffffffffffffffff00000000000000000 k2 ffffffffffffffffffffffe00000000000000000 k2 ffffffffffffffffffffffc00000000000000000 k2 ffffffffffffffffffffff800000000000000000 k2 ffffffffffffffffffffff000000000000000000 k2 fffffffffffffffffffffe000000000000000000 k2 fffffffffffffffffffffc000000000000000000 k2 fffffffffffffffffffff8000000000000000000 k2 fffffffffffffffffffff0000000000000000000 k2 ffffffffffffffffffffe0000000000000000000 k2 ffffffffffffffffffffc0000000000000000000 k2 ffffffffffffffffffff80000000000000000000 k2 ffffffffffffffffffff00000000000000000000 k2 fffffffffffffffffffe00000000000000000000 k2 fffffffffffffffffffc00000000000000000000 k2 fffffffffffffffffff800000000000000000000 k2 fffffffffffffffffff000000000000000000000 k2 ffffffffffffffffffe000000000000000000000 k2 ffffffffffffffffffc000000000000000000000 k2 ffffffffffffffffff8000000000000000000000 k2 ffffffffffffffffff0000000000000000000000 k2 fffffffffffffffffe0000000000000000000000 k2 fffffffffffffffffc0000000000000000000000 k2 fffffffffffffffff80000000000000000000000 k2 fffffffffffffffff00000000000000000000000 k2 ffffffffffffffffe00000000000000000000000 k2 ffffffffffffffffc00000000000000000000000 k2 ffffffffffffffff800000000000000000000000 k2 ffffffffffffffff000000000000000000000000 k2 fffffffffffffffe000000000000000000000000 k2 fffffffffffffffc000000000000000000000000 k2 fffffffffffffff8000000000000000000000000 k2 fffffffffffffff0000000000000000000000000 k2 ffffffffffffffe0000000000000000000000000 k2 ffffffffffffffc0000000000000000000000000 k2 ffffffffffffff80000000000000000000000000 k2 ffffffffffffff00000000000000000000000000 k2 fffffffffffffe00000000000000000000000000 k2 fffffffffffffc00000000000000000000000000 k2 fffffffffffff800000000000000000000000000 k2 fffffffffffff000000000000000000000000000 k2 ffffffffffffe000000000000000000000000000 k2 ffffffffffffc000000000000000000000000000 k2 ffffffffffff8000000000000000000000000000 k2 ffffffffffff0000000000000000000000000000 k2 fffffffffffe0000000000000000000000000000 k2 fffffffffffc0000000000000000000000000000 k2 fffffffffff80000000000000000000000000000 k2 fffffffffff00000000000000000000000000000 k2 ffffffffffe00000000000000000000000000000 k2 ffffffffffc00000000000000000000000000000 k2 ffffffffff800000000000000000000000000000 k2 ffffffffff000000000000000000000000000000 k2 fffffffffe000000000000000000000000000000 k2 fffffffffc000000000000000000000000000000 k2 fffffffff8000000000000000000000000000000 k2 fffffffff0000000000000000000000000000000 k2 ffffffffe0000000000000000000000000000000 k2 ffffffffc0000000000000000000000000000000 k2 ffffffff80000000000000000000000000000000 k2 ffffffff00000000000000000000000000000000 k2 fffffffe00000000000000000000000000000000 k2 fffffffc00000000000000000000000000000000 k2 fffffff800000000000000000000000000000000 k2 fffffff000000000000000000000000000000000 k2 ffffffe000000000000000000000000000000000 k2 ffffffc000000000000000000000000000000000 k2 ffffff8000000000000000000000000000000000 k2 ffffff0000000000000000000000000000000000 k2 fffffe0000000000000000000000000000000000 k2 fffffc0000000000000000000000000000000000 k2 fffff80000000000000000000000000000000000 k2 fffff00000000000000000000000000000000000 k2 ffffe00000000000000000000000000000000000 k2 ffffc00000000000000000000000000000000000 k2 ffff800000000000000000000000000000000000 k2 ffff000000000000000000000000000000000000 k2 fffe000000000000000000000000000000000000 k2 fffc000000000000000000000000000000000000 k2 fff8000000000000000000000000000000000000 k2 fff0000000000000000000000000000000000000 k2 ffe0000000000000000000000000000000000000 k2 ffc0000000000000000000000000000000000000 k2 ff80000000000000000000000000000000000000 k2 ff00000000000000000000000000000000000000 k2 fe00000000000000000000000000000000000000 k2 fc00000000000000000000000000000000000000 k2 f800000000000000000000000000000000000000 k2 f000000000000000000000000000000000000000 k2 e000000000000000000000000000000000000000 k2 c000000000000000000000000000000000000000 k2 8000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2 0000000000000000000000000000000000000000 k2