/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -rci


// re2c:cond:divider = "~~~ ## ~~~";
// re2c:api:sigil = #;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
~~~ c1c1 ~~~
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy2;
		default: goto yy1;
	}
yy1:
	++YYCURSOR;
	{ x }
yy2:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
~~~ c2c2 ~~~
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy5;
		default: goto yy4;
	}
yy4:
	++YYCURSOR;
	{ x }
yy5:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "~~~ ## ~~~";
// re2c:api:sigil = @@;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
~~~ ## ~~~
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy8;
		default: goto yy7;
	}
yy7:
	++YYCURSOR;
	{ x }
yy8:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
~~~ ## ~~~
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy11;
		default: goto yy10;
	}
yy10:
	++YYCURSOR;
	{ x }
yy11:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "~~~ ## ~~~";
// re2c:cond:divider@cond = #;
// re2c:api:sigil = #;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
~~~ c1c1 ~~~
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy14;
		default: goto yy13;
	}
yy13:
	++YYCURSOR;
	{ x }
yy14:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
~~~ c2c2 ~~~
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy17;
		default: goto yy16;
	}
yy16:
	++YYCURSOR;
	{ x }
yy17:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "~~~ ## ~~~";
// re2c:cond:divider@cond = #;
// re2c:api:sigil = @@;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
~~~ c1c1 ~~~
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy20;
		default: goto yy19;
	}
yy19:
	++YYCURSOR;
	{ x }
yy20:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
~~~ c2c2 ~~~
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy23;
		default: goto yy22;
	}
yy22:
	++YYCURSOR;
	{ x }
yy23:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "~~~ ## ~~~";
// re2c:cond:divider@cond = @@;
// re2c:api:sigil = #;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
~~~ ## ~~~
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy26;
		default: goto yy25;
	}
yy25:
	++YYCURSOR;
	{ x }
yy26:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
~~~ ## ~~~
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy29;
		default: goto yy28;
	}
yy28:
	++YYCURSOR;
	{ x }
yy29:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "~~~ ## ~~~";
// re2c:cond:divider@cond = @@;
// re2c:api:sigil = @@;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
~~~ ## ~~~
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy32;
		default: goto yy31;
	}
yy31:
	++YYCURSOR;
	{ x }
yy32:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
~~~ ## ~~~
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy35;
		default: goto yy34;
	}
yy34:
	++YYCURSOR;
	{ x }
yy35:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "--- @@ --- @@ ---";
// re2c:api:sigil = #;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
--- @@ --- @@ ---
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy38;
		default: goto yy37;
	}
yy37:
	++YYCURSOR;
	{ x }
yy38:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
--- @@ --- @@ ---
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy41;
		default: goto yy40;
	}
yy40:
	++YYCURSOR;
	{ x }
yy41:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "--- @@ --- @@ ---";
// re2c:api:sigil = @@;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
--- c1 --- c1 ---
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy44;
		default: goto yy43;
	}
yy43:
	++YYCURSOR;
	{ x }
yy44:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
--- c2 --- c2 ---
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy47;
		default: goto yy46;
	}
yy46:
	++YYCURSOR;
	{ x }
yy47:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "--- @@ --- @@ ---";
// re2c:cond:divider@cond = #;
// re2c:api:sigil = #;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
--- @@ --- @@ ---
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy50;
		default: goto yy49;
	}
yy49:
	++YYCURSOR;
	{ x }
yy50:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
--- @@ --- @@ ---
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy53;
		default: goto yy52;
	}
yy52:
	++YYCURSOR;
	{ x }
yy53:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "--- @@ --- @@ ---";
// re2c:cond:divider@cond = #;
// re2c:api:sigil = @@;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
--- @@ --- @@ ---
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy56;
		default: goto yy55;
	}
yy55:
	++YYCURSOR;
	{ x }
yy56:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
--- @@ --- @@ ---
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy59;
		default: goto yy58;
	}
yy58:
	++YYCURSOR;
	{ x }
yy59:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "--- @@ --- @@ ---";
// re2c:cond:divider@cond = @@;
// re2c:api:sigil = #;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
--- c1 --- c1 ---
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy62;
		default: goto yy61;
	}
yy61:
	++YYCURSOR;
	{ x }
yy62:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
--- c2 --- c2 ---
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy65;
		default: goto yy64;
	}
yy64:
	++YYCURSOR;
	{ x }
yy65:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


// re2c:cond:divider = "--- @@ --- @@ ---";
// re2c:cond:divider@cond = @@;
// re2c:api:sigil = @@;

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
	}
--- c1 --- c1 ---
yyc_c1:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy68;
		default: goto yy67;
	}
yy67:
	++YYCURSOR;
	{ x }
yy68:
	++YYCURSOR;
	YYSETCONDITION(yycc2);
	goto yyc_c2;
--- c2 --- c2 ---
yyc_c2:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'b': goto yy71;
		default: goto yy70;
	}
yy70:
	++YYCURSOR;
	{ x }
yy71:
	++YYCURSOR;
	YYSETCONDITION(yycc1);
	goto yyc_c1;
}


