public static FilamentClassNode loadFromStream(InputStream stream) throws IOException {
		FilamentClassNode node = new FilamentClassNode();
		ClassReader reader = new ClassReader(stream);
		reader.accept(node, ClassReader.SKIP_DEBUG);
		char[] buf = new char[reader.getMaxStringLength()];
		for (int i = 0; i < reader.getItemCount(); i++) {
			try {
				Object constant = reader.readConst(i, buf);
				if (constant instanceof String) {
					node.constants.add((String) constant);
				} else if (constant instanceof Type) {
					node.references.add((Type) constant);
				}
			} catch (Exception e) {}
		}
		node.access &= ~(Opcodes.ACC_FINAL | Opcodes.ACC_PROTECTED | Opcodes.ACC_PRIVATE);
		node.access |= Opcodes.ACC_PUBLIC;
		return node;
	}