Five Ways to Lose Belly Fat: Visceral vs Subcutaneous Fat
January 11, 2018
Belly Fat: Visceral Fat vs. Subcutaneous fat
Larger waistlines come with larger risks. However, abdominal, or visceral, fat is of particular concern because it's a key player in a variety of health problems — much more so than subcutaneous fat, the kind you can grasp with your hand. Visceral fat, on the other hand, lies out of reach, deep within the abdominal cavity, where it pads the spaces between our abdominal organs.
When people talk about losing belly fat, they often refer to subcutaneous fat, and it is often aesthetic: Smaller waist line, “six pack,” etc. However, one should not forget about visceral fat, as it has been linked to metabolic disturbances and increased risk for cardiovascular disease and type 2 diabetes. In women, it is also associated with breast cancer and the need for gallbladder surgery.
Visceral fat is directly linked with higher total cholesterol and LDL (bad) cholesterol, lower HDL (good) cholesterol, and insulin resistance.
The good news is that visceral fat yields fairly easily to exercise and diet. However, Subcutaneous fat located at the waist — the “pinchable” stuff — can be frustratingly difficult to budge. Here’s how you can tackle both. For Subcutaneous fat, you will have to pay special attention to your diet.
1- Know your macros
Diet is key to reducing belly fat. Pay attention to portion size, and pick your macronutrients (protein, fat and carbohydrates) wisely. Emphasize complex carbohydrates (fruits, vegetables, and whole grains) and lean protein over simple carbohydrates such as white bread, refined-grain pasta, and sugary drinks. Replacing saturated fats and trans fats with polyunsaturated fats can also help.
2- Eat enough protein
Eating enough protein will allow your body to build and repair its muscle tissue. As a result, this will help you maintain or develop your muscle mass.
Here’s an example of the required daily macronutrient intake for a female weighing 135lbs and whose exercise program is mostly composed of strength training 4-6 times per week.
Ci5iYXIgewogIGZpbGw6ICNmZmFkOWU7Cn0KCi5iYXI6aG92ZXIgewogIGZpbGw6ICNmNTc3YTg7Cn0KLmNpcmNsZSB7CmZpbGw6ICM3OTg2ZGI7Cn0KLmNpcmNsZTpob3ZlciB7CmZpbGw6ICNmNTc3YTg7Cn0KCi5heGlzIHsKZm9udC1zaXplOiAxNnB4IDsKfQoueS5heGlzewogIGZvbnQtd2VpZ2h0OiBib2xkOwp9Ci55LmF4aXMgcGF0aCxsaW5lIHsKZGlzcGxheTogbm9uZTsKfQovKiAueC5heGlzLnRpY2sgbGluZSB7ZGlzcGxheTogbm9uZTt9ICovCgouYXhpcyBwYXRoLAouYXhpcyBsaW5lIHsKZmlsbDogbm9uZTsKc3Ryb2tlOiAjMDAwOwpzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7Cn0KLnRvb2x0aXAgewpiYWNrZ3JvdW5kOiAjRkZFRkQ1OwovKiBib3gtc2hhZG93OiAwIDAgNXB4ICM5OTk5OTk7ICovCmNvbG9yOiAjMzMzOwpmb250LXNpemU6IDEycHg7CmxlZnQ6IDIwMHB4OwpwYWRkaW5nOiAxMHB4Owpwb3NpdGlvbjogYWJzb2x1dGU7CnRleHQtYWxpZ246IGNlbnRlcjsKdG9wOiAxMDAwcHg7CnotaW5kZXg6IDEwOwpkaXNwbGF5OiBibG9jazsKb3BhY2l0eTogMDsKYm9yZGVyOiAwcHg7CmJvcmRlci1yYWRpdXM6IDEwcHg7Cn0KCgouemVyb3sKZm9udC13ZWlnaHQ6IG5vcm1hbAp9Cgoub25lewpmb250LXdlaWdodDogYm9sZAp9Cgo=
aHR0cHM6Ly9kM2pzLm9yZy9kMy52My5taW4uanM=
Cgp2YXIgd2VpZ2h0a2c9NjEuMDA7CnZhciBjbGllbnRwcm90ZWluPTEzNy45OAp2YXIgY2xpZW50Y2FyYnM9MTk4LjMwCnZhciBjbGllbnRmaWJlcj0zNi4xOAp2YXIgY2xpZW50ZmF0PTUzLjY3CnZhciBjbGllbnRzYXR1cmF0ZWRmYXQ9OC4xMgoKdmFyIEZlbWFsZVNlZGVudGFyeT1bCnsibWFjcm9udXRyaSI6ICJQcm90ZWluIiwgImhpZ2hlciI6IDEuMyp3ZWlnaHRrZywibG93ZXIiOgoxLjEqd2VpZ2h0a2csICJjbGllbnQiOmNsaWVudHByb3RlaW59LAp7Im1hY3JvbnV0cmkiOiAiQ2FyYm9oeWRyYXRlcyIsICJoaWdoZXIiOiAzLjYqd2VpZ2h0a2csImxvd2VyIjoKMi40KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRjYXJic30sCnsibWFjcm9udXRyaSI6ICJGaWJlciIsICJoaWdoZXIiOiAwLjUqd2VpZ2h0a2csImxvd2VyIjogMC4zKndlaWdodGtnLAoiY2xpZW50IjogY2xpZW50ZmliZXJ9LAp7Im1hY3JvbnV0cmkiOiAiVG90YWwgc2F0dXJhdGVkZmF0IiwgImhpZ2hlciI6IDIyLCJsb3dlciI6CjEzLCAiY2xpZW50IjpjbGllbnRzYXR1cmF0ZWRmYXR9LAp7Im1hY3JvbnV0cmkiOiAiVG90YWwgZmF0IiwgImhpZ2hlciI6IDEuMip3ZWlnaHRrZywibG93ZXIiOgowLjgqd2VpZ2h0a2csICJjbGllbnQiOmNsaWVudGZhdH0KCl0KCnZhciBGZW1hbGVFbmR1cmFuY2VBdGhsZXRlPVsKeyJtYWNyb251dHJpIjogIlByb3RlaW4iLCAiaGlnaGVyIjogMS40KndlaWdodGtnLCJsb3dlciI6CjEuMip3ZWlnaHRrZywgImNsaWVudCI6Y2xpZW50cHJvdGVpbn0sCnsibWFjcm9udXRyaSI6ICJDYXJib2h5ZHJhdGVzIiwgImhpZ2hlciI6IDYqd2VpZ2h0a2csImxvd2VyIjoKNCp3ZWlnaHRrZywgImNsaWVudCI6Y2xpZW50Y2FyYnN9LAp7Im1hY3JvbnV0cmkiOiAiRmliZXIiLCAiaGlnaGVyIjogMC41KndlaWdodGtnLCJsb3dlciI6IDAuMyp3ZWlnaHRrZywKImNsaWVudCI6Y2xpZW50ZmliZXJ9LAp7Im1hY3JvbnV0cmkiOiAiU2F0dXJhdGVkIEZhdCIsICJoaWdoZXIiOiAyMiwibG93ZXIiOgoxMywgImNsaWVudCI6Y2xpZW50c2F0dXJhdGVkZmF0fSwKeyJtYWNyb251dHJpIjogIlRvdGFsIGZhdCIsICJoaWdoZXIiOgoxLjIqd2VpZ2h0a2csImxvd2VyIjowLjgqd2VpZ2h0a2csICJjbGllbnQiOmNsaWVudGZhdH0KCl0KCnZhciBGZW1hbGVQb3dlckF0aGxldGU9Wwp7Im1hY3JvbnV0cmkiOiAiUHJvdGVpbiIsICJoaWdoZXIiOiAyLjcqd2VpZ2h0a2csImxvd2VyIjoKMS44KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRwcm90ZWlufSwKeyJtYWNyb251dHJpIjogIkNhcmJvaHlkcmF0ZXMiLCAiaGlnaGVyIjogNSp3ZWlnaHRrZywibG93ZXIiOgozKndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRjYXJic30sCnsibWFjcm9udXRyaSI6ICJGaWJlciIsICJoaWdoZXIiOiAwLjUqd2VpZ2h0a2csImxvd2VyIjogMC4zKndlaWdodGtnLAoiY2xpZW50IjogY2xpZW50ZmliZXJ9LAp7Im1hY3JvbnV0cmkiOiAiU2F0dXJhdGVkIEZhdCIsICJoaWdoZXIiOiAyMiwibG93ZXIiOgoxMywgImNsaWVudCI6Y2xpZW50c2F0dXJhdGVkZmF0fSwKeyJtYWNyb251dHJpIjogIlRvdGFsIGZhdCIsICJoaWdoZXIiOgoxLjMqd2VpZ2h0a2csImxvd2VyIjowLjkqd2VpZ2h0a2csICJjbGllbnQiOmNsaWVudGZhdH0KCl0KCnZhciBGZW1hbGVPbGRlckFkdWx0PVsKeyJtYWNyb251dHJpIjogIlByb3RlaW4iLCAiaGlnaGVyIjogMS42KndlaWdodGtnLCJsb3dlciI6CjEuNCp3ZWlnaHRrZywgImNsaWVudCI6Y2xpZW50cHJvdGVpbn0sCnsibWFjcm9udXRyaSI6ICJDYXJib2h5ZHJhdGVzIiwgImhpZ2hlciI6IDMuOCp3ZWlnaHRrZywibG93ZXIiOgoyLjYqd2VpZ2h0a2csICJjbGllbnQiOmNsaWVudGNhcmJzfSwKeyJtYWNyb251dHJpIjogIkZpYmVyIiwgImhpZ2hlciI6IDAuNCp3ZWlnaHRrZywibG93ZXIiOiAwLjIqd2VpZ2h0a2csCiJjbGllbnQiOiBjbGllbnRmaWJlcn0sCnsibWFjcm9udXRyaSI6ICJTYXR1cmF0ZWQgRmF0IiwgImhpZ2hlciI6IDE4LCJsb3dlciI6CjksICJjbGllbnQiOmNsaWVudHNhdHVyYXRlZGZhdH0sCnsibWFjcm9udXRyaSI6ICJUb3RhbCBmYXQiLCAiaGlnaGVyIjoKMS4xKndlaWdodGtnLCJsb3dlciI6MC43KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRmYXR9CgpdCgp2YXIgTWFsZVNlZGVudGFyeT1bCnsibWFjcm9udXRyaSI6ICJQcm90ZWluIiwgImhpZ2hlciI6IDEuNSp3ZWlnaHRrZywibG93ZXIiOgoxLjMqd2VpZ2h0a2csICJjbGllbnQiOmNsaWVudHByb3RlaW59LAp7Im1hY3JvbnV0cmkiOiAiQ2FyYm9oeWRyYXRlcyIsICJoaWdoZXIiOiAzLjgqd2VpZ2h0a2csImxvd2VyIjoKMi42KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRjYXJic30sCnsibWFjcm9udXRyaSI6ICJGaWJlciIsICJoaWdoZXIiOiAwLjUqd2VpZ2h0a2csImxvd2VyIjogMC4zKndlaWdodGtnLAoiY2xpZW50IjogY2xpZW50ZmliZXJ9LAp7Im1hY3JvbnV0cmkiOiAiU2F0dXJhdGVkIEZhdCIsICJoaWdoZXIiOiAzMywibG93ZXIiOgoyNywgImNsaWVudCI6Y2xpZW50c2F0dXJhdGVkZmF0fSwKeyJtYWNyb251dHJpIjogIlRvdGFsIGZhdCIsICJoaWdoZXIiOiAxLjIqd2VpZ2h0a2csImxvd2VyIjoKMC44KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRmYXR9CgpdCgp2YXIgTWFsZUVuZHVyYW5jZUF0aGxldGU9Wwp7Im1hY3JvbnV0cmkiOiAiUHJvdGVpbiIsICJoaWdoZXIiOiAxLjYqd2VpZ2h0a2csImxvd2VyIjoKMS40KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRwcm90ZWlufSwKeyJtYWNyb251dHJpIjogIkNhcmJvaHlkcmF0ZXMiLCAiaGlnaGVyIjogNyp3ZWlnaHRrZywibG93ZXIiOgo0KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRjYXJic30sCnsibWFjcm9udXRyaSI6ICJGaWJlciIsICJoaWdoZXIiOiAwLjUqd2VpZ2h0a2csImxvd2VyIjogMC4zKndlaWdodGtnLAoiY2xpZW50IjpjbGllbnRmaWJlcn0sCnsibWFjcm9udXRyaSI6ICJTYXR1cmF0ZWQgRmF0IiwgImhpZ2hlciI6IDMzLCJsb3dlciI6CjI3LCAiY2xpZW50IjpjbGllbnRzYXR1cmF0ZWRmYXR9LAp7Im1hY3JvbnV0cmkiOiAiVG90YWwgZmF0IiwgImhpZ2hlciI6CjEuMip3ZWlnaHRrZywibG93ZXIiOjAuOCp3ZWlnaHRrZywgImNsaWVudCI6Y2xpZW50ZmF0fQoKXQoKdmFyIE1hbGVQb3dlckF0aGxldGU9Wwp7Im1hY3JvbnV0cmkiOiAiUHJvdGVpbiIsICJoaWdoZXIiOiAyLjgqd2VpZ2h0a2csImxvd2VyIjogMip3ZWlnaHRrZywKImNsaWVudCI6Y2xpZW50cHJvdGVpbn0sCnsibWFjcm9udXRyaSI6ICJDYXJib2h5ZHJhdGVzIiwgImhpZ2hlciI6IDUqd2VpZ2h0a2csImxvd2VyIjoKMyp3ZWlnaHRrZywgImNsaWVudCI6Y2xpZW50Y2FyYnN9LAp7Im1hY3JvbnV0cmkiOiAiRmliZXIiLCAiaGlnaGVyIjogMC41KndlaWdodGtnLCJsb3dlciI6IDAuMyp3ZWlnaHRrZywKImNsaWVudCI6IGNsaWVudGZpYmVyfSwKeyJtYWNyb251dHJpIjogIlNhdHVyYXRlZCBGYXQiLCAiaGlnaGVyIjogMzMsImxvd2VyIjoKMjcsICJjbGllbnQiOmNsaWVudHNhdHVyYXRlZGZhdH0sCnsibWFjcm9udXRyaSI6ICJUb3RhbCBmYXQiLCAiaGlnaGVyIjoKMS4zKndlaWdodGtnLCJsb3dlciI6MC45KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRmYXR9CgpdCgp2YXIgTWFsZU9sZGVyQWR1bHQ9Wwp7Im1hY3JvbnV0cmkiOiAiUHJvdGVpbiIsICJoaWdoZXIiOiAxLjcqd2VpZ2h0a2csImxvd2VyIjoKMS41KndlaWdodGtnLCAiY2xpZW50IjpjbGllbnRwcm90ZWlufSwKeyJtYWNyb251dHJpIjogIkNhcmJvaHlkcmF0ZXMiLCAiaGlnaGVyIjogNCp3ZWlnaHRrZywibG93ZXIiOgoyLjgqd2VpZ2h0a2csICJjbGllbnQiOmNsaWVudGNhcmJzfSwKeyJtYWNyb251dHJpIjogIkZpYmVyIiwgImhpZ2hlciI6IDAuNCp3ZWlnaHRrZywibG93ZXIiOiAwLjMqd2VpZ2h0a2csCiJjbGllbnQiOiBjbGllbnRmaWJlcn0sCnsibWFjcm9udXRyaSI6ICJTYXR1cmF0ZWQgRmF0IiwgImhpZ2hlciI6IDIyLCJsb3dlciI6CjEzLCAiY2xpZW50IjpjbGllbnRzYXR1cmF0ZWRmYXR9LAp7Im1hY3JvbnV0cmkiOiAiVG90YWwgZmF0IiwgImhpZ2hlciI6CjEuMSp3ZWlnaHRrZywibG93ZXIiOjAuNyp3ZWlnaHRrZywgImNsaWVudCI6Y2xpZW50ZmF0fQoKXQoKCmRhdGE9RmVtYWxlUG93ZXJBdGhsZXRlCgpwcm90ZWluPVtkYXRhWzBdXTsKY2FyYm9oeWRyYXRlcz1bZGF0YVsxXV07CgpmaWJlcj1bZGF0YVsyXV07CmZhdD1bZGF0YVs0XV07CnNhdHVyYXRlZGZhdD1bZGF0YVszXV07CnZhciBtYXJnaW4gPSB7dG9wOiA1MCwgcmlnaHQ6IDUwLCBib3R0b206IDUwLCBsZWZ0OiAxMjB9LAogICAgICAgd2lkdGggPTcwMCAtIG1hcmdpbi5sZWZ0IC0gbWFyZ2luLnJpZ2h0LAogICAgICAgaGVpZ2h0ID0gMTgwIC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b207CgogICB2YXIgeSA9IGQzLnNjYWxlLm9yZGluYWwoKQogICAgICAgLnJhbmdlUm91bmRCYW5kcyhbMCwgaGVpZ2h0XSwgMC44KTsKCiAgIHZhciB4ID0gZDMuc2NhbGUubGluZWFyKCkKICAgICAgIC5yYW5nZShbMCx3aWR0aF0pOwovLyB5LmRvbWFpbihmdW5jdGlvbihkKSB7IHJldHVybiBkLm1hY3JvbnV0cmk7IH0pOwogICAgICAgLy8geS5kb21haW4oZGF0YS5tYXAoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5tYWNyb251dHJpOyB9KSk7CiAgIHguZG9tYWluKFswLCBkMy5tYXgocHJvdGVpbiwgZnVuY3Rpb24oZCkgewogICAgICAgIHJldHVybiBkLmhpZ2hlcioyCiAgICB9KV0pOwoKCnZhciB4QXhpcyA9IGQzLnN2Zy5heGlzKCkKLnNjYWxlKHgpCi5vcmllbnQoImJvdHRvbSIpLm91dGVyVGlja1NpemUoMCkudGlja3MoMTApOwoKdmFyIHlBeGlzID0gZDMuc3ZnLmF4aXMoKQouc2NhbGUoeSkKLm9yaWVudCgibGVmdCIpOwoKCgoKdmFyIHN2ZyA9IGQzLnNlbGVjdCgiI2NoYXJ0MSIpLmFwcGVuZCgic3ZnIikKLmF0dHIoIndpZHRoIiwgd2lkdGggKyBtYXJnaW4ubGVmdCArIG1hcmdpbi5yaWdodCkKLmF0dHIoImhlaWdodCIsIGhlaWdodCArIG1hcmdpbi50b3AgKyBtYXJnaW4uYm90dG9tKQouYXBwZW5kKCJnIikKLmF0dHIoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGUoIiArIG1hcmdpbi5sZWZ0ICsgIiwiICsgbWFyZ2luLnRvcCArICIpIik7CgpzdmcuYXBwZW5kKCJnIikKICAgICAgICAuYXR0cigiY2xhc3MiLCAieCBheGlzIikKICAgICAgICAuYXR0cigidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgwLCIgKyBoZWlnaHQgKyAiKSIpCiAgICAgICAgLmNhbGwoeEF4aXMpCiAgICAgICAgLmFwcGVuZCgidGV4dCIpCiAgICAgICAgLmF0dHIoIngiLCB3aWR0aC02MCkKICAgICAgICAuYXR0cigiZHgiLCAiMS4xZW0iKQogICAgICAgIC5hdHRyKCJkeSIsICItLjcxZW0iKQogICAgICAgIC50ZXh0KCJncmFtcyIpOwoKICAgICAgc3ZnLmFwcGVuZCgiZyIpCiAgICAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJ5IGF4aXMiKQogICAgICAgICAgICAgICAgICAuY2FsbCh5QXhpcykuYXBwZW5kKCJ0ZXh0IikKICAgICAgICAgICAgICAgICAgLy8gLmF0dHIoInRyYW5zZm9ybSIsICJyb3RhdGUoLTkwKSIpCiAgICAgIC5hdHRyKCJ5IiwgNSkKICAgICAgLmF0dHIoIngiLC03MCkKICAgICAgLmF0dHIoImR5IiwgIjFlbSIpCiAgICAgIC5zdHlsZSgidGV4dC1hbmNob3IiLCAibWlkZGxlIikKICAgICAgICAgICAgICAgICAgLnRleHQoIlByb3RlaW4iKTsKCgogICAgICAgICAgLy8gdmFyIHRpY2tzID0gZDMuc2VsZWN0KCIueS5heGlzIikuc2VsZWN0QWxsKCIudGljayB0ZXh0Iik7CiAgICAgICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAgICAgIC8vIHRpY2tzLmF0dHIoImNsYXNzIiwgZnVuY3Rpb24oZCxpKXsKICAgICAgICAgICAgICAgICAgLy8gIGlmKHByb3RlaW5baV0udmFsdWUgPT0gMSl7IHJldHVybiAib25lIn0KICAgICAgICAgICAgICAgICAgLy8gIGVsc2UgaWYocHJvdGVpbltpXS52YWx1ZSA9PSAwKXsgcmV0dXJuICJ6ZXJvIn0KICAgICAgICAgICAgICAgICAgLy8gfSk7CgoKCiAgICAgICAgICAgICAgICAgIHN2Zy5zZWxlY3RBbGwoIi5iYXIiKQogICAgICAgICAuZGF0YShwcm90ZWluKQogICAgICAgICAuZW50ZXIoKS5hcHBlbmQoInJlY3QiKQogICAgICAgICAuYXR0cigiY2xhc3MiLCAiYmFyIikKICAgICAgICAgLmF0dHIoInkiLCBmdW5jdGlvbihkKSB7IHJldHVybiB5KGQubWFjcm9udXRyaSk7IH0pCiAgICAgICAgIC5hdHRyKCJoZWlnaHQiLCB5LnJhbmdlQmFuZCgpKQogICAgICAgICAuYXR0cigieCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHgoZC5sb3dlcik7IH0pCiAgICAgICAgIC5hdHRyKCJ3aWR0aCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHgoZC5oaWdoZXIpLXgoZC5sb3dlcikKfSkuYXR0cigicnkiLCAxMCk7CgoKCnN2Zy5zZWxlY3RBbGwoIi5jaXJjbGUiKQouZGF0YShwcm90ZWluKQouZW50ZXIoKS5hcHBlbmQoImNpcmNsZSIpCi5hdHRyKCJjbGFzcyIsICJjaXJjbGUiKQouYXR0cigiY3kiLDEwKQouYXR0cigiY3giLCBmdW5jdGlvbiAoZCkgeyByZXR1cm4geChkLmNsaWVudCk7IH0pLmF0dHIoInIiLCAxMikKCgoKCgp2YXIgdG9vbHRpcCA9IGQzLnNlbGVjdCgiYm9keSIpCi5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICd0b29sdGlwJyk7Cgp0b29sdGlwLmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ21hY3JvbnV0cmknKTsKdG9vbHRpcC5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICdrY2FsUmFuZ2UnKTsKCnN2Zy5zZWxlY3RBbGwoIi5iYXIiKQoub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGQpIHsKCnRvb2x0aXAuc2VsZWN0KCcubWFjcm9udXRyaScpLmh0bWwoIjxiPiIgKyJSZWNvbW1lbmRlZCBSYW5nZSBmb3IgIisKZC5tYWNyb251dHJpICsgIjwvYj4iKTsKdG9vbHRpcC5zZWxlY3QoJy5rY2FsUmFuZ2UnKS5odG1sKGQzLmZvcm1hdCgiLjBmIikoZC5sb3dlcikgKyAiIHRvICIgKwpkMy5mb3JtYXQoIi4wZiIpKGQuaGlnaGVyKSArICIgZyIpOwoKdG9vbHRpcC5zdHlsZSgnZGlzcGxheScsICdibG9jaycpOwp0b29sdGlwLnN0eWxlKCdvcGFjaXR5JywyKTsKCn0pCi5vbignbW91c2Vtb3ZlJywgZnVuY3Rpb24oZCkgewp0b29sdGlwLnN0eWxlKCd0b3AnLCAoZDMuZXZlbnQubGF5ZXJZICsgMjMwKSArICdweCcpCi5zdHlsZSgnbGVmdCcsIChkMy5ldmVudC5sYXllclggLSA0NSkgKyAncHgnKTsKfSkKLm9uKCdtb3VzZW91dCcsIGZ1bmN0aW9uKCkgewp0b29sdGlwLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTsKdG9vbHRpcC5zdHlsZSgnb3BhY2l0eScsMCk7Cn0pOwoKCnZhciB0b29sdGlwMSA9IGQzLnNlbGVjdCgiYm9keSIpCi5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICd0b29sdGlwJyk7CnRvb2x0aXAxLmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ21hY3JvbnV0cmknKTsKdG9vbHRpcDEuYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAnY2xpZW50Jyk7Cgpzdmcuc2VsZWN0QWxsKCIuY2lyY2xlIikKLm9uKCdtb3VzZW92ZXInLCBmdW5jdGlvbihkKSB7Cgp0b29sdGlwMS5zZWxlY3QoJy5tYWNyb251dHJpJykuaHRtbCgiPGI+IiArICJZb3VyIEF2ZXJhZ2UgSW50YWtlIiArICI8L2I+Iik7CnRvb2x0aXAxLnNlbGVjdCgnLmNsaWVudCcpLmh0bWwoZDMuZm9ybWF0KCIuMGYiKShkLmNsaWVudCkgKyAiIGciKTsKCnRvb2x0aXAxLnN0eWxlKCdkaXNwbGF5JywgJ2Jsb2NrJyk7CnRvb2x0aXAxLnN0eWxlKCdvcGFjaXR5JywyKTsKCn0pCi5vbignbW91c2Vtb3ZlJywgZnVuY3Rpb24oZCkgewp0b29sdGlwMS5zdHlsZSgndG9wJywgKGQzLmV2ZW50LmxheWVyWSArIDIzMCkgKyAncHgnKQouc3R5bGUoJ2xlZnQnLCAoZDMuZXZlbnQubGF5ZXJYIC0gNDUpICsgJ3B4Jyk7Cn0pCi5vbignbW91c2VvdXQnLCBmdW5jdGlvbigpIHsKdG9vbHRpcDEuc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpOwp0b29sdGlwMS5zdHlsZSgnb3BhY2l0eScsMCk7Cn0pOwoKCgoKLy9jYXJicwp4LmRvbWFpbihbMCwgZDMubWF4KGNhcmJvaHlkcmF0ZXMsIGZ1bmN0aW9uKGQpIHsKICAgICByZXR1cm4gZC5oaWdoZXIqMgp9KV0pOwoKCnZhciB4QXhpcyA9IGQzLnN2Zy5heGlzKCkKLnNjYWxlKHgpCi5vcmllbnQoImJvdHRvbSIpLm91dGVyVGlja1NpemUoMCkudGlja3MoMTApOwoKdmFyIHlBeGlzID0gZDMuc3ZnLmF4aXMoKQouc2NhbGUoeSkKLm9yaWVudCgibGVmdCIpOwoKCgp2YXIgc3ZnMyA9IGQzLnNlbGVjdCgiI2NoYXJ0MiIpLmFwcGVuZCgic3ZnIikKLmF0dHIoIndpZHRoIiwgd2lkdGggKyBtYXJnaW4ubGVmdCArIG1hcmdpbi5yaWdodCkKLmF0dHIoImhlaWdodCIsIGhlaWdodCArIG1hcmdpbi50b3AgKyBtYXJnaW4uYm90dG9tKQouYXBwZW5kKCJnIikKLmF0dHIoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGUoIiArIG1hcmdpbi5sZWZ0ICsgIiwiICsgbWFyZ2luLnRvcCArICIpIik7CgpzdmczLmFwcGVuZCgiZyIpCiAgICAgLmF0dHIoImNsYXNzIiwgInggYXhpcyIpCiAgICAgLmF0dHIoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGUoMCwiICsgaGVpZ2h0ICsgIikiKQogICAgIC5jYWxsKHhBeGlzKQogICAgIC5hcHBlbmQoInRleHQiKQogICAgIC5hdHRyKCJ4Iiwgd2lkdGgtNjApCiAgICAgLmF0dHIoImR4IiwgIjEuMWVtIikKICAgICAuYXR0cigiZHkiLCAiLS43MWVtIikKICAgICAudGV4dCgiZ3JhbXMiKTsKCiAgIHN2ZzMuYXBwZW5kKCJnIikKICAgICAgICAgICAgICAgLmF0dHIoImNsYXNzIiwgInkgYXhpcyIpCiAgICAgICAgICAgICAgIC5jYWxsKHlBeGlzKS5hcHBlbmQoInRleHQiKQogICAgICAgICAgICAgICAvLyAuYXR0cigidHJhbnNmb3JtIiwgInJvdGF0ZSgtOTApIikKICAgLmF0dHIoInkiLCA1KQogICAuYXR0cigieCIsLTQ1KQogICAuYXR0cigiZHkiLCAiMWVtIikKICAgLnN0eWxlKCJ0ZXh0LWFuY2hvciIsICJtaWRkbGUiKQogICAgICAgICAgICAgICAudGV4dCgiQ2FyYm9oeWRyYXRlcyIpOwoKCiAgICAgICAvLyB2YXIgdGlja3MgPSBkMy5zZWxlY3QoIi55LmF4aXMiKS5zZWxlY3RBbGwoIi50aWNrIHRleHQiKTsKICAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgICAgLy8gdGlja3MuYXR0cigiY2xhc3MiLCBmdW5jdGlvbihkLGkpewogICAgICAgICAgICAgICAvLyAgaWYocHJvdGVpbltpXS52YWx1ZSA9PSAxKXsgcmV0dXJuICJvbmUifQogICAgICAgICAgICAgICAvLyAgZWxzZSBpZihwcm90ZWluW2ldLnZhbHVlID09IDApeyByZXR1cm4gInplcm8ifQogICAgICAgICAgICAgICAvLyB9KTsKCgoKICAgICAgICAgICAgICAgc3ZnMy5zZWxlY3RBbGwoIi5iYXIiKQogICAgICAuZGF0YShjYXJib2h5ZHJhdGVzKQogICAgICAuZW50ZXIoKS5hcHBlbmQoInJlY3QiKQogICAgICAuYXR0cigiY2xhc3MiLCAiYmFyIikKICAgICAgLmF0dHIoInkiLCBmdW5jdGlvbihkKSB7IHJldHVybiB5KGQubWFjcm9udXRyaSk7IH0pCiAgICAgIC5hdHRyKCJoZWlnaHQiLCB5LnJhbmdlQmFuZCgpKQogICAgICAuYXR0cigieCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHgoZC5sb3dlcik7IH0pCiAgICAgIC5hdHRyKCJ3aWR0aCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHgoZC5oaWdoZXIpLXgoZC5sb3dlcikKfSkuYXR0cigicnkiLCAxMCk7CgoKCnN2ZzMuc2VsZWN0QWxsKCIuY2lyY2xlIikKLmRhdGEoY2FyYm9oeWRyYXRlcykKLmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKQouYXR0cigiY2xhc3MiLCAiY2lyY2xlIikKLmF0dHIoImN5IiwxMCkKLmF0dHIoImN4IiwgZnVuY3Rpb24gKGQpIHsgcmV0dXJuIHgoZC5jbGllbnQpOyB9KS5hdHRyKCJyIiwgMTIpCgoKCgoKCnZhciB0b29sdGlwMyA9IGQzLnNlbGVjdCgiYm9keSIpCi5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICd0b29sdGlwJyk7Cgp0b29sdGlwMy5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICdtYWNyb251dHJpJyk7CnRvb2x0aXAzLmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ2tjYWxSYW5nZScpOwoKc3ZnMy5zZWxlY3RBbGwoIi5iYXIiKQoub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGQpIHsKCnRvb2x0aXAzLnNlbGVjdCgnLm1hY3JvbnV0cmknKS5odG1sKCI8Yj4iICsiUmVjb21tZW5kZWQgUmFuZ2UgZm9yICIrCmQubWFjcm9udXRyaSArICI8L2I+Iik7CnRvb2x0aXAzLnNlbGVjdCgnLmtjYWxSYW5nZScpLmh0bWwoZDMuZm9ybWF0KCIuMGYiKShkLmxvd2VyKSArICIgdG8gIgorIGQzLmZvcm1hdCgiLjBmIikoZC5oaWdoZXIpICsgIiBnIik7Cgp0b29sdGlwMy5zdHlsZSgnZGlzcGxheScsICdibG9jaycpOwp0b29sdGlwMy5zdHlsZSgnb3BhY2l0eScsMik7Cgp9KQoub24oJ21vdXNlbW92ZScsIGZ1bmN0aW9uKGQpIHsKdG9vbHRpcDMuc3R5bGUoJ3RvcCcsIChkMy5ldmVudC5sYXllclkgKyAyMzApICsgJ3B4JykKLnN0eWxlKCdsZWZ0JywgKGQzLmV2ZW50LmxheWVyWCAtIDQ1KSArICdweCcpOwp9KQoub24oJ21vdXNlb3V0JywgZnVuY3Rpb24oKSB7CnRvb2x0aXAzLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTsKdG9vbHRpcDMuc3R5bGUoJ29wYWNpdHknLDApOwp9KTsKCgp2YXIgdG9vbHRpcDQgPSBkMy5zZWxlY3QoImJvZHkiKQouYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAndG9vbHRpcCcpOwp0b29sdGlwNC5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICdtYWNyb251dHJpJyk7CnRvb2x0aXA0LmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ2NsaWVudCcpOwoKc3ZnMy5zZWxlY3RBbGwoIi5jaXJjbGUiKQoub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGQpIHsKCnRvb2x0aXA0LnNlbGVjdCgnLm1hY3JvbnV0cmknKS5odG1sKCI8Yj4iICsgIllvdXIgQXZlcmFnZSBJbnRha2UiICsgIjwvYj4iKTsKdG9vbHRpcDQuc2VsZWN0KCcuY2xpZW50JykuaHRtbChkMy5mb3JtYXQoIi4wZiIpKGQuY2xpZW50KSArICIgZyIpOwoKdG9vbHRpcDQuc3R5bGUoJ2Rpc3BsYXknLCAnYmxvY2snKTsKdG9vbHRpcDQuc3R5bGUoJ29wYWNpdHknLDIpOwoKfSkKLm9uKCdtb3VzZW1vdmUnLCBmdW5jdGlvbihkKSB7CnRvb2x0aXA0LnN0eWxlKCd0b3AnLCAoZDMuZXZlbnQubGF5ZXJZICsgMjMwKSArICdweCcpCi5zdHlsZSgnbGVmdCcsIChkMy5ldmVudC5sYXllclggLSA0NSkgKyAncHgnKTsKfSkKLm9uKCdtb3VzZW91dCcsIGZ1bmN0aW9uKCkgewp0b29sdGlwNC5zdHlsZSgnZGlzcGxheScsICdub25lJyk7CnRvb2x0aXAxLnN0eWxlKCdvcGFjaXR5JywwKTsKfSk7CgoKCi8vZmliZXIKCnguZG9tYWluKFswLCBkMy5tYXgoZmliZXIsIGZ1bmN0aW9uKGQpIHsKICAgICByZXR1cm4gZC5oaWdoZXIqMgp9KV0pOwoKCnZhciB4QXhpcyA9IGQzLnN2Zy5heGlzKCkKLnNjYWxlKHgpCi5vcmllbnQoImJvdHRvbSIpLm91dGVyVGlja1NpemUoMCkudGlja3MoMTApOwoKdmFyIHlBeGlzID0gZDMuc3ZnLmF4aXMoKQouc2NhbGUoeSkKLm9yaWVudCgibGVmdCIpOwoKCgp2YXIgc3ZnNCA9IGQzLnNlbGVjdCgiI2NoYXJ0MyIpLmFwcGVuZCgic3ZnIikKLmF0dHIoIndpZHRoIiwgd2lkdGggKyBtYXJnaW4ubGVmdCArIG1hcmdpbi5yaWdodCkKLmF0dHIoImhlaWdodCIsIGhlaWdodCArIG1hcmdpbi50b3AgKyBtYXJnaW4uYm90dG9tKQouYXBwZW5kKCJnIikKLmF0dHIoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGUoIiArIG1hcmdpbi5sZWZ0ICsgIiwiICsgbWFyZ2luLnRvcCArICIpIik7Cgpzdmc0LmFwcGVuZCgiZyIpCiAgICAgLmF0dHIoImNsYXNzIiwgInggYXhpcyIpCiAgICAgLmF0dHIoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGUoMCwiICsgaGVpZ2h0ICsgIikiKQogICAgIC5jYWxsKHhBeGlzKQogICAgIC5hcHBlbmQoInRleHQiKQogICAgIC5hdHRyKCJ4Iiwgd2lkdGgtNjApCiAgICAgLmF0dHIoImR4IiwgIjEuMWVtIikKICAgICAuYXR0cigiZHkiLCAiLS43MWVtIikKICAgICAudGV4dCgiZ3JhbXMiKTsKCiAgIHN2ZzQuYXBwZW5kKCJnIikKICAgICAgICAgICAgICAgLmF0dHIoImNsYXNzIiwgInkgYXhpcyIpCiAgICAgICAgICAgICAgIC5jYWxsKHlBeGlzKS5hcHBlbmQoInRleHQiKQogICAgICAgICAgICAgICAvLyAuYXR0cigidHJhbnNmb3JtIiwgInJvdGF0ZSgtOTApIikKICAgLmF0dHIoInkiLCA1KQogICAuYXR0cigieCIsLTgwKQogICAuYXR0cigiZHkiLCAiMWVtIikKICAgLnN0eWxlKCJ0ZXh0LWFuY2hvciIsICJtaWRkbGUiKQogICAgICAgICAgICAgICAudGV4dCgiRmliZXIiKTsKCgogICAgICAgLy8gdmFyIHRpY2tzID0gZDMuc2VsZWN0KCIueS5heGlzIikuc2VsZWN0QWxsKCIudGljayB0ZXh0Iik7CiAgICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAgIC8vIHRpY2tzLmF0dHIoImNsYXNzIiwgZnVuY3Rpb24oZCxpKXsKICAgICAgICAgICAgICAgLy8gIGlmKHByb3RlaW5baV0udmFsdWUgPT0gMSl7IHJldHVybiAib25lIn0KICAgICAgICAgICAgICAgLy8gIGVsc2UgaWYocHJvdGVpbltpXS52YWx1ZSA9PSAwKXsgcmV0dXJuICJ6ZXJvIn0KICAgICAgICAgICAgICAgLy8gfSk7CgoKCiAgICAgICAgICAgICAgIHN2ZzQuc2VsZWN0QWxsKCIuYmFyIikKICAgICAgLmRhdGEoZmliZXIpCiAgICAgIC5lbnRlcigpLmFwcGVuZCgicmVjdCIpCiAgICAgIC5hdHRyKCJjbGFzcyIsICJiYXIiKQogICAgICAuYXR0cigieSIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHkoZC5tYWNyb251dHJpKTsgfSkKICAgICAgLmF0dHIoImhlaWdodCIsIHkucmFuZ2VCYW5kKCkpCiAgICAgIC5hdHRyKCJ4IiwgZnVuY3Rpb24oZCkgeyByZXR1cm4geChkLmxvd2VyKTsgfSkKICAgICAgLmF0dHIoIndpZHRoIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4geChkLmhpZ2hlcikteChkLmxvd2VyKQp9KS5hdHRyKCJyeSIsIDEwKTsKCgoKc3ZnNC5zZWxlY3RBbGwoIi5jaXJjbGUiKQouZGF0YShmaWJlcikKLmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKQouYXR0cigiY2xhc3MiLCAiY2lyY2xlIikKLmF0dHIoImN5IiwxMCkKLmF0dHIoImN4IiwgZnVuY3Rpb24gKGQpIHsgcmV0dXJuIHgoZC5jbGllbnQpOyB9KS5hdHRyKCJyIiwgMTIpCgoKCgoKCnZhciB0b29sdGlwNSA9IGQzLnNlbGVjdCgiYm9keSIpCi5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICd0b29sdGlwJyk7Cgp0b29sdGlwNS5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICdtYWNyb251dHJpJyk7CnRvb2x0aXA1LmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ2tjYWxSYW5nZScpOwoKc3ZnNC5zZWxlY3RBbGwoIi5iYXIiKQoub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGQpIHsKCnRvb2x0aXA1LnNlbGVjdCgnLm1hY3JvbnV0cmknKS5odG1sKCI8Yj4iICsiUmVjb21tZW5kZWQgUmFuZ2UgZm9yICIrCmQubWFjcm9udXRyaSArICI8L2I+Iik7CnRvb2x0aXA1LnNlbGVjdCgnLmtjYWxSYW5nZScpLmh0bWwoZDMuZm9ybWF0KCIuMGYiKShkLmxvd2VyKSArICIgdG8gIgorIGQzLmZvcm1hdCgiLjBmIikoZC5oaWdoZXIpICsgIiBnIik7Cgp0b29sdGlwNS5zdHlsZSgnZGlzcGxheScsICdibG9jaycpOwp0b29sdGlwNS5zdHlsZSgnb3BhY2l0eScsMik7Cgp9KQoub24oJ21vdXNlbW92ZScsIGZ1bmN0aW9uKGQpIHsKdG9vbHRpcDUuc3R5bGUoJ3RvcCcsIChkMy5ldmVudC5sYXllclkgKyAyMzApICsgJ3B4JykKLnN0eWxlKCdsZWZ0JywgKGQzLmV2ZW50LmxheWVyWCAtIDQ1KSArICdweCcpOwp9KQoub24oJ21vdXNlb3V0JywgZnVuY3Rpb24oKSB7CnRvb2x0aXA1LnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTsKdG9vbHRpcDUuc3R5bGUoJ29wYWNpdHknLDApOwp9KTsKCgp2YXIgdG9vbHRpcDYgPSBkMy5zZWxlY3QoImJvZHkiKQouYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAndG9vbHRpcCcpOwp0b29sdGlwNi5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICdtYWNyb251dHJpJyk7CnRvb2x0aXA2LmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ2NsaWVudCcpOwoKc3ZnNC5zZWxlY3RBbGwoIi5jaXJjbGUiKQoub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGQpIHsKCnRvb2x0aXA2LnNlbGVjdCgnLm1hY3JvbnV0cmknKS5odG1sKCI8Yj4iICsgIllvdXIgQXZlcmFnZSBJbnRha2UiICsgIjwvYj4iKTsKdG9vbHRpcDYuc2VsZWN0KCcuY2xpZW50JykuaHRtbChkMy5mb3JtYXQoIi4wZiIpKGQuY2xpZW50KSArICIgZyIpOwoKdG9vbHRpcDYuc3R5bGUoJ2Rpc3BsYXknLCAnYmxvY2snKTsKdG9vbHRpcDYuc3R5bGUoJ29wYWNpdHknLDIpOwoKfSkKLm9uKCdtb3VzZW1vdmUnLCBmdW5jdGlvbihkKSB7CnRvb2x0aXA2LnN0eWxlKCd0b3AnLCAoZDMuZXZlbnQubGF5ZXJZICsgMjMwKSArICdweCcpCi5zdHlsZSgnbGVmdCcsIChkMy5ldmVudC5sYXllclggLSA0NSkgKyAncHgnKTsKfSkKLm9uKCdtb3VzZW91dCcsIGZ1bmN0aW9uKCkgewp0b29sdGlwNi5zdHlsZSgnZGlzcGxheScsICdub25lJyk7CnRvb2x0aXAxLnN0eWxlKCdvcGFjaXR5JywwKTsKfSk7CgoKCgoKLy9zYXR1cmF0ZWRmYXQKCnguZG9tYWluKFswLCBkMy5tYXgoc2F0dXJhdGVkZmF0LCBmdW5jdGlvbihkKSB7CiAgICAgcmV0dXJuIGQuaGlnaGVyKjIKfSldKTsKCgp2YXIgeEF4aXMgPSBkMy5zdmcuYXhpcygpCi5zY2FsZSh4KQoub3JpZW50KCJib3R0b20iKS5vdXRlclRpY2tTaXplKDApLnRpY2tzKDEwKTsKCnZhciB5QXhpcyA9IGQzLnN2Zy5heGlzKCkKLnNjYWxlKHkpCi5vcmllbnQoImxlZnQiKTsKCgoKdmFyIHN2ZzUgPSBkMy5zZWxlY3QoIiNjaGFydDUiKS5hcHBlbmQoInN2ZyIpCi5hdHRyKCJ3aWR0aCIsIHdpZHRoICsgbWFyZ2luLmxlZnQgKyBtYXJnaW4ucmlnaHQpCi5hdHRyKCJoZWlnaHQiLCBoZWlnaHQgKyBtYXJnaW4udG9wICsgbWFyZ2luLmJvdHRvbSkKLmFwcGVuZCgiZyIpCi5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKCIgKyBtYXJnaW4ubGVmdCArICIsIiArIG1hcmdpbi50b3AgKyAiKSIpOwoKc3ZnNS5hcHBlbmQoImciKQogICAgIC5hdHRyKCJjbGFzcyIsICJ4IGF4aXMiKQogICAgIC5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDAsIiArIGhlaWdodCArICIpIikKICAgICAuY2FsbCh4QXhpcykKICAgICAuYXBwZW5kKCJ0ZXh0IikKICAgICAuYXR0cigieCIsIHdpZHRoLTYwKQogICAgIC5hdHRyKCJkeCIsICIxLjFlbSIpCiAgICAgLmF0dHIoImR5IiwgIi0uNzFlbSIpCiAgICAgLnRleHQoImdyYW1zIik7CgogICBzdmc1LmFwcGVuZCgiZyIpCiAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJ5IGF4aXMiKQogICAgICAgICAgICAgICAuY2FsbCh5QXhpcykuYXBwZW5kKCJ0ZXh0IikKICAgICAgICAgICAgICAgLy8gLmF0dHIoInRyYW5zZm9ybSIsICJyb3RhdGUoLTkwKSIpCiAgIC5hdHRyKCJ5IiwgNSkKICAgLmF0dHIoIngiLC00NSkKICAgLmF0dHIoImR5IiwgIjFlbSIpCiAgIC5zdHlsZSgidGV4dC1hbmNob3IiLCAibWlkZGxlIikKICAgICAgICAgICAgICAgLnRleHQoIlNhdHVyYXRlZCBGYXQiKTsKCgogICAgICAgLy8gdmFyIHRpY2tzID0gZDMuc2VsZWN0KCIueS5heGlzIikuc2VsZWN0QWxsKCIudGljayB0ZXh0Iik7CiAgICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAgIC8vIHRpY2tzLmF0dHIoImNsYXNzIiwgZnVuY3Rpb24oZCxpKXsKICAgICAgICAgICAgICAgLy8gIGlmKHByb3RlaW5baV0udmFsdWUgPT0gMSl7IHJldHVybiAib25lIn0KICAgICAgICAgICAgICAgLy8gIGVsc2UgaWYocHJvdGVpbltpXS52YWx1ZSA9PSAwKXsgcmV0dXJuICJ6ZXJvIn0KICAgICAgICAgICAgICAgLy8gfSk7CgoKCiAgICAgICAgICAgICAgIHN2ZzUuc2VsZWN0QWxsKCIuYmFyIikKICAgICAgLmRhdGEoc2F0dXJhdGVkZmF0KQogICAgICAuZW50ZXIoKS5hcHBlbmQoInJlY3QiKQogICAgICAuYXR0cigiY2xhc3MiLCAiYmFyIikKICAgICAgLmF0dHIoInkiLCBmdW5jdGlvbihkKSB7IHJldHVybiB5KGQubWFjcm9udXRyaSk7IH0pCiAgICAgIC5hdHRyKCJoZWlnaHQiLCB5LnJhbmdlQmFuZCgpKQogICAgICAuYXR0cigieCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHgoZC5sb3dlcik7IH0pCiAgICAgIC5hdHRyKCJ3aWR0aCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHgoZC5oaWdoZXIpLXgoZC5sb3dlcikKfSkuYXR0cigicnkiLCAxMCk7CgoKCnN2ZzUuc2VsZWN0QWxsKCIuY2lyY2xlIikKLmRhdGEoc2F0dXJhdGVkZmF0KQouZW50ZXIoKS5hcHBlbmQoImNpcmNsZSIpCi5hdHRyKCJjbGFzcyIsICJjaXJjbGUiKQouYXR0cigiY3kiLDEwKQouYXR0cigiY3giLCBmdW5jdGlvbiAoZCkgeyByZXR1cm4geChkLmNsaWVudCk7IH0pLmF0dHIoInIiLCAxMikKCgoKCgoKdmFyIHRvb2x0aXA5ID0gZDMuc2VsZWN0KCJib2R5IikKLmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ3Rvb2x0aXAnKTsKCnRvb2x0aXA5LmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ21hY3JvbnV0cmknKTsKdG9vbHRpcDkuYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAna2NhbFJhbmdlJyk7Cgpzdmc1LnNlbGVjdEFsbCgiLmJhciIpCi5vbignbW91c2VvdmVyJywgZnVuY3Rpb24oZCkgewoKdG9vbHRpcDkuc2VsZWN0KCcubWFjcm9udXRyaScpLmh0bWwoIjxiPiIgKyJSZWNvbW1lbmRlZCBSYW5nZSBmb3IgIisKZC5tYWNyb251dHJpICsgIjwvYj4iKTsKdG9vbHRpcDkuc2VsZWN0KCcua2NhbFJhbmdlJykuaHRtbChkMy5mb3JtYXQoIi4wZiIpKGQubG93ZXIpICsgIiB0byAiCisgZDMuZm9ybWF0KCIuMGYiKShkLmhpZ2hlcikgKyAiIGciKTsKCnRvb2x0aXA5LnN0eWxlKCdkaXNwbGF5JywgJ2Jsb2NrJyk7CnRvb2x0aXA5LnN0eWxlKCdvcGFjaXR5JywyKTsKCn0pCi5vbignbW91c2Vtb3ZlJywgZnVuY3Rpb24oZCkgewp0b29sdGlwOS5zdHlsZSgndG9wJywgKGQzLmV2ZW50LmxheWVyWSArIDIzMCkgKyAncHgnKQouc3R5bGUoJ2xlZnQnLCAoZDMuZXZlbnQubGF5ZXJYIC0gNDUpICsgJ3B4Jyk7Cn0pCi5vbignbW91c2VvdXQnLCBmdW5jdGlvbigpIHsKdG9vbHRpcDkuc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpOwp0b29sdGlwOS5zdHlsZSgnb3BhY2l0eScsMCk7Cn0pOwoKCnZhciB0b29sdGlwMTAgPSBkMy5zZWxlY3QoImJvZHkiKQouYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAndG9vbHRpcCcpOwp0b29sdGlwMTAuYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAnbWFjcm9udXRyaScpOwp0b29sdGlwMTAuYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAnY2xpZW50Jyk7Cgpzdmc1LnNlbGVjdEFsbCgiLmNpcmNsZSIpCi5vbignbW91c2VvdmVyJywgZnVuY3Rpb24oZCkgewoKdG9vbHRpcDEwLnNlbGVjdCgnLm1hY3JvbnV0cmknKS5odG1sKCI8Yj4iICsgIllvdXIgQXZlcmFnZSBJbnRha2UiICsgIjwvYj4iKTsKdG9vbHRpcDEwLnNlbGVjdCgnLmNsaWVudCcpLmh0bWwoZDMuZm9ybWF0KCIuMGYiKShkLmNsaWVudCkgKyAiIGciKTsKCnRvb2x0aXAxMC5zdHlsZSgnZGlzcGxheScsICdibG9jaycpOwp0b29sdGlwMTAuc3R5bGUoJ29wYWNpdHknLDIpOwoKfSkKLm9uKCdtb3VzZW1vdmUnLCBmdW5jdGlvbihkKSB7CnRvb2x0aXAxMC5zdHlsZSgndG9wJywgKGQzLmV2ZW50LmxheWVyWSArIDIzMCkgKyAncHgnKQouc3R5bGUoJ2xlZnQnLCAoZDMuZXZlbnQubGF5ZXJYIC0gNDUpICsgJ3B4Jyk7Cn0pCi5vbignbW91c2VvdXQnLCBmdW5jdGlvbigpIHsKdG9vbHRpcDEwLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTsKdG9vbHRpcDEuc3R5bGUoJ29wYWNpdHknLDApOwp9KTsKCgoKLy9mYXQKCnguZG9tYWluKFswLCBkMy5tYXgoZmF0LCBmdW5jdGlvbihkKSB7CiAgICAgcmV0dXJuIGQuaGlnaGVyKjIKfSldKTsKCgp2YXIgeEF4aXMgPSBkMy5zdmcuYXhpcygpCi5zY2FsZSh4KQoub3JpZW50KCJib3R0b20iKS5vdXRlclRpY2tTaXplKDApLnRpY2tzKDEwKTsKCnZhciB5QXhpcyA9IGQzLnN2Zy5heGlzKCkKLnNjYWxlKHkpCi5vcmllbnQoImxlZnQiKTsKCgoKdmFyIHN2ZzUgPSBkMy5zZWxlY3QoIiNjaGFydDQiKS5hcHBlbmQoInN2ZyIpCi5hdHRyKCJ3aWR0aCIsIHdpZHRoICsgbWFyZ2luLmxlZnQgKyBtYXJnaW4ucmlnaHQpCi5hdHRyKCJoZWlnaHQiLCBoZWlnaHQgKyBtYXJnaW4udG9wICsgbWFyZ2luLmJvdHRvbSkKLmFwcGVuZCgiZyIpCi5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKCIgKyBtYXJnaW4ubGVmdCArICIsIiArIG1hcmdpbi50b3AgKyAiKSIpOwoKc3ZnNS5hcHBlbmQoImciKQogICAgIC5hdHRyKCJjbGFzcyIsICJ4IGF4aXMiKQogICAgIC5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDAsIiArIGhlaWdodCArICIpIikKICAgICAuY2FsbCh4QXhpcykKICAgICAuYXBwZW5kKCJ0ZXh0IikKICAgICAuYXR0cigieCIsIHdpZHRoLTYwKQogICAgIC5hdHRyKCJkeCIsICIxLjFlbSIpCiAgICAgLmF0dHIoImR5IiwgIi0uNzFlbSIpCiAgICAgLnRleHQoImdyYW1zIik7CgogICBzdmc1LmFwcGVuZCgiZyIpCiAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJ5IGF4aXMiKQogICAgICAgICAgICAgICAuY2FsbCh5QXhpcykuYXBwZW5kKCJ0ZXh0IikKICAgICAgICAgICAgICAgLy8gLmF0dHIoInRyYW5zZm9ybSIsICJyb3RhdGUoLTkwKSIpCiAgIC5hdHRyKCJ5IiwgNSkKICAgLmF0dHIoIngiLC04NykKICAgLmF0dHIoImR5IiwgIjFlbSIpCiAgIC5zdHlsZSgidGV4dC1hbmNob3IiLCAibWlkZGxlIikKICAgICAgICAgICAgICAgLnRleHQoIkZhdCIpOwoKCiAgICAgICAvLyB2YXIgdGlja3MgPSBkMy5zZWxlY3QoIi55LmF4aXMiKS5zZWxlY3RBbGwoIi50aWNrIHRleHQiKTsKICAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgICAgLy8gdGlja3MuYXR0cigiY2xhc3MiLCBmdW5jdGlvbihkLGkpewogICAgICAgICAgICAgICAvLyAgaWYocHJvdGVpbltpXS52YWx1ZSA9PSAxKXsgcmV0dXJuICJvbmUifQogICAgICAgICAgICAgICAvLyAgZWxzZSBpZihwcm90ZWluW2ldLnZhbHVlID09IDApeyByZXR1cm4gInplcm8ifQogICAgICAgICAgICAgICAvLyB9KTsKCgoKICAgICAgICAgICAgICAgc3ZnNS5zZWxlY3RBbGwoIi5iYXIiKQogICAgICAuZGF0YShmYXQpCiAgICAgIC5lbnRlcigpLmFwcGVuZCgicmVjdCIpCiAgICAgIC5hdHRyKCJjbGFzcyIsICJiYXIiKQogICAgICAuYXR0cigieSIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHkoZC5tYWNyb251dHJpKTsgfSkKICAgICAgLmF0dHIoImhlaWdodCIsIHkucmFuZ2VCYW5kKCkpCiAgICAgIC5hdHRyKCJ4IiwgZnVuY3Rpb24oZCkgeyByZXR1cm4geChkLmxvd2VyKTsgfSkKICAgICAgLmF0dHIoIndpZHRoIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4geChkLmhpZ2hlcikteChkLmxvd2VyKQp9KS5hdHRyKCJyeSIsIDEwKTsKCgoKc3ZnNS5zZWxlY3RBbGwoIi5jaXJjbGUiKQouZGF0YShmYXQpCi5lbnRlcigpLmFwcGVuZCgiY2lyY2xlIikKLmF0dHIoImNsYXNzIiwgImNpcmNsZSIpCi5hdHRyKCJjeSIsMTApCi5hdHRyKCJjeCIsIGZ1bmN0aW9uIChkKSB7IHJldHVybiB4KGQuY2xpZW50KTsgfSkuYXR0cigiciIsIDEyKQoKCgoKCgp2YXIgdG9vbHRpcDcgPSBkMy5zZWxlY3QoImJvZHkiKQouYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAndG9vbHRpcCcpOwoKdG9vbHRpcDcuYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAnbWFjcm9udXRyaScpOwp0b29sdGlwNy5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICdrY2FsUmFuZ2UnKTsKCnN2ZzUuc2VsZWN0QWxsKCIuYmFyIikKLm9uKCdtb3VzZW92ZXInLCBmdW5jdGlvbihkKSB7Cgp0b29sdGlwNy5zZWxlY3QoJy5tYWNyb251dHJpJykuaHRtbCgiPGI+IiArIlJlY29tbWVuZGVkIFJhbmdlIGZvciAiKwpkLm1hY3JvbnV0cmkgKyAiPC9iPiIpOwp0b29sdGlwNy5zZWxlY3QoJy5rY2FsUmFuZ2UnKS5odG1sKGQzLmZvcm1hdCgiLjBmIikoZC5sb3dlcikgKyAiIHRvICIKKyBkMy5mb3JtYXQoIi4wZiIpKGQuaGlnaGVyKSArICIgZyIpOwoKdG9vbHRpcDcuc3R5bGUoJ2Rpc3BsYXknLCAnYmxvY2snKTsKdG9vbHRpcDcuc3R5bGUoJ29wYWNpdHknLDIpOwoKfSkKLm9uKCdtb3VzZW1vdmUnLCBmdW5jdGlvbihkKSB7CnRvb2x0aXA3LnN0eWxlKCd0b3AnLCAoZDMuZXZlbnQubGF5ZXJZICsgMjMwKSArICdweCcpCi5zdHlsZSgnbGVmdCcsIChkMy5ldmVudC5sYXllclggLSA0NSkgKyAncHgnKTsKfSkKLm9uKCdtb3VzZW91dCcsIGZ1bmN0aW9uKCkgewp0b29sdGlwNy5zdHlsZSgnZGlzcGxheScsICdub25lJyk7CnRvb2x0aXA3LnN0eWxlKCdvcGFjaXR5JywwKTsKfSk7CgoKdmFyIHRvb2x0aXA4ID0gZDMuc2VsZWN0KCJib2R5IikKLmFwcGVuZCgnZGl2JykKLmF0dHIoJ2NsYXNzJywgJ3Rvb2x0aXAnKTsKdG9vbHRpcDguYXBwZW5kKCdkaXYnKQouYXR0cignY2xhc3MnLCAnbWFjcm9udXRyaScpOwp0b29sdGlwOC5hcHBlbmQoJ2RpdicpCi5hdHRyKCdjbGFzcycsICdjbGllbnQnKTsKCnN2ZzUuc2VsZWN0QWxsKCIuY2lyY2xlIikKLm9uKCdtb3VzZW92ZXInLCBmdW5jdGlvbihkKSB7Cgp0b29sdGlwOC5zZWxlY3QoJy5tYWNyb251dHJpJykuaHRtbCgiPGI+IiArICJZb3VyIEF2ZXJhZ2UgSW50YWtlIiArICI8L2I+Iik7CnRvb2x0aXA4LnNlbGVjdCgnLmNsaWVudCcpLmh0bWwoZDMuZm9ybWF0KCIuMGYiKShkLmNsaWVudCkgKyAiIGciKTsKCnRvb2x0aXA4LnN0eWxlKCdkaXNwbGF5JywgJ2Jsb2NrJyk7CnRvb2x0aXA4LnN0eWxlKCdvcGFjaXR5JywyKTsKCn0pCi5vbignbW91c2Vtb3ZlJywgZnVuY3Rpb24oZCkgewp0b29sdGlwOC5zdHlsZSgndG9wJywgKGQzLmV2ZW50LmxheWVyWSArIDIzMCkgKyAncHgnKQouc3R5bGUoJ2xlZnQnLCAoZDMuZXZlbnQubGF5ZXJYIC0gNDUpICsgJ3B4Jyk7Cn0pCi5vbignbW91c2VvdXQnLCBmdW5jdGlvbigpIHsKdG9vbHRpcDguc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpOwp0b29sdGlwMS5zdHlsZSgnb3BhY2l0eScsMCk7Cn0pOwoKCgp2YXIgc3ZnMiA9IGQzLnNlbGVjdCgiI2xlZ2VuZCIpLmFwcGVuZCgic3ZnIikKLmF0dHIoIndpZHRoIiwgd2lkdGggKyBtYXJnaW4ubGVmdCArIG1hcmdpbi5yaWdodCkKLmF0dHIoImhlaWdodCIsIDEyMCkKLmFwcGVuZCgiZyIpCi5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKCIgKyBtYXJnaW4ubGVmdCArICIsIiArIG1hcmdpbi50b3AgKyAiKSIpOwoKc3ZnMi5hcHBlbmQoInRleHQiKQogICAgICAgIC5hdHRyKCJ4IiwgKHdpZHRoIC8gMikpCiAgICAgICAgLmF0dHIoInkiLCAwKQogICAgICAgIC5hdHRyKCJ0ZXh0LWFuY2hvciIsICJtaWRkbGUiKQogICAgICAgIC5zdHlsZSgiZm9udC1zaXplIiwgIjIycHgiKQogICAgICAgIC50ZXh0KCJEYWlseSBOdXRyaWVudCBJbnRha2UiKS5zdHlsZSgiZm9udC13ZWlnaHQiLCAiYm9sZCIpOwoKdmFyIGxlZ2VuZERhdGEgPSBbClsiUmVjb21tZW5kZWQgSW50YWtlIFJhbmdlIGZvciBJbmRpdmlkdWFscyBsaWtlIFlvdSAocGVyIGRheSkiLAoiI2ZmYWQ5ZSIsICJzcXVhcmUiXSwKWyJZb3VyIEF2ZXJhZ2UgSW50YWtlIChwZXIgZGF5KSIsICIjNzk4NmRiIiwgImNpcmNsZSJdLF07Cgp2YXIgbGVnZW5kID0gc3ZnMi5hcHBlbmQoJ2cnKQogICAgLmF0dHIoImNsYXNzIiwgImxlZ2VuZCIpCiAgICAuYXR0cigiaGVpZ2h0IiwgMCkKICAgIC5hdHRyKCJ3aWR0aCIsIDApCiAgICAuYXR0cigndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgwLDM2KScpOwoKdmFyIGxlZ2VuZFJlY3QgPSBsZWdlbmQKICAgIC5zZWxlY3RBbGwoJ2cnKQogICAgLmRhdGEobGVnZW5kRGF0YSk7Cgp2YXIgbGVnZW5kUmVjdEUgPSBsZWdlbmRSZWN0LmVudGVyKCkKICAgIC5hcHBlbmQoImciKQogICAgLmF0dHIoInRyYW5zZm9ybSIsIGZ1bmN0aW9uKGQsaSl7CiAgICAgIHJldHVybiAndHJhbnNsYXRlKDAsICcgKyAoaSAqIDI1KSArICcpJzsKICAgIH0pOwoKCiAgICBsZWdlbmRSZWN0RQogICAgICAgIC5hcHBlbmQoJ3BhdGgnKQogICAgICAgIC5hdHRyKCJkIiwgZDMuc3ZnLnN5bWJvbCgpLnNpemUoMTIwKS50eXBlKChkKSA9PiB7IHJldHVybiBkWzJdIH0pKQogICAgICAgIC5zdHlsZSgiZmlsbCIsIGZ1bmN0aW9uIChkKSB7CiAgICAgICAgICAgIHJldHVybiBkWzFdOwogICAgICAgIH0pOwoKICAgIGxlZ2VuZFJlY3RFCiAgICAgICAgLmFwcGVuZCgidGV4dCIpCiAgICAgICAgLmF0dHIoIngiLCAxMCkKICAgICAgICAuYXR0cigieSIsIDYpCiAgICAgICAgLnRleHQoZnVuY3Rpb24gKGQpIHsKICAgICAgICAgICAgcmV0dXJuIGRbMF07CiAgICAgICAgfSkuYXR0cigiZm9udC1zaXplIiwxNik7CgpmdW5jdGlvbiB0eXBlKGQpIHsKZC5oaWdoZXIgPSArZC5oaWdoZXI7CnJldHVybiBkOwp9Cgo=
3- Get enough sleep
You should aim for 7-8 hours of sleep per day. Here’s how you can achieve this:
Reduce stress
Improve your emotional well-being
Limit caffeine and alcohol
If you continue experiencing problems with your sleep, consider talking to a healthcare professional.
4- Get active
The starting point for bringing weight under control, in general, and combating abdominal fat, in particular, is regular moderate-intensity physical activity — at least 30 minutes per day (and perhaps up to 60 minutes per day) to control weight.
This is especially important if you have not been active for a while, as it will reduce your risk of injury.
5- Add strength training
Strength training can help fight abdominal fat. When you’re losing weight through cardio exercises, you generally lose both fat and muscle, and you therefore do not decrease your body fat percentage. The absence of resistance training in your routine, could actually slow down your metabolism by losing lean muscle mass, especially if you are also restricting your calories.
With regard to the science and myths of “spot training,” the short answer is that “ab exercises” like sit-ups can tighten abdominal muscles, but it won't get at visceral fat.
Do heavy weights help?
When you lift weight that's closer to your one-rep max, you get a hormonal boost because your system senses you're under stress and that your skeletal system is under stress from lifting heavy, according to Rondel King, MS, CSCS, an exercise physiologist at NYU Langone's Sports Performance Center. This boost is in the form of testosterone, an anabolic hormone that helps your muscles grow.