struct Point {
double x;
double y;
double z;
Point& operator+=(Point const& right) {
x += right.x; y += right.y; z += right.z;
return *this;
}
Point& operator*=(double f) {
x *= f; y *= f; z *= f;
return *this;
}
};
int main() { Point p = ((Point{1,2,3} *= 2) += Point{4,5,6}); }
ICAgIHN0cnVjdCBQb2ludCB7CiAgICAgIGRvdWJsZSB4OwogICAgICBkb3VibGUgeTsKICAgICAgZG91YmxlIHo7CgogICAgICBQb2ludCYgb3BlcmF0b3IrPShQb2ludCBjb25zdCYgcmlnaHQpIHsKICAgICAgICB4ICs9IHJpZ2h0Lng7IHkgKz0gcmlnaHQueTsgeiArPSByaWdodC56OwogICAgICAgIHJldHVybiAqdGhpczsKICAgICAgfQoKICAgICAgUG9pbnQmIG9wZXJhdG9yKj0oZG91YmxlIGYpIHsKICAgICAgICB4ICo9IGY7IHkgKj0gZjsgeiAqPSBmOwogICAgICAgIHJldHVybiAqdGhpczsKICAgICAgfQogICAgfTsKCiAgICBpbnQgbWFpbigpIHsgUG9pbnQgcCA9ICgoUG9pbnR7MSwyLDN9ICo9IDIpICs9IFBvaW50ezQsNSw2fSk7IH0=