PDA

View Full Version : Dumping "ukeys" via Method's RSCD (RS Cache Downloader)



`Conner
December 18th, 2010, 03:32
Very easy but for some reason a lot of people can't get it.


Open up com.method.rscd.CacheDownloader.
Change downloadVersionTable() to this:


/**
* Downloads the version table from the server.
*/
private void downloadVersionTable() {
FileRequest mainRequest = requester.request(255, 255);
while (!mainRequest.isComplete()) {
requester.process();
}
byte[] ukeys = mainRequest.getBuffer().array();
for (int i = 0; i < ukeys.length; i++)
System.out.print(ukeys[i] + ", ");
versionTable = new ReferenceTable(mainRequest.getBuffer());
}



Enjoy I guess

Obviously only works for latest RS version

EDIT: "Ukeys" archive

633: Only the registered members can see the link.
634: Only the registered members can see the link.


I'll add the archives as each revision comes out, according to requests, just PM me if you want me to add them.

Copied from R-S, and I'll only be updating it there. *R-S URL HERE*.org/runescape-development/rs-503-client-server/tutorials/283448-dumping-ukeys-via-methods-rscd-rs-cache-downloader.html

Emily
December 18th, 2010, 03:35
Well done, i honestly didn't know how to do it :p thanks

`Conner
December 18th, 2010, 03:38
Well done, i honestly didn't know how to do it :p thanks

Thanks, hopefully it proves useful to some people.

Faab234
December 18th, 2010, 15:43
I had super's version.

edit
import java.net.Socket;
import java.nio.ByteBuffer;
import java.io.IOException;
import java.util.Arrays;
import java.io.*;

public class uKeyGetter {
private Socket socket;
private ByteBuffer out;

public int detectRev() throws IOException {
int clientVer = 611;
boolean detected = false;
out = ByteBuffer.allocate(5);
while (!detected) {
socket = new Socket("world1.runescape.com", 43594);
out.put((byte) 15);
out.putInt(clientVer);
socket.getOutputStream().write(out.array(), 0, 5);
int rsp = socket.getInputStream().read();
if (rsp == 0) {
detected = true;
} else {
socket.close();
clientVer++;
}
out.clear();
}
return clientVer;
}

public void writeReq(int request, int cache, int file) throws IOException {
out = ByteBuffer.allocate(4);
out.put((byte) (request & 0xFF));
out.put((byte) (cache & 0xFF));
out.putShort((short) (file & 0xFFFF));
socket.getOutputStream().write(out.array(), 0, 4);
}

public byte[] readResp() throws IOException {
ByteBuffer hdr = ByteBuffer.allocate(3);
socket.getInputStream().read(hdr.array());
int cache = hdr.get() & 0xFF;
int file = hdr.getShort() & 0xFFFF;
ByteBuffer containerHdr = ByteBuffer.allocate(5);
socket.getInputStream().read(containerHdr.array()) ;
int cmp = containerHdr.get();
int size = ((containerHdr.get() & 0xFF) << 24) | ((containerHdr.get() & 0xFF) << 16) | ((containerHdr.get() & 0xFF) << 8) | (containerHdr.get() & 0xFF);
ByteBuffer fileData = ByteBuffer.allocate(size);
socket.getInputStream().read(fileData.array());
socket.close();
ByteBuffer containerBuf = ByteBuffer.allocate(size + 3 + 5);
hdr.position(0);
containerHdr.position(0);
containerBuf.put(hdr);
containerBuf.put(containerHdr);
containerBuf.put(fileData);
return containerBuf.array();
}

public static void main(String[] argv) throws IOException {

uKeyGetter ukg = new uKeyGetter();
System.out.println("Detected Current RS Revision: " + ukg.detectRev());
ukg.writeReq(0, 255, 255);
byte[] fileBuffer = ukg.readResp();

System.out.println("{ ");
for (byte b : fileBuffer) {
String hex = Integer.toHexString(b & 0xFF);
System.out.println("0x");
if (hex.length() == 1) {
System.out.println("0");
}
System.out.println(hex + ", ");
}
System.out.println("};");


}



}

`Conner
December 23rd, 2010, 20:13
This works just fine as well, plus super's version isn't updated to the 616+ update protocol.

tedhead2
January 2nd, 2011, 00:18
Here are the keys for 633(this is from R-S):


-1, 0, -1, 0, 0, 0, 12, 105, 37, -124, -70,
-126, -21, 0, 0, 2, -128, 27, -75, -6, -88,
-2, 121, -111, 16, 51, 11, -108, 51, 96, -35,
-44, 48, -71, 125, -21, -92, -22, 94, 33, -45,
103, -27, 95, 26, 44, -111, -118, -28, -88, -103,
98, 6, 53, -125, -61, -50, -1, -35, 120, 117,
-37, 127, 8, 112, 122, -58, 25, -19, -104, -104,
-102, 52, -35, -23, 115, 27, 41, -15, -113, 81,
77, 68, -40, 60, 0, 0, 1, 112, -46, 40,
67, -82, -36, -85, -47, 88, -15, -1, 88, 48,
106, -1, -48, 35, 66, 93, -90, -44, 120, -90,
-67, -13, -87, -1, 126, 73, -75, 38, 38, -82,
37, -45, -17, 14, -57, -84, -18, -107, 63, 86,
87, 102, 50, -38, -40, 121, -84, -125, -21, 81,
-10, 43, 23, 106, 111, 65, -108, 85, 10, -1,
-7, 46, -120, -21, -72, 66, 0, 0, 2, -44,
121, 81, 66, 68, -86, 92, -35, 44, 3, 71,
-29, 22, 82, -27, 1, 18, 20, -6, 48, 110,
-123, 60, 27, 18, -127, 113, -43, -125, -103, -109,
1, 122, -90, -67, 40, 40, 81, -23, 125, 122,
-95, -7, -64, 40, -35, -67, 54, 13, 20, 117,
-93, -117, -84, -104, -76, -68, 70, 57, -109, 0,
-40, -67, 115, 58, -69, 95, -41, 27, 0, 0,
4, 64, -61, -106, 70, -16, -106, 71, 70, 26,
-29, -89, 115, -37, -102, 66, 116, 100, 106, 56,
108, 35, 81, -22, 106, -46, -68, -95, -92, -33,
70, 115, 57, -80, 83, 71, -67, 37, 29, -77,
92, 55, 56, 87, 39, 13, 102, 119, -6, 30,
122, 31, 14, -68, -118, 89, 27, -59, -32, 96,
101, -63, 77, -59, 92, 8, 89, 80, 12, 117,
0, 0, 1, 68, 12, -47, -81, 92, -31, -20,
-111, 43, 119, -80, -61, 1, 64, 119, 22, -111,
60, 115, -4, 52, -26, 9, -37, -8, -45, 41,
-107, -98, -69, -42, -122, -70, 122, 26, 119, 22,
40, 91, 51, 123, -97, -33, 108, -123, 62, 114,
95, 34, -62, -51, 19, -8, 49, 3, -95, 42,
-11, -84, -48, 80, -56, 84, 11, -85, -45, -126,
37, 21, 0, 0, 4, 122, 8, -34, 6, -56,
-128, -71, 114, -100, 96, -127, -7, 117, 78, -81,
-49, -42, -17, 63, -53, -99, 59, -23, 87, 97,
-32, -97, 72, 40, 81, -106, 119, -105, -51, -119,
-23, -42, 12, 120, 66, -56, 7, -67, 49, -21,
21, -32, -42, -99, 95, 5, -50, -126, -103, -127,
39, 42, -70, -122, -35, -59, -35, -121, -31, -120,
-76, 68, 43, -26, 0, 0, 0, 106, 56, -47,
59, -83, 116, -56, 68, 53, -33, 46, 125, 37,
34, -30, -51, -25, -44, -75, 68, -12, -69, 49,
56, -16, -17, -109, -14, 124, 113, 86, -58, 13,
106, 37, 64, 116, -26, -12, 105, 117, -26, 51,
29, 31, -73, -86, 40, -113, 66, 42, -53, -103,
-126, 94, -14, -40, -32, 30, 117, -98, 14, 98,
-112, -1, 85, -55, -85, 13, -71, 0, 0, 6, 90,
88, -126, -53, 45, -1, 126, -43, 73, -24, -111,
-16, -51, 26, 35, -111, 87, 0, -40, 7, 101,
75, 75, -25, 49, -1, -46, -16, -81, -112, 39,
76, -105, -44, 53, 122, 91, 4, -85, -108, 79,
-31, -32, -82, 53, -77, 17, -93, -55, 66, -47,
83, 99, 98, -94, 8, 127, -101, 9, 115, -80,
91, 125, 73, 48, -68, 84, -47, 86, 0, 0,
1, 121, 9, -78, -7, -118, -30, -51, -13, -125,
93, -96, 47, -51, 29, -125, 15, 12, -75, -98,
-79, -106, -10, -52, 32, -81, -114, 85, -74, -80,
92, -128, 74, -83, -50, 84, -92, 3, 106, -45,
-53, 54, 112, -81, 83, 2, 1, 20, -15, -95,
-51, 39, -8, -23, 121, -9, 28, -123, -6, -67,
64, 77, -102, 12, -60, 115, -32, -35, -79, 40,
0, 0, 1, -106, -9, 60, -108, 120, -72, -34,
33, 16, -121, 107, 72, -36, -88, -54, -95, 125,
122, 47, -12, 14, 14, 109, 81, 114, 80, 11,
-26, -45, -8, -38, -91, -61, -57, 13, -114, 7,
20, -101, -76, 111, -46, 73, -38, -86, -34, -11,
-124, -25, 5, 66, 118, 94, -93, -16, -126, -71,
-75, -7, -65, 116, -27, 56, -79, -26, 41, 118,
39, 106, 0, 0, 0, 5, -29, -120, 117, -15,
-28, -61, 122, 4, -13, 81, 48, 62, 77, -22,
-12, -4, 93, 19, -5, -93, -100, 60, 50, 98,
120, 67, -125, -48, -55, 71, 92, -102, -43, -97,
-121, -35, -13, -119, 88, 40, 113, -99, 40, 119,
1, -52, 70, 127, -85, -90, -64, 103, 11, 80,
-99, -109, -66, 116, -120, -35, 50, -14, -78, -38,
-89, 29, 77, -23, 0, 0, 0, 47, 33, 71,
-122, 127, -108, -89, -1, 80, -33, -107, -76, -85,
61, 43, 10, 78, 102, -120, -36, -13, -16, 33,
41, -127, -104, 54, 9, 35, 101, -91, 23, -80,
-126, 31, -118, 42, -117, 90, 18, -86, 121, -108,
-72, -9, 125, 46, -118, -54, 35, 96, 103, 92,
-19, -102, -45, 38, 0, -74, 15, 46, 26, -91,
-85, -11, -62, 78, -77, -99, 0, 0, 5, 25,
-33, 59, 72, -6, 45, 41, 49, 12, -45, 65,
-23, 35, -6, -38, -82, 57, 125, 97, 18, -101,
-53, 72, 93, 95, -77, 26, 37, -128, -119, -45,
-7, 104, -15, 25, -124, -28, 8, 100, -128, -18,
97, 64, -82, -51, -78, -39, 23, 124, -92, -68,
58, -74, 108, -30, 36, -28, -104, -27, 86, 117,
-53, 102, -61, -25, -21, -2, -91, -21, 0, 0,
0, 50, 73, -28, 79, -6, 5, -51, 30, -45,
-33, -117, 79, 60, 89, 71, 69, -98, -107, -98,
-30, 15, 53, 120, 44, -48, -71, 17, -58, 123,
-62, 0, 114, -39, 72, -90, -46, 91, -68, 79,
-73, 65, -54, 80, 102, 112, 56, -57, 99, -105,
123, -54, -103, 19, -71, -126, 40, -10, -8, 96,
77, -118, 10, 31, 55, -77, -24, 117, -58, 111,
0, 0, -1, 0, 54, 106, 60, -51, 121, -34, -25,
25, -126, 18, -127, 44, -110, -103, 91, -100, -70,
79, 112, 58, -15, 96, -36, 103, -5, -3, -9,
95, 119, 115, 118, 100, -99, 126, 20, 18, 99,
-115, -54, -33, -20, 78, 72, -90, 83, 111, -88,
-20, 58, 57, 14, 6, -87, 82, 85, -82, 7,
-91, 126, -79, -65, -77, 58, -10, 90, -68, -68,
-56, 86, 0, 0, 0, 15, -29, -100, -46, 77,
-53, 52, 39, 5, -50, 91, 13, -73, -29, 75,
65, -1, -32, -47, 1, -33, 101, -55, -73, 73,
-82, 77, 88, -90, -117, 20, 43, 103, -79, 32,
4, 95, 83, 104, 112, 66, -58, 113, 120, -111,
96, -52, 2, 9, 110, 56, -61, -100, -101, 118,
92, -70, 37, 43, 107, 1, -102, 1, 1, -64,
-120, -56, 37, -104, 0, 0, 4, 36, 101, -109,
115, 101, 50, -111, 14, -14, 105, 14, 43, -29,
9, -57, 14, 25, 21, 119, -15, -64, 14, -14,
42, -85, 23, -43, 121, -25, 8, -94, -21, 86,
117, 83, 57, -83, 117, 1, 123, 107, -108, 55,
120, 60, -108, 121, 100, 79, -15, -5, -8, 30,
56, 66, -49, 111, 67, -67, 28, -86, -82, 110,
-84, -77, 61, 92, -68, 43, 0, 0, 2, 35,
-126, 54, 115, 29, 10, 45, 91, 66, 17, 48,
109, 51, 39, -36, 8, 88, 85, 60, 80, 105,
67, -28, -62, 70, -95, -96, -1, -109, 13, 14,
111, -108, 91, -89, 42, 86, -13, 102, -77, -81,
-59, -32, 104, -78, 41, 66, 60, 66, -82, -78,
-5, -82, -54, 63, 21, -79, 38, 31, -111, 13,
-85, 35, 50, -82, -48, -110, -102, -113, 0, 0,
2, -93, 68, -79, 43, -81, -84, 74, 22, 50,
52, 2, 99, -23, -115, -128, -105, -65, 10, 34,
-71, -100, -61, -114, 97, -126, 14, -73, -34, 124,
-45, -104, 20, 5, -103, -46, -72, -21, 91, -101,
73, 105, -17, 122, -9, -90, 64, -118, -106, -42,
93, 80, 68, -40, 55, 32, -14, 102, -84, -73,
-19, -108, -87, -88, 22, 71, -83, 97, 44, -58,
0, 0, 2, 71, 124, -118, 94, -78, 112, 39,
103, -12, -63, -95, 2, 46, -7, 85, 47, -31,
-79, -105, -15, 95, 24, 75, 5, -120, -128, 106,
-22, 42, 7, 52, 17, -6, 49, 67, 71, 100,
-71, 5, 44, -96, -2, -61, 85, -8, 20, 39,
-51, -122, -122, -5, 120, 22, -113, 94, -26, 14,
-38, -123, -114, -42, -32, 72, 99, 36, -54, 12,
-32, 23, 0, 0, 8, -19, -26, 115, 38, -33,
31, 104, -78, 41, -75, -56, 88, 125, -44, 127,
111, 36, 73, -26, 75, -18, 76, 43, -30, 9,
-128, -115, -1, -52, -12, -89, -82, 61, -7, -82,
96, -17, -23, 20, 78, 106, -63, -64, 31, -128,
82, 97, 2, -81, 79, 50, 92, 7, 46, -128,
25, -20, 3, 126, -94, -82, -85, 109, -11, 53,
-92, -88, 40, 47, 0, 0, 0, -15, 125, -121,
-63, 47, -30, -1, -117, -126, 41, 46, 100, 36, 18,
-105, -46, 23, 117, 108, 84, -24, 72, 69, -67,
-31, 99, -2, 25, 54, -8, 44, -122, -96, -1,
-23, 15, -44, -27, 120, 55, -108, 68, -28, -32,
1, -82, -36, -16, -105, 65, -25, -109, -69, 66,
32, 18, -97, -7, -73, -99, 66, -8, 31, 12,
59, -21, 16, -29, 41, -46, 0, 0, 1, 4,
-106, 83, 50, -119, 65, -25, 37, -49, -101, 47,
100, 56, -15, -43, -68, -31, -36, 64, 48, 97,
-37, 73, -65, -102, 48, -79, -63, 41, 74, 43,
-128, -19, -108, -103, -113, -96, 74, -86, -84, -64,
91, -96, -112, -98, 70, -50, -78, 24, 72, -84,
-114, 52, 119, 49, -112, -113, -26, 16, 48, -122,
37, -97, 39, 27, 65, 117, -8, -62, 0, 0,
1, 57, 73, 55, -103, 36, 19, -128, -47, 75,
-22, -90, 70, 84, -110, -72, 121, -49, 88, 76,
116, -81, -113, 34, 27, 109, 13, -11, -115, 2,
2, 75, 64, -92, 0, 112, 125, 36, 68, -49,
-3, 64, 22, 109, 25, 17, -15, -20, -12, -32,
-113, -122, -69, 90, -116, -6, -7, 52, -44, -84,
89, -45, 27, 64, -57, 30, 70, -56, -118, 94,
0, 0, 0, 90, -43, -113, -83, 127, 21, 0,
0, 101, -4, 106, 49, -48, -14, -120, 111, -5,
-1, 40, -116, -115, -65, -84, -64, -126, -106, 46,
-101, -40, 62, -81, -83, -110, 102, -108, -65, 74,
122, -87, -45, 23, 124, 39, -77, -72, 80, 104,
91, 62, -40, -45, -78, 48, 108, 76, 57, -120,
-122, -6, 108, 125, 84, -19, -57, -53, -7, 83,
122, 107, 0, 0, 0, 6, 80, -93, 101, -95,
-105, -65, -111, -128, 57, 76, -113, 87, 101, 43,
-38, 7, -25, -86, -77, 58, -95, -94, 6, 76,
50, 118, 39, 78, -116, 46, -31, 63, 32, 70,
6, -2, 74, 9, -107, 58, -108, -86, 119, -120,
60, -22, 71, -80, -54, 77, 126, 86, -35, -40,
-117, 90, 14, -114, 11, 109, 32, -78, 48, -16,
-11, -22, -66, 46, 0, 0, 1, 7, 20, 27,
-92, -64, -19, -85, -54, 71, 25, -16, -44, 38,
119, -10, 117, 63, 94, 124, -36, 49, -113, -56,
80, 63, -17, -64, 43, 52, 91, -52, 34, -15,
-117, -21, -49, -90, 125, -27, -9, -110, -95, 11,
112, -51, 90, 112, -117, -18, 43, 48, 49, -34,
-120, 6, -127, 110, -113, -85, -127, -65, -128, -59,
60, 67, 111, 51, -45, 65, 0, 0, 0, 68,
24, -8, 50, 86, -66, -22, -71, -30, 62, -1,
9, -4, 79, 82, -103, -4, 49, -32, 26, -103,
-65, 40, 94, -20, 85, 113, 104, -67, -88, -62,
121, 93, 46, 127, 62, 18, 48, 41, -93, -118,
79, -99, -102, -126, -63, 101, -124, -122, 69, -46,
-88, -35, 96, 26, 105, -23, -54, -94, 122, 13,
64, -72, -63, -34, -89, -97, 40, -117, 0, 0,
0, 5, 66, -96, -93, 81, -26, -107, -21, -72,
-20, 2, 22, 95, -1, -113, 14, -56, 21, -74, 47,
8, -39, 17, 74, 8, -13, 85, -41, -105, 50,
50, 43, -38, 56, 73, -86, 104, 31, 8, -75,
66, 52, -18, 5, 19, -18, 107, 126, -18, 28,
118, 116, 8, 90, -20, 80, 2, -106, 13, -42,
-94, 56, -58, -87, -115, -61, -71, 83, 81, -123,
0, 0, 0, 28, 49, -51, 116, -82, -10, -9,
-112, 94, -117, -121, 108, -80, 125, -89, -44, -29,
-87, 44, -95, 86, -8, -4, 97, 87, 31, 68,
93, -93, 23, -86, 53, -9, 39, -28, 122, 85,
51, -36, 45, -71, -110, -92, -37, 98, 125, 35,
90, -74, 15, -96, -35, -91, -103, -61, 2, 94,
92, 60, 91, 104, -55, 67, -73, -123, -112, -39,
-8, -37, 0, 0, 0, 14, -46, -99, 86, -67,
-123, -18, -79, 76, -18, -81, 49, -101, -62, -70,
-98, 49, 34, -2, -85, -72, 83, 8, 91, 95,
-128, -39, -17, 88, -112, -95, -27, 77, 120, 122,
46, 58, 119, -61, 122, -98, -91, -31, -37, 104,
-51, 104, 1, -11, 77, 41, 112, 53, -65, 72,
35, 57, 16, -56, -116, -38, -87, -71, 3, -106,
-45, -105, -33, -37, 0, 0, 0, 3, -9, -109,
-6, 108, -43, 126, 58, 119, -16, 6, -104, -44,
50, -120, 97, -93, 9, -20, -32, -100, 111, 30,
-26, 94, -118, -78, -74, 113, 107, 31, 126, -26,
-79, 111, 12, 17, -22, 124, -96, -43, -23, 28,
88, -77, 126, 63, 97, 126, -7, -93, 64, -41,
-106, 29, 3, 68, -67, -100, -27, 20, 54, 77,
66, -97, -115, -119, -5, 58, 0, 0, 0, 6,
-36, 14, 83, -107, 94, 117, 83, 86, -113, 23,
-106, 124, -11, -128, -22, 59, -71, 103, 46, -7,
-110, 115, 99, 55, 21, -55, -9, -57, 94, 43,
-77, -47, -21, 0, -117, -49, -31, -41, -19, -68,
107, 3, -105, 108, 103, 30, 50, 114, 37, 102,
34, 5, 77, -97, -57, -66, 77, -19, -59, -49,
70, 9, 87, 15, -116, 118, 14, 28, 0, 0,
0, 13, -9, -114, -69, -54, -39, -106, 65, -8,
59, 19, -28, 114, 57, 73, -51, 54, 2, 108,
-3, -79, -126, -116, -73, 34, 96, -109, 76, -58,
-111, -60, -36, -10, -120, 63, 38, -33, 71, -85,
9, -2, -27, -22, -13, -33, 118, -121, -119, 57,
-44, -5, -74, 68, -119, 20, 78, 78, 37, 27,
84, -61, -97, -60, 64, -95, 46, -14, 4, -29,
0, 0, 0, 5, -105, -43, -8, -108, -75, 37,
-97, -43, 96, -15, -47, 65, -89, -55, -33, -103,
120, 22, 114, 18, -100, 67, -114, 75, 120, 59,
-43, 124, 42, 113, -80, 68, -104, -32, 70, -49,
-77, 113, -54, -14, -72, 92, 116, 52, -91, -103,
-100, -33, -106, -50, 68, 57, -57, -117, 80, -105,
-18, 44, -45, -24, 65, 1, -59, -102, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
36, 87, 66, 92, 0, 0, 0, 0, 14, 26,
43, -109, -56, 10, 65, -57, -83, 42, -104, 93,
-1, 112, 122, 106, -113, -8, 46, 34, -100, -68,
70, -113, 4, 25, 17, -104, -110, 9, 85, -95,
75, 61, 126, -85, 119, -95, 127, -81, -103, 32,
-115, -18, 91, 68, -81, -73, -119, -106, 42, -41,
-97, 35, 11, 59, 89, 16, 106, 10, -8, -110,
33, -100, 4, -84, -17, -78, -57, 20, -41, 21,
23, -40, 11, 87, 100, 78, -82, -17, 85, 105,
-48, 34, 42, 110, 79, -14, -68, -31, 92, 46,
93, -66, 23, -49, 12, -68, -50, -80, 30, 64,
-32, -44, 108, 54, 79, 22, 3, -24, -70, -104,
-46, -104, -31, -26, -100, 114, 18, -120, 28, -42,
-86, 120, -8, -6, 124, -11, 113, 59, -82, -34,
-92, -115, -104, 104, -79, -95, -70, -78, 118, 123,
-4, 14, 20, -122, 35, 105, -5, 123, 39, -31,
-46, 50, 52, 123, -76, -55, 20, 11, -55, 2,
-53, 122, 16, -82, -94, 98, 39, -11, 93, 50,
99, 28, 93, 13, 61, -100, 83, 99, -51, -20,
-26, -20, 61, -30, -92, 10, 7, -29, -57, -51,
36, -38, 36, 22, 104, 22, -38, -27, -100, -30,
-103, 105, 81, 90, -58, 19, 103, -127, -43, -74,
127, -2, -85, 68, -31, -116, -26, 92, 71, 77,
80, 29, 90, 20, 76, 98, 67, 125, -40, -80,
71, 110, 90, -19, 111, -82, 21, -38, 5, -116,
-61, -79, -66, -112, -25, 50, 103, -4, -106, 123,
114, 94, 62, 27, -8, -18, 56, 2, -58, -117,
-75, -29, 65, 116, -42, -35, -65, -107, 99, 27,
-93, 30, -101, 26, -41, 125, 77, 116, 32, -3,
-122, 56, -111, -2, -63, -26, 110, -79, -18, 1,
42, 34, -115, -43, 75, 82, -63, -60, 84, 33,
-72, -84, -39, 44, 16, 31, 80, -58, -75, 98,
-27, -88, -36, -125, 83, 15, 97, -126, -4, 94,
16, -81, -119, -21, -102, -85, 87, -121, -96, -14,
-22, -3, 109, 98, 2, -76, 45, -33, -71, -127,
81, 70, 40, -58, 59, 23, 112, -116, -89, -21,
-32, 84, 88, -39, 81, -79, 6, 7, 17, -57,
-111, -99, 14, -117, -7, -31, 52, -87, 113, -22,
-77, -47, 88, 92, -75, -109, -88, 34, 17, 33,
96, -94, 49, -40, -73, 76, -51, 93, -56, 51,
-4, -3, 80, 27, -127, -38, 48, -127, -16, 94,
-91, -34, 120, -57, 113, 93, -65, 92, -114, -14,
-58, 93, 29, -112, -2, -92, -108, 42, -11, 60,
-57, -14, -55, -10, -33, -8, -119, -83, -47, -80,
105, -8, 118, 36, 25, -21, -17, 43, 80, -29,
2, -69, 11, -93, -55, -57, -87, 64, -1, -82,
-81, 16, -79, 35, -107, 3, -1, 26, -115, -96, 92,
81, 1, 11, -98, -69, -56, 8, -95, -84, -98,
25, 46, -121, 41, 15, 44, 70, -17, -83, 93,
53, 110, 82, -94, 84, 124, 88, -32, 41, 127,
-91, -36, -109, 87, 57, -77, -11, -124, -2, -123,
-72, 77, -63, 75, 27, -120, -23, -31, -1, 72,
87, 36, -125, -49, 3, -60, -8, -23, 89, -34,
110, 76, 105, 9, 44, 67, 100, -24, 9, 101,
-14, -74, 64, 65, 84, -35, 20, -57, 83, -111,
-86, -111, 111, 56, 31, 1, -32, -52, 105, 1,
-128, 90, 10, -122, -87, -30, -86, -66, 29, -64,
-31, -109, 126, 26, -123, 84, -41, 31, -82, 104,
-127, 119, -25, -106,