- #include <iostream> 
- #include <sstream> 
-   
- enum class dna_strand : char { 
-     positive = '+', 
-     negative = '-' 
- }; 
-   
- std::ostream& operator <<(std::ostream& out, dna_strand strand) { 
-     return out << static_cast<char>(strand); 
- } 
-   
- std::istream& operator >>(std::istream& in, dna_strand& strand) { 
-     char ch{}; 
-     if (not in >> ch) 
-         return in; 
-     if (ch == '+') 
-         strand = dna_strand::positive; 
-     else if (ch == '-') 
-         strand = dna_strand::negative; 
-     else 
-         in.setstate(std::ios::failbit); 
-     return in; 
- } 
-   
- int main() { 
-     std::stringstream sstr("+"); 
-     dna_strand s{}; 
-     sstr >> s; 
-     std::cout << "\"" << s << "\"\n"; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCmVudW0gY2xhc3MgZG5hX3N0cmFuZCA6IGNoYXIgewogICAgcG9zaXRpdmUgPSAnKycsCiAgICBuZWdhdGl2ZSA9ICctJwp9OwoKc3RkOjpvc3RyZWFtJiBvcGVyYXRvciA8PChzdGQ6Om9zdHJlYW0mIG91dCwgZG5hX3N0cmFuZCBzdHJhbmQpIHsKICAgIHJldHVybiBvdXQgPDwgc3RhdGljX2Nhc3Q8Y2hhcj4oc3RyYW5kKTsKfQoKc3RkOjppc3RyZWFtJiBvcGVyYXRvciA+PihzdGQ6OmlzdHJlYW0mIGluLCBkbmFfc3RyYW5kJiBzdHJhbmQpIHsKICAgIGNoYXIgY2h7fTsKICAgIGlmIChub3QgaW4gPj4gY2gpCiAgICAgICAgcmV0dXJuIGluOwogICAgaWYgKGNoID09ICcrJykKICAgICAgICBzdHJhbmQgPSBkbmFfc3RyYW5kOjpwb3NpdGl2ZTsKICAgIGVsc2UgaWYgKGNoID09ICctJykKICAgICAgICBzdHJhbmQgPSBkbmFfc3RyYW5kOjpuZWdhdGl2ZTsKICAgIGVsc2UKICAgICAgICBpbi5zZXRzdGF0ZShzdGQ6Omlvczo6ZmFpbGJpdCk7CiAgICByZXR1cm4gaW47Cn0KCmludCBtYWluKCkgewogICAgc3RkOjpzdHJpbmdzdHJlYW0gc3N0cigiKyIpOwogICAgZG5hX3N0cmFuZCBze307CiAgICBzc3RyID4+IHM7CiAgICBzdGQ6OmNvdXQgPDwgIlwiIiA8PCBzIDw8ICJcIlxuIjsKfQ==