4:7
  0   ˆl–ßi~”êh¥8 Eq–®JbÑ¿Áƒ k_ŒuÐb&=Ly[Ï¿ÁÀ ¨    ý7zXZ  i"Þ6 !   t/å£à|l] ! š)];›Q6ŸÍ²H�ãô âBnÌS2[µ«Í<+óLü~RØ…3²ì 2	‘èËÃ†€`�`î*ŽÉÌ¹…wû–î8Ô'fA„²üØ`k �ˆ±¡†ÿ«£K^y{.ÑÈdYë¯Î>•cç¿ýƒü@Îs6›¾=+#�Šm×7×àrd(®5m¼ãðé›Ô&ei Xë-oÈMJlèzÅö[D|Þ5OlŠ¢ð‘ÚðÃàˆ¿aè	(÷OáË(aöL¬™.”'¿)?¶µDá×½,‰Õ_ßŸ/Ì€¬:)åÂ‰Pp‚Å}MõÖ­¼ñÉýd×Ãusì:V»µ*ï­âõ’’û©ÌÝv gÍ[©ã*�("ð×�ó*†SÑ87´ˆûbBósYÌ'Þâ$s[k§ö¯�hÉBŸÈ>·ÅŽ–pÉ,õ_ÊÅxKáM^Òk•« Ö¹�(Œœ*³QGE*ãÚÄ¢¦çüGøg¨1ñKš¬N¨HD¦�¦éß-¢ý„àQVŸ€ð¼…k¤]‰¶\¼1	„/âÔ8�ÛÝ©mär~
3Qñ_Þ'¬Ðqfò�ˆ elÇS·¸»“£ó$}ûVyå8 Põ‹»Ú××f|Ó@eˆFÒÕýË¾)
E# 2ußtïåâ›‘ˆ¨!�1�q˜Íì:œ5 —y—ò:wþpýÏkKlÑ˜É�ŠÂ.IŸ§ZeââÌ¾G8ƒ$¸~R‡­z�VEñÛN1‹7ŸIãË#Ý?™[¶é´¼Uà^ßƒD”H˜ÆÑ-©±o¡åÿô‚�žYõL,½=ÏþË§ÓØwöÎfLz§"ã�jº£Nn£“C±FþÉ‹›ÅÏI¾ÐŠí½;uŽ Dô°0«d1�r_ªÀÛž1E aR­Î v3>ˆqˆTgª2ÕÂ
ç¨)‘U.+ˆŽ”¿Ïí`ØCÄ‹ø€lÕ'¼;Ã¨jr€¡2_¹rpÖÜÉ¡dŠ*Ú|Åb Ã#òÃÍi_‘Éß©N_&JA\°“¶ìÌõy$c�]�‰<‹š¢Òrá‹f÷Ò€x,èf÷hnüÆö2T‘§üÉ¤?¸2Rs’E:.’“‡™Í‚(é3ñPð+‘3"œ@Ü¥*Š´ÔŽÒ$Ñ™.‘HÑÇŠç9;ò¾.F=Õ¡ñÁB¬¹Ïð!…¥nX˜PFVkŽ„¥�^êqT„Ñh£ÅÅàq¦ó#ñ/M¹ûÈf…¶ždQÜÛg>M±¢u†?³¼U.Pà_¢t¶œº«Cp:0ï?Pþ`×bß Öm�qF7ƒ×pn‡J;_{—žo
C<2)Ê@0,R‰±ÐQ¹6žŸS!óž^G¶ÌQ üDE,1†›m!*ïø–Õ‚Ç³“é¶Ø½Ë½ÐQ#õÚaRÄcºNùÉ¥¢¦’ÈRöß–»»¨B£+À2ïÇÍç1&]öx‚·è¯ß�Ó£t8`’é SºU¹’{`*ny¾ô�†ÊK×{ù/�M7Xk¨Îó.ÿ1æÇ�´ÕëÅEéÞ¥J¾ƒè‡Œ~	ÿ‚„�ö`¼ðòGÈª/Ë6gº^ÖWd)=s£Ý  7dÛ&›}µ"ÄD,_Ó9U5¨¸ó¸»qæOrU…¨Ò«gŒ½F_½
»{b\TcgÕ,L!Z{Xn•å´íÕ#Î�	MškÉš'ç›YïÅ}DÆ��Ùh@æ`"øò:¾õÜÀWðÚúiþ4RÖÅw…úÉe&ýŸÓ™"�]ð¡àK½‡Ä„mÂqÚ�ÊW.¸Êvæ‚+•�ê¾¬tY8•w“$ó�]\Od®!Ô…‘w¹Ô©:+g|•�ôû›´ù;…ÜeJ«€+�Ë.ªEÄôøŒÞÑLàxÔŽTŒ‹�S\¹ûÔ$·”	o<Øx2 +*Ð\3Š›E*Ì6‡èDÈ(Zpú–ä©¶O»çVä««+�¬áÿËÉuaþY÷T™šzéˆt¼oX?ÒMviµÎ#JpRxà^#èË“W3æMt-µ8¯ï@‚ï°Û€8�…Ìu{ïó…K÷$'äŒÌ´™Ú=oRœ‰1ZŽH¼P6«Í©�ì?†HNÝXùŒÀ‘ñƒÒÊ<	â¦eëîfKMZÏ‘v…¸.JWBï‹û«buÑÅA(Ðëw�zøÕÙŸE Í&!Û „ý$  äf¬õ>0‹    YZ  #   ˆl–Ü4ý( ©³( 	Å€fàD¦-ÿÃ„�ÂÁ ?÷     # SPDX-License-Identifier: GPL-2.0

BPF_SAMPLES_PATH ?= $(abspath $(src))
TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools

pound := \#

# List of programs to build
tprogs-y := test_lru_dist
tprogs-y += sock_example
tprogs-y += fds_example
tprogs-y += sockex1
tprogs-y += sockex2
tprogs-y += sockex3
tprogs-y += tracex1
tprogs-y += tracex2
tprogs-y += tracex3
tprogs-y += tracex4
tprogs-y += tracex5
tprogs-y += tracex6
tprogs-y += tracex7
tprogs-y += test_probe_write_user
tprogs-y += trace_output
tprogs-y += lathist
tprogs-y += offwaketime
tprogs-y += spintest
tprogs-y += map_perf_test
tprogs-y += test_overhead
tprogs-y += test_cgrp2_array_pin
tprogs-y += test_cgrp2_attach
tprogs-y += test_cgrp2_sock
tprogs-y += test_cgrp2_sock2
tprogs-y += xdp1
tprogs-y += xdp2
tprogs-y += xdp_router_ipv4
tprogs-y += test_current_task_under_cgroup
tprogs-y += trace_event
tprogs-y += sampleip
tprogs-y += tc_l2_redirect
tprogs-y += lwt_len_hist
tprogs-y += xdp_tx_iptunnel
tprogs-y += test_map_in_map
tprogs-y += per_socket_stats_example
tprogs-y += xdp_rxq_info
tprogs-y += syscall_tp
tprogs-y += cpustat
tprogs-y += xdp_adjust_tail
tprogs-y += xdp_fwd
tprogs-y += task_fd_query
tprogs-y += xdp_sample_pkts
tprogs-y += ibumad
tprogs-y += hbm

tprogs-y += xdp_redirect_cpu
tprogs-y += xdp_redirect_map_multi
tprogs-y += xdp_redirect_map
tprogs-y += xdp_redirect
tprogs-y += xdp_monitor

# Libbpf dependencies
LIBBPF_SRC = $(TOOLS_PATH)/lib/bpf
LIBBPF_OUTPUT = $(abspath $(BPF_SAMPLES_PATH))/libbpf
LIBBPF_DESTDIR = $(LIBBPF_OUTPUT)
LIBBPF_INCLUDE = $(LIBBPF_DESTDIR)/include
LIBBPF = $(LIBBPF_OUTPUT)/libbpf.a

CGROUP_HELPERS := ../../tools/testing/selftests/bpf/cgroup_helpers.o
TRACE_HELPERS := ../../tools/testing/selftests/bpf/trace_helpers.o
XDP_SAMPLE := xdp_sample_user.o

fds_example-objs := fds_example.o
sockex1-objs := sockex1_user.o
sockex2-objs := sockex2_user.o
sockex3-objs := sockex3_user.o
tracex1-objs := tracex1_user.o $(TRACE_HELPERS)
tracex2-objs := tracex2_user.o
tracex3-objs := tracex3_user.o
tracex4-objs := tracex4_user.o
tracex5-objs := tracex5_user.o $(TRACE_HELPERS)
tracex6-objs := tracex6_user.o
tracex7-objs := tracex7_user.o
test_probe_write_user-objs := test_probe_write_user_user.o
trace_output-objs := trace_output_user.o
lathist-objs := lathi