class Operators1 {
  operator ==() => true;
  operator <() => true;
  operator >() => true;
  operator <=() => true;
  operator >=() => true;
  operator +() => true;
  operator /() => true;
  operator ~/() => true;
  operator *() => true;
  operator %() => true;
  operator |() => true;
  operator ^() => true;
  operator &() => true;
  operator <<() => true;
  operator >>() => true;
  operator []=(a, b, c) => true;
  operator []() => true;
  operator ~(a) => true;
}
class Operators2 {
  operator ==(a, b) => true;
  operator <(a, b) => true;
  operator >(a, b) => true;
  operator <=(a, b) => true;
  operator >=(a, b) => true;
  operator -(a, b) => true;
  operator +(a, b) => true;
  operator /(a, b) => true;
  operator ~/(a, b) => true;
  operator *(a, b) => true;
  operator %(a, b) => true;
  operator |(a, b) => true;
  operator ^(a, b) => true;
  operator &(a, b) => true;
  operator <<(a, b) => true;
  operator >>(a, b) => true;
  operator []=(a, b, c) => true;
  operator [](a, b) => true;
  operator ~(a, b) => true;
}
class Operators3 {
  operator ==([a = 0]) => true;
  operator <([a]) => true;
  operator >([a]) => true;
  operator <=([a]) => true;
  operator >=([a]) => true;
  operator -([a]) => true;
  operator +([a]) => true;
  operator /([a]) => true;
  operator ~/([a]) => true;
  operator *([a]) => true;
  operator %([a]) => true;
  operator |([a]) => true;
  operator ^([a]) => true;
  operator &([a]) => true;
  operator <<([a]) => true;
  operator >>([a]) => true;
  operator []=([a, b]) => true;
  operator []([a]) => true;
  operator ~([a]) => true;
}
class Operators4 {
  operator ==({a}) => true;
  operator <({a}) => true;
  operator >({a}) => true;
  operator <=({a}) => true;
  operator >=({a}) => true;
  operator -({a}) => true;
  operator +({a}) => true;
  operator /({a}) => true;
  operator ~/({a}) => true;
  operator *({a}) => true;
  operator %({a}) => true;
  operator |({a}) => true;
  operator ^({a}) => true;
  operator &({a}) => true;
  operator <<({a}) => true;
  operator >>({a}) => true;
  operator []=({a, b}) => true;
  operator []({a}) => true;
  operator ~({a}) => true;
}
class Operators5 {
  operator ==(a, [b]) => true;
  operator <(a, [b]) => true;
  operator >(a, [b]) => true;
  operator <=(a, [b]) => true;
  operator >=(a, [b]) => true;
  operator -(a, [b]) => true;
  operator +(a, [b]) => true;
  operator /(a, [b]) => true;
  operator ~/(a, [b]) => true;
  operator *(a, [b]) => true;
  operator %(a, [b]) => true;
  operator |(a, [b]) => true;
  operator ^(a, [b]) => true;
  operator &(a, [b]) => true;
  operator <<(a, [b]) => true;
  operator >>(a, [b]) => true;
  operator []=(a, b, [c]) => true;
  operator [](a, [b]) => true;
  operator ~(a, [b]) => true;
}
class Operators6 {
  operator ==(a, {b}) => true;
  operator <(a, {b}) => true;
  operator >(a, {b}) => true;
  operator <=(a, {b}) => true;
  operator >=(a, {b}) => true;
  operator -(a, {b}) => true;
  operator +(a, {b}) => true;
  operator /(a, {b}) => true;
  operator ~/(a, {b}) => true;
  operator *(a, {b}) => true;
  operator %(a, {b}) => true;
  operator |(a, {b}) => true;
  operator ^(a, {b}) => true;
  operator &(a, {b}) => true;
  operator <<(a, {b}) => true;
  operator >>(a, {b}) => true;
  operator []=(a, b, {c}) => true;
  operator [](a, {b}) => true;
  operator ~(a, {b}) => true;
}
class Operators7 {
  operator ==<T>(a) => true;
  operator ><T>(a) => true;
  operator <=<T>(a) => true;
  operator >=<T>(a) => true;
  operator -<T>() => true;
  operator -<T>(a) => true;
  operator +<T>(a) => true;
  operator /<T>(a) => true;
  operator ~/<T>(a) => true;
  operator *<T>(a) => true;
  operator %<T>(a) => true;
  operator |<T>(a) => true;
  operator ^<T>(a) => true;
  operator &<T>(a) => true;
  operator <<<T>(a) => true;
  operator >><T>(a) => true;
  operator []=<T>(a, b) => true;
  operator []<T>(a) => true;
  operator ~<T>() => true;
}
main() {}
