interface IBase {
    int get_field3(int value, int value2);
    int get_field1(int value);
    int get_field2();
}

interface IBase2 {
    int get_field4();
}

interface IBase3 extends IBase2 {
    int get_field5();
}

abstract class B implements IBase {
    int get_field3(int value, int value2) {
        return 333;
    }
    int get_field1(int value) {
        return 111;
    }
    int get_field2() {
        return 222;
    }
}

class A extends B {
    int field1;
}

class A implements IBase3 {
    virtual int get_field1(int value) {
        return 111;
    }
    int get_field4() {
        return 444;
    }
    int get_field5() {
        return 555;
    }
}

