#ifndef RBG_GAME
#define RBG_GAME

#include <boost/container/static_vector.hpp>
#include <limits>
#include <string>
#include <vector>

namespace rbg_game{
    constexpr int BOARD_SIZE = 64;
    constexpr int NUMBER_OF_PLAYERS = 3;
    constexpr int NUMBER_OF_PIECES = 15;
    constexpr int NUMBER_OF_VARIABLES = 6;
    constexpr int BOARD_DEGREE = 4;

    std::string board_cell_to_string(int cell_id);
    std::string piece_to_string(int piece_id);
    std::string variable_to_string(int variable_id);
    constexpr int NUMBER_OF_MODIFIERS = 104;
    int action_to_modifier_index(int action_index);
    int modifier_to_action_index(int modifier_index);

    int get_neighbor(int cell_id, int edge_id);
    int get_bound(int variable_id);

    template<int states,int cells>
    class resettable_bitarray{
        public:
            inline bool is_set(int state, int cell)const{
                return content[state][cell] == current_threshold;
            }

            inline void set(int state, int cell){
                content[state][cell] = current_threshold;
            }

            inline void reset(void){
                if(++current_threshold == 0){
                    ++current_threshold;
                    for(unsigned int i=0;i<states;++i){
                        for(unsigned int j=0;j<cells;++j){
                            content[i][j] = 0;
                        }
                    }
                }
            }

        private:
            unsigned int content[states][cells] = {};
            unsigned int current_threshold = 1;
    };

    class resettable_bitarray_stack{
        public:
            void pattern_push0(void);
            void pattern_revert_to_level0(unsigned int level);
            unsigned int pattern_get_level0(void);
            bool pattern_is_set0(int state, int cell)const;
            void pattern_set0(int state, int cell);
            void pattern_reset0(void);
            void pattern_push1(void);
            void pattern_revert_to_level1(unsigned int level);
            unsigned int pattern_get_level1(void);
            bool pattern_is_set1(int state, int cell)const;
            void pattern_set1(int state, int cell);
            void pattern_reset1(void);
            void pattern_push2(void);
            void pattern_revert_to_level2(unsigned int level);
            unsigned int pattern_get_level2(void);
            bool pattern_is_set2(int state, int cell)const;
            void pattern_set2(int state, int cell);
            void pattern_reset2(void);
            void pattern_push3(void);
            void pattern_revert_to_level3(unsigned int level);
            unsigned int pattern_get_level3(void);
            bool pattern_is_set3(int state, int cell)const;
            void pattern_set3(int state, int cell);
            void pattern_reset3(void);
            void pattern_push4(void);
            void pattern_revert_to_level4(unsigned int level);
            unsigned int pattern_get_level4(void);
            bool pattern_is_set4(int state, int cell)const;
            void pattern_set4(int state, int cell);
            void pattern_reset4(void);
            void pattern_push5(void);
            void pattern_revert_to_level5(unsigned int level);
            unsigned int pattern_get_level5(void);
            bool pattern_is_set5(int state, int cell)const;
            void pattern_set5(int state, int cell);
            void pattern_reset5(void);
            void pattern_push6(void);
            void pattern_revert_to_level6(unsigned int level);
            unsigned int pattern_get_level6(void);
            bool pattern_is_set6(int state, int cell)const;
            void pattern_set6(int state, int cell);
            void pattern_reset6(void);
            void pattern_push7(void);
            void pattern_revert_to_level7(unsigned int level);
            unsigned int pattern_get_level7(void);
            bool pattern_is_set7(int state, int cell)const;
            void pattern_set7(int state, int cell);
            void pattern_reset7(void);
            void pattern_push8(void);
            void pattern_revert_to_level8(unsigned int level);
            unsigned int pattern_get_level8(void);
            bool pattern_is_set8(int state, int cell)const;
            void pattern_set8(int state, int cell);
            void pattern_reset8(void);
            void pattern_push9(void);
            void pattern_revert_to_level9(unsigned int level);
            unsigned int pattern_get_level9(void);
            bool pattern_is_set9(int state, int cell)const;
            void pattern_set9(int state, int cell);
            void pattern_reset9(void);
            void pattern_push10(void);
            void pattern_revert_to_level10(unsigned int level);
            unsigned int pattern_get_level10(void);
            bool pattern_is_set10(int state, int cell)const;
            void pattern_set10(int state, int cell);
            void pattern_reset10(void);
            void pattern_push11(void);
            void pattern_revert_to_level11(unsigned int level);
            unsigned int pattern_get_level11(void);
            bool pattern_is_set11(int state, int cell)const;
            void pattern_set11(int state, int cell);
            void pattern_reset11(void);
            void pattern_push13(void);
            void pattern_revert_to_level13(unsigned int level);
            unsigned int pattern_get_level13(void);
            bool pattern_is_set13(int state, int cell)const;
            void pattern_set13(int state, int cell);
            void pattern_reset13(void);
            void pattern_push14(void);
            void pattern_revert_to_level14(unsigned int level);
            unsigned int pattern_get_level14(void);
            bool pattern_is_set14(int state, int cell)const;
            void pattern_set14(int state, int cell);
            void pattern_reset14(void);
            void pattern_push15(void);
            void pattern_revert_to_level15(unsigned int level);
            unsigned int pattern_get_level15(void);
            bool pattern_is_set15(int state, int cell)const;
            void pattern_set15(int state, int cell);
            void pattern_reset15(void);
            void pattern_push16(void);
            void pattern_revert_to_level16(unsigned int level);
            unsigned int pattern_get_level16(void);
            bool pattern_is_set16(int state, int cell)const;
            void pattern_set16(int state, int cell);
            void pattern_reset16(void);
            void pattern_push17(void);
            void pattern_revert_to_level17(unsigned int level);
            unsigned int pattern_get_level17(void);
            bool pattern_is_set17(int state, int cell)const;
            void pattern_set17(int state, int cell);
            void pattern_reset17(void);
            void pattern_push18(void);
            void pattern_revert_to_level18(unsigned int level);
            unsigned int pattern_get_level18(void);
            bool pattern_is_set18(int state, int cell)const;
            void pattern_set18(int state, int cell);
            void pattern_reset18(void);
            void pattern_push19(void);
            void pattern_revert_to_level19(unsigned int level);
            unsigned int pattern_get_level19(void);
            bool pattern_is_set19(int state, int cell)const;
            void pattern_set19(int state, int cell);
            void pattern_reset19(void);
            void pattern_push20(void);
            void pattern_revert_to_level20(unsigned int level);
            unsigned int pattern_get_level20(void);
            bool pattern_is_set20(int state, int cell)const;
            void pattern_set20(int state, int cell);
            void pattern_reset20(void);
            void pattern_push21(void);
            void pattern_revert_to_level21(unsigned int level);
            unsigned int pattern_get_level21(void);
            bool pattern_is_set21(int state, int cell)const;
            void pattern_set21(int state, int cell);
            void pattern_reset21(void);
            void pattern_push22(void);
            void pattern_revert_to_level22(unsigned int level);
            unsigned int pattern_get_level22(void);
            bool pattern_is_set22(int state, int cell)const;
            void pattern_set22(int state, int cell);
            void pattern_reset22(void);
            void pattern_push23(void);
            void pattern_revert_to_level23(unsigned int level);
            unsigned int pattern_get_level23(void);
            bool pattern_is_set23(int state, int cell)const;
            void pattern_set23(int state, int cell);
            void pattern_reset23(void);
            void pattern_push24(void);
            void pattern_revert_to_level24(unsigned int level);
            unsigned int pattern_get_level24(void);
            bool pattern_is_set24(int state, int cell)const;
            void pattern_set24(int state, int cell);
            void pattern_reset24(void);
        private:
            std::vector<resettable_bitarray<8,64>> pattern_content0 = {};
            unsigned int pattern_current_top0 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content1 = {};
            unsigned int pattern_current_top1 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content2 = {};
            unsigned int pattern_current_top2 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content3 = {};
            unsigned int pattern_current_top3 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content4 = {};
            unsigned int pattern_current_top4 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content5 = {};
            unsigned int pattern_current_top5 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content6 = {};
            unsigned int pattern_current_top6 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content7 = {};
            unsigned int pattern_current_top7 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content8 = {};
            unsigned int pattern_current_top8 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content9 = {};
            unsigned int pattern_current_top9 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content10 = {};
            unsigned int pattern_current_top10 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content11 = {};
            unsigned int pattern_current_top11 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content13 = {};
            unsigned int pattern_current_top13 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content14 = {};
            unsigned int pattern_current_top14 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content15 = {};
            unsigned int pattern_current_top15 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content16 = {};
            unsigned int pattern_current_top16 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content17 = {};
            unsigned int pattern_current_top17 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content18 = {};
            unsigned int pattern_current_top18 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content19 = {};
            unsigned int pattern_current_top19 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content20 = {};
            unsigned int pattern_current_top20 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content21 = {};
            unsigned int pattern_current_top21 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content22 = {};
            unsigned int pattern_current_top22 = 0;
            std::vector<resettable_bitarray<8,64>> pattern_content23 = {};
            unsigned int pattern_current_top23 = 0;
            std::vector<resettable_bitarray<25,64>> pattern_content24 = {};
            unsigned int pattern_current_top24 = 0;
    };

    struct action_representation{
        int index;
        int cell;
        action_representation(void)=default;
        action_representation(int index,int cell)
        : index(index),
          cell(cell){
        }
        bool operator==(const action_representation& rhs) const;
    };

    struct board_revert_information{
        int previous_piece;
        int cell;
        board_revert_information(void)=default;
        board_revert_information(int previous_piece, int cell)
        : previous_piece(previous_piece),
          cell(cell){
        }
    };
    struct variable_revert_information{
        int previous_value;
        int variable;
        variable_revert_information(void)=default;
        variable_revert_information(int previous_value, int variable)
        : previous_value(previous_value),
          variable(variable){
        }
    };

    typedef boost::container::static_vector<action_representation, 7> move_representation;
    typedef boost::container::static_vector<board_revert_information, 7> board_revert_representation;
    typedef boost::container::static_vector<variable_revert_information, 7> variables_revert_representation;
    struct move{
        move_representation mr;
        move(void) = default;
        move(const move_representation& mr);
        bool operator==(const move& rhs) const;
    };
    class semimove{
        friend class game_state;
        private:
            move_representation mr;
            int cell;
            int state;
            semimove(void)=default;
        public:
            semimove(const move_representation& mr, int cell, int state);
            const move_representation& get_actions(void)const;
            bool operator==(const semimove& rhs) const;
    };
    class revert_information{
        int previous_cell = 1;
        int previous_player = 0;
        int previous_state = 391;
        board_revert_representation brr = {};
        variables_revert_representation vrr = {};
        friend class game_state;
    };

    class game_state{
        public:
            int get_current_cell(void)const;
            int get_piece(int cell_id)const;
            int get_variable_value(int variable_id)const;
            int get_current_player(void)const;
            int get_player_score(int player_id)const;
            bool is_nodal(void)const;
            revert_information apply_semimove_with_revert(const semimove& m);
            void apply_semimove(const semimove& m);
            void apply_move(const move& m);
            std::vector<move> get_all_moves(resettable_bitarray_stack& cache);
            void get_all_moves(resettable_bitarray_stack& cache, std::vector<move>& moves);
            void get_all_semimoves(resettable_bitarray_stack& cache, std::vector<semimove>& moves, unsigned int move_length_limit);
            bool apply_any_move(resettable_bitarray_stack& cache);
            void revert(const revert_information& ri);
        private:
            void apply_action_with_revert(const action_representation& action, revert_information& ri);
            void apply_action(const action_representation& action);
            bool evaluate0(int cell, resettable_bitarray_stack& cache);
            bool evaluate1(int cell, resettable_bitarray_stack& cache);
            bool evaluate2(int cell, resettable_bitarray_stack& cache);
            bool evaluate3(int cell, resettable_bitarray_stack& cache);
            bool evaluate4(int cell, resettable_bitarray_stack& cache);
            bool evaluate5(int cell, resettable_bitarray_stack& cache);
            bool evaluate6(int cell, resettable_bitarray_stack& cache);
            bool evaluate7(int cell, resettable_bitarray_stack& cache);
            bool evaluate8(int cell, resettable_bitarray_stack& cache);
            bool evaluate9(int cell, resettable_bitarray_stack& cache);
            bool evaluate10(int cell, resettable_bitarray_stack& cache);
            bool evaluate11(int cell, resettable_bitarray_stack& cache);
            bool evaluate12(int cell, resettable_bitarray_stack& cache);
            bool evaluate13(int cell, resettable_bitarray_stack& cache);
            bool evaluate14(int cell, resettable_bitarray_stack& cache);
            bool evaluate15(int cell, resettable_bitarray_stack& cache);
            bool evaluate16(int cell, resettable_bitarray_stack& cache);
            bool evaluate17(int cell, resettable_bitarray_stack& cache);
            bool evaluate18(int cell, resettable_bitarray_stack& cache);
            bool evaluate19(int cell, resettable_bitarray_stack& cache);
            bool evaluate20(int cell, resettable_bitarray_stack& cache);
            bool evaluate21(int cell, resettable_bitarray_stack& cache);
            bool evaluate22(int cell, resettable_bitarray_stack& cache);
            bool evaluate23(int cell, resettable_bitarray_stack& cache);
            bool evaluate24(int cell, resettable_bitarray_stack& cache);
            bool evaluate25(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_1_3(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_1_170(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_5_7(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_5_27(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_5_56(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_5_85(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_5_134(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_5_143(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_8_10(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_8_18(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_11_13(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_11_15(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_19_21(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_19_23(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_28_32(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_28_37(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_28_42(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_28_47(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_29_51(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_29_53(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_31_33(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_31_30(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_32_30(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_32_33(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_36_38(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_36_35(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_37_35(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_37_38(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_41_43(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_41_40(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_42_40(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_42_43(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_46_48(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_46_45(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_47_45(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_47_48(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_57_61(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_57_66(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_57_71(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_57_76(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_58_80(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_58_82(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_60_62(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_60_59(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_61_59(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_61_62(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_65_67(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_65_64(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_66_64(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_66_67(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_70_72(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_70_69(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_71_69(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_71_72(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_75_77(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_75_74(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_76_74(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_76_77(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_90(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_95(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_100(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_105(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_110(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_115(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_120(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_86_125(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_87_129(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_87_131(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_89_91(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_89_88(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_90_88(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_90_91(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_94_96(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_94_93(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_95_93(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_95_96(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_99_101(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_99_98(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_100_98(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_100_101(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_104_106(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_104_103(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_105_103(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_105_106(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_109_111(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_109_108(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_110_108(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_110_111(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_114_116(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_114_113(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_115_113(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_115_116(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_119_121(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_119_118(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_120_118(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_120_121(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_124_126(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_124_123(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_125_123(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_125_126(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_136_138(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_136_140(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_144_146(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_144_167(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_146_148(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_146_150(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_147_154(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_147_156(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_151_152(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_157_159(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_157_161(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_157_163(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_157_165(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_171_173(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_171_175(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_178_180(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_178_187(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_181_183(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_181_185(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_188_190(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_188_193(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_191_192(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_194_195(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_196_198(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_196_365(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_200_202(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_200_222(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_200_251(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_200_280(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_200_329(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_200_338(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_203_205(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_203_213(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_206_208(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_206_210(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_214_216(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_214_218(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_223_227(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_223_232(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_223_237(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_223_242(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_224_246(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_224_248(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_226_228(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_226_225(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_227_225(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_227_228(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_231_233(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_231_230(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_232_230(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_232_233(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_236_238(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_236_235(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_237_235(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_237_238(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_241_243(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_241_240(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_242_240(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_242_243(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_252_256(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_252_261(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_252_266(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_252_271(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_253_275(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_253_277(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_255_257(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_255_254(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_256_254(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_256_257(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_260_262(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_260_259(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_261_259(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_261_262(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_265_267(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_265_264(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_266_264(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_266_267(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_270_272(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_270_269(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_271_269(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_271_272(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_285(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_290(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_295(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_300(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_305(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_310(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_315(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_281_320(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_282_324(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_282_326(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_284_286(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_284_283(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_285_283(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_285_286(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_289_291(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_289_288(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_290_288(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_290_291(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_294_296(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_294_293(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_295_293(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_295_296(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_299_301(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_299_298(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_300_298(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_300_301(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_304_306(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_304_303(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_305_303(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_305_306(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_309_311(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_309_308(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_310_308(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_310_311(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_314_316(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_314_313(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_315_313(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_315_316(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_319_321(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_319_318(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_320_318(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_320_321(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_331_333(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_331_335(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_339_341(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_339_362(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_341_343(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_341_345(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_342_349(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_342_351(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_346_347(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_352_354(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_352_356(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_352_358(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_352_360(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_366_368(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_366_370(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_373_375(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_373_382(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_374_392(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_374_0(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_376_378(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_376_380(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_383_385(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_383_388(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_386_387(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_389_390(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_391_0(int cell, resettable_bitarray_stack& cache);
            bool apply_any_move_391_392(int cell, resettable_bitarray_stack& cache);
            void get_all_moves_0_1(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_1_3(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_1_170(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_2_178(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_3_4(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_4_5(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_5_7(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_5_27(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_5_56(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_5_85(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_5_134(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_5_143(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_6_2(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_7_8(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_8_10(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_8_18(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_9_26(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_10_11(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_11_13(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_11_15(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_12_17(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_13_14(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_14_12(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_15_16(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_16_12(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_17_9(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_18_19(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_19_21(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_19_23(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_20_25(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_21_22(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_22_20(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_23_24(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_24_20(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_25_9(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_26_6(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_27_28(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_28_32(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_28_37(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_28_42(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_28_47(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_29_51(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_29_53(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_30_31(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_31_33(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_31_30(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_32_30(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_32_33(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_33_34(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_34_29(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_35_36(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_36_38(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_36_35(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_37_35(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_37_38(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_38_39(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_39_29(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_40_41(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_41_43(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_41_40(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_42_40(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_42_43(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_43_44(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_44_29(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_45_46(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_46_48(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_46_45(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_47_45(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_47_48(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_48_49(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_49_29(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_50_55(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_51_52(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_52_50(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_53_54(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_54_50(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_55_6(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_56_57(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_57_61(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_57_66(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_57_71(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_57_76(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_58_80(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_58_82(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_59_60(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_60_62(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_60_59(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_61_59(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_61_62(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_62_63(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_63_58(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_64_65(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_65_67(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_65_64(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_66_64(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_66_67(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_67_68(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_68_58(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_69_70(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_70_72(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_70_69(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_71_69(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_71_72(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_72_73(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_73_58(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_74_75(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_75_77(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_75_74(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_76_74(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_76_77(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_77_78(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_78_58(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_79_84(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_80_81(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_81_79(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_82_83(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_83_79(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_84_6(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_85_86(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_90(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_95(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_100(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_105(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_110(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_115(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_120(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_86_125(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_87_129(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_87_131(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_88_89(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_89_91(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_89_88(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_90_88(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_90_91(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_91_92(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_92_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_93_94(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_94_96(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_94_93(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_95_93(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_95_96(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_96_97(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_97_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_98_99(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_99_101(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_99_98(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_100_98(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_100_101(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_101_102(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_102_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_103_104(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_104_106(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_104_103(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_105_103(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_105_106(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_106_107(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_107_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_108_109(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_109_111(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_109_108(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_110_108(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_110_111(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_111_112(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_112_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_113_114(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_114_116(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_114_113(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_115_113(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_115_116(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_116_117(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_117_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_118_119(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_119_121(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_119_118(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_120_118(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_120_121(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_121_122(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_122_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_123_124(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_124_126(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_124_123(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_125_123(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_125_126(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_126_127(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_127_87(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_128_133(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_129_130(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_130_128(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_131_132(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_132_128(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_133_6(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_134_135(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_135_136(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_136_138(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_136_140(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_137_142(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_138_139(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_139_137(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_140_141(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_141_137(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_142_6(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_143_144(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_144_146(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_144_167(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_145_169(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_146_148(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_146_150(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_147_154(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_147_156(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_148_149(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_149_147(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_150_151(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_151_152(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_152_147(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_153_145(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_154_155(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_155_153(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_156_157(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_157_159(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_157_161(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_157_163(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_157_165(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_158_153(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_159_160(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_160_158(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_161_162(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_162_158(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_163_164(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_164_158(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_165_166(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_166_158(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_167_168(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_168_145(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_169_6(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_170_171(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_171_173(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_171_175(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_172_177(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_173_174(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_174_172(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_175_176(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_176_172(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_177_2(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_178_180(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_178_187(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_179_196(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_180_181(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_181_183(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_181_185(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_182_179(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_183_184(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_184_182(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_185_186(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_186_182(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_187_188(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_188_190(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_188_193(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_189_179(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_190_191(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_191_192(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_192_189(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_193_194(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_194_195(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_195_189(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_196_198(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_196_365(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_197_373(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_198_199(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_199_200(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_200_202(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_200_222(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_200_251(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_200_280(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_200_329(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_200_338(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_201_197(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_202_203(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_203_205(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_203_213(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_204_221(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_205_206(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_206_208(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_206_210(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_207_212(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_208_209(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_209_207(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_210_211(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_211_207(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_212_204(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_213_214(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_214_216(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_214_218(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_215_220(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_216_217(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_217_215(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_218_219(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_219_215(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_220_204(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_221_201(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_222_223(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_223_227(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_223_232(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_223_237(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_223_242(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_224_246(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_224_248(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_225_226(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_226_228(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_226_225(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_227_225(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_227_228(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_228_229(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_229_224(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_230_231(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_231_233(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_231_230(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_232_230(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_232_233(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_233_234(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_234_224(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_235_236(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_236_238(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_236_235(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_237_235(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_237_238(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_238_239(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_239_224(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_240_241(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_241_243(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_241_240(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_242_240(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_242_243(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_243_244(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_244_224(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_245_250(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_246_247(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_247_245(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_248_249(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_249_245(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_250_201(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_251_252(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_252_256(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_252_261(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_252_266(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_252_271(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_253_275(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_253_277(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_254_255(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_255_257(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_255_254(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_256_254(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_256_257(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_257_258(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_258_253(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_259_260(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_260_262(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_260_259(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_261_259(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_261_262(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_262_263(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_263_253(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_264_265(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_265_267(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_265_264(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_266_264(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_266_267(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_267_268(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_268_253(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_269_270(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_270_272(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_270_269(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_271_269(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_271_272(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_272_273(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_273_253(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_274_279(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_275_276(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_276_274(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_277_278(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_278_274(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_279_201(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_280_281(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_285(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_290(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_295(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_300(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_305(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_310(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_315(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_281_320(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_282_324(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_282_326(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_283_284(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_284_286(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_284_283(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_285_283(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_285_286(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_286_287(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_287_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_288_289(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_289_291(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_289_288(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_290_288(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_290_291(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_291_292(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_292_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_293_294(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_294_296(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_294_293(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_295_293(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_295_296(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_296_297(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_297_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_298_299(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_299_301(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_299_298(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_300_298(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_300_301(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_301_302(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_302_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_303_304(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_304_306(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_304_303(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_305_303(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_305_306(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_306_307(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_307_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_308_309(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_309_311(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_309_308(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_310_308(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_310_311(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_311_312(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_312_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_313_314(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_314_316(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_314_313(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_315_313(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_315_316(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_316_317(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_317_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_318_319(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_319_321(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_319_318(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_320_318(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_320_321(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_321_322(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_322_282(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_323_328(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_324_325(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_325_323(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_326_327(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_327_323(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_328_201(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_329_330(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_330_331(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_331_333(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_331_335(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_332_337(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_333_334(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_334_332(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_335_336(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_336_332(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_337_201(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_338_339(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_339_341(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_339_362(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_340_364(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_341_343(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_341_345(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_342_349(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_342_351(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_343_344(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_344_342(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_345_346(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_346_347(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_347_342(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_348_340(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_349_350(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_350_348(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_351_352(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_352_354(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_352_356(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_352_358(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_352_360(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_353_348(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_354_355(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_355_353(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_356_357(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_357_353(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_358_359(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_359_353(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_360_361(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_361_353(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_362_363(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_363_340(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_364_201(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_365_366(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_366_368(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_366_370(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_367_372(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_368_369(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_369_367(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_370_371(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_371_367(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_372_197(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_373_375(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_373_382(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_374_392(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_374_0(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_375_376(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_376_378(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_376_380(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_377_374(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_378_379(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_379_377(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_380_381(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_381_377(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_382_383(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_383_385(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_383_388(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_384_374(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_385_386(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_386_387(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_387_384(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_388_389(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_389_390(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_390_384(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_391_0(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);
            void get_all_moves_391_392(int cell, resettable_bitarray_stack& cache, move_representation& mr, std::vector<semimove>& moves, unsigned int move_length_limit);

            bool get_pattern_value0_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value0_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value1_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value1_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value2_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value2_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value3_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value3_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value4_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value4_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value5_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value5_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value6_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value6_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value7_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value7_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value8_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value8_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value9_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value9_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value10_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value10_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value11_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value11_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value12_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_0_169(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_4_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_4_26(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_4_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_4_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_4_133(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_4_142(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_7_9(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_7_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_10_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_10_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_18_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_27_31(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_27_36(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_27_41(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_27_46(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_28_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_28_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_30_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_30_29(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_31_29(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_31_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_35_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_35_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_36_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_36_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_40_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_40_39(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_41_39(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_41_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_45_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_45_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_46_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_46_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_56_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_56_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_56_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_56_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_57_79(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_57_81(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_59_61(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_59_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_60_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_60_61(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_64_66(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_64_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_65_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_65_66(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_69_71(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_69_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_70_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_70_71(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_74_76(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_74_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_75_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_75_76(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_89(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_94(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_99(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_104(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_109(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_114(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_119(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_85_124(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_86_128(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_86_130(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_88_90(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_88_87(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_89_87(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_89_90(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_93_95(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_93_92(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_94_92(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_94_95(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_98_100(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_98_97(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_99_97(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_99_100(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_103_105(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_103_102(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_104_102(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_104_105(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_108_110(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_108_107(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_109_107(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_109_110(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_113_115(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_113_112(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_114_112(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_114_115(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_118_120(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_118_117(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_119_117(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_119_120(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_123_125(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_123_122(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_124_122(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_124_125(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_135_137(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_135_139(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_143_145(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_143_166(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_145_147(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_145_149(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_146_153(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_146_155(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_150_151(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_156_158(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_156_160(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_156_162(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_156_164(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_170_172(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value12_170_174(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value13_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value13_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value14_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value14_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value15_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value15_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value16_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value16_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value17_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value17_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value18_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value18_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value19_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value19_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value20_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value20_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value21_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value21_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value22_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value22_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value23_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_5(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_0_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_3_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_6_8(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_6_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_11_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_11_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_12_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_12_13(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_16_18(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_16_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_21_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_21_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_22_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_22_23(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_26_28(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_26_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_31_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_31_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_32_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_32_33(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_36_38(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_36_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_41_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_41_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_42_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_42_43(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_46_48(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_46_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_51_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_51_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_52_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_52_53(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_56_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_56_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_61_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_61_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_62_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_62_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_66_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_66_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_71_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_71_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_72_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_72_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_76_78(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_76_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_81_83(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_81_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_82_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value23_82_83(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value24_0_1(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_1_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_4(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_7(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_27(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_57(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_67(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_2_77(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_5_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_8_10(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_8_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_13_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_13_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_14_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_14_15(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_18_24(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_23_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_23_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_24_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_24_25(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_28_30(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_28_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_33_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_33_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_34_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_34_35(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_38_40(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_38_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_43_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_43_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_44_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_44_45(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_48_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_48_54(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_53_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_53_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_54_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_54_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_58_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_58_64(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_63_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_63_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_64_62(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_64_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_68_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_68_74(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_73_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_73_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_74_72(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_74_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_78_80(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_78_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_83_85(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_83_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_84_82(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value24_84_85(int cell, resettable_bitarray_stack& cache);

            bool get_pattern_value25_0_2(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_0_169(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_4_6(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_4_26(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_4_55(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_4_84(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_4_133(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_4_142(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_7_9(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_7_17(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_10_12(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_10_14(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_18_20(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_18_22(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_27_31(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_27_36(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_27_41(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_27_46(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_28_50(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_28_52(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_30_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_30_29(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_31_29(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_31_32(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_35_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_35_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_36_34(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_36_37(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_40_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_40_39(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_41_39(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_41_42(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_45_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_45_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_46_44(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_46_47(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_56_60(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_56_65(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_56_70(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_56_75(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_57_79(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_57_81(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_59_61(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_59_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_60_58(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_60_61(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_64_66(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_64_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_65_63(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_65_66(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_69_71(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_69_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_70_68(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_70_71(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_74_76(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_74_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_75_73(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_75_76(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_89(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_94(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_99(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_104(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_109(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_114(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_119(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_85_124(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_86_128(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_86_130(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_88_90(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_88_87(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_89_87(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_89_90(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_93_95(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_93_92(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_94_92(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_94_95(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_98_100(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_98_97(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_99_97(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_99_100(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_103_105(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_103_102(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_104_102(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_104_105(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_108_110(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_108_107(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_109_107(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_109_110(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_113_115(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_113_112(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_114_112(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_114_115(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_118_120(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_118_117(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_119_117(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_119_120(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_123_125(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_123_122(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_124_122(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_124_125(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_135_137(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_135_139(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_143_145(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_143_166(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_145_147(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_145_149(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_146_153(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_146_155(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_150_151(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_156_158(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_156_160(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_156_162(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_156_164(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_170_172(int cell, resettable_bitarray_stack& cache);
            bool get_pattern_value25_170_174(int cell, resettable_bitarray_stack& cache);

            int current_cell = 1;
            int current_player = 0;
            int current_state = 391;
            int pieces[65] = {
                -1,
                6,
                2,
                0,
                4,
                1,
                0,
                2,
                6,
                3,
                3,
                3,
                3,
                3,
                3,
                3,
                3,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                7,
                11,
                11,
                11,
                11,
                11,
                11,
                11,
                11,
                14,
                10,
                8,
                12,
                9,
                8,
                10,
                14,
            };
            int variables[6] = {};
    };

}

#endif