CINXE.COM
Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;max-width:60rem;padding-left:1.5rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{font-size:1.5rem;font-weight:500;line-height:2.25rem}@media (width <= 720px){.h2{font-size:1.25rem;line-height:1.5rem}}#challenge-error-text{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+);background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme:dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="390"></head><body class="no-js"><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt={cvId: '3',cZone: "bookshop.org",cType: 'managed',cRay: '914a39e40a9efc0c',cH: 'tsAk.rYmXrQCHoqm3yW6bVj_YvJzH3nW4oKvNUIz0f0-1740009728-1.2.1.1-CJ.aoKcZDVmUOfYlZHzyZkuSMQ0Ozbhntg5cjLkGMnzZH55ugCD0Ir9sCXHwnfPi',cUPMDTk: "\/a\/23900\/9780857853691?__cf_chl_tk=3Y03b1xL6pcuagp5oH5f1Ycr_wM_HdoyBSeOZxEK6_A-1740009728-1.0.1.1-skSqqYP1CKQjEeTicCrEVaD1x7sLsM5hynYoQbFhpN8",cFPWv: 'g',cITimeS: '1740009728',cTTimeMs: '1000',cMTimeMs: '390000',cTplC: 0,cTplV: 5,cTplB: 'cf',cK: "unsupported-browser",fa: "\/a\/23900\/9780857853691?__cf_chl_f_tk=3Y03b1xL6pcuagp5oH5f1Ycr_wM_HdoyBSeOZxEK6_A-1740009728-1.0.1.1-skSqqYP1CKQjEeTicCrEVaD1x7sLsM5hynYoQbFhpN8",md: "uLUDgZPTWN2LwkPkd.VJujip3OpsBJktzMT.hr1tKcg-1740009728-1.2.1.1-7.lL.lJRbZ.EZkF_fxlZw4jAPrF6gEjzzSjZUsd0kQXs.GKaa_oeZUmIMf.vxVNOAtNuG7IdK_zH4adHMciLsb8k85Dyqenk1Gnkk0ZRubTJaP.UKvwgzphRsOYidPA7KTVupzNyL23BfrAlC.UXewCtzOcN.FlnL5rqd_NqESuHeYH1HzN.ikDESo2TfIF7GvwdNKpF9Ni0oHi0y2hRnQTBZ9iPwcgWugH7XIiW78g4e5kFZGl5147mAqCTNdUaJZ_nJFjUzcihaAveEFVZjj_bFkELmmhYIeLTV7y4g2oiK0YQEt5wrklUhbiMmoRY9o5iChUHgKcomQnUy0cVHmzeKii1dlE_9DzTEHq5VBWD2nLlcXESGwbfGkkLDxEcqViVRWFZxnnmB5VivybeeMrRsDrR0NFVXtPnsWncoJ4JryPRRSST76cejCrVHNG5XJ7y3Nco.9hTGjEeFhwUQPE1ST34bBCCcpqFFvDfZyQkEF8bcTkw_Ko8BpIXL88pGKlAYcVZD4EYMfH.L1B1cYmeZR5n.sGH08KGfp9NTEM3dM3dp_Locfc5hyrhMMENhnoI7rwGXxcZsNLd1sWyAEanV7N.JAnwFpoht42Kk__NXk1m0z0zOwqU_tBTRJvAiH4RgOF4nXLCvE6U4UkFGb0oFha59fmsIYme8EEeSTojcna6hXQqT_rvNir3kxVuEX066XatEyZ6TcxMBSQhmEaVcMqQkxeElH_WXS67usKYAqU6PZPBmBO28sdrEwnUTJ5kGAXcyy8dQh8fxfUiniAMnOSAbwQds8rtDpgbnGs3Yaswk9l9qxaEwnIg8ZRLxgC42G7oNMebtNkAPQvm363BpNoJhWbAO9xcdapaQn_78u2HIwe8DcBhfUEGi7ey21V_28KHXftAvnInr7nrhBY5zVG.1SqYYLxFbBMzEN68QHD8MCO2GBbuDg0jj7xueOk4HDy7uwIUgLjXeVeyAFAL5Nn3KkMNZAMTuFEfI9Hmo39u2kDNcFFjUpcRdMKTeLMST.mK.VeoRovfWQGSo85vgtffXgvHtXOhqyyE6cNeTVxDpRtlRiXj7gJRl0mqOIFOOwqV0lepTi6W_sLsRYZXLd55bYxPgRhSoIhVBu65XpzJWO9nL84m6M272cbAC0be5Lk_FGq2iwgAS_OqN4zZb5__Y1Zm4hFVmdFxf563Uc0JAB.BIZAN2E9dE6W43xhxcLDcJSY3L_sK4Q0Juy1HQqQ50jdXZB8CVctAubIQHxkn4zCJEqEQyX9Z1YCU4LGfAVeR7eTBI7OEfbszse9dylqp4FEExGPA8ndwRWdmD363zDafmAUYYGIRu9usiIU1JvF1OEaWDf30xLtzm22zuCmy9.EY7vDnJeTzLBB5bE43lBi28TlNSHjvb6vB0UOH41JO6DXiHly9vAVMnSZZ.7jSDwXDl3Z1lXdtSrUqhkN9dveTO5hJ97mXaEEddjyfEVasHvaXVsc2rhLALgf.WLXzq70iJ7xL3RQ8rqKI3ZtFFBpdIBJPfvtin1cfBVa.0i6ok3LNevACtuxFm8kY1J0cLTUa4v_Hu2nW8cun_Lq7L9pE5ao5i7mGoo.KSgzWiYqm.hvzJSaEL6FNDdgpnNpjQGmdL21gzYav0WmKgEg5FgBVVv5y05WRJilZMWfF9ZzqUiqB2oM1EGoWj7pDK4MT8imZZH_5t65OYkdKVdY3CefoYrtjQcJ1zg5W.93byOty8f0FrTL2PlCaar4cs6WCSOBjPaCcM7IxpUSJ5l.FeYFPOZMjCKatnIakxz1lzXdwdWSM7XdwO65gt02tGWWsYDiMns7DKSwradn3g86.LmC6YMAeORw1bOQqBHR.Z7Z07nzV6.aTZEjHdnxyqvwfoZ21OVjWkv6MgzvPsA.wODc7EQcwAjQ4KCWGX4SkiFo9Mg74VJ.Cdtsbh0t43FQxIgRsEg2TrsRMm5tg.VwminZGlqO9WclLEukLqgxAgDyqJOLKQoXNzmsxBBaZSi3JPMywxRt8OsN38IZa7BoFsmmoy98l25Xx.pCd1D3VBVTq.UM1atBXU0JFkUW42ypar5GbNuh.FA6TObl7LrHHSgIU6PypJGEYfH4x.fgSMvTo0jZ0ihEvLWeH9PWZlGSdMZEwi3IK.sGWF5Cnd0okFaHyPLaSap1MSXvyeIpyuEJDjzzkh74Xd1dtOwaktyfufsUVSc7zPbK.WUHdv22E4OuWY6Qq3H8_j_1AwBjmJoSUHl06Z.chnqYI4HUgMD7nYMJ2DSQRnz67Y3DIYH73mmZ3daToNRJPt9un8rPK42dLBmDR9azxXN8R7JhjueJoouHjzllc09Jfxzt1jwI0jkdSRYM2dMpxAvzgpaRuXKAvZR1SYP5Je5BJYwbphcZwYQ_TEh2I2svJ7tR3VAdmkgCV3k7ol.YZy73s7VAr4d5Hl.7YL_g2I1.F6TEL.mnHsDUtxlvr8s35mf44u26v3wDLe0Sq113RKpbHkMPOxcfpn2OxyIbESJO9LeCrXQymRtp8gX7MwklXg_c",mdrd: "J8QvCLk.3jLF_OK42PprOR6N3QOR6gCvPkpb0bpvG9c-1740009728-1.2.1.1-YKi71ROQbBFryAsXm6mXl58c5JWqKr_P.JN0Ln4WUYxMvWRM8L9V8q9r21LVIMN_t__oSihtW2WhrWzoMOypG0uYj7YDKQdHtyJ4RlL3NJCorC.GtsZrwu5quHlJs9yUVxVSbbx5cUzs9wu6lGAtE6U7NPZy26LHbaxt8baw21qNxfo4ZTogqr6H3xNF16hiDjX.Mm.10vMiXwzNZedczLtrsqaktRHDd0gR0soSs8x.lfr7b8LFoe_cceAbb9EzWXTjIiUZFz2qYl3d5eOM28uET6EaIY8504dMXn2o_hq84VEE6LYtjE7nRlWXbF5tB4Xsk8VxR8pm.IRVYEfYV06HAT_93OC5BB3y1xg_6YWyNMaZslExLqLojG7ULZByMysBip3L81IADYVqc9yKpN1Tw_1QXJNgsXumH_9T0HaOIo76OqunP_R4QPEnPeZN25yjKVwkRq.H6i4uP0Zc0A1UjK.YxGpjdt25X.2JI9BbIc3sGyM0W.DFmSWA0PLUPbd2HDATMLGjs5K4mOzIzLLr_P4J5NhNU3ce1thVuSrY04DHSbZyqXaZooVF_rxu.5_joliYstpzr_FxTCtf5_eZoJSu1P_6TRE6FONk_xhtxyNMZXLgvBtb2RefMrd._mG2XoSvDgSGGeeepvs.O8JprqajyWCnAHEwcHGg8XGdGsFEOe2Tmk2nAXTgSQEzGbAIxkaQWRQN685UAPvoSAq8i_K7FfzzjNfyE_Ul401_L6et7u5yb7Cr4Weeo9hy9bP7ZrSYhazMUwbpsglwjE4hdprQcasGOKDQJpeS01L0BUlNZzWT3iYrzbnKwohf0eajrS4n.RAdPYED7Ktnmqvx8APNzdfc_livbPPDK9TLJwwVsj936VEOUv3sI0ud7dsOozBJWGF34DullllEME_1fR2SjkxSY6DNlo71fFvlklO.FPe01SmJIY0ANRW8c_XsrpvMqrOhP0iDjE18h9AF40NniDJIMjBya.yC1ZdeoYNrhA0k4GzUjbawN1YA.ksu42ppufsZYnWY2462edjxUpURTTrgyXUSbijNSLY7wIqrbmb6iwvHxKjZzzsURXfKEpqk9vrpH620onQrJqs7Yedbf6.264gltqlDBcUAkuJvY6EPdTkD6CYow7ZWmj.vCc9wPX_5xjcX97xo8r.3vd9IY26zGmhjfRBdUBSIVHeLgMWkSkycjiFGbwrpd1N0BR3dOoZo7iKA2Zv.qHAakCPqQQ03PqMcdoNaowwE9fVxQD2eRVUP2bpe2Hl5kbAWdmSYhU1eHlXgHSJ.y_MEmJEd4sfjJ4pudlb2YwkmjAdmQj6SPfXZgSehp3.llrOy5pvRZfTg57v5fvZrKBfmVUDBReUAsfyqoIQKelQaWrFVGZvak1BO0aJjc8RoFIQkBSpYno5kN6gGPnFroCed9oMZnKqrEni97xRCsTJjkDbCi9ZCegeceCRSAeT2oPI1j4vlduDMzSx3XUlLSm.eiwct8X7a8bk7INGX0ytMJ1qfMqbwbmGi3FdFRtbpzSpumpmWLfEQN.XAVvJjtgilHy0jQLRRxqaiM8RQY3HiXWCzSGYdv5NCCFUB829i6NNxHrraT_J58OtKX8Ig.GLGxiKAGEtrZIZ1pp.0yaIeqNEVNviVK6jpnVBtaLJreKfp.b4cyPWBTdC6sOh.wNF0BqauEYS5lDw.9ugOTMdhyjGLv918QsXwxbCtyx1sM8.9mNlwvbxQU335sg0dmyiRG9gG0.0M0Ahp5P36lJtDUckeCKn7_rdcb7xtaI35Na0VxuMOt6KUKW7L0ajFv86AVeoCMCTwU5RJxaKOW_24lH4yn7MSjDr.1PV5YBIs.5kxX4.2RzkZSdpiv43MY56wZD08aDoAz9cDTcVbB.4CYXuI8tjCDhB7ClueQu13HZ0Ik6nPf9p20SYQIdKOk43EyympWDnouAO4PAAPJFuoqLsNiX1z1ghwX0jjiUaU"};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=914a39e40a9efc0c';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null, "\/a\/23900\/9780857853691?__cf_chl_rt_tk=3Y03b1xL6pcuagp5oH5f1Ycr_wM_HdoyBSeOZxEK6_A-1740009728-1.0.1.1-skSqqYP1CKQjEeTicCrEVaD1x7sLsM5hynYoQbFhpN8" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>