[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-axios-npm-hack-deploys-rats-on-101m-dev-installs-summary":3,"summaries-facets-categories":101,"summary-related-axios-npm-hack-deploys-rats-on-101m-dev-installs-summary":4506},{"id":4,"title":5,"ai":6,"body":13,"categories":76,"created_at":78,"date_modified":78,"description":79,"extension":80,"faq":78,"featured":81,"kicker_label":78,"meta":82,"navigation":83,"path":84,"published_at":85,"question":78,"scraped_at":86,"seo":87,"sitemap":88,"source_id":89,"source_name":90,"source_type":91,"source_url":92,"stem":93,"tags":94,"thumbnail_url":78,"tldr":98,"tweet":78,"unknown_tags":99,"__hash__":100},"summaries\u002Fsummaries\u002Faxios-npm-hack-deploys-rats-on-101m-dev-installs-summary.md","Axios NPM Hack Deploys RATs on 101M Dev Installs",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",4214,1531,14142,0.00131745,{"type":14,"value":15,"toc":68},"minimark",[16,21,30,33,37,40,43,47,50,54],[17,18,20],"h2",{"id":19},"backdoor-mechanics-exploit-post-install-scripts","Backdoor Mechanics Exploit Post-Install Scripts",[22,23,24,25,29],"p",{},"Attackers hijacked the Axios NPM lead maintainer's account—despite 2FA and GitHub auth—using a long-lived NPM CLI access token (possibly via recovery codes) to publish v1.14.1 (tagged latest) and v0.30.4 (tagged legacy) on March 31. These versions added a phantom 'plain crypto-js' dependency, a tweaked crypto-js with a malicious post-install 'setup.js' script. This script runs automatically on every ",[26,27,28],"code",{},"npm install"," or CI execution, detects the OS (Windows, macOS Intel\u002FApple Silicon, Linux), and fetches a tailored second-stage RAT payload from a remote server.",[22,31,32],{},"The RAT self-cleans: original setup.js deletes itself, removes the malicious package.json post-install entry, and restores a clean version to evade detection. Packages like DataDog, OpenClaw, and WordPress inherited the compromise, affecting Axios's 174,000 dependents and 101 million weekly installs.",[17,34,36],{"id":35},"rat-behaviors-steal-dev-credentials-and-enable-remote-control","RAT Behaviors Steal Dev Credentials and Enable Remote Control",[22,38,39],{},"Once deployed, the RAT scans sensitive directories—Documents, Desktop, config folders (plus OneDrive, AppData, all drive letters on Windows)—exfiltrates the file list to attackers for theft assessment, then beacons every 60 seconds with hostname, username, OS, timezone, hardware model, and all running processes. This reveals active software and user presence.",[22,41,42],{},"Attackers can remotely issue four commands: (1) browse any directory, (2) execute arbitrary shell commands\u002Fscripts, (3) drop\u002Fexecute more malware, (4) kill the process for cleanup. Treat any infected system as fully compromised: rotate all secrets like .env files, NPM tokens, SSH keys immediately.",[17,44,46],{"id":45},"detect-infection-and-respond-swiftly","Detect Infection and Respond Swiftly",[22,48,49],{},"Search lockfiles (package-lock.json, yarn.lock) for axios@1.14.1, axios@0.30.4, or plain-crypto-js. Scan node_modules for these packages. Hunt RAT artifacts per platform-specific write-ups (linked in source). Axios versions were yanked after 3 hours, but prior installs persist—assume credential theft.",[17,51,53],{"id":52},"prevent-future-supply-chain-attacks","Prevent Future Supply Chain Attacks",[22,55,56,57,60,61,63,64,67],{},"Commit lockfiles to pin versions and use ",[26,58,59],{},"npm ci"," (not ",[26,62,28],{},") in CI\u002FCD to enforce exact installs. Set minimum package age (e.g., 48 hours) to skip fresh malicious uploads. Run ",[26,65,66],{},"npm install --ignore-scripts"," to block post-installs, or switch to Bun which disables them by default except on explicitly trusted deps. These steps caught this attack early but highlight rising NPM threats.",{"title":69,"searchDepth":70,"depth":70,"links":71},"",2,[72,73,74,75],{"id":19,"depth":70,"text":20},{"id":35,"depth":70,"text":36},{"id":45,"depth":70,"text":46},{"id":52,"depth":70,"text":53},[77],"Software Engineering",null,"Attackers compromised the Axios npm package and published two backdoored releases. The malicious versions introduced a hidden post-install script that silently downloaded a Remote Access Trojan onto developer machines and CI\u002FCD runners, scanning for .env files, SSH keys, npm tokens and more. \n\n🔗 Relevant Links\nhttps:\u002F\u002Fwww.huntress.com\u002Fblog\u002Fsupply-chain-compromise-axios-npm-package\nhttps:\u002F\u002Fcloud.google.com\u002Fblog\u002Ftopics\u002Fthreat-intelligence\u002Fnorth-korea-threat-actor-targets-axios-npm-package\u002F\nhttps:\u002F\u002Fwww.youtube.com\u002Fredirect?event=video_description&redir_token=QUFFLUhqbHZlejk4T1JxOVdNWmhWQ05MTUxmdTRzb2dUUXxBQ3Jtc0ttbEQ5SkFtZWhBUWZsallOWDhaeXo5cTNKXzQ5Y0E2U09MQVFBT21kVGtJWjhybmdZTlFFMWZycy1NWnZVRlh5a0FLZ3hOVUluTUNLemlPYXdia2RWcGY5eUx4bFRMdnZxSzVUN1ZhelkzNnRBWWdjZw&q=https%3A%2F%2Fwww.stepsecurity.io%2Fblog%2Faxios-compromised-on-npm-malicious-versions-drop-remote-access-trojan&v=yiLIZLPNEm8\n\n❤️ More about us\nRadically better observability stack: https:\u002F\u002Fbetterstack.com\u002F\nWritten tutorials: https:\u002F\u002Fbetterstack.com\u002Fcommunity\u002F\nExample projects: https:\u002F\u002Fgithub.com\u002FBetterStackHQ\n\n📱 Socials\nTwitter: https:\u002F\u002Ftwitter.com\u002Fbetterstackhq\nInstagram: https:\u002F\u002Fwww.instagram.com\u002Fbetterstackhq\u002F\nTikTok: https:\u002F\u002Fwww.tiktok.com\u002F@betterstack\nLinkedIn: https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fbetterstack","md",false,{},true,"\u002Fsummaries\u002Faxios-npm-hack-deploys-rats-on-101m-dev-installs-summary","2026-04-01 03:45:00","2026-04-03 21:14:39",{"title":5,"description":79},{"loc":84},"83e85cee6b0e5f98","Better Stack","video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5xWSezMFweE","summaries\u002Faxios-npm-hack-deploys-rats-on-101m-dev-installs-summary",[95,96,97],"devops","open-source","coding","North Korean-linked hackers compromised Axios maintainer account, releasing backdoored v1.14.1 (latest) and v0.30.4 (legacy) that install cross-OS RATs via phantom crypto-js dependency, targeting dev workstations and CI for credential theft.",[],"IrsHwllRRfO48IJGkGgqdTQES2EjL90pRMXLQrDnqvE",[102,105,107,110,112,115,118,121,123,125,127,129,131,133,135,137,140,142,144,146,148,150,152,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716,1718,1720,1722,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448,2450,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2590,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808,2810,2812,2814,2816,2818,2820,2822,2824,2826,2828,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968,2970,2972,2974,2976,2978,2980,2982,2984,2986,2988,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026,3028,3030,3032,3034,3036,3038,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3102,3104,3106,3108,3110,3112,3114,3116,3118,3120,3122,3124,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178,3180,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3322,3324,3326,3328,3330,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414,3416,3418,3420,3422,3424,3426,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544,3546,3548,3550,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3634,3636,3638,3640,3642,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662,3664,3666,3668,3670,3672,3674,3676,3678,3680,3682,3684,3686,3688,3690,3692,3694,3696,3698,3700,3702,3704,3706,3708,3710,3712,3714,3716,3718,3720,3722,3724,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750,3752,3754,3756,3758,3760,3762,3764,3766,3768,3770,3772,3774,3776,3778,3780,3782,3784,3786,3788,3790,3792,3794,3796,3798,3800,3802,3804,3806,3808,3810,3812,3814,3816,3818,3820,3822,3824,3826,3828,3830,3832,3834,3836,3838,3840,3842,3844,3846,3848,3850,3852,3854,3856,3858,3860,3862,3864,3866,3868,3870,3872,3874,3876,3878,3880,3882,3884,3886,3888,3890,3892,3894,3896,3898,3900,3902,3904,3906,3908,3910,3912,3914,3916,3918,3920,3922,3924,3926,3928,3930,3932,3934,3936,3938,3940,3942,3944,3946,3948,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968,3970,3972,3974,3976,3978,3980,3982,3984,3986,3988,3990,3992,3994,3996,3998,4000,4002,4004,4006,4008,4010,4012,4014,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034,4036,4038,4040,4042,4044,4046,4048,4050,4052,4054,4056,4058,4060,4062,4064,4066,4068,4070,4072,4074,4076,4078,4080,4082,4084,4086,4088,4090,4092,4094,4096,4098,4100,4102,4104,4106,4108,4110,4112,4114,4116,4118,4120,4122,4124,4126,4128,4130,4132,4134,4136,4138,4140,4142,4144,4146,4148,4150,4152,4154,4156,4158,4160,4162,4164,4166,4168,4170,4172,4174,4176,4178,4180,4182,4184,4186,4188,4190,4192,4194,4196,4198,4200,4202,4204,4206,4208,4210,4212,4214,4216,4218,4220,4222,4224,4226,4228,4230,4232,4234,4236,4238,4240,4242,4244,4246,4248,4250,4252,4254,4256,4258,4260,4262,4264,4266,4268,4270,4272,4274,4276,4278,4280,4282,4284,4286,4288,4290,4292,4294,4296,4298,4300,4302,4304,4306,4308,4310,4312,4314,4316,4318,4320,4322,4324,4326,4328,4330,4332,4334,4336,4338,4340,4342,4344,4346,4348,4350,4352,4354,4356,4358,4360,4362,4364,4366,4368,4370,4372,4374,4376,4378,4380,4382,4384,4386,4388,4390,4392,4394,4396,4398,4400,4402,4404,4406,4408,4410,4412,4414,4416,4418,4420,4422,4424,4426,4428,4430,4432,4434,4436,4438,4440,4442,4444,4446,4448,4450,4452,4454,4456,4458,4460,4462,4464,4466,4468,4470,4472,4474,4476,4478,4480,4482,4484,4486,4488,4490,4492,4494,4496,4498,4500,4502,4504],{"categories":103},[104],"Business & SaaS",{"categories":106},[104],{"categories":108},[109],"AI News & Trends",{"categories":111},[],{"categories":113},[114],"AI Automation",{"categories":116},[117],"Marketing & Growth",{"categories":119},[120],"Design & Frontend",{"categories":122},[77],{"categories":124},[114],{"categories":126},[],{"categories":128},[120],{"categories":130},[120],{"categories":132},[114],{"categories":134},[120],{"categories":136},[120],{"categories":138},[139],"AI & LLMs",{"categories":141},[120],{"categories":143},[120],{"categories":145},[],{"categories":147},[120],{"categories":149},[120],{"categories":151},[139],{"categories":153},[154],"Developer Productivity",{"categories":156},[139],{"categories":158},[139],{"categories":160},[139],{"categories":162},[109],{"categories":164},[139],{"categories":166},[114],{"categories":168},[104],{"categories":170},[109],{"categories":172},[117],{"categories":174},[],{"categories":176},[],{"categories":178},[114],{"categories":180},[114],{"categories":182},[114],{"categories":184},[117],{"categories":186},[139],{"categories":188},[154],{"categories":190},[109],{"categories":192},[],{"categories":194},[],{"categories":196},[],{"categories":198},[199],"Data Science & Visualization",{"categories":201},[],{"categories":203},[114],{"categories":205},[77],{"categories":207},[114],{"categories":209},[114],{"categories":211},[139],{"categories":213},[117],{"categories":215},[114],{"categories":217},[],{"categories":219},[],{"categories":221},[],{"categories":223},[120],{"categories":225},[120],{"categories":227},[114],{"categories":229},[117],{"categories":231},[154],{"categories":233},[120],{"categories":235},[139],{"categories":237},[77],{"categories":239},[139],{"categories":241},[],{"categories":243},[114],{"categories":245},[139],{"categories":247},[154],{"categories":249},[154],{"categories":251},[],{"categories":253},[117],{"categories":255},[104],{"categories":257},[139],{"categories":259},[104],{"categories":261},[104],{"categories":263},[114],{"categories":265},[117],{"categories":267},[114],{"categories":269},[104],{"categories":271},[114],{"categories":273},[120],{"categories":275},[139],{"categories":277},[120],{"categories":279},[139],{"categories":281},[104],{"categories":283},[139],{"categories":285},[117],{"categories":287},[],{"categories":289},[139],{"categories":291},[104],{"categories":293},[],{"categories":295},[109],{"categories":297},[77],{"categories":299},[],{"categories":301},[139],{"categories":303},[120],{"categories":305},[139],{"categories":307},[120],{"categories":309},[],{"categories":311},[114],{"categories":313},[],{"categories":315},[],{"categories":317},[],{"categories":319},[139],{"categories":321},[],{"categories":323},[139],{"categories":325},[139],{"categories":327},[120],{"categories":329},[139],{"categories":331},[154],{"categories":333},[114],{"categories":335},[117],{"categories":337},[154],{"categories":339},[154],{"categories":341},[154],{"categories":343},[117],{"categories":345},[117],{"categories":347},[139],{"categories":349},[139],{"categories":351},[120],{"categories":353},[104],{"categories":355},[120],{"categories":357},[77],{"categories":359},[104],{"categories":361},[104],{"categories":363},[104],{"categories":365},[120],{"categories":367},[],{"categories":369},[],{"categories":371},[139],{"categories":373},[139],{"categories":375},[77],{"categories":377},[139],{"categories":379},[139],{"categories":381},[],{"categories":383},[139],{"categories":385},[139],{"categories":387},[],{"categories":389},[139],{"categories":391},[109],{"categories":393},[109],{"categories":395},[],{"categories":397},[],{"categories":399},[117],{"categories":401},[117],{"categories":403},[77],{"categories":405},[139],{"categories":407},[],{"categories":409},[],{"categories":411},[114],{"categories":413},[139],{"categories":415},[139],{"categories":417},[],{"categories":419},[139,104],{"categories":421},[139],{"categories":423},[],{"categories":425},[139],{"categories":427},[139],{"categories":429},[],{"categories":431},[],{"categories":433},[114],{"categories":435},[139],{"categories":437},[139],{"categories":439},[114],{"categories":441},[139],{"categories":443},[],{"categories":445},[],{"categories":447},[139],{"categories":449},[],{"categories":451},[139],{"categories":453},[139],{"categories":455},[],{"categories":457},[114],{"categories":459},[120],{"categories":461},[],{"categories":463},[114,464],"DevOps & Cloud",{"categories":466},[139],{"categories":468},[114],{"categories":470},[139],{"categories":472},[],{"categories":474},[],{"categories":476},[],{"categories":478},[],{"categories":480},[139],{"categories":482},[114],{"categories":484},[],{"categories":486},[114],{"categories":488},[],{"categories":490},[139],{"categories":492},[],{"categories":494},[],{"categories":496},[],{"categories":498},[],{"categories":500},[114],{"categories":502},[120],{"categories":504},[139],{"categories":506},[117],{"categories":508},[109],{"categories":510},[104],{"categories":512},[154],{"categories":514},[],{"categories":516},[114],{"categories":518},[114],{"categories":520},[139],{"categories":522},[],{"categories":524},[],{"categories":526},[],{"categories":528},[114],{"categories":530},[],{"categories":532},[114],{"categories":534},[114],{"categories":536},[109],{"categories":538},[114],{"categories":540},[139],{"categories":542},[],{"categories":544},[139],{"categories":546},[],{"categories":548},[109],{"categories":550},[114,551],"Product Strategy",{"categories":553},[77],{"categories":555},[464],{"categories":557},[551],{"categories":559},[139],{"categories":561},[114],{"categories":563},[],{"categories":565},[109],{"categories":567},[109],{"categories":569},[114],{"categories":571},[],{"categories":573},[114],{"categories":575},[139],{"categories":577},[139],{"categories":579},[154],{"categories":581},[139],{"categories":583},[],{"categories":585},[139,77],{"categories":587},[109],{"categories":589},[139],{"categories":591},[109],{"categories":593},[114],{"categories":595},[109],{"categories":597},[],{"categories":599},[77],{"categories":601},[104],{"categories":603},[],{"categories":605},[114],{"categories":607},[114],{"categories":609},[114],{"categories":611},[114],{"categories":613},[104],{"categories":615},[120],{"categories":617},[117],{"categories":619},[],{"categories":621},[114],{"categories":623},[],{"categories":625},[109],{"categories":627},[109],{"categories":629},[109],{"categories":631},[114],{"categories":633},[109],{"categories":635},[139],{"categories":637},[154],{"categories":639},[139],{"categories":641},[77],{"categories":643},[139,154],{"categories":645},[154],{"categories":647},[154],{"categories":649},[154],{"categories":651},[154],{"categories":653},[139],{"categories":655},[],{"categories":657},[],{"categories":659},[117],{"categories":661},[],{"categories":663},[139],{"categories":665},[154],{"categories":667},[139],{"categories":669},[120],{"categories":671},[77],{"categories":673},[],{"categories":675},[139],{"categories":677},[154],{"categories":679},[117],{"categories":681},[109],{"categories":683},[77],{"categories":685},[139],{"categories":687},[],{"categories":689},[77],{"categories":691},[120],{"categories":693},[104],{"categories":695},[104],{"categories":697},[],{"categories":699},[120],{"categories":701},[104],{"categories":703},[109],{"categories":705},[154],{"categories":707},[114],{"categories":709},[114],{"categories":711},[139],{"categories":713},[139],{"categories":715},[109],{"categories":717},[109],{"categories":719},[154],{"categories":721},[109],{"categories":723},[],{"categories":725},[551],{"categories":727},[114],{"categories":729},[109],{"categories":731},[109],{"categories":733},[109],{"categories":735},[139],{"categories":737},[114],{"categories":739},[114],{"categories":741},[104],{"categories":743},[104],{"categories":745},[139],{"categories":747},[109],{"categories":749},[],{"categories":751},[139],{"categories":753},[104],{"categories":755},[114],{"categories":757},[114],{"categories":759},[114],{"categories":761},[120],{"categories":763},[114],{"categories":765},[154],{"categories":767},[109],{"categories":769},[109],{"categories":771},[109],{"categories":773},[109],{"categories":775},[109],{"categories":777},[],{"categories":779},[],{"categories":781},[154],{"categories":783},[109],{"categories":785},[109],{"categories":787},[109],{"categories":789},[],{"categories":791},[139],{"categories":793},[],{"categories":795},[],{"categories":797},[120],{"categories":799},[104],{"categories":801},[],{"categories":803},[109],{"categories":805},[114],{"categories":807},[114],{"categories":809},[114],{"categories":811},[117],{"categories":813},[114],{"categories":815},[],{"categories":817},[109],{"categories":819},[109],{"categories":821},[139],{"categories":823},[],{"categories":825},[117],{"categories":827},[117],{"categories":829},[139],{"categories":831},[109],{"categories":833},[104],{"categories":835},[77],{"categories":837},[139],{"categories":839},[],{"categories":841},[139],{"categories":843},[139],{"categories":845},[77],{"categories":847},[139],{"categories":849},[139],{"categories":851},[139],{"categories":853},[117],{"categories":855},[109],{"categories":857},[139],{"categories":859},[139],{"categories":861},[109],{"categories":863},[114],{"categories":865},[154],{"categories":867},[104],{"categories":869},[139],{"categories":871},[154],{"categories":873},[154],{"categories":875},[],{"categories":877},[117],{"categories":879},[109],{"categories":881},[109],{"categories":883},[154],{"categories":885},[114],{"categories":887},[114],{"categories":889},[114],{"categories":891},[114],{"categories":893},[120],{"categories":895},[139],{"categories":897},[139],{"categories":899},[551],{"categories":901},[139],{"categories":903},[139],{"categories":905},[114],{"categories":907},[104],{"categories":909},[117],{"categories":911},[],{"categories":913},[104],{"categories":915},[104],{"categories":917},[],{"categories":919},[120],{"categories":921},[139],{"categories":923},[],{"categories":925},[],{"categories":927},[109],{"categories":929},[109],{"categories":931},[109],{"categories":933},[109],{"categories":935},[],{"categories":937},[109],{"categories":939},[139],{"categories":941},[139],{"categories":943},[],{"categories":945},[109],{"categories":947},[109],{"categories":949},[104],{"categories":951},[139],{"categories":953},[],{"categories":955},[],{"categories":957},[109],{"categories":959},[109],{"categories":961},[109],{"categories":963},[139],{"categories":965},[109],{"categories":967},[109],{"categories":969},[109],{"categories":971},[109],{"categories":973},[109],{"categories":975},[],{"categories":977},[114],{"categories":979},[139],{"categories":981},[117],{"categories":983},[104],{"categories":985},[114],{"categories":987},[139],{"categories":989},[],{"categories":991},[117],{"categories":993},[109],{"categories":995},[109],{"categories":997},[109],{"categories":999},[109],{"categories":1001},[154],{"categories":1003},[77],{"categories":1005},[],{"categories":1007},[139],{"categories":1009},[114],{"categories":1011},[114],{"categories":1013},[114],{"categories":1015},[464],{"categories":1017},[114],{"categories":1019},[139],{"categories":1021},[139],{"categories":1023},[77],{"categories":1025},[464],{"categories":1027},[199],{"categories":1029},[139],{"categories":1031},[199],{"categories":1033},[],{"categories":1035},[117],{"categories":1037},[117],{"categories":1039},[120],{"categories":1041},[464],{"categories":1043},[114],{"categories":1045},[139],{"categories":1047},[139],{"categories":1049},[114],{"categories":1051},[114],{"categories":1053},[114],{"categories":1055},[154],{"categories":1057},[154],{"categories":1059},[114],{"categories":1061},[114],{"categories":1063},[],{"categories":1065},[114],{"categories":1067},[114],{"categories":1069},[139],{"categories":1071},[199],{"categories":1073},[114],{"categories":1075},[114],{"categories":1077},[114],{"categories":1079},[114],{"categories":1081},[104],{"categories":1083},[120],{"categories":1085},[109],{"categories":1087},[77],{"categories":1089},[464],{"categories":1091},[77],{"categories":1093},[199],{"categories":1095},[],{"categories":1097},[77],{"categories":1099},[],{"categories":1101},[],{"categories":1103},[77],{"categories":1105},[139],{"categories":1107},[],{"categories":1109},[],{"categories":1111},[],{"categories":1113},[104],{"categories":1115},[],{"categories":1117},[],{"categories":1119},[199],{"categories":1121},[139],{"categories":1123},[464],{"categories":1125},[139],{"categories":1127},[],{"categories":1129},[114],{"categories":1131},[154],{"categories":1133},[154],{"categories":1135},[117],{"categories":1137},[117],{"categories":1139},[117],{"categories":1141},[464],{"categories":1143},[77],{"categories":1145},[114],{"categories":1147},[104],{"categories":1149},[104],{"categories":1151},[77],{"categories":1153},[120],{"categories":1155},[199],{"categories":1157},[120],{"categories":1159},[],{"categories":1161},[139],{"categories":1163},[114],{"categories":1165},[114],{"categories":1167},[154],{"categories":1169},[114],{"categories":1171},[114],{"categories":1173},[120],{"categories":1175},[120],{"categories":1177},[114],{"categories":1179},[464],{"categories":1181},[139],{"categories":1183},[],{"categories":1185},[117],{"categories":1187},[114],{"categories":1189},[104],{"categories":1191},[114],{"categories":1193},[114],{"categories":1195},[],{"categories":1197},[139],{"categories":1199},[114],{"categories":1201},[114],{"categories":1203},[154],{"categories":1205},[114],{"categories":1207},[139],{"categories":1209},[],{"categories":1211},[114],{"categories":1213},[],{"categories":1215},[120],{"categories":1217},[154],{"categories":1219},[139],{"categories":1221},[77],{"categories":1223},[120],{"categories":1225},[154],{"categories":1227},[199],{"categories":1229},[154],{"categories":1231},[],{"categories":1233},[139],{"categories":1235},[139],{"categories":1237},[551],{"categories":1239},[77],{"categories":1241},[139,114],{"categories":1243},[114],{"categories":1245},[139],{"categories":1247},[114],{"categories":1249},[114,77],{"categories":1251},[114],{"categories":1253},[139],{"categories":1255},[],{"categories":1257},[154],{"categories":1259},[139],{"categories":1261},[114],{"categories":1263},[139],{"categories":1265},[],{"categories":1267},[77],{"categories":1269},[104],{"categories":1271},[114],{"categories":1273},[],{"categories":1275},[199],{"categories":1277},[77],{"categories":1279},[114],{"categories":1281},[77],{"categories":1283},[],{"categories":1285},[114],{"categories":1287},[],{"categories":1289},[114],{"categories":1291},[],{"categories":1293},[],{"categories":1295},[120],{"categories":1297},[154],{"categories":1299},[139],{"categories":1301},[114],{"categories":1303},[],{"categories":1305},[114],{"categories":1307},[77],{"categories":1309},[139],{"categories":1311},[139],{"categories":1313},[77],{"categories":1315},[77],{"categories":1317},[154],{"categories":1319},[104],{"categories":1321},[],{"categories":1323},[139],{"categories":1325},[139],{"categories":1327},[139],{"categories":1329},[114],{"categories":1331},[139],{"categories":1333},[],{"categories":1335},[120],{"categories":1337},[139],{"categories":1339},[114],{"categories":1341},[],{"categories":1343},[139],{"categories":1345},[],{"categories":1347},[139],{"categories":1349},[],{"categories":1351},[],{"categories":1353},[],{"categories":1355},[139],{"categories":1357},[139],{"categories":1359},[139],{"categories":1361},[139],{"categories":1363},[],{"categories":1365},[139],{"categories":1367},[139],{"categories":1369},[139],{"categories":1371},[],{"categories":1373},[139],{"categories":1375},[],{"categories":1377},[117],{"categories":1379},[139],{"categories":1381},[],{"categories":1383},[],{"categories":1385},[],{"categories":1387},[139],{"categories":1389},[109],{"categories":1391},[109],{"categories":1393},[],{"categories":1395},[114],{"categories":1397},[139],{"categories":1399},[],{"categories":1401},[139],{"categories":1403},[139],{"categories":1405},[109],{"categories":1407},[],{"categories":1409},[139],{"categories":1411},[109],{"categories":1413},[114],{"categories":1415},[139],{"categories":1417},[],{"categories":1419},[],{"categories":1421},[],{"categories":1423},[114],{"categories":1425},[114],{"categories":1427},[114],{"categories":1429},[114],{"categories":1431},[139],{"categories":1433},[120],{"categories":1435},[120],{"categories":1437},[114],{"categories":1439},[114],{"categories":1441},[154],{"categories":1443},[551],{"categories":1445},[154],{"categories":1447},[154],{"categories":1449},[139],{"categories":1451},[114],{"categories":1453},[139],{"categories":1455},[154],{"categories":1457},[139],{"categories":1459},[114],{"categories":1461},[114],{"categories":1463},[114],{"categories":1465},[114],{"categories":1467},[114],{"categories":1469},[139],{"categories":1471},[154],{"categories":1473},[154],{"categories":1475},[117],{"categories":1477},[114],{"categories":1479},[],{"categories":1481},[114],{"categories":1483},[],{"categories":1485},[109],{"categories":1487},[139],{"categories":1489},[],{"categories":1491},[104],{"categories":1493},[120],{"categories":1495},[120],{"categories":1497},[114],{"categories":1499},[114],{"categories":1501},[139],{"categories":1503},[139],{"categories":1505},[109],{"categories":1507},[109],{"categories":1509},[464],{"categories":1511},[114],{"categories":1513},[109],{"categories":1515},[],{"categories":1517},[139],{"categories":1519},[114],{"categories":1521},[114],{"categories":1523},[114],{"categories":1525},[114],{"categories":1527},[139],{"categories":1529},[139],{"categories":1531},[139],{"categories":1533},[139],{"categories":1535},[114],{"categories":1537},[114],{"categories":1539},[114],{"categories":1541},[114],{"categories":1543},[],{"categories":1545},[120],{"categories":1547},[139],{"categories":1549},[139],{"categories":1551},[139],{"categories":1553},[],{"categories":1555},[117],{"categories":1557},[],{"categories":1559},[154],{"categories":1561},[],{"categories":1563},[114],{"categories":1565},[154],{"categories":1567},[120],{"categories":1569},[154],{"categories":1571},[],{"categories":1573},[154],{"categories":1575},[154],{"categories":1577},[],{"categories":1579},[120],{"categories":1581},[114],{"categories":1583},[114],{"categories":1585},[154],{"categories":1587},[139],{"categories":1589},[139],{"categories":1591},[],{"categories":1593},[109],{"categories":1595},[],{"categories":1597},[117],{"categories":1599},[],{"categories":1601},[120],{"categories":1603},[109],{"categories":1605},[120],{"categories":1607},[120],{"categories":1609},[120],{"categories":1611},[120],{"categories":1613},[120],{"categories":1615},[120],{"categories":1617},[120],{"categories":1619},[120],{"categories":1621},[120],{"categories":1623},[120],{"categories":1625},[],{"categories":1627},[114],{"categories":1629},[120],{"categories":1631},[139],{"categories":1633},[139],{"categories":1635},[120],{"categories":1637},[120],{"categories":1639},[120],{"categories":1641},[120],{"categories":1643},[120],{"categories":1645},[120],{"categories":1647},[120],{"categories":1649},[139,120],{"categories":1651},[120],{"categories":1653},[120],{"categories":1655},[120],{"categories":1657},[120],{"categories":1659},[],{"categories":1661},[120],{"categories":1663},[120],{"categories":1665},[120],{"categories":1667},[120],{"categories":1669},[120],{"categories":1671},[120],{"categories":1673},[120],{"categories":1675},[120],{"categories":1677},[120],{"categories":1679},[120,139],{"categories":1681},[120],{"categories":1683},[120],{"categories":1685},[],{"categories":1687},[109],{"categories":1689},[],{"categories":1691},[139],{"categories":1693},[],{"categories":1695},[114],{"categories":1697},[464],{"categories":1699},[551],{"categories":1701},[114],{"categories":1703},[114],{"categories":1705},[],{"categories":1707},[114],{"categories":1709},[],{"categories":1711},[114],{"categories":1713},[],{"categories":1715},[],{"categories":1717},[139],{"categories":1719},[139],{"categories":1721},[139],{"categories":1723},[109],{"categories":1725},[109],{"categories":1727},[109],{"categories":1729},[109],{"categories":1731},[],{"categories":1733},[109],{"categories":1735},[],{"categories":1737},[109],{"categories":1739},[139],{"categories":1741},[109],{"categories":1743},[109],{"categories":1745},[109],{"categories":1747},[109],{"categories":1749},[139],{"categories":1751},[109],{"categories":1753},[114],{"categories":1755},[],{"categories":1757},[114],{"categories":1759},[109],{"categories":1761},[139],{"categories":1763},[109],{"categories":1765},[109],{"categories":1767},[109],{"categories":1769},[139],{"categories":1771},[139],{"categories":1773},[139],{"categories":1775},[],{"categories":1777},[],{"categories":1779},[139],{"categories":1781},[109],{"categories":1783},[],{"categories":1785},[139],{"categories":1787},[114],{"categories":1789},[139],{"categories":1791},[114],{"categories":1793},[114],{"categories":1795},[139],{"categories":1797},[],{"categories":1799},[],{"categories":1801},[114],{"categories":1803},[114],{"categories":1805},[114],{"categories":1807},[114],{"categories":1809},[114],{"categories":1811},[114],{"categories":1813},[114],{"categories":1815},[114],{"categories":1817},[],{"categories":1819},[114],{"categories":1821},[114],{"categories":1823},[114],{"categories":1825},[139],{"categories":1827},[139],{"categories":1829},[139],{"categories":1831},[109],{"categories":1833},[139],{"categories":1835},[139],{"categories":1837},[139],{"categories":1839},[114],{"categories":1841},[117],{"categories":1843},[117],{"categories":1845},[117],{"categories":1847},[114],{"categories":1849},[],{"categories":1851},[139],{"categories":1853},[],{"categories":1855},[],{"categories":1857},[139],{"categories":1859},[],{"categories":1861},[114],{"categories":1863},[120],{"categories":1865},[154],{"categories":1867},[199],{"categories":1869},[139],{"categories":1871},[114],{"categories":1873},[120],{"categories":1875},[],{"categories":1877},[114],{"categories":1879},[117,104],{"categories":1881},[114],{"categories":1883},[114],{"categories":1885},[464],{"categories":1887},[77],{"categories":1889},[117],{"categories":1891},[154],{"categories":1893},[139],{"categories":1895},[],{"categories":1897},[139],{"categories":1899},[],{"categories":1901},[139],{"categories":1903},[139],{"categories":1905},[114],{"categories":1907},[],{"categories":1909},[139],{"categories":1911},[114],{"categories":1913},[139],{"categories":1915},[154],{"categories":1917},[114],{"categories":1919},[139],{"categories":1921},[139,154],{"categories":1923},[154],{"categories":1925},[],{"categories":1927},[139],{"categories":1929},[139],{"categories":1931},[139],{"categories":1933},[],{"categories":1935},[],{"categories":1937},[114],{"categories":1939},[117],{"categories":1941},[109],{"categories":1943},[114],{"categories":1945},[139],{"categories":1947},[109],{"categories":1949},[],{"categories":1951},[154],{"categories":1953},[109],{"categories":1955},[],{"categories":1957},[199],{"categories":1959},[117],{"categories":1961},[104],{"categories":1963},[109],{"categories":1965},[139],{"categories":1967},[114],{"categories":1969},[139],{"categories":1971},[114],{"categories":1973},[114],{"categories":1975},[109],{"categories":1977},[154],{"categories":1979},[120],{"categories":1981},[104],{"categories":1983},[139],{"categories":1985},[139],{"categories":1987},[],{"categories":1989},[],{"categories":1991},[139],{"categories":1993},[],{"categories":1995},[139],{"categories":1997},[109],{"categories":1999},[],{"categories":2001},[114],{"categories":2003},[154],{"categories":2005},[109],{"categories":2007},[154],{"categories":2009},[114],{"categories":2011},[139],{"categories":2013},[],{"categories":2015},[114],{"categories":2017},[114],{"categories":2019},[120],{"categories":2021},[114],{"categories":2023},[120],{"categories":2025},[114],{"categories":2027},[114],{"categories":2029},[120],{"categories":2031},[],{"categories":2033},[],{"categories":2035},[120],{"categories":2037},[120],{"categories":2039},[120],{"categories":2041},[77],{"categories":2043},[154],{"categories":2045},[154],{"categories":2047},[114],{"categories":2049},[109],{"categories":2051},[154],{"categories":2053},[154],{"categories":2055},[117],{"categories":2057},[120],{"categories":2059},[114],{"categories":2061},[114],{"categories":2063},[139],{"categories":2065},[154],{"categories":2067},[139],{"categories":2069},[],{"categories":2071},[464],{"categories":2073},[551],{"categories":2075},[],{"categories":2077},[],{"categories":2079},[114],{"categories":2081},[109],{"categories":2083},[117],{"categories":2085},[117],{"categories":2087},[199],{"categories":2089},[120],{"categories":2091},[199],{"categories":2093},[199],{"categories":2095},[114],{"categories":2097},[],{"categories":2099},[],{"categories":2101},[199],{"categories":2103},[77],{"categories":2105},[139],{"categories":2107},[77],{"categories":2109},[199],{"categories":2111},[77],{"categories":2113},[199],{"categories":2115},[104],{"categories":2117},[77],{"categories":2119},[154],{"categories":2121},[139],{"categories":2123},[],{"categories":2125},[199],{"categories":2127},[464],{"categories":2129},[],{"categories":2131},[139],{"categories":2133},[139],{"categories":2135},[],{"categories":2137},[],{"categories":2139},[139],{"categories":2141},[139],{"categories":2143},[109],{"categories":2145},[139],{"categories":2147},[],{"categories":2149},[109],{"categories":2151},[],{"categories":2153},[],{"categories":2155},[109],{"categories":2157},[109],{"categories":2159},[139],{"categories":2161},[139],{"categories":2163},[139],{"categories":2165},[139],{"categories":2167},[139],{"categories":2169},[139],{"categories":2171},[117],{"categories":2173},[],{"categories":2175},[139],{"categories":2177},[],{"categories":2179},[],{"categories":2181},[114],{"categories":2183},[154],{"categories":2185},[],{"categories":2187},[464],{"categories":2189},[139,464],{"categories":2191},[139],{"categories":2193},[],{"categories":2195},[120],{"categories":2197},[120],{"categories":2199},[120],{"categories":2201},[120],{"categories":2203},[120],{"categories":2205},[],{"categories":2207},[],{"categories":2209},[],{"categories":2211},[77],{"categories":2213},[114],{"categories":2215},[104],{"categories":2217},[77],{"categories":2219},[154],{"categories":2221},[120],{"categories":2223},[],{"categories":2225},[117],{"categories":2227},[551],{"categories":2229},[199],{"categories":2231},[199],{"categories":2233},[199],{"categories":2235},[154],{"categories":2237},[551],{"categories":2239},[154],{"categories":2241},[],{"categories":2243},[104],{"categories":2245},[77],{"categories":2247},[139],{"categories":2249},[120],{"categories":2251},[117],{"categories":2253},[77],{"categories":2255},[117],{"categories":2257},[139],{"categories":2259},[120],{"categories":2261},[77],{"categories":2263},[464],{"categories":2265},[139],{"categories":2267},[109],{"categories":2269},[77],{"categories":2271},[],{"categories":2273},[139],{"categories":2275},[77],{"categories":2277},[77],{"categories":2279},[114],{"categories":2281},[],{"categories":2283},[117],{"categories":2285},[117],{"categories":2287},[117],{"categories":2289},[114],{"categories":2291},[139],{"categories":2293},[],{"categories":2295},[104],{"categories":2297},[154],{"categories":2299},[154],{"categories":2301},[199],{"categories":2303},[104],{"categories":2305},[109],{"categories":2307},[199],{"categories":2309},[],{"categories":2311},[109],{"categories":2313},[109],{"categories":2315},[109],{"categories":2317},[139],{"categories":2319},[104],{"categories":2321},[139],{"categories":2323},[],{"categories":2325},[],{"categories":2327},[],{"categories":2329},[77],{"categories":2331},[114],{"categories":2333},[],{"categories":2335},[154],{"categories":2337},[120],{"categories":2339},[],{"categories":2341},[117],{"categories":2343},[],{"categories":2345},[120],{"categories":2347},[139],{"categories":2349},[154],{"categories":2351},[104],{"categories":2353},[],{"categories":2355},[120],{"categories":2357},[120],{"categories":2359},[139],{"categories":2361},[],{"categories":2363},[],{"categories":2365},[77],{"categories":2367},[139],{"categories":2369},[],{"categories":2371},[114],{"categories":2373},[139],{"categories":2375},[],{"categories":2377},[77],{"categories":2379},[114],{"categories":2381},[139],{"categories":2383},[199],{"categories":2385},[139],{"categories":2387},[],{"categories":2389},[199],{"categories":2391},[139],{"categories":2393},[77],{"categories":2395},[139],{"categories":2397},[199],{"categories":2399},[114],{"categories":2401},[139],{"categories":2403},[139],{"categories":2405},[139,114],{"categories":2407},[114],{"categories":2409},[114],{"categories":2411},[114],{"categories":2413},[120],{"categories":2415},[154],{"categories":2417},[139],{"categories":2419},[154],{"categories":2421},[120],{"categories":2423},[139],{"categories":2425},[],{"categories":2427},[],{"categories":2429},[139],{"categories":2431},[139],{"categories":2433},[139],{"categories":2435},[114],{"categories":2437},[139],{"categories":2439},[],{"categories":2441},[139],{"categories":2443},[139],{"categories":2445},[114],{"categories":2447},[114],{"categories":2449},[139],{"categories":2451},[139],{"categories":2453},[],{"categories":2455},[139],{"categories":2457},[],{"categories":2459},[139],{"categories":2461},[139],{"categories":2463},[139],{"categories":2465},[139],{"categories":2467},[139],{"categories":2469},[139],{"categories":2471},[139],{"categories":2473},[],{"categories":2475},[139],{"categories":2477},[109],{"categories":2479},[109],{"categories":2481},[],{"categories":2483},[],{"categories":2485},[139],{"categories":2487},[],{"categories":2489},[139],{"categories":2491},[139,464],{"categories":2493},[],{"categories":2495},[109],{"categories":2497},[],{"categories":2499},[139],{"categories":2501},[],{"categories":2503},[],{"categories":2505},[],{"categories":2507},[139],{"categories":2509},[],{"categories":2511},[139],{"categories":2513},[],{"categories":2515},[139],{"categories":2517},[139],{"categories":2519},[],{"categories":2521},[],{"categories":2523},[139,464],{"categories":2525},[464,139],{"categories":2527},[109],{"categories":2529},[],{"categories":2531},[139],{"categories":2533},[],{"categories":2535},[139],{"categories":2537},[139],{"categories":2539},[],{"categories":2541},[109],{"categories":2543},[139,104],{"categories":2545},[109],{"categories":2547},[77],{"categories":2549},[],{"categories":2551},[114],{"categories":2553},[139],{"categories":2555},[117],{"categories":2557},[139],{"categories":2559},[154],{"categories":2561},[154],{"categories":2563},[464],{"categories":2565},[109],{"categories":2567},[139],{"categories":2569},[464],{"categories":2571},[77],{"categories":2573},[139],{"categories":2575},[154],{"categories":2577},[],{"categories":2579},[139],{"categories":2581},[],{"categories":2583},[],{"categories":2585},[139],{"categories":2587},[],{"categories":2589},[139],{"categories":2591},[77],{"categories":2593},[104],{"categories":2595},[154],{"categories":2597},[117],{"categories":2599},[114],{"categories":2601},[154],{"categories":2603},[],{"categories":2605},[117],{"categories":2607},[],{"categories":2609},[],{"categories":2611},[139],{"categories":2613},[109],{"categories":2615},[117],{"categories":2617},[],{"categories":2619},[139],{"categories":2621},[109],{"categories":2623},[109],{"categories":2625},[117],{"categories":2627},[109],{"categories":2629},[139],{"categories":2631},[109],{"categories":2633},[139],{"categories":2635},[],{"categories":2637},[139],{"categories":2639},[139],{"categories":2641},[139],{"categories":2643},[109],{"categories":2645},[],{"categories":2647},[],{"categories":2649},[120],{"categories":2651},[109],{"categories":2653},[],{"categories":2655},[139],{"categories":2657},[139],{"categories":2659},[139],{"categories":2661},[139],{"categories":2663},[139],{"categories":2665},[139],{"categories":2667},[139],{"categories":2669},[139],{"categories":2671},[139],{"categories":2673},[117],{"categories":2675},[139,120],{"categories":2677},[109],{"categories":2679},[109],{"categories":2681},[139],{"categories":2683},[77],{"categories":2685},[199],{"categories":2687},[139],{"categories":2689},[139],{"categories":2691},[],{"categories":2693},[],{"categories":2695},[139],{"categories":2697},[139],{"categories":2699},[],{"categories":2701},[120],{"categories":2703},[120],{"categories":2705},[154],{"categories":2707},[139],{"categories":2709},[154],{"categories":2711},[139],{"categories":2713},[139],{"categories":2715},[],{"categories":2717},[139],{"categories":2719},[],{"categories":2721},[],{"categories":2723},[139],{"categories":2725},[],{"categories":2727},[],{"categories":2729},[109],{"categories":2731},[],{"categories":2733},[139],{"categories":2735},[139],{"categories":2737},[139],{"categories":2739},[],{"categories":2741},[139],{"categories":2743},[109],{"categories":2745},[551],{"categories":2747},[114],{"categories":2749},[139],{"categories":2751},[],{"categories":2753},[114],{"categories":2755},[139],{"categories":2757},[],{"categories":2759},[139],{"categories":2761},[],{"categories":2763},[114],{"categories":2765},[],{"categories":2767},[],{"categories":2769},[114],{"categories":2771},[114],{"categories":2773},[114],{"categories":2775},[139],{"categories":2777},[],{"categories":2779},[114],{"categories":2781},[114],{"categories":2783},[],{"categories":2785},[],{"categories":2787},[114],{"categories":2789},[139],{"categories":2791},[109],{"categories":2793},[551],{"categories":2795},[117],{"categories":2797},[],{"categories":2799},[120],{"categories":2801},[139],{"categories":2803},[139],{"categories":2805},[104],{"categories":2807},[109],{"categories":2809},[109],{"categories":2811},[109],{"categories":2813},[109],{"categories":2815},[],{"categories":2817},[114],{"categories":2819},[114],{"categories":2821},[114],{"categories":2823},[114],{"categories":2825},[154],{"categories":2827},[139],{"categories":2829},[104],{"categories":2831},[],{"categories":2833},[154],{"categories":2835},[114],{"categories":2837},[120],{"categories":2839},[120],{"categories":2841},[120],{"categories":2843},[120],{"categories":2845},[120],{"categories":2847},[120],{"categories":2849},[139,104],{"categories":2851},[114],{"categories":2853},[104],{"categories":2855},[109],{"categories":2857},[109],{"categories":2859},[154],{"categories":2861},[],{"categories":2863},[],{"categories":2865},[117],{"categories":2867},[],{"categories":2869},[139],{"categories":2871},[117],{"categories":2873},[139],{"categories":2875},[77],{"categories":2877},[114],{"categories":2879},[104],{"categories":2881},[114],{"categories":2883},[77],{"categories":2885},[154],{"categories":2887},[114],{"categories":2889},[],{"categories":2891},[154],{"categories":2893},[],{"categories":2895},[],{"categories":2897},[114],{"categories":2899},[114],{"categories":2901},[114],{"categories":2903},[139],{"categories":2905},[139],{"categories":2907},[139],{"categories":2909},[139],{"categories":2911},[139],{"categories":2913},[],{"categories":2915},[464],{"categories":2917},[139],{"categories":2919},[],{"categories":2921},[],{"categories":2923},[],{"categories":2925},[154],{"categories":2927},[],{"categories":2929},[139],{"categories":2931},[],{"categories":2933},[109],{"categories":2935},[139],{"categories":2937},[109],{"categories":2939},[139],{"categories":2941},[114],{"categories":2943},[],{"categories":2945},[139],{"categories":2947},[139],{"categories":2949},[],{"categories":2951},[199],{"categories":2953},[199],{"categories":2955},[77],{"categories":2957},[120],{"categories":2959},[],{"categories":2961},[139],{"categories":2963},[114],{"categories":2965},[],{"categories":2967},[],{"categories":2969},[139],{"categories":2971},[77],{"categories":2973},[114],{"categories":2975},[104],{"categories":2977},[154,77],{"categories":2979},[77],{"categories":2981},[139],{"categories":2983},[114],{"categories":2985},[],{"categories":2987},[],{"categories":2989},[],{"categories":2991},[],{"categories":2993},[],{"categories":2995},[],{"categories":2997},[139],{"categories":2999},[],{"categories":3001},[],{"categories":3003},[139],{"categories":3005},[],{"categories":3007},[],{"categories":3009},[],{"categories":3011},[139],{"categories":3013},[109],{"categories":3015},[],{"categories":3017},[],{"categories":3019},[],{"categories":3021},[139],{"categories":3023},[],{"categories":3025},[139],{"categories":3027},[139],{"categories":3029},[],{"categories":3031},[139],{"categories":3033},[77],{"categories":3035},[],{"categories":3037},[154],{"categories":3039},[154],{"categories":3041},[],{"categories":3043},[117],{"categories":3045},[],{"categories":3047},[],{"categories":3049},[],{"categories":3051},[120],{"categories":3053},[109],{"categories":3055},[114],{"categories":3057},[139],{"categories":3059},[104],{"categories":3061},[139],{"categories":3063},[],{"categories":3065},[],{"categories":3067},[104],{"categories":3069},[117],{"categories":3071},[114],{"categories":3073},[],{"categories":3075},[464],{"categories":3077},[],{"categories":3079},[117],{"categories":3081},[139],{"categories":3083},[139],{"categories":3085},[117],{"categories":3087},[139],{"categories":3089},[120],{"categories":3091},[114],{"categories":3093},[139],{"categories":3095},[114],{"categories":3097},[139],{"categories":3099},[114],{"categories":3101},[154],{"categories":3103},[154],{"categories":3105},[120],{"categories":3107},[],{"categories":3109},[139],{"categories":3111},[139],{"categories":3113},[117],{"categories":3115},[551],{"categories":3117},[154],{"categories":3119},[109],{"categories":3121},[139],{"categories":3123},[109],{"categories":3125},[139],{"categories":3127},[139],{"categories":3129},[],{"categories":3131},[139],{"categories":3133},[],{"categories":3135},[139],{"categories":3137},[117],{"categories":3139},[139],{"categories":3141},[139],{"categories":3143},[139],{"categories":3145},[],{"categories":3147},[139],{"categories":3149},[139],{"categories":3151},[551],{"categories":3153},[],{"categories":3155},[109],{"categories":3157},[464],{"categories":3159},[77],{"categories":3161},[],{"categories":3163},[199],{"categories":3165},[],{"categories":3167},[],{"categories":3169},[109],{"categories":3171},[139],{"categories":3173},[],{"categories":3175},[139],{"categories":3177},[139],{"categories":3179},[114],{"categories":3181},[139],{"categories":3183},[109],{"categories":3185},[109],{"categories":3187},[120],{"categories":3189},[120],{"categories":3191},[120],{"categories":3193},[139],{"categories":3195},[199],{"categories":3197},[109],{"categories":3199},[154],{"categories":3201},[],{"categories":3203},[120],{"categories":3205},[120],{"categories":3207},[464],{"categories":3209},[120],{"categories":3211},[120],{"categories":3213},[114],{"categories":3215},[109],{"categories":3217},[464],{"categories":3219},[139],{"categories":3221},[139],{"categories":3223},[139],{"categories":3225},[139],{"categories":3227},[],{"categories":3229},[114],{"categories":3231},[139],{"categories":3233},[120],{"categories":3235},[],{"categories":3237},[],{"categories":3239},[109],{"categories":3241},[],{"categories":3243},[114],{"categories":3245},[114],{"categories":3247},[114],{"categories":3249},[114],{"categories":3251},[114],{"categories":3253},[114],{"categories":3255},[114],{"categories":3257},[114],{"categories":3259},[],{"categories":3261},[],{"categories":3263},[139],{"categories":3265},[],{"categories":3267},[114],{"categories":3269},[154],{"categories":3271},[154],{"categories":3273},[199],{"categories":3275},[104],{"categories":3277},[],{"categories":3279},[],{"categories":3281},[],{"categories":3283},[120],{"categories":3285},[139],{"categories":3287},[],{"categories":3289},[104],{"categories":3291},[104],{"categories":3293},[120],{"categories":3295},[154],{"categories":3297},[199],{"categories":3299},[120],{"categories":3301},[120],{"categories":3303},[],{"categories":3305},[114],{"categories":3307},[104],{"categories":3309},[104],{"categories":3311},[139],{"categories":3313},[114],{"categories":3315},[77],{"categories":3317},[120],{"categories":3319},[],{"categories":3321},[117],{"categories":3323},[199],{"categories":3325},[109],{"categories":3327},[109],{"categories":3329},[109],{"categories":3331},[464],{"categories":3333},[],{"categories":3335},[114],{"categories":3337},[],{"categories":3339},[114],{"categories":3341},[114],{"categories":3343},[139],{"categories":3345},[139],{"categories":3347},[77],{"categories":3349},[114],{"categories":3351},[77],{"categories":3353},[],{"categories":3355},[114],{"categories":3357},[120],{"categories":3359},[120],{"categories":3361},[120],{"categories":3363},[139],{"categories":3365},[114],{"categories":3367},[139],{"categories":3369},[104],{"categories":3371},[109],{"categories":3373},[120],{"categories":3375},[109],{"categories":3377},[139],{"categories":3379},[],{"categories":3381},[109],{"categories":3383},[114],{"categories":3385},[109],{"categories":3387},[109],{"categories":3389},[109],{"categories":3391},[109],{"categories":3393},[],{"categories":3395},[],{"categories":3397},[109],{"categories":3399},[109],{"categories":3401},[],{"categories":3403},[109],{"categories":3405},[109],{"categories":3407},[139],{"categories":3409},[139],{"categories":3411},[109],{"categories":3413},[109],{"categories":3415},[139],{"categories":3417},[],{"categories":3419},[139],{"categories":3421},[114],{"categories":3423},[139],{"categories":3425},[139],{"categories":3427},[],{"categories":3429},[139],{"categories":3431},[139],{"categories":3433},[139],{"categories":3435},[109],{"categories":3437},[],{"categories":3439},[],{"categories":3441},[],{"categories":3443},[],{"categories":3445},[139],{"categories":3447},[139],{"categories":3449},[],{"categories":3451},[117],{"categories":3453},[109],{"categories":3455},[],{"categories":3457},[],{"categories":3459},[],{"categories":3461},[],{"categories":3463},[],{"categories":3465},[139],{"categories":3467},[],{"categories":3469},[],{"categories":3471},[139],{"categories":3473},[],{"categories":3475},[114],{"categories":3477},[114],{"categories":3479},[114],{"categories":3481},[104],{"categories":3483},[],{"categories":3485},[117],{"categories":3487},[77],{"categories":3489},[77],{"categories":3491},[464],{"categories":3493},[109],{"categories":3495},[],{"categories":3497},[139],{"categories":3499},[139],{"categories":3501},[104],{"categories":3503},[],{"categories":3505},[104],{"categories":3507},[],{"categories":3509},[],{"categories":3511},[],{"categories":3513},[77],{"categories":3515},[114],{"categories":3517},[114],{"categories":3519},[114],{"categories":3521},[114],{"categories":3523},[114],{"categories":3525},[],{"categories":3527},[109],{"categories":3529},[139],{"categories":3531},[139],{"categories":3533},[139],{"categories":3535},[],{"categories":3537},[104],{"categories":3539},[],{"categories":3541},[120],{"categories":3543},[199],{"categories":3545},[120],{"categories":3547},[],{"categories":3549},[],{"categories":3551},[139],{"categories":3553},[114],{"categories":3555},[],{"categories":3557},[139],{"categories":3559},[139],{"categories":3561},[139],{"categories":3563},[114],{"categories":3565},[114],{"categories":3567},[139],{"categories":3569},[199],{"categories":3571},[114],{"categories":3573},[],{"categories":3575},[139],{"categories":3577},[],{"categories":3579},[551],{"categories":3581},[77],{"categories":3583},[199],{"categories":3585},[77],{"categories":3587},[464],{"categories":3589},[139],{"categories":3591},[77],{"categories":3593},[109],{"categories":3595},[464],{"categories":3597},[77],{"categories":3599},[120],{"categories":3601},[120],{"categories":3603},[],{"categories":3605},[77],{"categories":3607},[],{"categories":3609},[154],{"categories":3611},[77],{"categories":3613},[],{"categories":3615},[199],{"categories":3617},[199],{"categories":3619},[551],{"categories":3621},[],{"categories":3623},[139],{"categories":3625},[77],{"categories":3627},[464],{"categories":3629},[114],{"categories":3631},[114],{"categories":3633},[199],{"categories":3635},[139],{"categories":3637},[154],{"categories":3639},[139],{"categories":3641},[],{"categories":3643},[],{"categories":3645},[],{"categories":3647},[117],{"categories":3649},[139],{"categories":3651},[120],{"categories":3653},[77],{"categories":3655},[77],{"categories":3657},[139],{"categories":3659},[117],{"categories":3661},[154],{"categories":3663},[139],{"categories":3665},[77],{"categories":3667},[139],{"categories":3669},[77],{"categories":3671},[154],{"categories":3673},[154],{"categories":3675},[114],{"categories":3677},[154],{"categories":3679},[77],{"categories":3681},[104],{"categories":3683},[77],{"categories":3685},[77],{"categories":3687},[77],{"categories":3689},[77],{"categories":3691},[],{"categories":3693},[109],{"categories":3695},[],{"categories":3697},[199],{"categories":3699},[139],{"categories":3701},[139],{"categories":3703},[],{"categories":3705},[],{"categories":3707},[],{"categories":3709},[139],{"categories":3711},[109],{"categories":3713},[139],{"categories":3715},[139],{"categories":3717},[],{"categories":3719},[139],{"categories":3721},[120],{"categories":3723},[139],{"categories":3725},[139],{"categories":3727},[139],{"categories":3729},[],{"categories":3731},[],{"categories":3733},[],{"categories":3735},[464],{"categories":3737},[464],{"categories":3739},[104],{"categories":3741},[114],{"categories":3743},[104,117],{"categories":3745},[139],{"categories":3747},[109],{"categories":3749},[],{"categories":3751},[120],{"categories":3753},[199],{"categories":3755},[139],{"categories":3757},[77],{"categories":3759},[139],{"categories":3761},[],{"categories":3763},[199],{"categories":3765},[464],{"categories":3767},[114],{"categories":3769},[104],{"categories":3771},[464],{"categories":3773},[114],{"categories":3775},[154],{"categories":3777},[114],{"categories":3779},[154],{"categories":3781},[139],{"categories":3783},[154],{"categories":3785},[154],{"categories":3787},[77],{"categories":3789},[199],{"categories":3791},[139],{"categories":3793},[117],{"categories":3795},[],{"categories":3797},[139],{"categories":3799},[120],{"categories":3801},[199],{"categories":3803},[104],{"categories":3805},[139],{"categories":3807},[199],{"categories":3809},[154],{"categories":3811},[139],{"categories":3813},[139],{"categories":3815},[199],{"categories":3817},[139],{"categories":3819},[154],{"categories":3821},[139],{"categories":3823},[],{"categories":3825},[139],{"categories":3827},[139],{"categories":3829},[139],{"categories":3831},[139],{"categories":3833},[],{"categories":3835},[114],{"categories":3837},[464],{"categories":3839},[],{"categories":3841},[],{"categories":3843},[139],{"categories":3845},[104],{"categories":3847},[117],{"categories":3849},[104],{"categories":3851},[104],{"categories":3853},[114],{"categories":3855},[],{"categories":3857},[139],{"categories":3859},[109],{"categories":3861},[139],{"categories":3863},[139],{"categories":3865},[],{"categories":3867},[114],{"categories":3869},[109],{"categories":3871},[139,464],{"categories":3873},[114,464],{"categories":3875},[464],{"categories":3877},[139],{"categories":3879},[114],{"categories":3881},[114],{"categories":3883},[77],{"categories":3885},[77],{"categories":3887},[77],{"categories":3889},[139],{"categories":3891},[120],{"categories":3893},[114],{"categories":3895},[],{"categories":3897},[464],{"categories":3899},[],{"categories":3901},[464],{"categories":3903},[464],{"categories":3905},[104],{"categories":3907},[114],{"categories":3909},[],{"categories":3911},[464],{"categories":3913},[139],{"categories":3915},[109],{"categories":3917},[139],{"categories":3919},[120],{"categories":3921},[77],{"categories":3923},[77],{"categories":3925},[77],{"categories":3927},[464],{"categories":3929},[],{"categories":3931},[],{"categories":3933},[],{"categories":3935},[139],{"categories":3937},[77],{"categories":3939},[139],{"categories":3941},[77],{"categories":3943},[464],{"categories":3945},[464],{"categories":3947},[139],{"categories":3949},[114],{"categories":3951},[],{"categories":3953},[139],{"categories":3955},[139],{"categories":3957},[139],{"categories":3959},[],{"categories":3961},[],{"categories":3963},[464],{"categories":3965},[464],{"categories":3967},[139,464],{"categories":3969},[114],{"categories":3971},[114],{"categories":3973},[114],{"categories":3975},[114],{"categories":3977},[114],{"categories":3979},[114],{"categories":3981},[],{"categories":3983},[77],{"categories":3985},[139],{"categories":3987},[77],{"categories":3989},[117],{"categories":3991},[139],{"categories":3993},[551],{"categories":3995},[551],{"categories":3997},[114],{"categories":3999},[77],{"categories":4001},[],{"categories":4003},[114],{"categories":4005},[139],{"categories":4007},[],{"categories":4009},[120],{"categories":4011},[],{"categories":4013},[139],{"categories":4015},[114],{"categories":4017},[109],{"categories":4019},[139],{"categories":4021},[],{"categories":4023},[],{"categories":4025},[120],{"categories":4027},[120],{"categories":4029},[154],{"categories":4031},[120],{"categories":4033},[114],{"categories":4035},[],{"categories":4037},[114],{"categories":4039},[109],{"categories":4041},[139],{"categories":4043},[139],{"categories":4045},[],{"categories":4047},[139],{"categories":4049},[154],{"categories":4051},[139],{"categories":4053},[],{"categories":4055},[199],{"categories":4057},[77],{"categories":4059},[77],{"categories":4061},[104],{"categories":4063},[104],{"categories":4065},[104],{"categories":4067},[114],{"categories":4069},[104],{"categories":4071},[114],{"categories":4073},[464],{"categories":4075},[551],{"categories":4077},[109],{"categories":4079},[109],{"categories":4081},[109],{"categories":4083},[464],{"categories":4085},[109,104],{"categories":4087},[199],{"categories":4089},[114],{"categories":4091},[],{"categories":4093},[139],{"categories":4095},[],{"categories":4097},[77],{"categories":4099},[199],{"categories":4101},[120],{"categories":4103},[77],{"categories":4105},[154],{"categories":4107},[],{"categories":4109},[114],{"categories":4111},[],{"categories":4113},[551],{"categories":4115},[],{"categories":4117},[120],{"categories":4119},[120],{"categories":4121},[199],{"categories":4123},[],{"categories":4125},[139],{"categories":4127},[199],{"categories":4129},[],{"categories":4131},[139],{"categories":4133},[139],{"categories":4135},[],{"categories":4137},[154],{"categories":4139},[139],{"categories":4141},[],{"categories":4143},[139],{"categories":4145},[],{"categories":4147},[],{"categories":4149},[114],{"categories":4151},[114],{"categories":4153},[],{"categories":4155},[77],{"categories":4157},[77],{"categories":4159},[77],{"categories":4161},[139,114],{"categories":4163},[114],{"categories":4165},[114],{"categories":4167},[114],{"categories":4169},[199],{"categories":4171},[199],{"categories":4173},[],{"categories":4175},[109],{"categories":4177},[139],{"categories":4179},[199],{"categories":4181},[199],{"categories":4183},[109],{"categories":4185},[104],{"categories":4187},[114],{"categories":4189},[77],{"categories":4191},[139],{"categories":4193},[139],{"categories":4195},[114],{"categories":4197},[77],{"categories":4199},[114],{"categories":4201},[139],{"categories":4203},[117],{"categories":4205},[],{"categories":4207},[139],{"categories":4209},[],{"categories":4211},[139],{"categories":4213},[139],{"categories":4215},[77],{"categories":4217},[],{"categories":4219},[199],{"categories":4221},[139],{"categories":4223},[114],{"categories":4225},[114],{"categories":4227},[77],{"categories":4229},[154],{"categories":4231},[154],{"categories":4233},[109],{"categories":4235},[139],{"categories":4237},[114],{"categories":4239},[],{"categories":4241},[114],{"categories":4243},[139],{"categories":4245},[109],{"categories":4247},[139],{"categories":4249},[139],{"categories":4251},[139],{"categories":4253},[114],{"categories":4255},[199],{"categories":4257},[139],{"categories":4259},[120],{"categories":4261},[139],{"categories":4263},[139],{"categories":4265},[139],{"categories":4267},[139],{"categories":4269},[],{"categories":4271},[139],{"categories":4273},[199],{"categories":4275},[120],{"categories":4277},[139],{"categories":4279},[120],{"categories":4281},[],{"categories":4283},[],{"categories":4285},[],{"categories":4287},[139],{"categories":4289},[],{"categories":4291},[],{"categories":4293},[],{"categories":4295},[],{"categories":4297},[114],{"categories":4299},[154],{"categories":4301},[114],{"categories":4303},[114],{"categories":4305},[77],{"categories":4307},[104],{"categories":4309},[139],{"categories":4311},[139],{"categories":4313},[139],{"categories":4315},[104],{"categories":4317},[154],{"categories":4319},[],{"categories":4321},[199],{"categories":4323},[117],{"categories":4325},[139],{"categories":4327},[120],{"categories":4329},[154],{"categories":4331},[154],{"categories":4333},[551],{"categories":4335},[114],{"categories":4337},[139],{"categories":4339},[139],{"categories":4341},[154],{"categories":4343},[139],{"categories":4345},[],{"categories":4347},[],{"categories":4349},[464],{"categories":4351},[120],{"categories":4353},[154],{"categories":4355},[139],{"categories":4357},[109],{"categories":4359},[154],{"categories":4361},[104],{"categories":4363},[114],{"categories":4365},[114],{"categories":4367},[109],{"categories":4369},[139],{"categories":4371},[],{"categories":4373},[],{"categories":4375},[],{"categories":4377},[139],{"categories":4379},[],{"categories":4381},[109],{"categories":4383},[],{"categories":4385},[139],{"categories":4387},[],{"categories":4389},[109],{"categories":4391},[114],{"categories":4393},[139],{"categories":4395},[464],{"categories":4397},[139],{"categories":4399},[154],{"categories":4401},[139],{"categories":4403},[154],{"categories":4405},[154],{"categories":4407},[],{"categories":4409},[],{"categories":4411},[154],{"categories":4413},[154],{"categories":4415},[154],{"categories":4417},[],{"categories":4419},[154],{"categories":4421},[114],{"categories":4423},[114],{"categories":4425},[],{"categories":4427},[139],{"categories":4429},[117],{"categories":4431},[199],{"categories":4433},[139],{"categories":4435},[],{"categories":4437},[154],{"categories":4439},[139],{"categories":4441},[551],{"categories":4443},[154],{"categories":4445},[154],{"categories":4447},[117],{"categories":4449},[77],{"categories":4451},[77],{"categories":4453},[],{"categories":4455},[77],{"categories":4457},[139],{"categories":4459},[],{"categories":4461},[],{"categories":4463},[114],{"categories":4465},[],{"categories":4467},[114],{"categories":4469},[114],{"categories":4471},[109],{"categories":4473},[139],{"categories":4475},[109],{"categories":4477},[154],{"categories":4479},[109],{"categories":4481},[77],{"categories":4483},[77],{"categories":4485},[77],{"categories":4487},[109],{"categories":4489},[139],{"categories":4491},[114],{"categories":4493},[464],{"categories":4495},[104],{"categories":4497},[464],{"categories":4499},[464],{"categories":4501},[77],{"categories":4503},[464],{"categories":4505},[464],[4507,4593,4651,4727],{"id":4508,"title":4509,"ai":4510,"body":4515,"categories":4552,"created_at":78,"date_modified":78,"description":69,"extension":80,"faq":78,"featured":81,"kicker_label":78,"meta":4553,"navigation":83,"path":4580,"published_at":78,"question":78,"scraped_at":4581,"seo":4582,"sitemap":4583,"source_id":4584,"source_name":4585,"source_type":4586,"source_url":4587,"stem":4588,"tags":4589,"thumbnail_url":78,"tldr":4590,"tweet":78,"unknown_tags":4591,"__hash__":4592},"summaries\u002Fsummaries\u002Fclusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary.md","ClusterFuzzLite: Fuzz PRs in CI to Catch Bugs Early",{"provider":7,"model":8,"input_tokens":4511,"output_tokens":4512,"processing_time_ms":4513,"cost_usd":4514},4218,2216,10319,0.00192895,{"type":14,"value":4516,"toc":4547},[4517,4521,4524,4527,4531,4534,4537,4541,4544],[17,4518,4520],{"id":4519},"embed-fuzzing-in-pr-workflows-to-block-bugs-pre-commit","Embed Fuzzing in PR Workflows to Block Bugs Pre-Commit",[22,4522,4523],{},"ClusterFuzzLite integrates into CI pipelines like GitHub Actions via a few lines of code, triggering coverage-guided fuzzing on pull requests with libFuzzer. This catches regressions from code changes immediately, preventing vulnerable commits. Crashing testcases download directly for reproduction and fixing. For deeper issues missed in short PR runs, enable batch fuzzing to run asynchronously, building a corpus that improves future PR fuzzing efficiency. Coverage reports highlight unfuzzed code paths, guiding developers to expand targets and increase effectiveness.",[22,4525,4526],{},"Modular design lets you enable only needed features—skip batch fuzzing if PR checks suffice—keeping workflows lean. Based on Google's ClusterFuzz, it scales proven infrastructure for open-source and small teams without full ClusterFuzz overhead.",[17,4528,4530],{"id":4529},"target-memory-and-behavior-bugs-with-libfuzzer-sanitizers","Target Memory and Behavior Bugs with libFuzzer + Sanitizers",[22,4532,4533],{},"Pair libFuzzer's coverage-guided mutation with sanitizers for precise vulnerability detection: AddressSanitizer uncovers memory errors like buffer overflows; MemorySanitizer flags uninitialized memory reads; UndefinedBehaviorSanitizer catches overflows, misaligned accesses, and other UB. Compile targets with these (e.g., -fsanitize=address,fuzzer) for drop-in integration.",[22,4535,4536],{},"This combo finds issues traditional tests miss, as fuzzers explore edge cases via random inputs guided by code coverage. PR fuzzing runs quickly (minutes), while batch mode sustains hours\u002Fdays for rare deep bugs.",[17,4538,4540],{"id":4539},"minimize-setup-with-multi-language-and-ci-support","Minimize Setup with Multi-Language and CI Support",[22,4542,4543],{},"Supports C, C++, Java\u002FJVM, Go, Python, Rust, Swift—cover most projects without engine swaps. CI compatibility includes GitHub Actions, GitLab, Google Cloud Build, Prow; extend to others by implementing a simple platform interface.",[22,4545,4546],{},"Start with build integration: expose fuzzer binaries via your build script. Then add runner steps for PR\u002Fevent fuzzing. New to fuzzing? Review overview for libFuzzer\u002Fsanitizer basics; experienced users jump to build docs. Track issues on GitHub, join mailing list for updates, and report usage via form to influence roadmap.",{"title":69,"searchDepth":70,"depth":70,"links":4548},[4549,4550,4551],{"id":4519,"depth":70,"text":4520},{"id":4529,"depth":70,"text":4530},{"id":4539,"depth":70,"text":4540},[77],{"content_references":4554,"triage":4575},[4555,4560,4563,4566,4569,4572],{"type":4556,"title":4557,"url":4558,"context":4559},"tool","ClusterFuzz","https:\u002F\u002Fgoogle.github.io\u002Fclusterfuzz\u002F","mentioned",{"type":4556,"title":4561,"url":4562,"context":4559},"libFuzzer","https:\u002F\u002Fllvm.org\u002Fdocs\u002FLibFuzzer.html",{"type":4556,"title":4564,"url":4565,"context":4559},"AddressSanitizer","https:\u002F\u002Fclang.llvm.org\u002Fdocs\u002FAddressSanitizer.html",{"type":4556,"title":4567,"url":4568,"context":4559},"MemorySanitizer","https:\u002F\u002Fclang.llvm.org\u002Fdocs\u002FMemorySanitizer.html",{"type":4556,"title":4570,"url":4571,"context":4559},"UndefinedBehaviorSanitizer","https:\u002F\u002Fclang.llvm.org\u002Fdocs\u002FUndefinedBehaviorSanitizer.html",{"type":4556,"title":4573,"url":4574,"context":4559},"Just the Docs","https:\u002F\u002Fgithub.com\u002Fjust-the-docs\u002Fjust-the-docs",{"relevance":4576,"novelty":4577,"quality":4576,"actionability":4576,"composite":4578,"reasoning":4579},4,3,3.8,"Category: AI Automation. The article provides a practical tool (ClusterFuzzLite) that integrates fuzz testing into CI workflows, addressing the pain point of catching bugs early in the development process. It offers specific guidance on implementation and highlights the benefits of using fuzzing with various programming languages.","\u002Fsummaries\u002Fclusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary","2026-04-16 03:00:36",{"title":4509,"description":69},{"loc":4580},"c8044cb4a73d18a0","__oneoff__","article","https:\u002F\u002Fgoogle.github.io\u002Fclusterfuzzlite\u002F","summaries\u002Fclusterfuzzlite-fuzz-prs-in-ci-to-catch-bugs-early-summary",[95,96,97],"Add ClusterFuzzLite to GitHub Actions workflows with minimal code to fuzz pull requests for vulnerabilities in C\u002FC++\u002FJava\u002FGo\u002FPython\u002FRust\u002FSwift using libFuzzer and sanitizers, download crashes, view coverage, and run async batch fuzzing.",[],"Bh57mohORE4BubcPbNy9UCYTZAFdxj4ByLTN4bjXM1M",{"id":4594,"title":4595,"ai":4596,"body":4601,"categories":4629,"created_at":78,"date_modified":78,"description":69,"extension":80,"faq":78,"featured":81,"kicker_label":78,"meta":4630,"navigation":83,"path":4638,"published_at":4639,"question":78,"scraped_at":4640,"seo":4641,"sitemap":4642,"source_id":4643,"source_name":4644,"source_type":4586,"source_url":4645,"stem":4646,"tags":4647,"thumbnail_url":78,"tldr":4648,"tweet":78,"unknown_tags":4649,"__hash__":4650},"summaries\u002Fsummaries\u002Fnorth-korea-hit-axios-npm-maintainer-exposing-100m-summary.md","North Korea Hit Axios NPM Maintainer, Exposing 100M Downloads",{"provider":7,"model":8,"input_tokens":4597,"output_tokens":4598,"processing_time_ms":4599,"cost_usd":4600},3899,1572,23422,0.00154315,{"type":14,"value":4602,"toc":4624},[4603,4607,4610,4614,4617,4621],[17,4604,4606],{"id":4605},"dependency-compromise-bypasses-target-defenses","Dependency Compromise Bypasses Target Defenses",[22,4608,4609],{},"North Korean actors (tracked as UNC1069) didn't infiltrate OpenAI systems. Instead, they targeted Jason Saayman, maintainer of the Axios npm package with over 100 million weekly downloads across most software build pipelines. A fake job offer via Microsoft Teams on March 31, 2026, led to compromise. Axios powers apps like ChatGPT Desktop, so updating the app pulled in malicious code. Lesson: Audit dependencies rigorously—treat open-source maintainers as your perimeter. Use tools like npm audit, lockfiles, and sigstore for signing to verify package integrity before installs.",[17,4611,4613],{"id":4612},"social-engineering-trumps-technical-exploits","Social Engineering Trumps Technical Exploits",[22,4615,4616],{},"Attack started with a seemingly legitimate Microsoft Teams outreach, buried in OpenAI coverage. Maintainers like Saayman face constant recruitment; hackers exploit this with tailored lures. Defend by: (1) Verify unsolicited contacts via official channels, (2) Use multi-factor auth and hardware keys for repos, (3) Rotate secrets post-contact. Impact: One compromised maintainer poisons millions of environments, amplifying reach far beyond single apps.",[17,4618,4620],{"id":4619},"media-hype-misses-supply-chain-reality","Media Hype Misses Supply Chain Reality",[22,4622,4623],{},"Outlets framed as 'OpenAI breach,' downplaying the dependency angle in paragraph four or less. True exposure: 100 million environments. Builders must prioritize supply chain security—scan pipelines with Dependabot or Snyk, prefer vendored critical deps, and monitor maintainer activity. Trade-off: Full isolation slows dev velocity, but partial (e.g., air-gapped builds for prod) prevents catastrophic updates like Sunday morning app notifications.",{"title":69,"searchDepth":70,"depth":70,"links":4625},[4626,4627,4628],{"id":4605,"depth":70,"text":4606},{"id":4612,"depth":70,"text":4613},{"id":4619,"depth":70,"text":4620},[77],{"content_references":4631,"triage":4634},[4632],{"type":4556,"title":4633,"context":4559},"Axios",{"relevance":4635,"novelty":4576,"quality":4576,"actionability":4576,"composite":4636,"reasoning":4637},5,4.35,"Category: AI & LLMs. The article discusses a significant security breach related to an npm package that affects AI applications, emphasizing the importance of dependency management and supply chain security, which is crucial for product builders. It provides actionable advice on auditing dependencies and securing maintainers, making it highly relevant and practical for the target audience.","\u002Fsummaries\u002Fnorth-korea-hit-axios-npm-maintainer-exposing-100m-summary","2026-05-04 14:47:50","2026-05-04 16:13:16",{"title":4595,"description":69},{"loc":4638},"f817b802265235ad","Level Up Coding","https:\u002F\u002Flevelup.gitconnected.com\u002Fi-clicked-an-app-update-on-sunday-morning-it-came-from-north-korea-8b1d97a10387?source=rss----5517fd7b58a6---4","summaries\u002Fnorth-korea-hit-axios-npm-maintainer-exposing-100m-summary",[96,97],"OpenAI detected NK hackers, but they compromised Axios (100M weekly downloads) via fake job offer to maintainer Jason Saayman on Microsoft Teams—not OpenAI directly.",[],"Y4Cd9iF3Hy9GmQpi_ABcE9Z63Vm1MLfqGLk-7h72F4E",{"id":4652,"title":4653,"ai":4654,"body":4659,"categories":4700,"created_at":78,"date_modified":78,"description":69,"extension":80,"faq":78,"featured":81,"kicker_label":78,"meta":4701,"navigation":83,"path":4714,"published_at":4715,"question":78,"scraped_at":4716,"seo":4717,"sitemap":4718,"source_id":4719,"source_name":4720,"source_type":4586,"source_url":4721,"stem":4722,"tags":4723,"thumbnail_url":78,"tldr":4724,"tweet":78,"unknown_tags":4725,"__hash__":4726},"summaries\u002Fsummaries\u002Fgithub-rce-via-single-git-push-x-stat-injection-summary.md","GitHub RCE via Single Git Push X-Stat Injection",{"provider":7,"model":8,"input_tokens":4655,"output_tokens":4656,"processing_time_ms":4657,"cost_usd":4658},3870,2355,26057,0.001929,{"type":14,"value":4660,"toc":4695},[4661,4665,4672,4675,4679,4682,4685,4689],[17,4662,4664],{"id":4663},"exploit-mechanism-x-stat-injection-in-internal-git-protocol","Exploit Mechanism: X-Stat Injection in Internal Git Protocol",[22,4666,4667,4668,4671],{},"GitHub's internal git protocol processes push requests with an X-Stat field that's vulnerable to injection attacks. An authenticated attacker crafts a malicious git push that injects payloads into this field, bypassing normal access controls. This triggers remote code execution (RCE) directly on GitHub.com infrastructure and GitHub Enterprise Server (GHES) instances. No special tools needed—just a standard ",[26,4669,4670],{},"git push"," command developers run daily, highlighting risks in routine operations.",[22,4673,4674],{},"Key attack vector: The protocol doesn't properly sanitize or validate X-Stat headers during push handling, allowing arbitrary code injection. Builders should audit custom git hooks and protocol extensions for similar field injection flaws, as they mirror this path.",[17,4676,4678],{"id":4677},"impact-widespread-repo-access-and-high-severity","Impact: Widespread Repo Access and High Severity",[22,4680,4681],{},"RCE grants attackers control over GitHub servers, enabling access to millions of repositories beyond the attacker's permissions. This compromises private code, secrets, and deployment pipelines connected to repos. Tracked as CVE-2026-3854 with High severity, it underscores how a single push can escalate privileges across the platform.",[22,4683,4684],{},"Trade-offs in GitHub's design: Optimized for speed in high-volume pushes trades off stricter input validation, a common pitfall in distributed version control systems. Mitigate by enabling strict protocol enforcement and monitoring anomalous push patterns in your workflows.",[17,4686,4688],{"id":4687},"lessons-for-secure-git-workflows","Lessons for Secure Git Workflows",[22,4690,4691,4692,4694],{},"Everyday ",[26,4693,4670],{}," isn't bulletproof—internal protocol flaws expose production systems. Scan for field injections in git server configs, use authenticated-only pushes where possible, and integrate vulnerability alerts like CVE feeds into CI\u002FCD. For GHES users, patch immediately and review audit logs for suspicious X-Stat activity. This vuln proves even battle-tested platforms like GitHub need ongoing protocol hardening.",{"title":69,"searchDepth":70,"depth":70,"links":4696},[4697,4698,4699],{"id":4663,"depth":70,"text":4664},{"id":4677,"depth":70,"text":4678},{"id":4687,"depth":70,"text":4688},[464],{"content_references":4702,"triage":4711},[4703,4706],{"type":4556,"title":4704,"url":4705,"context":4559},"GitHub","https:\u002F\u002Fgithub.com\u002F",{"type":4707,"title":4708,"url":4709,"context":4710},"other","CVE-2026-3854","https:\u002F\u002Fwww.cve.org\u002Fcverecord?id=CVE-2026-3854","cited",{"relevance":4577,"novelty":4577,"quality":4576,"actionability":4576,"composite":4712,"reasoning":4713},3.45,"Category: DevOps. The article discusses a specific vulnerability in GitHub's internal git protocol, which is relevant to DevOps practices. It provides actionable insights on securing git workflows, such as auditing custom git hooks and enabling strict protocol enforcement, which can help builders mitigate similar risks.","\u002Fsummaries\u002Fgithub-rce-via-single-git-push-x-stat-injection-summary","2026-04-29 01:55:02","2026-05-03 17:00:51",{"title":4653,"description":69},{"loc":4714},"3e8ba433c0dc3549","Generative AI","https:\u002F\u002Fgenerativeai.pub\u002Fit-only-took-one-git-push-to-access-millions-of-github-repos-21d055d9c774?source=rss----440100e76000---4","summaries\u002Fgithub-rce-via-single-git-push-x-stat-injection-summary",[95,96],"Authenticated users exploited X-Stat field injection in GitHub's internal git protocol for RCE on GitHub.com and GHES using a standard git push, enabling access to millions of repos (CVE-2026-3854, High severity).",[],"8ZDavcJxp8ljuKY32lbTGciKG7RO_gmknKUVAFmcl3E",{"id":4728,"title":4729,"ai":4730,"body":4735,"categories":4828,"created_at":78,"date_modified":78,"description":69,"extension":80,"faq":78,"featured":81,"kicker_label":78,"meta":4829,"navigation":83,"path":4847,"published_at":4848,"question":78,"scraped_at":4848,"seo":4849,"sitemap":4850,"source_id":4851,"source_name":4852,"source_type":4586,"source_url":4853,"stem":4854,"tags":4855,"thumbnail_url":78,"tldr":4857,"tweet":78,"unknown_tags":4858,"__hash__":4859},"summaries\u002Fsummaries\u002Fdatasette-replaces-csrf-tokens-with-sec-fetch-site-summary.md","Datasette Replaces CSRF Tokens with Sec-Fetch-Site Headers",{"provider":7,"model":8,"input_tokens":4731,"output_tokens":4732,"processing_time_ms":4733,"cost_usd":4734},4500,2477,15880,0.002116,{"type":14,"value":4736,"toc":4823},[4737,4741,4760,4763,4767,4770,4810,4813,4817],[17,4738,4740],{"id":4739},"simplifying-csrf-protection-without-tokens","Simplifying CSRF Protection Without Tokens",[22,4742,4743,4744,4747,4748,4751,4752,4755,4756,4759],{},"Traditional CSRF tokens in Datasette required adding ",[26,4745,4746],{},"\u003Cinput type=\"hidden\" name=\"csrftoken\" value=\"{{ csrftoken() }}\">"," to every form in templates and manually disabling protection via the ",[26,4749,4750],{},"skip_csrf(datasette, scope)"," plugin hook for external API calls. This scattered complexity made maintenance painful. The new approach uses the browser's Sec-Fetch-Site header—set to ",[26,4753,4754],{},"same-origin"," for same-site requests and ",[26,4757,4758],{},"cross-site"," for others—to block cross-site form submissions automatically, protecting against CSRF without any tokens or per-endpoint tweaks.",[22,4761,4762],{},"This header-based method, proven secure in production, lets you build forms without extra inputs and expose APIs without CSRF exemptions, reducing boilerplate and errors.",[17,4764,4766],{"id":4765},"key-changes-in-pr-2689","Key Changes in PR #2689",[22,4768,4769],{},"The pull request introduces ASGI middleware inspired by Filippo Valsorda's August 2025 research essay and Go 1.25's net\u002Fhttp implementation:",[4771,4772,4773,4781,4788,4795],"ul",{},[4774,4775,4776,4777,4780],"li",{},"Replaces ",[26,4778,4779],{},"asgi-csrf"," library entirely.",[4774,4782,4783,4784,4787],{},"Deletes all ",[26,4785,4786],{},"csrftoken()"," hidden inputs from templates.",[4774,4789,4790,4791,4794],{},"Removes the ",[26,4792,4793],{},"skip_csrf"," plugin hook, its docs, and tests.",[4774,4796,4797,4798,4804,4805,4809],{},"Updates internals docs (",[4799,4800,4801],"a",{"href":4801,"rel":4802},"https:\u002F\u002Fdocs.datasette.io\u002Fen\u002Flatest\u002Finternals.html#csrf-protection",[4803],"nofollow",") and upgrade guide (",[4799,4806,4807],{"href":4807,"rel":4808},"https:\u002F\u002Fdocs.datasette.io\u002Fen\u002Flatest\u002Fupgrade_guide.html#csrf-protection",[4803],") to explain header checks.",[22,4811,4812],{},"Claude Code handled 10 commits under guidance, with GPT-5.4 cross-review—AI accelerated the refactor while keeping it precise.",[17,4814,4816],{"id":4815},"why-it-works-and-upgrade-impact","Why It Works and Upgrade Impact",[22,4818,4819,4820,4822],{},"Browsers enforce Sec-Fetch-Site reliably since Chrome 76+, covering 99%+ of users without JavaScript or tokens. It blocks malicious cross-site POSTs natively, trading zero compatibility issues for token pains. Upgrade by pulling latest Datasette: templates clean up automatically, plugins simplify sans ",[26,4821,4793],{},". Test forms and APIs stay secure, but verify no custom skips linger.",{"title":69,"searchDepth":70,"depth":70,"links":4824},[4825,4826,4827],{"id":4739,"depth":70,"text":4740},{"id":4765,"depth":70,"text":4766},{"id":4815,"depth":70,"text":4816},[77],{"content_references":4830,"triage":4844},[4831,4834,4837,4841],{"type":4707,"title":4832,"url":4833,"context":4710},"datasette PR #2689: Replace token-based CSRF with Sec-Fetch-Site header protection","https:\u002F\u002Fgithub.com\u002Fsimonw\u002Fdatasette\u002Fpull\u002F2689",{"type":4556,"title":4779,"author":4835,"url":4836,"context":4559},"Simon Willison","https:\u002F\u002Fgithub.com\u002Fsimonw\u002Fasgi-csrf",{"type":4707,"title":4838,"author":4839,"url":4840,"context":4710},"CSRF","Filippo Valsorda","https:\u002F\u002Fwords.filippo.io\u002Fcsrf\u002F",{"type":4707,"title":4842,"url":4843,"context":4710},"Go 1.25","https:\u002F\u002Ftip.golang.org\u002Fdoc\u002Fgo1.25#nethttppkgnethttp",{"relevance":4577,"novelty":4577,"quality":4576,"actionability":4577,"composite":4845,"reasoning":4846},3.25,"Category: Software Engineering. The article discusses a technical change in the Datasette framework that simplifies CSRF protection, which is relevant to developers working on web applications. It provides a new approach to CSRF protection using Sec-Fetch-Site headers, but lacks detailed actionable steps for implementation.","\u002Fsummaries\u002Fdatasette-replaces-csrf-tokens-with-sec-fetch-site-summary","2026-04-20 16:57:45",{"title":4729,"description":69},{"loc":4847},"e48f2d4acf4592df","Simon Willison's Weblog","https:\u002F\u002Fsimonwillison.net\u002F2026\u002FApr\u002F14\u002Freplace-token-based-csrf\u002F#atom-everything","summaries\u002Fdatasette-replaces-csrf-tokens-with-sec-fetch-site-summary",[4856,96,97],"python","Datasette PR #2689 swaps token-based CSRF for Sec-Fetch-Site header checks, eliminating hidden form tokens and skip_csrf hooks for simpler protection across forms and APIs.",[],"YO_Vb-KvzI4PpzT_r1SrDL0p_uHH7T6RI5Qj3JhUP0s"]