<!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;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#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="360"></head><body><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: 'sourceforge.net',cType: 'managed',cRay: '95e0bd14b178ebb5',cH: 'Wkl0OZU.7QZHsySgGgJDFPx4Gf9.7aHcOC.gubUyHIs-1752325384-1.2.1.1-ZftXhNcsVg0IdRrRaBX9UJVrIlOXrnoGEJhen5SwIBsmshaf5mLq99.ETRcNtiAM',cUPMDTk:"\/p\/xsb\/src\/2263\/tree\/\/trunk\/XSB\/docs\/userman\/hooks.tex?__cf_chl_tk=0L71h1wiZh1vHuQLRERvIXrCLWTJyU3kFlMg04lGB3k-1752325384-1.0.1.1-2AgfBmSIBRETknQerbUqPsiim0.1YNwg6lw1z1qdO4E",cFPWv: 'g',cITimeS: '1752325384',cTplC:0,cTplV:5,cTplB: 'cf',fa:"\/p\/xsb\/src\/2263\/tree\/\/trunk\/XSB\/docs\/userman\/hooks.tex?__cf_chl_f_tk=0L71h1wiZh1vHuQLRERvIXrCLWTJyU3kFlMg04lGB3k-1752325384-1.0.1.1-2AgfBmSIBRETknQerbUqPsiim0.1YNwg6lw1z1qdO4E",md: '_N5mF8Zma4PfsAYI_qIpc6D_GH6EBEYE3NSAm_piK3U-1752325384-1.2.1.1-3pnhsXwZy5qGfdj3KaIEGtvab.FZ2_dsaLQj2BgJqp4iqn8.APJnnBQgpiuq_ntL_9izoBW7U2lBYG1UjYvFdCule2FeC4.8kf_7HpCIP9N.BP0tppr1dAkQSrfBYA1g1BrPXrDLiNW..3wMf4eVbU3MDceYiIZ0k0hSvNjsMoeAX0lVHQUxVFKOi7aquyh72BQWAX97Bp13HCJAzFJHQqOKVuBgoYofWVdQFjC5B_sDd5bvzX6lNHVWOKVn9dQx64gEDfOYbJC1sia7okoiUis.QZ1g2Q4FkMEJx46c.pyaRYt2r.JZ_T6Ty5jJ0gB7v6zDgpn_sRg35.SmKRuwE5I28le1IIkHVIz0Ouu3bpk4NYkAaIcmNMTwqxuxZJLWqlBLaVw14YFkmVFXH0CBxHprKF1KiG9n17M3FC6.HcuR86RPHT7yaJJzdQOfhBPuuQWs2HNUhi8A9Cme9k3RBxqiZ_P1Nrz6eVt5ApwcXPGcTBGKkdP9Hq02EMOZov3Nfv0nb4pIhVtdfyAZMaB9cQpdSKW4olP9JpSt__maMuH5P.MOowvtxAnm8wEJwrqfD08Yc5nmu783l2TdSwBuU9MHFHpOjyYiol3p6XofgQse0qT6zciGqK_PQY_AEEmTK4rfGdT9WSsruFKkRCp0pc2Atb1MqiFrkUICKzddMj42Ppdci6t1NCmK9juF7JVsIt4YMdpx7MSvnDYXWZtNLOkzwUJUA4ok7iMSohG1K6T114DuGke.x6hQXJzFYZwaBNPpcO9zZYBQ3ZfjaFcYPKqP5zIl0hB53bacHw8ZccpuCB9e3Zl4IY3p6_loUrmsxqm4Qj30dO3DsG6IPewAKfaw3qPGSSi9_VSP7Z8AvJ6elEquqMK_jK8qo2En3bslrL3JXXXwqusqC34S3IrNM2WpPtHfLEQEjzh1r3y.y8.gVzyXjS6leoWFz3ogkzUyKfI_D1FpR1e4Ec6D9B03oPbPlSfMnwstE1ILFlS.t3Y',mdrd: 'QCY79rMqS2d55DA.TWQAR0g7m7EvYr1pr38UApzfjRQ-1752325384-1.2.1.1-NfTUYiFXl.pOnNwGS5Jefo2Z3KA0TB2Ee4Cvn1LLAjxHY1Bai4.pdoVlhjyxZXIMX4WkKfRSYPpfpZwKdbCM6mH3LXzyUVBRAbbnigZpYpgjJIJhrsWC.xBpXx7724Ap9qwOzeU4n9dbBUbaTqzBNKKUoO9jK.no4p7T_EE7bPQG37nUNIEuCXOCI9GGnhHrsu8wCMrEMZBi81IFr.z.QlTg.Mm5DxrVSv1llXf55R0K2IJfC16._kPGd6AcONHPMo.Le.sJFBf78jP8cvJ5CmdpRAIef9KL5idU7.bXQj4tqeSvqq00nwNGm0K6p.GD2XeZD68Anin8reWaNCzrAjeIahMSS0zTgngpMit7CiSDYsG3A0izEgHOpfl4l43rLBX6o3GcZ.AeXYOqgi7ejmgVvOM.io.886Jlbv5A.d.ZJYjgAEvzy9nJxrhQZ1t6uJ1TfCmY4OehbZBg6l9tha3coB5CqlfF.dNZgw78G6CmvsNzv_uYnf0_lrg483l.OKJH3c9C4lzGgjhK29PgWqQnp1cL5BgGP0hlDNB6qcoDZwkHILNai6sT5m1hQIwXihWOoRTeQXd.pmXhJXF72SP3QEzdCulOhCLtR9rHlvsHA0JrQ77f7dlv30r8oEfH1mYYTrGTGSBuW0p1m2YwZm21uqdV3ukPvif2ElyqiKYvqlUgJkkrHSXiPDsMRuySiWtoPd6uz7NwqZ9Xd7xGfmivrl3zqoJTb3LzSVto5rDlB6whd_cdULeGbcRsNj1ZDVqGHM0KToqHZtaxl4cgpU5qysheC8TYhJoKBlTL0Jc_4auvsYrbbLyCvAySfoNCRL6AbH1GTsBQkMow9uR702aHSWt0P1o0998n5LREYILQLb8noAwjezIKrhRx8.QCqyLyPMgeSd4egiNp_gfgqWwfeeUz0CCK8Tz7hgh8n23LFYXcywvhZ5NjbWexc9.BQrHF4milltFMJjjBjz2wsdtsdx0ezkkJB8S7cQilz0cG.fTEMPUfqBXFf0K9kpmiXnw3SrgUsoQk0lCqkwRHldjxDSahaGCRnXGB862Zvb8f2OZNXu.ClfHUNsOhbclI3FU3itn9IBa8mV43M3rOT10kzfhphv2bdfiYScYG3OatWxvpD2GSoPv5ZVJ6nXvywP_qzaT0U.JACN1KDwhPE_h6d1ocKb.4aWtWiq41pbMOUdqkeDPzp7zg0c8WZXkiA_af07hIVnRFMXvpQDVUHkYNgJt9k3UA2TFeUNOW0W5RnEbhEZcPprh0mRsQeTaKrHzAdRnC5A.b.DSr6k.pis2u5CMnot3D9gjOHOtVJbT95aF3.c4db1nSDwutsubtqpEPpDPepX5lgM2mJPKcTp5MLDGw5R.CYN0jzz1ApAYteN4XkiFynWx4PLKto1bMuMZ5kFGTct9wq9DlE.vr1bHKvdQOt5w.hX4xtW0TuTjlPT0XjUBEJ6TN6_N2tpLJAYAQA_fexAhLQ6GbeEZBwS89s1dptH3FGJEUljJ5uFoucpPn8MQYNjOS8LmNEgEcwkYAlLsl1KMGOtEzg7O6nZkKA.RgZi0xIdxrV15bIoaMtTDPcQqXxQs1b7VBrOMYVXC2s5r1Bupoo8rcSjvMNdJ4Et36JWviZfEmVO3OeihLZmgeTi6LZr1qeN39Hs0M8U0glKusWtOQ8D_rnTXHJE9aURsuwhW3Qtz6KUL94HxMrsbpujfjf7UHLs4cC6G9HSl4fbUZ0OxFrEdG1lEkqVBOQVgPHi6cCpdtzwrA_qtERGbq2xYdc6B6LKAHlcR4JEynODC3ZVofbc8QYmZEIy2CydLXwXWAF1hsnECPFkjcbiUbBrz9TU5impSz0LIBACUVMpWWImC.NlwbZiBYGURhwKuhlt2zYllMDv_eMBv7SOADA3ltO0O7djRWqElXflA9bEkC73e4w0niIjgj.l8U5tgE2ci8enKYywP6tVixKN_DonLQIugh6N815iDV0RZk2JMC9kvFCd_iAyxxgpykREAKB8h5fDadqvxFaBhSyA5HOez_X2resscQ7Ymj8OWAUzfyhnv0JedIpTlPvtx1.xOr7KraA4VGlq2qfkwHSChVq0iifDS1XDgWyAC8qyObqb60cv1M2zoi3Usu.ApPWuTuISdQq3umMEptcapFFTb0t8722D9XBPScXdjWi5Sx43r5pVYg9BXqcGVhGsKMi0Nq48tthEEjh2plXBLnGzKFlA331OXkomNV0DWS480GV0SAC3.5FYl.yHJdIbX6XdETiavvNBsg.nSrrfR9Ww4ZLD6XtrkZjWhujYFESYuGU764R_5UbteGFJ9pfL.2PI8mvDYJ63E3sXLZJef6LMcBfPWwtp6GSA4JRuCU1jcf2Z3jc.KxedLFT1z9wmF9WeexomFFw_5uLonFgc39xuE3.KCAw2I8U3nqj_3cds6kfagiUiWiY2vc73AlQdy8Vj9uWyLkWECvGqqqrDI1s8oXErELoYw3ghUtALzibDot.X7NBhdUsj9SKch7Tz.A1GVjSEenTPBuBZ77TBQ3ysznop8Jvb8yM8R6atCndGNFLpiFZUPykE09wyobFkvjlJUuVVaZv4j1iWXS9J4uZNKYjyyE5Nq4D5Qly1kQfOfaoH7AfWbJI1qZZbIlKA',};var a = document.createElement('script');a.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=95e0bd14b178ebb5';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,"\/p\/xsb\/src\/2263\/tree\/\/trunk\/XSB\/docs\/userman\/hooks.tex?__cf_chl_rt_tk=0L71h1wiZh1vHuQLRERvIXrCLWTJyU3kFlMg04lGB3k-1752325384-1.0.1.1-2AgfBmSIBRETknQerbUqPsiim0.1YNwg6lw1z1qdO4E"+ window._cf_chl_opt.cOgUHash);a.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(a);}());</script></body></html>