func_code_string: #include <bits/stdc++.h>   using namespace std;   long long gcd(long long a, long long b) {     if (b == 0) return a;     if (a < b) return gcd(b, a);     while (a > b) {       a %= b;     }     return gcd(b, a);   }   long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }   const double EPS = 10e-9;   const double PI = acos(-1.0);   const double INF = (1LL << 29);   using namespace std;   template <typename T>   string toString(T t) {     stringstream ss;     ss << t;     return ss.str();   }   const long long prime = 1000000007;   long long power(long long n, long long a, long long prime) {     long long res = 1LL;     while (a > 0) {       if (a & 1LL) {         res *= n;         res %= prime;       }       n *= n;       n %= prime;       a >>= 1;     }     return res;   }   int main() {     string x;     cin >> x;     long long total = 0;     for (int i = 0; i < (x.size()); ++i) {       if (x[i] ==  1 ) {         int len = i, left = x.size() - len - 1;         long long part = power(2, len, prime) * power(4, left, prime);         total += part % prime;         total %= prime;       }     }     cout << total << endl;     return 0;   }   